Metadata-Version: 2.1
Name: dmppl
Version: 0.2.0
Summary: Dave McEwan's Personal Python Library
Home-page: https://github.com/DaveMcEwan/dmppl/
Author: Dave McEwan
Author-email: cogitocumimpune@hotmail.com
License: UNKNOWN
Project-URL: Bug Reports, https://github.com/DaveMcEwan/dmppl/issues
Project-URL: Source, https://github.com/DaveMcEwan/dmppl/
Description: 
        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](https://semver.org/spec/v2.0.0.html)
        
        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?
        
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4
Description-Content-Type: text/markdown
