A collection of python utils used by the DPN
Project description
DPN Python Utils
A collection of python utils used by the DPN.
Target minimum python version: 3.12
Documentation and Examples
📚 Comprehensive Examples and Documentation
Looking to get the most out of dpn_pyutils? Extensive documentation provides:
- Detailed Module Guides: In-depth explanations of each module's purpose and capabilities
- Practical Code Examples: Copy-pasteable examples showing real-world usage patterns
- Architecture Insights: Design decisions, best practices, and integration guidance
- Getting Started: Quick-start guides for both beginners and advanced users
Whether you're implementing CLI color formatting, secure token generation, robust file operations, powerful logging, or timezone-aware scheduling, examples will help you integrate dpn_pyutils effectively into your projects.
Start here → examples/README.md for comprehensive usage guidance!
High-level Design Notes
To be broadly compatible with running in synchronous or asynchronous mode.
The principles behind the modules are to:
- Be dependable and provide least surprise
- Fail safe and raise informative exceptions
- Optimize code for readability and maintainability
- Design for backwards compatibility
Major versions of dpn_pyutils releases track major Python versions in general availability
Getting Started
The fastest way to get start is with Astral uv.
Otherwise, use pip install dpn_pyutils in your virtual environment.
With uv installed on the system, create an environment
uv init
uv add dpn_pyutils
uv sync
This will create a virtual environment with dpn_pyutils installed.
Upgrade versions
Upgrading is done by uninstalling the package and installing the upgraded version
uv sync --upgrade-package dpn_pyutils
Testing
This project uses uv and tox via the tox-uv plugin. Set it up via:
uv tool install tox --with tox-uv
Building
Building dpn_pyutils can be done with python 3 and poetry
uv run pytest tests/
tox
uv build
The distribution-ready files will be in the dist/ directory.
Packaging and Distribution
Packaging after changes need the following to be executed:
Update the version number
Bump the version number
- The MAJOR and MINOR versions should always match the minimum Python versions
- The PATCH version should be an incremental counter of library versions
uv lock
uv version --dry-run --bump patch
uv version --bump patch
git add pyproject.toml uv.lock
git commit -m "Bump version to $(uv version | awk '{print $2}')"
git tag "v$(uv version | awk '{print $2}')"
git push && git push --tags
Distribute
uv build
uv publish
rm -rf dist
Remember to set the username to __token__ and the password to your PyPI token.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dpn_pyutils-3.12.6.tar.gz.
File metadata
- Download URL: dpn_pyutils-3.12.6.tar.gz
- Upload date:
- Size: 22.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43dfca1f28f9dcb14349ae4e5f514573dc15b018c8cd67ecd57af2d71952b77c
|
|
| MD5 |
2970639fbfee7062c38b70e7a87ad5aa
|
|
| BLAKE2b-256 |
4d8163338ec2f76b008e2f4356c5011f26899b119f0040dc7f8603c70c172791
|
File details
Details for the file dpn_pyutils-3.12.6-py3-none-any.whl.
File metadata
- Download URL: dpn_pyutils-3.12.6-py3-none-any.whl
- Upload date:
- Size: 26.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4d1e6c0f3a354590b62ac83ac1440893d5207610db8689267e6ebf529832875
|
|
| MD5 |
55264fbe75c33bb75970706f471e4d65
|
|
| BLAKE2b-256 |
e70db3ba50d667222a39860cf03f7e89cd8ba7604085247d2388c7830996025d
|