mirror of
https://github.com/Egonex-AI/Understand-Anything.git
synced 2026-06-22 10:58:03 +08:00
Replace the TypeScript/JavaScript-biased analysis pipeline with a truly language-agnostic system. The core architecture was already language-neutral (graph schema, dashboard, search) — the bias lived in agent prompts, tree-sitter plugin, and language-lesson system. Core changes: - LanguageConfig + FrameworkConfig types with Zod validation - LanguageRegistry (12 languages) and FrameworkRegistry (10 frameworks) - Config-driven TreeSitterPlugin replacing hardcoded TS/JS grammars - PluginRegistry now delegates to LanguageRegistry for extension mapping - Language-lesson system uses config for display names and concepts Prompt system: - SKILL.md generalized: dynamic injection of language snippets and framework addendums instead of hardcoded if/else conditionals - 12 language prompt snippets (languages/*.md) with concepts, patterns, frameworks per language - 10 framework addendums (frameworks/*.md) with canonical file roles, edge patterns, architectural layers — Django/FastAPI/Flask preserved and split, plus React/Next.js/Express/Vue/Spring/Rails/Gin added - Extended entry points, directory patterns, and test patterns across all 12 language ecosystems in base prompts
49 lines
2.6 KiB
Markdown
49 lines
2.6 KiB
Markdown
# Python Language Prompt Snippet
|
|
|
|
## Key Concepts
|
|
|
|
- **Decorators**: Functions that wrap other functions or classes using `@decorator` syntax
|
|
- **List/Dict Comprehensions**: Concise syntax for creating collections from iterables
|
|
- **Generators and Yield**: Lazy iterators using `yield` for memory-efficient data processing
|
|
- **Context Managers**: `with` statement for resource management via `__enter__`/`__exit__`
|
|
- **Type Hints and Typing Module**: Optional static type annotations for tooling and documentation
|
|
- **Dunder Methods**: Special methods like `__init__`, `__repr__`, `__eq__` defining object behavior
|
|
- **Metaclasses**: Classes that define how other classes are created (type as default metaclass)
|
|
- **Dataclasses**: `@dataclass` decorator auto-generating boilerplate from field annotations
|
|
- **Protocols**: Structural subtyping via `typing.Protocol` for duck-type-safe interfaces
|
|
- **Descriptors**: Objects defining `__get__`, `__set__`, `__delete__` to customize attribute access
|
|
- **Async/Await with Asyncio**: Cooperative concurrency using coroutines and an event loop
|
|
|
|
## Import Patterns
|
|
|
|
- `from module import name` — import specific name from module
|
|
- `import module` — import entire module, access via `module.name`
|
|
- `from package.module import name` — absolute import from nested package
|
|
- `from . import relative` — relative import within a package
|
|
|
|
## File Patterns
|
|
|
|
- `__init__.py` — package initializer (barrel equivalent), can re-export public API
|
|
- `__main__.py` — package entry point when run with `python -m package`
|
|
- `conftest.py` — pytest shared fixtures and hooks (auto-discovered)
|
|
- `setup.py` / `pyproject.toml` — project configuration and build metadata
|
|
- `requirements.txt` — pinned dependency list
|
|
|
|
## Common Frameworks
|
|
|
|
- **Django** — Full-stack web framework with ORM, admin, and batteries included
|
|
- **FastAPI** — Modern async API framework with automatic OpenAPI docs
|
|
- **Flask** — Lightweight WSGI micro-framework for web applications
|
|
- **SQLAlchemy** — SQL toolkit and ORM with unit-of-work pattern
|
|
- **Celery** — Distributed task queue for background job processing
|
|
- **Pydantic** — Data validation and settings management using type annotations
|
|
|
|
## Example Language Notes
|
|
|
|
> Uses `@dataclass` decorator to auto-generate `__init__`, `__repr__`, and `__eq__` from
|
|
> field annotations. This eliminates boilerplate while keeping the class definition
|
|
> readable and the generated methods consistent.
|
|
>
|
|
> When `__init__.py` re-exports symbols, it acts as the package's public API surface —
|
|
> consumers import from the package rather than reaching into internal modules.
|