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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for dpn_pyutils-3.12.7.tar.gz
Algorithm Hash digest
SHA256 97a9687dc96642e61b6ef3f62d3870bc1cc5bcae91700c2ba993b43a65b5145f
MD5 f419a444eb63b211babf5e9e89da2ce5
BLAKE2b-256 ad91178a722a6948958470dd725a443f7477c6e7dce57ce826e3c671231b4abc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dpn_pyutils-3.12.7-py3-none-any.whl
Algorithm Hash digest
SHA256 daa999bea32dab6ab72c900d975072c33c8d6a5d8466525c52df468366bf48b5
MD5 2d7428efc50a634c23e832189ca56b21
BLAKE2b-256 3153a5b117bd34cf29bcde4cd0c8f3292714eb5451a917d7351e4104f6c9ff7a

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