Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/MolSSI-Education/python-package-best-practices
Hands-on workshop showing good software development practices to create a Python package.
https://github.com/MolSSI-Education/python-package-best-practices
best-practices cookiecutter lessons molssi-best-practices python
Last synced: 15 days ago
JSON representation
Hands-on workshop showing good software development practices to create a Python package.
- Host: GitHub
- URL: https://github.com/MolSSI-Education/python-package-best-practices
- Owner: MolSSI-Education
- License: other
- Created: 2019-10-23T16:23:51.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2024-04-19T14:47:27.000Z (7 months ago)
- Last Synced: 2024-08-01T16:36:32.743Z (3 months ago)
- Topics: best-practices, cookiecutter, lessons, molssi-best-practices, python
- Language: Python
- Homepage: http://education.molssi.org/python-package-best-practices/
- Size: 13.3 MB
- Stars: 37
- Watchers: 5
- Forks: 35
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Citation: CITATION
- Authors: AUTHORS
Awesome Lists containing this project
README
Python Package Best Practices
=============================This repository contains lessons for the MolSSI Workshop "Best Practices in Python Package Development". To complete the lessons, navigate to the [website](http://education.molssi.org/python-package-best-practices/). Make sure to visit [setup] first to obtain lesson materials and install required software.
This workshop is designed to take place in one and a half to two days. Students begin the workshop with python code stored in a Jupyter notebook. During the workshop, we refactor and format the code into a Python package. At the end, all participants should have a repository on GitHub which implements [MolSSI's Best Practices] for a Python package. Depending on the level of students taking this course, all lessons may not be accomplished in two days. Workshops should cover at least lessons 1-6 (outlined below), with more potentially being added for more advanced groups.
## Workshop Topics
This workshop walks students through setting up, writing code, and setting up multiple services (continuous integration, codecov, etc) for a Python package. When finished, this repo will include the following topics. Items which have a checkbox are (mostly) finished, and can be followed online.- [x] Setting up a python package using the MolSSI Computational Molecular Sciences [(CMS) CookieCutter][cookiecutter]
- [x] Basic use of `git` and [GitHub].
- [x] Python coding style, docstrings.
- [x] Code collaboration on [GitHub] (Fork-PR workflow)
- [x] Unit testing using [pytest].
- [x] Continuous integration using [GitHub Actions].
- [x] Documentation using [sphinx] and [readthedocs]
- [x] Distributing packages on [PyPI] and [conda-forge]## Contributing to these lessons
To contribute to this lesson, fork this repository and make changes on your local clone. Once you have changes you would like incorporated, create a pull request, and we will review your contributions.All edits to lessons should be done under `_episodes` in the appropriate markdown file. We use [Sphinx] with a variation of the [PyData Sphinx Theme](https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html) and [MyST parser](https://myst-parser.readthedocs.io/en/latest/) for lessons.
There are custom admonitions for overviews, key points, and exercises. You can see examples of custom admonitions in the lesson files.[cookiecutter]: https://github.com/MolSSI/cookiecutter-cms
[setup]: https://molssi-education.github.io/python-package-best-practices/setup.html
[collections]: https://jekyllrb.com/docs/collections/
[conda-forge]: https://conda-forge.org/
[editing-config]: https://carpentries.github.io/lesson-example/03-organization/
[example-issues]: https://github.com/carpentries/lesson-example/issues/
[github-pages]: https://help.github.com/articles/creating-project-pages-manually/
[GitHub]: https://github.com
[GitHub Actions]: https://github.com/features/actions
[lesson pages]: https://molssi-education.github.io/python-package-best-practices/
[MolSSI's Best Practices]: https://molssi.org/molssis-best-practices/
[pytest]: https://pytest.org
[readthedocs]: https://readthedocs.org
[rendered]: https://carpentries.github.io/lesson-example/
[sphinx]: http://www.sphinx-doc.org/en/master/
[PyPI]: https://pypi.org/