Skip to content
Descoped Source Code Portalv2.2.13
PollingSign in

Python libraries

FastAPI, PostgreSQL and async building blocks, and the Authly identity service

5 repositories

Repositories of Python libraries, sortable by every column
Quietasync-task-workerPython · Async Task Worker with Cache
Release v0.4.4GitHubMIT1 open issues9 open pull requests3 findingsHealth 65Watch
QuietauthlyPython · Authorization & User Token Handling Layer for You
0.5.7PyPIMIT1 open issues19 open pull requests3 findingsHealth 65Watch
Recentfastapi-testingPython · FastAPI Testing
0.3.3PyPIMIT1 open issues5 open pull requests2 findingsHealth 75Watch
Quietpsycopg-toolkitPython · Psycopg Database Library
0.3.1PyPIMIT1 open issues3 open pull requests3 findingsHealth 65Watch
Quietscript-utilsVarious Utility Scripts
none–APL20 open issues0 open pull requests1 findingHealth 90Good

Health

Health 71Watch

5 repositories weighed: 0 at attention, 4 to watch

Pull requests

33 waiting for a review
  1. chore(deps): Lock file maintenance

    Needs review, waits for a reviewasync-task-worker #5renovate[bot] (automation)

  2. chore(deps): Lock file maintenance

    Needs review, waits for a reviewpsycopg-toolkit #12renovate[bot] (automation)

  3. chore(deps): update pytest to 9.0.3 [SECURITY]

    Needs review, waits for a reviewpsycopg-toolkit #16renovate[bot] (automation)

  4. chore(deps): update cryptography to 50.0.0 [SECURITY]

    Needs review, waits for a reviewauthly #37renovate[bot] (automation)

  5. chore(deps): update python-multipart to 0.0.31 [SECURITY]

    Needs review, waits for a reviewauthly #36renovate[bot] (automation)

All 36 open

Issues

4 needing triage
  1. Dependency Dashboard

    Needs triage, waits for a maintainer to look at itpsycopg-toolkit #3renovate[bot] (automation)idle

  2. Dependency Dashboard

    Needs triage, waits for a maintainer to look at itfastapi-testing #1renovate[bot] (automation)idle

  3. Dependency Dashboard

    Needs triage, waits for a maintainer to look at itauthly #1renovate[bot] (automation)idle

  4. Dependency Dashboard

    Needs triage, waits for a maintainer to look at itasync-task-worker #1renovate[bot] (automation)idle

All 4 open

Releases

