Skip to main content

A collection of python utils used by the DPN

Project description

DPN Python Utils

Coverage Python 3.12+ License

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 hereexamples/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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dpn_pyutils-3.12.8.tar.gz (22.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dpn_pyutils-3.12.8-py3-none-any.whl (27.0 kB view details)

Uploaded Python 3

File details

Details for the file dpn_pyutils-3.12.8.tar.gz.

File metadata

  • Download URL: dpn_pyutils-3.12.8.tar.gz
  • Upload date:
  • Size: 22.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.13

File hashes

Hashes for dpn_pyutils-3.12.8.tar.gz
Algorithm Hash digest
SHA256 d8cb370dc2d0d26f5eb79cc9fddfb5fd4ff0db8540327a1c743a89f1d33e91b0
MD5 b2d7f4f9ddfae2f0b40f435d9c3bb145
BLAKE2b-256 58c39692d8e5a6b92dfb3e0c997c76dddf742b28820878b08772b3bca1d492e7

See more details on using hashes here.

File details

Details for the file dpn_pyutils-3.12.8-py3-none-any.whl.

File metadata

File hashes

Hashes for dpn_pyutils-3.12.8-py3-none-any.whl
Algorithm Hash digest
SHA256 307087e2e4caa696bb5b4d0994a9ef2343ac5bc2fbd9a36f4e3bdbd99836af19
MD5 20f9ec04f40c5c5c7a9bbc5608013c54
BLAKE2b-256 0edeae01ef3a33a25cc47f141fe2192a5a5c6de14c0556a11f6f7d4b9c215888

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page