Feat: Modernize project with CI, Pre-commit, Testing, and Colab Example #8
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Introduces several modern development practices to improve code quality, enforce style consistency, and streamline testing and deployment. Feel free to cherry pick out what you want in the main repo.
The changes primarily focus on adopting industry best practices for a Python package, enhancing the developer experience (DX), and providing a quick-start example and API docs reference for users beyond the README.
✨ Key Enhancements
🚀 Continuous Integration (CI/CD)
ci.yml: Runs quality checks and tests on pushes and pull requests to ensure code health across different Python versions.publish-to-pypi.yml: Sets up an automated workflow for publishing the package to PyPI upon a release tag, streamlining the deployment process.pyproject.tomlfor project configuration and dependency management, replacing oldersetup.pyformats.💻 Developer Experience (DX) & Code Quality
.pre-commit-config.yamlto automatically run quality checks before commits are made. This ensures consistent code style across all contributors.tests/test_viewer.py) and configured the CI to run tests usingpytest..gitignore,.vscode/settings.json, anduv.lockfor better environment and editor consistency.📚 Documentation & Examples
example/example.ipynbnotebook to showcase the main functionalities ofpy2dmol, making it easier for new users to get started. This can be accessed with a badge on the README.README.md: Incorporated new badges (CI status, PyPI version, code coverage, Colab link) and updated the structure to reflect the new documentation and examples.docs/folder with Sphinx/RST files (index.rst,api.rst,installation.rst, etc.) for potential future detailed documentation generation. This will need to be setup with actual github pages to host the docs.These changes should make the repository easier to maintain, contribute to, and use.
Some points to clarify: