packg
November 15, 2025 ยท View on GitHub
Collection of utilities used in other python projects.
Features
caching: Cache objects to disk (usingjoblib) or to memoryconstclass.Const: Base class for defining constants, as alternative toenum.Enumdebugging: Connect to PyCharm debug serverdtime: Wrappers and formatters fordatetimeand other timing utilitieslog: Wrapper forloguru, utilities for stdlibloggingiotools: Index paths, compress and read files, git utilities, wrappers to load json/yamlmagic: Wrapper aroundimportlibmaths: Various small mathematical utilitiesmisc:format_exception(e)outputs the exception as it appears in the stacktrace.suppress_stdout_stderrcontext manager to suppress all output of a block of code.
multiproc: Multiprocessing utilitiespackaging: Code to handle creation and running of python packagespaths: Load paths from the global environment or .env files usingpython-dotenvstats: Simple statistics utilitiesstrings: Base64, quote strings, create random strings, create hashes of objectssystem: Wrapper forsubprocess.Popentesting: Import all modules from a package and other utilitiestqdmext: Wrappertqdm_max_ncolsthat limits the width of atqdmprogressbar by defaulttypext: Type definitionsweb: Download file and resume a partial download, disable web access
Install
Requires python>=3.8
pip install packg
Setup environment paths
# show environment
python -m packg.cli.show_env
# or
packg show_env
To override the defaults with your own values:
- Set the environment variables in your shell e.g. using .bashrc
- Create a file named
.envin the root of your project as follows:
ENV_DATA_DIR=data
ENV_RESULT_DIR=results
ENV_ANNO_DIR=annotations
ENV_CODE_DIR=/home/${USER}/code
ENV_CACHE_DIR=/home/${USER}/.cache
Dev install
Clone repository and cd into, then:
pip install -e .
pip install pytest pytest-cov pylint
python -m pytest --cov
pylint packg
pylint tests