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.11.tar.gz (24.1 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.11-py3-none-any.whl (29.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for dpn_pyutils-3.12.11.tar.gz
Algorithm Hash digest
SHA256 c121a948f9b6e0a5460663ce652659e16fbe4c96c53829e4b6d92a0d1897574b
MD5 8c9a65c754c649ebac44573cd2f9e46a
BLAKE2b-256 54c7091bfb8653ef0f897b2d69fad6fad1a12150600d2af49dc54b5b13fe57d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dpn_pyutils-3.12.11-py3-none-any.whl
Algorithm Hash digest
SHA256 101c575a3d028a92422af581edf1a3d5f9bf65cbc3561c9816bf0b0572c97c90
MD5 f311b1c19d77c5a581600bb1c4474888
BLAKE2b-256 330fdf6975e7c86474792ba2aeb44d1c7c4f3a5bac2ed61d57383122bdf7aeb0

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