Development
This chapter is for working on pysmo itself: fixing a bug, adding a function or a type, or maintaining a fork.
Code written against the pysmo types is reusable by design, so a function written for one study can often become a pysmo contribution with little change. The Usage chapter covers the style that makes this possible. This chapter covers the repository and the workflow around it.
Project layout
Four things in the repository root matter for development:
src/holds the pysmo source code.tests/holds the test suite, mirroring the layout ofsrc/.docs/holds everything behind docs.pysmo.org.Makefilecollects shortcuts for the common development tasks.
Documentation lives in the source
Each module documents its purpose and scope in its __init__.py docstring, and
the API reference is generated from those docstrings together with the
ones on individual functions and classes. There is no separate API document to
keep in step: editing the code and editing its reference documentation are the
same action. A change in behaviour is not finished until the docstring matches.