Thank you for your interest in contributing to PySNT! This document provides guidelines and information for contributors.
Please see the Getting Started for Developers section in the README for detailed setup instructions.
- Formatting: We use Black with 88-character line length
- Import sorting: isort with Black-compatible profile
- Linting: flake8 with project-specific configuration
- Type hints: Use type hints where appropriate, checked with mypy
- Docstrings: Write clear, concise docstrings
- Comments: Add comments for complex logic
- Docs: Update documentation when adding new features
See DEV (README).
# Run all tests
pytest
# Run specific test file
pytest tests/test_specific.py
# Run with verbose output
pytest -v- Place tests in the
tests/directory - Use descriptive test names:
test_should_do_something_when_condition() - Mock external dependencies when appropriate
- Fork and Clone: Fork the repository and clone your fork
- Branch: Create a feature branch (
git checkout -b feature/new-feature) - Develop: Make your changes following the code style guidelines
- Test: Ensure all tests pass and add new tests for your changes
- Document: Update documentation and docstrings as needed
- Commit: Use clear, descriptive commit messages
- Push: Push to your fork (
git push origin feature/new-feature) - PR: Open a pull request with a clear description of your changes
- Title: Use a clear, descriptive title
- Description: Explain what your PR does and why
- Tests: If possible include tests for new functionality
- Documentation: Update docs if you're changing user-facing behavior
When reporting bugs, please include:
- Environment: Python version, OS, PySNT version
- Steps to reproduce: Clear, minimal steps to reproduce the issue
- Expected behavior: What you expected to happen
- Actual behavior: What actually happened
- Error messages: Full error messages and stack traces
For feature requests, please include:
- Use case: Why is this feature needed?
- Proposed solution: How should it work?
- Alternatives: What alternatives have you considered?
- Documentation: pysnt.readthedocs.io
- Forum: forum.image.sc/tag/snt - Tag posts with
snt - Issues: GitHub Issues
Thank you for contributing to PySNT! 🎉