-
-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationhelp wantedExtra attention is neededExtra attention is neededinfrastructureIssues that relate to the infrastructure of the repository or the template provided through itIssues that relate to the infrastructure of the repository or the template provided through it
Description
Starting this as a placeholder issue for tracking down tasks to be completed and those that are complete. I will be dividing these into separate issues and PRs
Cookiecutters
as suggested by @Saransh-cpp
Examples
- https://github.com/osl-incubator/scicookie
- https://github.com/scientific-python/cookie
- https://github.com/copier-org/copier
- https://github.com/cruft/cruft/
- Cookiecutter Data Science (drivendata.github.io)
Suggestions from @brosaplanella:
- "A bit different, but Julia has DrWatson.jl which has many cool features, maybe we can get some ideas".
- A figures folder (with a
.gitkeep
) - A data folder (later we could have some pipelines to process it, like the Data Science example above).
Possible layout
The folder structure can look like this
├── .github/workflows
├── src
├── data
└── docs
├── examples # notebooks that can be rendered with nbsphinx
├── _static
├── sphinxext
├── source
└── conf.py
├── tests # (optional)
├── parameters
└── my_parameters.py # contains the get_parameter_values() function
├── examples/ # alternatively, example scripts or notebooks that are not to be rendered with the Sphinx builder
├── pyproject.toml
├── README.md
├── .pre-commit-config.yaml
├── .readthedocs.yaml
├── .env # contains DATA_PATH
├── noxfile.py # (or tox.ini, if users want to use tox)
The required documentation should
- Explain how to clone this template to start a new project
- Explain how to rename the project in
pyproject.toml
anddocs/conf.py
- Explain how to structure a typical project with source files and utility classes and methods (in
src/
), unit tests with - Parameter entry points in
pyproject.toml
, with
[project.entry-points.pybamm_parameter_sets]
MyParameters = "package_name.parameters.my_parameters:get_parameter_values"
- Point to the PyBaMM documentation wherein the developments and advancements in this repository shall be reflected on a separate page or section in the user guide
which can then be accessed as pybamm.ParameterValues(“MyParameters”)
in the source code.
Tracked in #6.
Configuration options
Build-backends
hatch
flit
- poetry
setuptools
(later)
Documentation
- Theme
- Sphinx extensions
Project structure
- Project metadata in
pyproject.toml
- and so on
Available licenses (#2)
- MIT
- Apache-2.0
- BSD-3-Clause
- and so on (should be permissive licenses suitable for collaborative research practices and open science)
Addendum 27/02/2024: another thing we would want would be entry points for models in the PyBaMM model structure rather than just parameter sets, please see pybamm-team/PyBaMM#3839 (comment)
valentinsulzer and Saransh-cpp
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationhelp wantedExtra attention is neededExtra attention is neededinfrastructureIssues that relate to the infrastructure of the repository or the template provided through itIssues that relate to the infrastructure of the repository or the template provided through it