A collection of python utils used by the DPN FinNet
Project description
DPN Python Utils
A collection of python utils used by the DPN.
Target python version: 3.8.x
High-level Design Notes
To be broadly compatible with running in synchronous or asynchronous mode, the methods
are designed to run in a synchronous fashion for all modules excluding async
.
The async
module or other projects can utilise the methods in either fashion.
The principles behind the modules are to:
- Be dependable and provide least surprise
- Fail safe and raise informative exceptions
- Optimise code for readability and maintainability
- Design for intended eventual backwards compatibility
Major versions of dpn_pyutils releases track major Python versions in general availability, and follow semver versioning
Modules
Module Name | Module Description |
---|---|
async | Methods relating to async and event loop |
cli |
Methods relating to commandline input and output |
common |
Methods relating to logging and shared system services |
crypto |
Methods relating to cryptography and encoding |
exceptions |
Exception classes for all modules |
file |
Methods relating to file and path operations |
http |
Methods relating to general HTTP/REST |
mq | Methods relating to message queing protocols |
money |
Methods relating to money, transactions, and formatting |
Getting Started
The fastest way to get start is via pyenv.
With pyenv installed on the system, check the latest version of the target python version.
pyenv update && pyenv install -l | grep 3.8
Install and build with pip
Install and build with pip using wheel and setuptools.
Go to the releases page and pick a release tag, branch, or version.
Assuming a release tag of 3.0.0a4
, install with pip using:
pip install git+https://github.com/davidpirogov/dpn_pyutils.git@3.0.0a4
Install manually
Install the target python version into pyenv and set up the virtualenv
pyenv install 3.8.11
pyenv virtualenv 3.8.11 dpn_pyutils
pyenv activate dpn_pyutils
pip install --upgrade pip
pip install -r requirements.txt
Upgrade versions
Upgrading is done by uninstalling the package and installing the upgraded version
Assuming release tag upgrade from 3.0.0a4
to 3.0.0a5
pip uninstall dpn_pyutils
pip install git+https://github.com/davidpirogov/dpn_pyutils.git@3.0.0a5
Building
Building dpn_pyutils can be done with python 3, setuptools and wheel.
python -m pip install --upgrade build
python -m build
The distribution-ready files will be in the dist/
directory.
Packaging
Packaging after changes need the following to be executed:
pip freeze > requirements.txt
req2lock -f requirements.txt
git commit -am"Updated requirements, pyproject, and poetry lockfile"
Update the version number in:
- pyproject.toml
- setup.cfg
git commit -am"Bumping version number for 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
Built Distribution
Hashes for dpn_pyutils-3.0.0a6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71548225c85f69eaf8cc156926cf371e9a72ea3bfdb4461eea9d9930edfbc64a |
|
MD5 | 5cd15e2a94b6e325b84e907751055a05 |
|
BLAKE2b-256 | 4bc25c53ce9c546b4a743be5738fc7acf3347979053882de2afb51ce4804d07e |