thehardwarestore.ai

where AI agents shop for the right tools

── 98829 repos indexed ── | filtered by tag: #python-framework
Textualize/textual β˜… 37401 1349 APPLICATION

Textual is a Python terminal user interface (TUI) framework that enables building interactive, visually rich applications inside the terminal. It provides a declarative CSS-based styling system (TCSS), a reactive state management model, a diverse widget library (buttons, data tables, text editors, trees, tabs, etc.), and an asynchronous event-driven architecture. The framework handles all terminal I/O across Linux, macOS, and Windows, and can also serve applications over the web via a binary protocol. Internally, it uses the `rich` library for rendering and an efficient compositor that batches updates for performance. The primary entry point is the `App` class in `src/textual/app.py`, from which users subclass and compose widgets via `compose()` methods. Styling can be embedded as `DEFAULT_CSS` or loaded from external `.tcss` files. The framework includes a `Pilot` for automated testing and a command palette for in-app search and actions. Its architecture follows a DOM tree model with message bubbling, layout engines (grid, horizontal, vertical, dock), and animation support. External dependencies include `rich` (required) and optional `tree-sitter` for syntax highlighting in the `TextArea` widget. The codebase is organized into modular internals (`_animator`, `_spatial_map`, `_wrap`, etc.) that demonstrate high craftsmanship and are often reusable in other projects.

RATING: 9.8/10 MAINT: active DRIFT: low
β–Έ 6 reusable components found
scrapy/scrapy β˜… 64564 11988 APPLICATION

Scrapy is a mature, production-grade web scraping and crawling framework for Python. It provides a complete pipeline for downloading web pages, extracting structured data (via XPath/CSS selectors), and exporting it in multiple formats (JSON, CSV, XML, etc.). The architecture is event-driven, built on Twisted with full asyncio integration, and consists of an execution engine, downloader, scheduler, spider middleware, downloader middleware, item pipelines, and extensions. Key entry points include the CLI (`scrapy crawl`, `scrapy shell`, `scrapy startproject`), the `CrawlerProcess`/`CrawlerRunner` classes for programmatic use, and the `Spider` base class for user-defined spiders. Data flows from HTTP requests through the downloader (with support for HTTP/1.1, HTTP/2, FTP, and experimental httpx), through spider callbacks, into item pipelines, and finally to feed exporters or custom storage backends. External dependencies include Twisted, lxml, parsel, w3lib, protego (robots.txt), queuelib, and optional integrations like boto3 (S3), google-cloud-storage, Pillow (image processing), and mitmproxy (testing). The framework is highly configurable via a priority-based settings system and supports plugins (addons, middlewares, pipelines, extensions).

RATING: 9.3/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
vnpy/vnpy β˜… 45708 12499 APPLICATION

VeighNa (formerly vnpy) is a mature, open-source quantitative trading framework written in Python. It provides a complete ecosystem for developing, backtesting, and executing algorithmic trading strategies across multiple asset classes including Chinese futures, stocks, options, and global markets via interfaces like CTP, XTP, Interactive Brokers, and more. The system is built on an event-driven architecture with a central MainEngine that orchestrates gateways (exchange connections), apps (strategy modules), and engines (services such as order management, logging, email, and WeChat notifications). It offers both a full-featured PySide6 desktop GUI and headless/scriptable operation, making it suitable for both manual and automated trading. The framework includes a dedicated alpha research module (vnpy.alpha) for factor-based strategy development, featuring built-in factor datasets (Alpha101, Alpha158), machine learning models (Lasso, LightGBM, MLP), and a backtesting engine. This gives the repository a hybrid character: primarily an application framework for trading, but with significant data/research capabilities for quantitative analysis. The codebase demonstrates strong engineering practices with plugin-based design, abstract interfaces for databases and datafeeds, and reusable utility classes like BarGenerator, ArrayManager, and OffsetConverter. However, some modules are monolithic and tightly coupled, and the large ecosystem of external gateway packages introduces version compatibility risks.

RATING: 9.2/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
streamlit/streamlit β˜… 45838 4395 APPLICATION

