Skip to content






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


├── aiopen
├── asyncify
├── dgpylibs
├── dgpytest
├── fmts
├── funkify
├── h5
├── jsonbourne
├── lager
├── listless
├── requires
├── shellfish
└── xtyping

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

aiopen ~ pip install aiopen ~ Wheel Version py_versions⚓︎

asyncify ~ pip install asyncify ~ Wheel Version py_versions⚓︎

dgpylibs ~ pip install dgpylibs ~ Wheel Version py_versions⚓︎

dgpytest ~ pip install dgpytest ~ Wheel Version py_versions⚓︎

fmts ~ pip install fmts ~ 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⚓︎

listless ~ pip install listless ~ Wheel Version py_versions⚓︎

requires ~ pip install requires ~ Wheel Version py_versions⚓︎

shellfish ~ pip install shellfish ~ Wheel Version py_versions⚓︎

xtyping ~ pip install xtyping ~ Wheel Version py_versions⚓︎


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 coverage != 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
  • attrs; pydantic alternative
  • 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


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


  • Jesse Rubin ~ /
  • Dan Costello ~ /
  • Possibly you!?


Plz do! Send me that PR!


  • Have CI/CD auto build n publish
  • Changelog (for real)
  • Figure out why the combine-prs workflow doesn't trigger github actions...
  • Update mkdocs to include all dgpy-libs