Skip to content

drawing

dgpy-libs⚓︎

Binder Code style: black

Docs: dynamic-graphics-inc.github.io/dgpy-libs

Repo: github.com/dynamic-graphics-inc/dgpy-libs


Dynamic Graphics python libraries, home of:

  • Callable modules and packages
  • Recursive list/gen comprehensions
  • Nutty decorators
  • Secret agent JSON Bourne
  • The best package names around
  • Notebooks with funky python
  • Dynamic imports

Libs⚓︎

libs
├── aiopen
├── asyncify
├── funkify
├── h5
├── jsonbourne
├── lager
├── requires
└── xtyping

Install: pip install aiopen asyncify funkify h5 jsonbourne lager requires xtyping

aiopen ~ pip install aiopen ~ Wheel Version py_versions⚓︎

asyncify ~ pip install asyncify ~ Wheel Version py_versions⚓︎

funkify ~ pip install funkify ~ Wheel Version py_versions⚓︎

h5 ~ pip install h5 ~ Wheel Version py_versions⚓︎

jsonbourne ~ pip install jsonbourne ~ Wheel Version py_versions⚓︎

lager ~ pip install lager ~ Wheel Version py_versions⚓︎

requires ~ pip install requires ~ Wheel Version py_versions⚓︎

xtyping ~ pip install xtyping ~ Wheel Version py_versions⚓︎

About⚓︎

This repo (dgpy-libs) are the polished gems formed under intense pressure below the offices of Dynamic Graphics Inc. These pure-python libraries are all published on pip under the listed names.

Design PhilosoPY⚓︎

  • dgpy-libs must have excellent names and be published on pip
  • Embrace async/await
  • Python 3.6 'n up, baby! (May move to 3.7 for __future___.annotations... tbd)
  • Use type annotations everywhere
  • No dead or commented out code
  • Prefer pure-python & compiled-3rd-party-libs over writing packages with compiled extensions
  • Use optional compiled-3rd-party-libs as optional dependencies to sneakily speed things up if present
  • Offer integrations with the super-hot-fire modern python packages all the kids are using
  • Optional dependencies are good! Missing optional deps should trigger an error msg that is helpful to installing the relevant dependency ONLY IF THE DEPENDENCY IS NEEDED.
  • Test coverage is usually a dumb metric and 100% test coverate != bug-free code (tests of dgpy-libs are slowly being migrated from internal/private repos to this repo)

Third party friends⚓︎

  • pydantic; best python lib you will ever use
  • loguru; base of lager
  • httpx ; don't use requests
  • fastapi; best python web server framework
  • attrs; pydantic alternative
  • typer; awesome cli framework
  • poetry; best dep management python has to offer
  • orjson; fastest python json lib (opt dep of jsonbourne)
  • rapidjson/python-rapidjson; best mostly drop-in replacement for python's json module
  • h5py; base of h5
  • rich; best python console formatting lib
  • nox; like tox but less maddening

Notebooks⚓︎

notebooks/
├── cache_money.ipynb
├── filter_none.ipynb
├── json_parsing.ipynb
└── string_fmt.ipynb

Contributor(s):⚓︎

Contributing:⚓︎

Plz do! Send me that PR!


TODO:⚓︎

  • Have CI/CD auto build n publish
  • Make some sort of change log
  • Publish packages to conda-forge? (maybe)