Up to date
  1. descoped/fastapi-testingv0.3.3Release v0.3.3 by oranheim
    Release notes

    Maintenance & Dependency Release

    The library API is unchanged from v0.3.2 — src/fastapi_testing is byte-identical. This release modernizes dependencies (security fixes + latest compatible versions) and CI tooling.

    Dependencies

    • Security updates: starlette, pygments, and pytest moved to patched releases.
    • Minimums raised to the latest releases that still support Python ≥ 3.11:
      • Runtime: fastapi>=0.137.2, starlette>=1.3.1, uvicorn>=0.49.0, websockets>=16.0
      • Dev/build: pytest>=9.1.0, pytest-asyncio>=1.4.0, pytest-cov>=7.1.0, pydantic>=2.13.4, ruff>=0.15.17, hatchling>=1.30.1

    Note for consumers: installing fastapi-testing 0.3.3 now pulls in the newer FastAPI / Starlette / Uvicorn minimums listed above.

    CI / Tooling

    • GitHub Actions upgraded to current majors: checkout v7, setup-python v6, setup-uv v8.2.0, codecov-action v7, attest-build-provenance v4.
    • Fixed the pinned uv version in CI (0.5.11 → 0.11.13) so it can parse the current revision = 3 lockfile.
    • "Build and Test" now runs on pull requests.

    Compatibility

    • Python 3.11–3.13. No public API changes; no migration required.

    Full Changelog: https://github.com/descoped/fastapi-testing/compare/v0.3.2...v0.3.3

  2. descoped/psycopg-toolkitv0.3.1Release v0.3.1 by oranheim
    Release notes

    🎯 Simplified pgvector Support

    This release simplifies pgvector integration by removing the pgvector-python library dependency and using native JSON parsing instead. This results in zero external dependencies, better Pydantic compatibility, and simpler code.

    ✨ What's Changed

    Removed Dependencies

    • Removed pgvector-python dependency - No longer required for vector support
    • Removed numpy dependency - Vector data returned as native Python list[float]

    Simplified Implementation

    • PostgreSQL returns vectors as strings like '[0.1,0.2,0.3]'
    • Automatically parsed to list[float] using built-in JSON parsing
    • Removed 28 lines of adapter registration complexity
    • No async adapter registration needed

    Performance

    • Negligible overhead: <0.1ms per vector for JSON parsing
    • For 1000 vectors: ~10-100ms difference vs adapter (1-10% overhead)
    • Completely acceptable for typical LLM embedding use cases

    🚀 Key Benefits

    ✅ Zero External Dependencies - No pgvector-python, no numpy required ✅ Simpler Code - Removed async adapter registration logic ✅ Perfect Pydantic Compatibility - Returns list[float], not numpy.ndarray ✅ No Breaking Changes - Same public API, drop-in upgrade ✅ All Tests Passing - 227 tests with zero regressions

    📦 Installation

    pip install psycopg-toolkit==0.3.1
    

    💻 Usage Example

    from pydantic import BaseModel
    from psycopg_toolkit import BaseRepository
    from uuid import UUID
    
    class DocumentEmbedding(BaseModel):
        id: UUID
        document_id: UUID
        embedding: list[float]  # Auto-detected as vector field
        metadata: dict[str, Any] | None = None
    
    class EmbeddingRepository(BaseRepository[DocumentEmbedding, UUID]):
        def __init__(self, db_connection):
            super().__init__(
                db_connection=db_connection,
                table_name="embeddings",
                model_class=DocumentEmbedding,
                primary_key="id",
                auto_detect_vector=True,  # Automatically detects list[float]
            )
    
    # Usage - works seamlessly with PostgreSQL pgvector extension
    embedding_vector = [0.1] * 384  # 384-dimensional vector
    doc = DocumentEmbedding(
        id=uuid4(),
        document_id=uuid4(),
        embedding=embedding_vector,
        metadata={"model": "all-MiniLM-L6-v2"}
    )
    
    created = await repo.create(doc)
    assert isinstance(created.embedding, list)  # Returns list[float]!
    

    🔧 Technical Details

    Before (v0.3.0):

    • Required pgvector-python>=0.4.1 dependency
    • Used register_vector_async() adapter registration
    • Returned vectors as numpy.ndarray
    • Required numpy as transitive dependency

    After (v0.3.1):

    • No external dependencies needed
    • Simple JSON parsing with JSONHandler.deserialize()
    • Returns vectors as native Python list[float]
    • Direct Pydantic compatibility

    📝 Full Changelog

    Commits:

    • 82ad82a - refactor: Remove pgvector-python dependency, use JSON parsing for vectors
    • Updated documentation in .claude/CLAUDE.md
    • Removed adapter registration from BaseRepository
    • Added vector field parsing in _postprocess_data()

    Files Changed: 4 files (+37, -152 lines)

    • pyproject.toml - Removed pgvector dependency
    • src/psycopg_toolkit/repositories/base.py - Simplified vector handling
    • .claude/CLAUDE.md - Updated documentation
    • uv.lock - Dependency updates

    🧪 Testing

    All 227 tests passing:

    • 12 vector field unit tests
    • 4 pgvector integration tests
    • 211 other tests (JSONB, arrays, dates, transactions, etc.)
    • Zero regressions

    ⚠️ Breaking Changes

    None - This is a drop-in replacement for v0.3.0. The public API remains identical.


    Full Changelog: https://github.com/descoped/psycopg-toolkit/compare/v0.3.0...v0.3.1

  3. descoped/authlyv0.5.7Release v0.5.7 by oranheim
    Release notes

    🎯 Highlights

    This release focuses on improving the standalone Docker container experience with enhanced admin account management, better modularization, updated dependencies, and optimized CI/CD workflows.

    ✨ New Features

    Admin Account Management

    • New unlock-admin-account CLI command - Directly unlock the admin account via database connection when locked out
    • Added convenient wrapper scripts for better container CLI experience
    • Improved admin account security with better rate limiting defaults (100 requests/60 seconds)

    Standalone Container Improvements

    • Refactored Dockerfile.standalone for better maintainability with modular setup scripts
    • Added version identifier to /health endpoint response for easier deployment tracking
    • Optimized container build process with better caching and reduced image size
    • Consolidated to single optimized Dockerfile (removed minimal variant)
    • Database connections now use dedicated authly user instead of postgres superuser

    🔧 Infrastructure & DevOps

    CI/CD Improvements

    • Optimized Docker builds with PostgreSQL builder caching strategy
      • Separated postgres-builder stage for better caching
      • Multi-stage caching reduces build times significantly
      • Cached builder images stored in GitHub Container Registry
    • Python 3.13 adoption in CI/CD pipelines
      • Updated conformance tests to use Python 3.13
      • Modernized test runner configurations
    • Enhanced release workflow
      • Split Docker builds into production and standalone variants
      • Improved deployment summaries with clearer instructions
      • Better image tagging and metadata handling

    Build System

    • Modularized container setup into separate scripts:
      • configure-all.sh - Main configuration orchestrator
      • setup-environment.sh - Environment variables setup
      • setup-postgres.sh - PostgreSQL configuration
      • setup-python.sh - Python environment setup
      • setup-s6-services.sh - S6 supervision configuration
      • setup-wrappers.sh - CLI wrapper scripts

    Testing

    • Added PostgreSQL builder cache testing script
    • Enhanced health check endpoint with version information
    • Removed "90% Target" from OIDC conformance tests (now achieving 100% compliance)

    📦 Dependencies

    • Python: Updated to 3.13.6
    • Docker base images: Updated to latest versions
    • UV lock file: Refreshed with latest compatible dependencies

    📚 Documentation

    • Archived completed AI assistant instructions
    • Updated Gemini project memory
    • Enhanced Docker standalone documentation
    • Added comprehensive implementation notes for Docker improvements

    🔄 Changes Summary

    • 11 commits since v0.5.6
    • 34 files changed: 1,408 insertions(+), 635 deletions(-)
    • Major refactoring of standalone Docker implementation
    • Improved developer experience with better CLI tools
    • Optimized CI/CD pipeline with better caching strategies

    New Admin Unlock Feature

    If the admin account gets locked due to failed login attempts:

    # Direct database unlock
    ./scripts/unlock-admin-account.sh
    
    # Or within container
    docker exec authly-standalone authly-unlock-admin
    

    📝 Notes

    • The minimal Dockerfile variant has been removed in favor of a single optimized build
    • Rate limiting defaults have been adjusted to 100 requests per 60 seconds for better security
    • The health endpoint now returns version information for easier deployment verification
    • CI/CD builds now leverage multi-stage caching for faster deployments

    Full Changelog: https://github.com/descoped/authly/compare/v0.5.6...v0.5.7

  4. descoped/async-task-workerv0.4.4Release v0.4.4 by oranheim
    Release notes

    Release Notes v0.4.4

    🚀 New Features

    Cache Metadata Tracking

    • Added from_cache metadata field to all task responses and status objects
    • Tasks now indicate whether their results were served from cache (true) or freshly computed (false)
    • Available in all API endpoints: /api/v1/tasks, /api/v1/tasks/{task_id}, and task listings

    Enhanced Completion Callbacks

    • Updated completion callback signature to include cache metadata: (task_id, result, from_cache)
    • Backward compatibility maintained - existing callbacks without the from_cache parameter continue to work
    • Cache hits and fresh computations are now distinguishable in callback handlers

    🔧 Improvements

    API Enhancements

    • All task response models now include the from_cache boolean field
    • Task serialization (.to_dict()) includes cache metadata
    • Consistent cache metadata across all task management operations

    Testing

    • Added comprehensive test coverage for cache metadata functionality
    • Tests verify cache metadata in both direct task execution and API responses
    • Ensures cache metadata is properly serialized and deserialized

    📦 Dependencies

    • Updated redis: 6.1.0 → 6.2.0

    🔄 Breaking Changes

    None - This release maintains full backward compatibility with existing code.

    💡 Usage Examples

    Checking if a result came from cache:

    task_info = await worker.get_task_info(task_id)
    if task_info.from_cache:
        print("Result was served from cache")
    else:
        print("Result was freshly computed")
    

    Using the enhanced completion callback:

    async def on_task_complete(task_id: str, result: Any, from_cache: bool):
        if from_cache:
            logger.info(f"Cache hit for task {task_id}")
        else:
            logger.info(f"Fresh computation for task {task_id}")
    
    # Old callbacks still work:
    async def legacy_callback(task_id: str, result: Any):
        logger.info(f"Task {task_id} completed")
    

    API Response Example:

    {
      "id": "task-123",
      "status": "completed",
      "result": {"value": "computed_result"},
      "from_cache": true,
      "progress": 1.0,
      "metadata": {}
    }
    

    This release enhances observability and debugging capabilities while maintaining full backward compatibility with existing applications.

