Arquitectura
Disposición del código fuente
Por qué Apothem usa una disposición src/ y cómo está organizado el árbol.
Apothem adoptó la disposición src de PyPA y coloca todo el código Python importable bajo src/apothem/.
Por qué la disposición src
- Aislamiento de las importaciones.
import apothemsolo se resuelve cuandosrc/está en la ruta (el motor se ejecuta comoPYTHONPATH=src python -m apothem), lo que evita importar por accidente el árbol de trabajo desde un directorio no relacionado. - Tiempo de ejecución autónomo. Apothem se ejecuta directamente desde un checkout con sus
dependencias incorporadas bajo
src/apothem/_vendor/: no se requiere ningún paso de instalación. La disposición src mantiene esa superficie importable claramente separada de las herramientas, las pruebas y los scripts del repositorio. - Distribución limpia. La misma disposición produce un sdist y un wheel bien formados
(y una instalación editable opcional con
pip install -e .) cuyo contenido coincide exactamente con lo que se distribuye, sin que se cuele ningún módulo suelto de nivel superior.
Estructura del árbol
src/apothem/
agents/ persistent agent definitions (*.md)
audit/ inventory and provenance tools
benchmarks/ performance benchmarks
cli/ Click CLI (top-level commands listed below the tree)
commands/ slash command definitions (*.md)
conformity/ mechanical gate checkers (*_grep.py)
harnesses/ one sub-package per harness adapter (17 adapters)
hooks/ hook dispatcher + message files
lib/ shared Python library
output-styles/ output-style definitions (*.md)
rules/ behavioral rules (*.md)
schemas/ YAML/JSON schemas
skills/ reusable skill templates (folder/SKILL.md)
statuslines/ status-line config (*.json)
templates/ reusable template artifactsComandos de la CLI
La lista siguiente se genera a partir del árbol de comandos de Click.
The cli/ package registers 14 top-level commands:
apothem backupsapothem completionapothem diffapothem doctorapothem harnessesapothem installapothem migrate-workspaceapothem profileapothem quickstartapothem rollbackapothem statusapothem uninstallapothem updateapothem verify
Artefactos importables frente a artefactos de configuración
Muchos elementos bajo src/apothem/ son artefactos de configuración en Markdown, no
módulos de Python. La superficie de Python importable es:
src/apothem/cli/(la CLI de Click expuesta como el punto de entradaapothem)src/apothem/harnesses/(los 17 subpaquetes de adaptadores de entorno)src/apothem/lib/(biblioteca compartida: perfil, registro, materializador, propagación)src/apothem/hooks/(dispatch.py, lib/)src/apothem/conformity/(scripts de grep mecánicos)src/apothem/audit/(scripts de inventario)src/apothem/benchmarks/(controladores de los benchmarks de rendimiento)