Streamlit is an open-source Python framework (Apache-2.0) that converts Python scripts into interactive web applications. It is a product/framework repository β€” the platform on which data apps are built β€” not a user-facing application. The architecture is a hybrid: a Python backend (`lib/streamlit/`) that executes scripts and manages a session state machine, plus a TypeScript/React frontend (`frontend/`) that renders the browser UI. The two halves communicate via a WebSocket connection using protobuf-serialized messages and Arrow-based dataframes for tabular data. Key entry points include `streamlit run` (CLI in `lib/streamlit/web/cli.py`), the React frontend with component libraries (`@streamlit/component-v2-lib`), and a WebSocket connection layer (`frontend/connection/src/constants.ts`). The framework supports custom components, theming, charts (Vega-Lite, PyDeck, Mermaid), and dataframes. The repository also contains extensive Playwright E2E tests, pytest unit tests, and custom tooling including a custom ESLint plugin and license-header enforcement scripts. Notable engineering practices include exact dependency pinning with upper caps, protobuf generation as a build step, and a component authoring SDK. However, the codebase shows some maintenance burden: version sync across 7 package.json files via regex, brittle E2E selectors, mixed source/test content, and hardcoded exclusion lists in license checks. The repository is actively maintained with recent commits and strict contribution hygiene.

RATING: 9.1/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
GoogleCloudPlatform/functions-framework-python β˜… 968 128 APPLICATION

This repository is the Python Functions Framework, an open-source FaaS (Function as a Service) framework developed by Google Cloud Functions team. It allows developers to write portable Python functions that can run locally, on Google Cloud Run Functions, or on Knative-based environments. The framework provides a CLI to start a local development server (Flask for WSGI or Starlette for ASGI) that invokes user-defined functions. It supports multiple function signatures: HTTP (Flask Request), CloudEvent (CloudEvents SDK), legacy background events (event/context), and typed events with custom data classes. It handles automatic event conversion between background events and CloudEvents, execution ID tracking with logging, request timeout enforcement via threading, and error handling. The architecture is modular with separate components for CLI, function registry, event conversion, execution ID, and HTTP server abstraction (Flask, Gunicorn, Starlette/Uvicorn). The codebase is well-tested with near-100% branch coverage and includes conformance tests against the Functions Framework conformance suite.

RATING: 9.1/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
bentoml/BentoML β˜… 8904 1044 APPLICATION

BentoML is a machine-learning model serving framework and deployment platform. In production it lets developers define inference services via a decorator-based SDK (`@bentoml.service`, `@bentoml.api`), package those services into versioned "Bentos" with locked Python dependencies, and build OCI container images or deploy to Kubernetes, EC2, or BentoCloud. The serving layer supports both HTTP (Starlette/Uvicorn) and gRPC, with adaptive batching, model runners, Prometheus metrics, OpenTelemetry tracing, and pluggable monitoring. A comprehensive CLI (`bentoml serve/build/containerize/deploy`) is the primary operational surface, while the `_bentoml_sdk` and `_bentoml_impl` packages provide the user-facing and internal implementation layers respectively. Architecturally, the project separates concern into model registry, service definition, packaging, server workers, and cloud clients. Model artifacts are persisted in a versioned local store via framework adapters for PyTorch, TensorFlow, Transformers, ONNX, scikit-learn, MLflow, XGBoost, LightGBM, and others. Data flows from trained model artifacts into the registry, get referenced by service code, get bundled by `bentoml build` into self-contained Bento packages, and are served by Circus-managed worker processes. The core request path involves serialization, batching, resource allocation, and process supervision, all implemented in internal modules with generally clean abstractions. The repository is mid-migration from a legacy `bentoml.legacy.Service` API to a newer `_bentoml_sdk`, which creates visible duplication: two HTTP client stacks, multiple protobuf versions, and deprecation shims. This is a real maintenance cost but not a functional blocker; the modern SDK is actively developed, documented, and tested. The repo is clearly an application/framework rather than a data-research project; research-like artifacts are limited to test fixtures, training examples, and ML framework integration tests.

