Utilitarian Functions#

Source code: hyccup/util.hy

Strings Handling#

class hyccup.util.RawStr#

Raw string class, subclass of str.

Instances of this class are not escaped.

classmethod (from-obj-or-iterable cls obj)#

Produce a raw string from an object or a collection.

(hyccup.util.escape-html string mode escape-strings)#

Change special characters into HTML character entities.

(hyccup.util.as-str #* obj)#

Convert all passed objects to string with to-str.

(hyccup.util.to-str obj)#

Convert any object to string.

In particular:

  • Convert fraction to string of its decimal result.

  • Convert a url.parse.SplitResult object to its URL with str-of-url.

  • For any other case, convert with str constructor.

URLs Handling#

(hyccup.util.encoding #* args #** kwds)#

Context manager specifying encoding.

=> (with [e (encoding "UTF-8")]
...  (e.url-encode {"iroha" "いろは"}))
"iroha=%E3%81%84%E3%82%8D%E3%81%AF"
=> (with [e (encoding "ISO-2022-JP")]
...  (e.url-encode {"iroha" "いろは"}))
"iroha=%1B%24B%24%24%24m%24O%1B%28B"
>>> with encoding('UTF-8') as e:
...     print(e.url_encode({'iroha': 'いろは'}))
...
iroha=%E3%81%84%E3%82%8D%E3%81%AF
>>> with encoding('ISO-2022-JP') as e:
...     print(e.url_encode({'iroha': 'いろは'}))
...
iroha=%1B%24B%24%24%24m%24O%1B%28B
(hyccup.util.url #* parts #** query-params)#

Convert parts of an URL and query params to a url.parse.SplitResult.

(hyccup.util.to-uri obj)#

Convert an object to a url.parse.SplitResult.

(hyccup.util.base-url #* args #** kwds)#

Context manager specifying base URL for URLs.

=> (with [b (base-url "/foo")]
...  (setv my-url (to-str (to-uri "/bar"))))
=> (print my-url)
"/foo/bar"
>>> with base_url('/foo'):
...     my_url = to_str(to_uri('/bar'))
...
>>> print(my-url)
/foo/bar
(hyccup.util.url-encode obj)#

Quote obj for URL encoding.

  • If obj is a dict, use url.parse.urlencode.

  • Else use url.parse.quote_plus.