Skip to main content

dmppl - Dave McEwan's Personal Python Library

Library is split into several modules:

  • base - Useful in almost every project.
  • color - Color (colour in English) related stuff.
  • fx - Fixed point arithmetic using NumPy data types.
  • math - Useful for mathematical code.
  • nd - ND-array operations.
  • prng - Pseudo-Random Number Generators. Currently just xoroshiro128+.
  • stats - Statistics. Currently just for binary classifiers.
  • test - Helpers for unit testing.
  • toml - Save/load TOML files with optional compression.
  • vcd - Value Change Dump (from Verilog) reader and writer.
  • yaml - Extended YAML parser, useful for implementing DSLs on top of YAML.

Some useful scripts are provided in dmppl/scripts which show how to use some parts of the library modules.

  • beamer-times - Report the time breakdown for beamer presentations by reading annotations in the LaTeX.
  • parvec - Generate pseudorandom parameter vectors for design space exploration with repeatable results.
  • vcd-utils - Convert VCD (Verilog IEEE1364) files to/from YAML and CSV, extract information, or cleanup dodgy VCDs using the forgiving reader with strict writer.
  • svg2png - Simple wrapper around inkscape to export SVGs to PNGs.

Some experiments are given in dmppl/experiments which are likely not useful to most people.

  • relest - (Relationship Estimation) Model SoC signal relations. Part of my PhD project presented at LOD2019.
  • eva - (EVent Analysis) Measure and visualize correlations between measurements. Part of my PhD project.

Uses semantic versioning

Supports multiple versions of Python (2.7, 3.6, 3.7, 3.8).

  • At some point I'll drop support for 2.7 and <3.7, probably when distros stop including them which isn't likely soon.
  • Dropping support for <3.6 allows use of type annotations.
  • Dropping support for <3.8 allows use of newer language features such as the walrus operator, and getting rid of version-specific hacks like `openCsvKwargs'. Don't necessarily need to wait for distros to support 3.8+, only wait for 3.6+ since altinstall+venv seems to be the recommended way forward. low priority
  • Keeping support for old versions allows compatibility with other programs which have built-in Python shells, TODO: Collate version dependencies for various programs and decide what I want to support: Inkscape, Blender, nextpnr, yosys, ...
  • pip packages are not specified with versions as it is assumed (naively) that the latest releases won't break anything.

See the Makefile to wrap up common actions and provide examples of how to run things.

  • make venv to create a virtual environment for each supported version.
  • make unittest to perform all unit tests.
  • make unittest-coverage to perform all unit tests collecting code coverage and produce HTML reports.
  • make dist to build a setuptools distribution.
  • make clean to remove all generated files.

TODO:

  1. Upload to PyPI.
  2. mypy
  3. Integrate relest-ffnn
  4. Implement vch, vchlite
  5. Expand documentation here
  6. Sphinx/readthedocs
  7. Change convention to snake case for idiomatic Python and rust?

Metadata

Release files for dmppl 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dmppl 0.2.0
File Size Uploaded
dmppl-0.2.0.tar.gz 88.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dmppl 0.2.0
File Interpreter ABI Platform
dmppl-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 185.3 kB

Release files / dmppl-0.2.0.tar.gz

Download URL dmppl-0.2.0.tar.gz
Size 88.2 kB
Tags Source
SHA-256 checksum
How to use checksums
1584e7fc9e4343f3429c880808494932c5ddb830eaeab8f2fc6a1042a9e375bf
BLAKE2b-256 checksum
How to use checksums
df14a7ad17885cadaad5493b02d7f37195e7135704f827bbbf0efe24d20fb61d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.3

Release files / dmppl-0.2.0-py3-none-any.whl

Download URL dmppl-0.2.0-py3-none-any.whl
Size 97.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d69161cb8107d140f8a3e4c66219ddba6f56cba86cd94b40c81dd6a43f7125dd
BLAKE2b-256 checksum
How to use checksums
4203137e1051b6f085114a06e515c051aa90ada2cfe89713208ffc0d557c29b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.3

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page