{"id":13474557,"url":"https://github.com/MolSSI-Education/python-package-best-practices","last_synced_at":"2025-03-26T21:31:50.198Z","repository":{"id":43937297,"uuid":"217102691","full_name":"MolSSI-Education/python-package-best-practices","owner":"MolSSI-Education","description":"Hands-on workshop showing good software development practices to create a Python package.","archived":false,"fork":false,"pushed_at":"2024-04-19T14:47:27.000Z","size":13950,"stargazers_count":37,"open_issues_count":0,"forks_count":35,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-10-30T07:48:20.540Z","etag":null,"topics":["best-practices","cookiecutter","lessons","molssi-best-practices","python"],"latest_commit_sha":null,"homepage":"http://education.molssi.org/python-package-best-practices/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MolSSI-Education.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-23T16:23:51.000Z","updated_at":"2024-07-18T19:08:34.000Z","dependencies_parsed_at":"2023-02-11T07:30:44.649Z","dependency_job_id":"604faefc-a900-42e8-8da7-d670b80d37d6","html_url":"https://github.com/MolSSI-Education/python-package-best-practices","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MolSSI-Education%2Fpython-package-best-practices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MolSSI-Education%2Fpython-package-best-practices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MolSSI-Education%2Fpython-package-best-practices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MolSSI-Education%2Fpython-package-best-practices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MolSSI-Education","download_url":"https://codeload.github.com/MolSSI-Education/python-package-best-practices/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245738752,"owners_count":20664336,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["best-practices","cookiecutter","lessons","molssi-best-practices","python"],"created_at":"2024-07-31T16:01:13.164Z","updated_at":"2025-03-26T21:31:48.499Z","avatar_url":"https://github.com/MolSSI-Education.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"Python Package Best Practices\n=============================\n\nThis 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. \n\nThis 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.\n\n## Workshop Topics\nThis 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.\n\n- [x] Setting up a python package using the MolSSI Computational Molecular Sciences [(CMS) CookieCutter][cookiecutter]\n- [x] Basic use of `git` and [GitHub].\n- [x] Python coding style, docstrings.\n- [x] Code collaboration on [GitHub] (Fork-PR workflow)\n- [x] Unit testing using [pytest].\n- [x] Continuous integration using [GitHub Actions].\n- [x] Documentation using [sphinx] and [readthedocs]\n- [x] Distributing packages on [PyPI] and [conda-forge]\n\n## Contributing to these lessons\nTo 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.\n\nAll 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. \nThere are custom admonitions for overviews, key points, and exercises. You can see examples of custom admonitions in the lesson files.  \n\n\n[cookiecutter]: https://github.com/MolSSI/cookiecutter-cms\n[setup]: https://molssi-education.github.io/python-package-best-practices/setup.html\n[collections]: https://jekyllrb.com/docs/collections/\n[conda-forge]: https://conda-forge.org/\n[editing-config]: https://carpentries.github.io/lesson-example/03-organization/\n[example-issues]: https://github.com/carpentries/lesson-example/issues/\n[github-pages]: https://help.github.com/articles/creating-project-pages-manually/\n[GitHub]: https://github.com\n[GitHub Actions]: https://github.com/features/actions\n[lesson pages]: https://molssi-education.github.io/python-package-best-practices/\n[MolSSI's Best Practices]: https://molssi.org/molssis-best-practices/\n[pytest]: https://pytest.org\n[readthedocs]: https://readthedocs.org\n[rendered]: https://carpentries.github.io/lesson-example/\n[sphinx]: http://www.sphinx-doc.org/en/master/\n[PyPI]: https://pypi.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMolSSI-Education%2Fpython-package-best-practices","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMolSSI-Education%2Fpython-package-best-practices","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMolSSI-Education%2Fpython-package-best-practices/lists"}