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.6.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.6-py3-none-any.whl (26.9 kB view details)

Uploaded Python 3

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

Hashes for dpn_pyutils-3.12.6.tar.gz
Algorithm Hash digest
SHA256 43dfca1f28f9dcb14349ae4e5f514573dc15b018c8cd67ecd57af2d71952b77c
MD5 2970639fbfee7062c38b70e7a87ad5aa
BLAKE2b-256 4d8163338ec2f76b008e2f4356c5011f26899b119f0040dc7f8603c70c172791

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dpn_pyutils-3.12.6-py3-none-any.whl
Algorithm Hash digest
SHA256 f4d1e6c0f3a354590b62ac83ac1440893d5207610db8689267e6ebf529832875
MD5 55264fbe75c33bb75970706f471e4d65
BLAKE2b-256 e70db3ba50d667222a39860cf03f7e89cd8ba7604085247d2388c7830996025d

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