Latest commits

Up to date
  1. chore(deps): update astral-sh/setup-uv action to v10.3.3 (#19)5 additions and 5 deletions in 2 files

    descoped/async-task-workerrenovate[bot] c223ed2

  2. chore(deps): update astral-sh/setup-uv action to v10.3.3 (#52)5 additions and 5 deletions in 2 files

    descoped/authlyrenovate[bot] 0af0945

  3. chore(deps): update astral-sh/setup-uv action to v10.3.3 (#20)5 additions and 5 deletions in 2 files

    descoped/fastapi-testingrenovate[bot] 162ece7

  4. chore(deps): update astral-sh/setup-uv action to v10.3.2 (#28)6 additions and 6 deletions in 3 files

    descoped/psycopg-toolkitrenovate[bot] 82c786c

  5. chore(deps): update astral-sh/setup-uv action to v10.3.2 (#18)5 additions and 5 deletions in 2 files

    descoped/async-task-workerrenovate[bot] 37cf758

  6. chore(deps): update astral-sh/setup-uv action to v10.3.2 (#51)5 additions and 5 deletions in 2 files

    descoped/authlyrenovate[bot] 614178b

  7. chore(deps): update astral-sh/setup-uv action to v10.3.2 (#19)5 additions and 5 deletions in 2 files

    descoped/fastapi-testingrenovate[bot] a9ba3c7

  8. chore(deps): update astral-sh/setup-uv action to v10.3.0 (#18)5 additions and 5 deletions in 2 files

    descoped/fastapi-testingrenovate[bot] c5f5313

  9. chore(deps): update github-actions (#50)6 additions and 6 deletions in 3 files

    descoped/authlyrenovate[bot] d94bfd1

  10. chore(deps): update github-actions (#27)7 additions and 7 deletions in 3 files

    descoped/psycopg-toolkitrenovate[bot] 01b8c39

Commit log of the group

Insights of this product