Skip to main content

General Python tools

Project description

This is a collection of utility modules for Python projects.

Features

  • buildout module, for buildout-built projects:

    Function checkPathForPackage to check a given package against a versions whitelist. Useful if you like to constain the versions of that package without actually requiring it.

  • coding module:

    Factory functions to create safe_encode resp. safe_decode functions as needed

  • classes module:

    Several simple but useful classes derived from Python dicts, e.g. Mirror and Proxy

  • debug module:

    • trace_this decorator

  • dicts module:

    • several tools to work with standard dictionaries

  • files module:

    • functions related to files; for now make_mtime_checker

  • html module:

    • HtmlEntityProxy - a dict which returns unicode characters when given a named HTML entity

  • http module:

    • extract_hostname (using url.split and raising ValueError)

  • lands0 module:

    • several tools to work with lists and strings

  • minifuncs module:

    • very small functions, for some cases where functions are used as arguments

  • profile module:

    • a StopWatch context manager and @profile decorator

  • sequences module:

    • tools for sequences, e.g. inject_indexes

  • times module:

    • functions related to date and/or time calculations

Documentation

The modules are documented by doctests. Apart from this, we don’t have real user documentation yet (sorry).

Installation

Simply install visaplan.tools by using pip:

pip install visaplan.tools

or by adding it to your buildout:

[buildout]

...

eggs =
    visaplan.tools

and then running bin/buildout

Contribute

Support

If you are having issues, please let us know; please use the issue tracker mentioned above.

License

The project is licensed under the GNU General Public License v2 (GPLv2).

Contributors

Changelog

1.3 (unreleased)

  • Breaking changes:

    • Signature change (e.g. name of first argument: form –> dic) for dicts.update_dict.

1.2.5 (2019-10-16)

  • New class classes.AliasDict

  • Added some doctests.

[tobiasherp]

1.2.4 (2019-05-09)

  • New function dicts.update_dict (from v1.2.3) “published” in __all__ list. We are not happy with the signature of this function, though, so it will likely change in a future release.

  • New function classes.connected_dicts which creates two connected dictionaries with dic1[key] = val <–> dict2[val] = key

  • log_or_trace will print a useful info, containing the trace_key, before calling set_trace()

[tobiasherp]

1.2.3 (2019-01-30)

  • new function update_dict in dicts module (which takes a deletions list argument)

  • buildout.extract_package_and_version supports egg specs with subpaths as well (child of an /eggs/ directory)

  • buildout.checkPathForPackage logs the invalid package entries if the package in question could not be found

  • lands0.groupstring supports cumulate option (default: False) [tobiasherp]

1.2.2 (2018-11-08)

  • new module buildout for use in buildout-built projects: use the checkPathForPackage function to check an installed package against a versions whitelist [tobiasherp]

1.2.1 (2018-09-17)

  • new module dates:

    • make_date_parser factory to create a parse_date function which understands multiple date formats

    • make_date_formatter factory to create a function which formats date, given as a datetime object or a tuple of int

  • new module profile:

    • StopWatch context manager and @profile decorator

  • new module mock:

    • a few small classes for use in doctests

    • the same module as visaplan.plone.tools.mock

  • module debug:

    • new decorators trace_this, log_result

    • new function print_indented

    • new factory function make_sleeper

  • module dicts:

    • new function make_key_injector

  • module minifuncs:

    • new function translate_dummy

  • module sequences:

    • new function nocomment_split

    • new function columns [tobiasherp]

  • module lands0:

    • new function join_stripped

  • License changed to GPLv2

1.2 (2018-07-11)

  • breaking changes:

    • classes: Proxy is now a factory rather than a class

  • modules debug, dicts, lands0, minifuncs [tobiasherp]

1.1 (2018-06-12)

  • modules sequences, times, files

  • Minor Bugfixes [tobiasherp]

1.0 (2018-06-11)

  • Initial release, including modules classes, html, http and coding [tobiasherp]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

visaplan.tools-1.2.5.tar.gz (56.3 kB view details)

Uploaded Source

File details

Details for the file visaplan.tools-1.2.5.tar.gz.

File metadata

  • Download URL: visaplan.tools-1.2.5.tar.gz
  • Upload date:
  • Size: 56.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.19.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/2.7.5

File hashes

Hashes for visaplan.tools-1.2.5.tar.gz
Algorithm Hash digest
SHA256 ef49ca53da089a391ca7013e1ec7bd54778250373bc3c5715e0166e323b8c36d
MD5 1c82cca998631334287fe909ebe88ca9
BLAKE2b-256 dafae71ff2a508959ad76c9860efcbc8c8517e625034c79a1d0b57d358844b5a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page