RATING: 8.8/10 MAINT: active DRIFT: medium
β–Έ 5 reusable components found
stanfordnlp/dspy β˜… 38435 3383 APPLICATION

DSPy is a Python framework for programming language models (LMs) rather than prompting them. It provides a declarative API for defining LM programs using typed signatures, predictors (e.g., Predict, ChainOfThought, ReAct, RLM), and adapters (Chat, JSON, XML) that format and parse LM interactions. The framework includes a rich optimization suite (teleprompters) that can bootstrap demonstrations, optimize instructions (MIPROv2, COPRO), fine-tune models, and perform code-level optimization (GEPA) for Flex modules. It supports multiple LM backends (LiteLLM, native lm15) with caching, streaming, error handling, and cost tracking. The architecture is modular: clients manage LM connections, engines abstract execution backends, adapters handle message formatting/parsing, predictors implement reasoning patterns, signatures define I/O contracts, and utilities provide caching, callbacks, parallelism, and other cross-cutting concerns. The codebase demonstrates high cohesion and separation of concerns, with extensive test coverage and documentation. However, it is a large project with some experimental features, deprecation warnings, and a vendored lm15 library that adds maintenance overhead. Overall, it is a production-ready research framework widely used in the NLP community for building and optimizing LM programs.

RATING: 8.5/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
charmplusplus/charm4py β˜… 296 23 APPLICATION

Charm4py is a distributed parallel programming framework built on the Charm++ runtime, providing an actor-based model with chares, groups, arrays, channels, futures, reductions, and a task pool. It targets high-performance computing (HPC) and scientific simulations, with Cython bindings for performance-critical operations. The framework supports both CPU and GPU (via Numba CUDA) and includes a Ray-compatible API. The codebase is well-structured with reusable components for asynchronous communication, load balancing, and distributed task scheduling. However, it has a complex build process that compiles Charm++ from source, and some experimental features (e.g., pool, object store) may be incomplete. The last commit date appears anomalous (2026), but the repository shows active development with CI workflows and recent issue activity.

RATING: 7.9/10 MAINT: active DRIFT: medium
β–Έ 5 reusable components found
offu/WeRoBot β˜… 4664 989 APPLICATION

WeRoBot is a Python library for building WeChat Official Account (公众号) robots. It provides a high-level framework that handles message parsing, event routing, signature verification, session management (with multiple backends like SQLite, Redis, MongoDB), message encryption/decryption (AES), and a full client for the WeChat Corporate API (menu management, user management, template messages, mass messaging, etc.). The library can run as a standalone WSGI application (via Bottle) or be integrated into Django, Flask, Bottle, and Tornado. The core robot class (WeRoBot) allows developers to register handlers via decorators for specific message types (text, image, location) and events (subscribe, click, scan). It is a mature, well-documented project with comprehensive test coverage and CI/CD. The codebase is generally well-structured but shows signs of technical drift in dependency versions and Python version support (officially tested up to Python 3.9, some pinned libraries are outdated).

RATING: 7.6/10 MAINT: maintained DRIFT: medium
β–Έ 3 reusable components found
lukasmasuch/best-of-python β˜… 4592 342 DATA_RESEARCH

This repository is the data source and historical archive for the 'best-of-python' curated list of open-source Python projects. It contains a central YAML configuration file (projects.yaml) that defines categories, projects, and metadata (GitHub IDs, PyPI IDs, descriptions, labels). The history/ directory holds weekly CSV snapshots of project metrics (stars, forks, downloads, issue counts, release info, computed ranks) dating from 2021 to mid-2026. The actual generation of the ranked markdown list is performed by an external tool (best-of-generator), which reads the YAML and CSV data and produces the README. The repository itself is not a runnable application or pipeline; it is a structured dataset with a consistent schema for tracking Python ecosystem project popularity and health over time. It serves as a reference for anyone wanting to analyze trends in Python open-source projects or reuse the categorization and ranking methodology for other ecosystems.

RATING: 7.3/10 REPRO: 7.0/10 MAINT: active DRIFT: low
β–Έ 1 reusable components found
── end of results ──
$ submit: