My personal library collecting some useful snippets.
Project description
About
=====
This is my personal collection of snippets that I use in multiple projects.
Each one feels a bit to small to merit it's own library.
So what does it include?
* memoize decorator (caching)
* a storage class wrapping a dict.
* unittest assert functions.
* Functions for handling large JSON documents.
* list_dir(path) -> (dirnames, filenames)
* PID file locking
* A synchronization decorator
Note that many or all of these are old and that there is better alternatives these days.
Feedback and getting involved
-----------------------------
Send feedback and bug reports by email to hcs at furuvik dot net.
- Code Repository: https://gitlab.com/hcs/hcs_utils
News
====
2.1
------
*Release date: 2024-09-03*
* Removed versioneer because of lack of released Python 3.12 support.
* Switched to poetry based buildsystem.
* Misc non code updates
* ruff auto formatting
* Fixed errors and warnings reported by ruff and mypy
2.0
------
*Release date: 2015-09-14*
+ Now only supports Python 3.4
+ Improved thread safety for Lock
+ Bugfix for file handling i daemon
+ Code cleanup and some more tests
1.5
------
*Release date: 2014-02-11*
+ Added support to path.watch_files_callback for controlled shutdown
+ Lock, improved exception handling for edge case.
1.4
------
*Release date: 2013-11-19*
+ Fix for daemon, started even if it already was started.
1.4rc5
------
*Release date: 2013-04-16*
+ Fix for daemon sigterm handler
1.4rc4
------
*Release date: 2013-04-15*
+ Added logging to Daemon
1.4rc3
------
*Release date: 2013-04-11*
* fixed bug relating to daemon handle sigterm
* Added option to to force recalc of cached value for memoized call
1.4rc2
------
*Release date: 2013-03-21*
* Added unicode support to eq_str
1.4rc1
------
*Release date: 2012-11-16*
* Compatible with python 2.7 and 3.3
* Fixed problem in Lock, timeouts where not used when other thread in same process had the lock.
1.3
------
*Release date: 2012-11-10*
No changes since 1.3rc6
1.3rc6
------
*Release date: 2012--*
* Storage: added storagify and unstoragify (to/from json style data structure)
1.3rc5
------
*Release date: 2011-12-19*
* lock: Improved exception messages (added locking pid).
* lock: Added some debug logging.
1.3rc4
------
*Release date: 2011-09-13*
* Storage: Added generic support for key normalization.
1.3rc3
------
*Release date: 2011-09-06*
* Storage: Added support for running case_insensitive.
* Storage: Added support for default_factory.
1.3rc2
------
*Release date: 2011-08-25*
* Storage: Minor fixes
* daemon: A new module for creating a UNIX daemon.
* lock: Added the option to steal a lock.
1.3rc1
------
*Release date: 2011-07-11*
* PEP8 compliant
* Better test coverage
* added IDLock class to lock module
* Memoize optimization
* path.watch_file
1.3a9
-----
*Release date: 2011-05-31*
* Memoize: bugfixes
1.3a8
-----
*Release date: 2011-05-17*
* ItemStore: fixed bugs in rename and move
1.3a7
-----
*Release date: 2011-04-26*
* Memoize: Added support for instance methods
1.3a6
-----
*Release date: 2011-04-11*
* Added timeout to lockfile
1.3a5
-----
*Release date: 2011-04-06*
* Added locking to itemstore
* Added a file change watcher
* Some bugfixes
* PEP8 cleanup
1.3a4
-----
*Release date: 2011-02-11*
* Optimized Store.__contains__
* memoized functions can now be recursive
1.3a3
-----
* 1.3 will only support Python 2.6 and 2.7
* Testing using py.test instead of nose
* added hcs_utils.path.walkfiles() recursive file generator
* hcs_utils.itemstore Kind of on disk object/file/directory store
* some smaller functionality
* bunch of fixes
1.2
---
*Release date: 2011-01-07*
No changes since 1.2rc5
1.2.rc5
-------
*Release date: 2010-11-30*
* unittest.eq_json, sorted output so that it can be used with dicts.
* unittest switched place on ndiff arguments
1.2.rc4
-------
*Release date: 2010-06-15*
* Dropped support for Python 2.5
* Added hcs_utils.collections.ListBuilder, a nice way to manually build lists.
* Added hcs_utils.lock.Lock, Interprocess locking using a PID symlink.
* Added hcs_utils.path.scan_for_new_files()
* Added hcs_utils.path.tempdir context.
* Added hcs_utils.storage.Storage.\__contains__ and \__iter__
* Added hcs_utils.storage.json* Storage vs. json helpers
* Added hcs_utils.threading.synchronization decorator.
* Memoize is now thread safe.
* hcs_utils.path.list_dir now returns a namedtuple
1.1
---
*Release date: 2010-04-22*
* Fixed unpickeling of Storage objects.
1.0
---
*Release date: 2010-04-18*
* Initial release
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
hcs_utils-2.1.0.tar.gz
(17.7 kB
view details)
Built Distribution
hcs_utils-2.1.0-py3-none-any.whl
(23.2 kB
view details)
File details
Details for the file hcs_utils-2.1.0.tar.gz
.
File metadata
- Download URL: hcs_utils-2.1.0.tar.gz
- Upload date:
- Size: 17.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.12.5 Linux/6.10.4_1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b6c4efa17722508e0204723b660d92e2732cf69332918eda448607b9c9a6bb3 |
|
MD5 | 76531475d439ba5130bc6b7c9a0734f9 |
|
BLAKE2b-256 | 42c48f3769cfa11b18bceb37292adc3b1b709578bd21d92543500644560238c2 |
File details
Details for the file hcs_utils-2.1.0-py3-none-any.whl
.
File metadata
- Download URL: hcs_utils-2.1.0-py3-none-any.whl
- Upload date:
- Size: 23.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.12.5 Linux/6.10.4_1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab493fe39f2428c49f0799a36d4029cab8eefb5ee17121e3b51ef12dbaa5269b |
|
MD5 | b45be058bbca79a2f75fd556e6138620 |
|
BLAKE2b-256 | 2eb6ed03f0cdac7f3b49064644d15e7221ec012c7e937819038b52ec7b88d1ae |