I would like to organize my Sage project in a way that reflects best practices. For example, for Python projects https://www.patricksoftwareblog.com/structure-of-a-python-project/ recommends
project_name/
project_name/
__init__.py
...source code files...
test/
__init__.py
...unit test files...
docs/
...documentation files...
project_name.py
README.md
LICENSE.md
requirements.txt
.gitignore
How should this model be modified if I would like a package that can be imported to Sage and a sample jupyter notebook showcasing functionality?
The general rules for Python packages apply.
If deposited on PyPI, the package will be installable via pip with
$ pip install PACKAGE_NAME
There is a template for a Sage package at
with a lot of tips in its README.
See also some utilities at