/dgpy-libs

Dynamic Graphics Python libraries/modules

Primary LanguagePython

drawing

dgpy-libs

Binder Code style: black

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

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

Notebooks

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

Design PhilosoPY & Principles

  • dgpy-libs must have awesome lib/pkg names and be mostly polished
  • Embrace async/await
  • Python 3.6 'n up, baby! Get w/ the program (the python program)
  • Write non-standard but elegant python, bc PEP 20 is lame and not fun (PEP 20: "There should be one-- and preferably only one --obvious way to do it...")
  • TYPE ANNOTATE ERR-THANG
  • 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/extensions 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.
  • 100% test coverage != good/bug-free code

Third party packages/libs that integrate/inspire dgpy-libs

  • pydantic
  • loguru
  • httpx (forget about requests)
  • fastapi
  • attrs
  • typer
  • poetry
  • orjson
  • rapidjson/python-rapidjson
  • h5py
  • Most of the libs by aio-libs
  • rich
  • nox

Contributor(s):

Contributing:

Plz do! Send me that PR!


TODO:

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