Integração de pacotes¶
Este documento descreve como o artefato instalável, caminhos de import e subsistemas se encaixam.
Projeto PyPI e extras opcionais¶
O projeto PyPI principal é netbox-sdk (veja pyproject.toml). A mesma distribuição inclui três pacotes de nível superior:
| Pacote de import | Papel | Instalação típica |
|---|---|---|
netbox_sdk |
Cliente REST, config, esquema, services, API tipada | pip install netbox-sdk |
netbox_cli |
CLI Typer nbx |
pip install 'netbox-sdk[cli]' |
netbox_tui |
TUIs Textual | pip install 'netbox-sdk[tui]' |
Use pip install 'netbox-sdk[all]' para CLI + TUI + ferramentas demo.
Para coincidir com a versão descrita pelo site de documentação publicado, fixe com == e a mesma versão que docs/snippets/package-version.txt (veja Instalação).
Superfície pública do SDK¶
Símbolos estáveis para uso em biblioteca são exportados de netbox_sdk (veja netbox_sdk/__init__.py), incluindo:
NetBoxApiClient,ApiResponse,ConnectionProbe,RequestErrorConfig,load_profile_config,save_confige auxiliares de perfil relacionadosSchemaIndex,load_openapi_schema,build_schema_indexResolvedRequest,resolve_dynamic_request,run_dynamic_command- Fachada tipada (
api,typed_api, …) e tipos de suporte de versão
Tudo fora desse __all__ é considerado interno salvo documentação em contrário.
Diagrama de camadas¶
flowchart TB
subgraph sdk [netbox_sdk]
config[config.py]
schema[schema.py]
services[services.py]
client[client.py]
config --> client
schema --> services
client --> services
end
subgraph cli [netbox_cli]
runtime[runtime.py]
dynamic[dynamic.py]
runtime --> client
runtime --> schema
dynamic --> runtime
dynamic --> services
end
subgraph tui [netbox_tui]
app[app.py]
end
cli --> sdk
tui --> sdk
cli -. lazy launch .-> tui
Arestas de import permitidas¶
| De | Pode importar | Notas |
|---|---|---|
netbox_sdk |
stdlib + deps declaradas apenas | Não importar netbox_cli ou netbox_tui. |
netbox_cli |
netbox_sdk, depois netbox_tui só via auxiliares preguiçosos (support.load_tui_callables) |
Entry: netbox_cli:main → nbx. |
netbox_tui |
netbox_sdk |
Recebe NetBoxApiClient e SchemaIndex do chamador ou CLI. |
Estado de runtime em processo (netbox_cli.runtime)¶
netbox_cli.runtime mantém _RUNTIME_CONFIGS, _cache_profile, _get_client, _get_index e auxiliares relacionados. A atualização de token demo atualiza o perfil em cache via _cache_profile para o processo CLI permanecer consistente sem o cliente SDK importar Typer.
Registro de comandos CLI¶
Comandos são registrados no app Typer raiz em netbox_cli/__init__.py. Comandos dinâmicos OpenAPI são construídos em netbox_cli/dynamic.py; _runtime_get_client / _runtime_get_index resolvem via netbox_cli.runtime em tempo de chamada para testes poderem patchar essas fábricas.
Entry point¶
O script de console nbx mapeia para netbox_cli:main.
Veja também: Arquitetura, Princípios de design.