Utilities

Note

The documentation in this section is aimed at people wishing to contribute to cupage, and can be skipped if you are simply using the tool from the command line.

class cupage.utils.CupageEncoder(skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, encoding='utf-8', default=None)[source]

Custom JSON encoding for supporting datetime objects.

default(obj)[source]

Handle datetime objects when encoding as JSON.

This simply falls through to default() if obj has no isoformat method.

Parameters:obj – Object to encode
cupage.utils.json_to_datetime(obj)[source]

Parse checked datetimes from cupage databases.

See:json.JSONDecoder
Parameters:obj – Object to decode
cupage.utils.parse_timedelta(delta)[source]

Parse human readable frequency.

Parameters:delta (str) – Frequency to parse
cupage.utils.sort_packages(packages)[source]

Order package list according to version number.

Parameters:packages (list) – Packages to sort
cupage.utils.robots_test(http, url, name, user_agent='*')[source]

Check whether a given URL is blocked by robots.txt.

Parameters:
  • httphttplib2.Http object to use for requests
  • url (str) – URL to check
  • name – Site name being checked
  • user_agent (str) – User agent to check in robots.txt

The following three functions are defined for purely cosmetic reasons, as they make the calling points easier to read.

cupage.utils.success(text)[source]

Format a success message with colour, if possible.

Parameters:text (str) – Text to format
cupage.utils.fail(text)[source]

Format a failure message with colour, if possible.

Parameters:text (str) – Text to format
cupage.utils.warn(text)[source]

Format a warning message with colour, if possible.

Parameters:text (str) – Text to format

Examples

Output formatting

>>> success('well done!')
u'\x1b[38;5;10mwell done!\x1b[m\x1b(B'
>>> fail('unlucky!')
u'\x1b[38;5;9munlucky!\x1b[m\x1b(B'