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
Issue Tracker: https://github.com/visaplan/visaplan.tools/issues
Source Code: https://github.com/visaplan/visaplan.tools
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
Tobias Herp, tobias.herp@visaplan.com
Changelog
1.3 (unreleased)
Breaking changes:
Signature change (e.g. name of first argument: form –> dic) for dicts.update_dict.
1.2.6 (unreleased)
Improvements:
Travis CI integration added.
Test discovery configuration for nose2 (used on Travis) and nose.
Bugfixes:
Fixed doctests for
.dicts.update_dict
.dicts.make_key_injector
Removed now-obsolete …tests/test_doctests.py file which caused nosetests to fail.
New Features:
.times.make_defaulttime_calculator: new keyword-only option utc=False, to make the doctests work with Travis.
[tobiasherp]
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file visaplan.tools-1.2.6.dev2.tar.gz
.
File metadata
- Download URL: visaplan.tools-1.2.6.dev2.tar.gz
- Upload date:
- Size: 57.2 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3845b4e2dd26538219bc86139671651e8cff8127a0d989418e323cf91777260 |
|
MD5 | 1b8af730264dd66b6dcefc0f928c55c8 |
|
BLAKE2b-256 | 9c5fe6d9fef6ba5a77cf4153ea6869df09489722ec17bc44dcd8417a49d17813 |