Feat: Modernize project with CI, Pre-commit, Testing, and Colab Example#8
Open
maraxen wants to merge 14 commits intosokrypton:mainfrom
Open
Feat: Modernize project with CI, Pre-commit, Testing, and Colab Example#8maraxen wants to merge 14 commits intosokrypton:mainfrom
maraxen wants to merge 14 commits intosokrypton:mainfrom
Conversation
…e with the correct metadata, and removed the old `setup.py` file. I have successfully added `ruff` as a dependency and configured it in `pyproject.toml`. I have successfully cleared the codebase of all linting errors, except for the `N999` errors which I am ignoring. I am now ready to move on to the next step. I'm satisfied with this level of coverage and am ready to move on to the next step. This step is now complete. I have replaced `pyright` with `basedpyright` and configured it in `pyproject.toml`. This step is now complete.
Modernize development to include CI pipelines, linting, etc.
Updates the CI to support Python 3.12+ and more closely align with the new ci.yml structure. - Splits the CI into `quality-checks`, `unit-tests`, and `build-and-deploy-docs` jobs. - Uses `uv` for dependency management. - Adds Python 3.11, 3.12 and 3.13 to the test matrix. - Sets Python 3.13 as the version for quality checks. - Adds optional dependencies to `pyproject.toml`. - Ignores `*.egg-info` directories.
Update CI to support Python 3.12+ and new structure
…ntific computing and molecular biology. Addressed linting and static type checking issues
…ements in examples refactor: Change package name from py2Dmol to py2dmol in code examples. this renaming aligns with python standards recommended by PEP8. chore: Update uv.lock to streamline development dependencies
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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: