Thanks to visit codestin.com
Credit goes to GitHub.com

Skip to content

NLeSC/python-template

Repository files navigation

Netherlands eScience Center Python Template

Spend less time setting up and configuring your new Python packages and comply with the Netherlands eScience Center Software Development Guide from the start.

Use this Cookiecutter template to generate an empty Python package. Features include:

Badges

fair-software.nl recommendations
(1/5) code repository github repo badge
(2/5) license github license badge
(3/5) community registry RSD
(4/5) citation DOI
(5/5) checklist  
overall fair-software badge
Other best practices  
   
GitHub Actions  
Citation metadata consistency cffconvert
MarkDown link checker markdown-link-check
Tests tests

How to use

Step 1/3: Install cookiecutter

We recommend installing cookiecutter in user space as per cookiecutter's instructions. This way, you don't have to install cookiecutter for every new project.

python3 -m pip install --user --upgrade cookiecutter

Step 2/3: Generate the files and directory structure

Run cookiecutter with the template:

# Notes:
#   1. See table below for explanation of each question
#   2. The files will be generated in a new directory
cookiecutter https://github.com/nlesc/python-template.git
Name Default value Explanation
package_name my_python_package Name of the package. Avoid using spaces, dashes, or uppercase letters for the best experience across operating systems.
project_name my-python-project Name of the project that contains the package. Avoid using spaces or uppercase letters for the best experience across operating systems.
package_short_description   The information that you enter here will end up in the README, documentation, license, and setup.cfg, so it may be a good idea to prepare something in advance.
version 0.1.0  
github_organization <my-github-organization> GitHub organization that will contain this project's repository. This can also be your GitHub user name.
license Apache Software License 2.0 The software license under which the code is made available.
apidoc no Add support for automatically generating a module index from the docstrings in your Python package (look at the scriptcwl package for an example).
full_name John Smith Your full name, e.g. John Smith.
email [email protected] Your (work) email address.
copyright_holder Netherlands eScience Center Name(s) of the organization(s) or person(s) who hold the copyright of the software.
code_of_conduct_email [email protected] Email address of the person who should be contacted in case of violations of the Code of Conduct.

Step 3/3: Read about what was just generated

Good job! You have now generated the skeleton for your package:

my-python-project/
├── CHANGELOG.md
├── CITATION.cff
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── docs
│   ├── conf.py
│   ├── index.rst
│   ├── make.bat
│   ├── Makefile
│   ├── _static
│   │   └── theme_overrides.css
│   └── _templates
├── LICENSE
├── MANIFEST.in
├── my_python_package
│   ├── __init__.py
│   ├── my_module.py
│   └── __version__.py
├── NOTICE
├── project_setup.md
├── README.md
├── setup.cfg
├── setup.py
└── tests
    ├── __init__.py
    └── test_my_module.py

For an explanation of what's there, read on in the project_setup.md file.

Examples

Many developers have gone before you in using this template to get started quickly. Check out their projects in the list below:

  1. Cerise: https://github.com/MD-Studio/cerise
  2. cerulean: https://github.com/MD-Studio/cerulean
  3. cffconvert: https://github.com/citation-file-format/cff-converter-python
  4. fairtally: https://github.com/fair-software/fairtally
  5. howfairis: https://github.com/fair-software/howfairis
  6. matchms: https://github.com/matchms/matchms
  7. MUSCLE 3: https://github.com/multiscale/muscle3
  8. pycff: https://github.com/citation-file-format/pycff
  9. spec2vec: https://github.com/iomega/spec2vec
  10. yatiml: https://github.com/yatiml/yatiml
  11. ... And many more. Make a PR to add your project here!

How to contribute

Suggestions/improvements/edits are most welcome. Please read the contribution guidelines before creating an issue or a pull request.