1.5 KiB
1.5 KiB
monopython
-
Goal: - A complete python package written in a single setup.py file that converts existing packages into single setup.py file packages
-
Needs:
- Structure:
- Multiple modules/packages
- with imports between modules
- docs:
- narrative for basic use
- autodoc-like API docs for at least one function/class per module.
- tests: at least one function/class per module
- Behavior:
- behave like a normal setup.py file - indistinguishable from normal packages to package managers
- behave like a normal package - indistinguishable from normal packages to normal packages
- it should be possible to import this package and its submodules, functions, and classes as normal
- cli interface to
- package another package (main functionality, eg. with argparse, click)
- build docs
- run tests
- PyPI compatibility is not required
- Monkeypatching or otherwise modifying other packages and python builtins is allowed
- Structure:
-
No cheese:
- No making additional (standard) files
- No writing full modules as strings - things should be live code as much as possible
- Docs cannot be statically rendered and API docs must respond to changes in code
- Tests do not need to be in any particular framework or style, but should actually be possible to fail.
- No external funny business - should work with just the code in the package and any pip (though not necessarily PyPI) installable packages. No environmental variables, other running processes that are not launched by the package etc. can be responsible for the core requirements.