DS package for ds-provider-postgresql-py-lib
# 3. Install dependencies
uv sync --all-extras --dev
# 4. Install pre-commit hooks
uv run pre-commit install
# 5. Verify setup
make testUse the Makefile for all development tasks:
# Show all available commands
make help
# Code Quality
make lint # Check code quality with ruff
make format # Format code with ruff
make type-check # Run mypy type checking
make security-check # Run security checks with bandit
# Testing
make test # Run tests
make test-cov # Run tests with coverage (requires 95%)
# Build and Publish
make build # Build package
make docs # Build documentation
make publish-test # Upload to TestPyPI
make publish # Upload to PyPI# Show current version
make version
# Tag and release
make tag # Create git tag and push (triggers release)
⚠️ Warning: Themake tagcommand will create a git tag and push it to the remote repository, which may trigger automated releases. Ensure you have updatedpyproject.tomlwith the new version and committed all changes before running this command.
This project uses pre-commit hooks to ensure code quality:
install pre-commit# Build documentation
make docs
# View documentation (macOS)
open docs/build/html/index.html
# View documentation (Linux)
xdg-open docs/build/html/index.html# Run basic tests
make test
# Run tests with coverage (requires 95% coverage)
make test-cov
# Run specific test file
uv run pytest tests/test_example.py -v.
├── .config/ # Configuration tooling files
├── .github/
│ ├── workflows/ # CI/CD workflows
│ └── CODEOWNERS # Code ownership file
├── src/
│ └── ds_provider_postgresql_py_lib/ # Rename to your module name
│ └── __init__.py
├── .pre-commit-config.yaml # Pre-commit hooks configuration
├── tests/ # Test files
├── docs/ # Sphinx documentation
├── LICENSE-APACHE # License file
├── pyproject.toml # Project configuration
├── Makefile # Development commands
├── codecov.yaml # Codecov configuration
├── CONTRIBUTING.md # Contribution guidelines
├── PyPI.md # PyPI publishing guide
├── README.md # This file
-
Modern Python Tooling: Uses
uvfor fast dependency management - Type Safety: Strict mypy configuration with full type hints
- Code Quality: Ruff for linting and formatting
- Testing: Pytest with 95% coverage requirement
- Documentation: Sphinx with autoapi for automatic API docs
- CI/CD: GitHub Actions for testing, building, and publishing
- Pre-commit Hooks: Automated code quality checks
- Docker Support: Containerized build environment
- Python 3.11+
- uv package manager
- Make (for development commands)
- CONTRIBUTING.md - Contribution guidelines
- PyPI.md - PyPI publishing guide
- README.md - This file
This package is licensed under the Apache License 2.0. See LICENSE-APACHE for details.