vendor_fabric.registry¶
Connector Registry with Entry Points.
This module provides automatic discovery and registration of vendor fabric using Python’s entry points system. This allows:
DRY interface via ConnectorBase ABC
Automatic discovery of all connectors (even from other packages)
Unified factory function for instantiation
Shared registry for CLI and provider dispatch
Usage: from vendor_fabric.registry import get_connector, list_available_connectors, list_connectors
# List catalog connectors or only runtime-ready connectors
catalog = list_connectors()
available = list_available_connectors()
# ExtendedList(["anthropic", "aws", "cursor", ...])
# Get a specific connector instance
connector = get_connector('jules', api_key='...')
# Use it
sources = connector.list_sources()
Entry Points (in pyproject.toml): [project.entry-points.”vendor_fabric.connectors”] jules = “vendor_fabric.google.jules:JulesConnector” cursor = “vendor_fabric.cursor:CursorConnector” github = “vendor_fabric.github:GitHubConnector”
Module Contents¶
Classes¶
Import metadata for a built-in connector. |
|
Registry metadata for a connector. |
|
Adapter contract for connector availability, metadata, and construction. |
|
Adapter for a connector shipped inside this distribution. |
|
Adapter for a connector class discovered through entry points. |
Functions¶
List connector catalog names. |
|
List connector names whose runtime requirements are installed. |
|
Get a connector class by name. |
|
Factory to instantiate a connector by name. |
|
Clear the connector cache (useful for testing). |
|
Get registry metadata about a connector. |
|
Get the adapter registry entry for a connector. |
|
Get registry metadata for known connectors. |
|
List connector catalog categories. |
|
List connector catalog capabilities. |
|
List connector catalog entries for a category. |
|
List connector catalog entries for a capability. |
Data¶
API¶
- class vendor_fabric.registry.BuiltinConnectorSpec¶
Import metadata for a built-in connector.
- module_path: str = None¶
- class_name: str = None¶
- extra: str = None¶
- category: str = 'external'¶
- capabilities: tuple[str, ...] = ()¶
- class vendor_fabric.registry.ConnectorInfo¶
Registry metadata for a connector.
- name: str = None¶
- available: bool = None¶
- source: str = None¶
- extra: str | None = None¶
- category: str = None¶
- capabilities: tuple[str, ...] = None¶
- install: str | None = None¶
- requirements: tuple[str, ...] = None¶
- missing: tuple[str, ...] = None¶
- class_name: str | None = None¶
- module: str | None = None¶
- base_url: str | None = None¶
- description: str | None = None¶
- error: str | None = None¶
- as_dict() extended_data.containers.ExtendedDict¶
Return extended JSON-friendly connector metadata.
- class vendor_fabric.registry.ConnectorAdapter¶
Bases:
abc.ABCAdapter contract for connector availability, metadata, and construction.
- name: str = None¶
- abstractmethod load_class() type[vendor_fabric.base.ConnectorBase]¶
Return the connector class when the adapter is available.
- abstractmethod validate_dependencies() None¶
Raise a central install error when adapter requirements are missing.
- abstractmethod info(error: ImportError | None = None) vendor_fabric.registry.ConnectorInfo¶
Return registry metadata for this adapter.
- create(**kwargs: Any) vendor_fabric.base.ConnectorBase¶
Instantiate the adapter’s connector class.
- as_dict() extended_data.containers.ExtendedDict¶
Return extended JSON-friendly adapter metadata.
- vendor_fabric.registry.BUILTIN_CONNECTORS: dict[str, vendor_fabric.registry.BuiltinConnectorSpec] = None¶
- class vendor_fabric.registry.BuiltinConnectorAdapter¶
Bases:
vendor_fabric.registry.ConnectorAdapterAdapter for a connector shipped inside this distribution.
- name: str = None¶
- spec: vendor_fabric.registry.BuiltinConnectorSpec = None¶
- property extra: str¶
Return the install extra for this adapter.
- property requirements: extended_data.containers.ExtendedList[extended_data.containers.ExtendedString]¶
Return import names required by this adapter.
- property missing: extended_data.containers.ExtendedList[extended_data.containers.ExtendedString]¶
Return missing import names for this adapter.
- property install: str¶
Return the pip install command for this adapter.
- property available: bool¶
Return whether optional runtime requirements are installed.
Build the central unavailable-adapter import error.
- validate_dependencies() None¶
Ensure this adapter’s optional runtime requirements are installed.
- load_class() type[vendor_fabric.base.ConnectorBase]¶
Load the connector class after dependency validation.
- info(error: ImportError | None = None) vendor_fabric.registry.ConnectorInfo¶
Return metadata without requiring caller-side import juggling.
- create(**kwargs: Any) vendor_fabric.base.ConnectorBase¶
- as_dict() extended_data.containers.ExtendedDict¶
- class vendor_fabric.registry.RegisteredConnectorAdapter¶
Bases:
vendor_fabric.registry.ConnectorAdapterAdapter for a connector class discovered through entry points.
- name: str = None¶
- connector_class: type[vendor_fabric.base.ConnectorBase] = None¶
- load_class() type[vendor_fabric.base.ConnectorBase]¶
Return the already discovered connector class.
- validate_dependencies() None¶
Entry-point connectors are considered available after successful load.
- info(error: ImportError | None = None) vendor_fabric.registry.ConnectorInfo¶
Return metadata for a loaded entry-point connector.
- create(**kwargs: Any) vendor_fabric.base.ConnectorBase¶
- as_dict() extended_data.containers.ExtendedDict¶
- vendor_fabric.registry.BUILTIN_CONNECTOR_ADAPTERS: dict[str, vendor_fabric.registry.BuiltinConnectorAdapter] = None¶
- vendor_fabric.registry.list_connectors(*, include_unavailable: bool = True) extended_data.containers.ExtendedList[extended_data.containers.ExtendedString]¶
List connector catalog names.
Returns: ExtendedList of known connector registry names.
- vendor_fabric.registry.list_available_connectors() extended_data.containers.ExtendedList[extended_data.containers.ExtendedString]¶
List connector names whose runtime requirements are installed.
- vendor_fabric.registry.get_connector_class(name: str) type[vendor_fabric.base.ConnectorBase]¶
Get a connector class by name.
Args: name: Connector name (e.g., ‘jules’, ‘cursor’, ‘github’)
Returns: The connector class.
Raises: ValueError: If connector not found.
- vendor_fabric.registry.get_connector(name: str, **kwargs: Any) vendor_fabric.base.ConnectorBase¶
Factory to instantiate a connector by name.
Args: name: Connector name (e.g., ‘jules’, ‘cursor’, ‘github’) **kwargs: Arguments passed to connector constructor
Returns: Instantiated connector.
Raises: ValueError: If connector not found.
Example: >>> connector = get_connector(‘jules’, api_key=’…’) >>> connector.list_sources()
- vendor_fabric.registry.clear_cache() None¶
Clear the connector cache (useful for testing).
- vendor_fabric.registry.get_connector_info(name: str, *, include_unavailable: bool = True) extended_data.containers.ExtendedDict¶
Get registry metadata about a connector.
- vendor_fabric.registry.get_connector_adapter(name: str, *, include_unavailable: bool = True) vendor_fabric.registry.ConnectorAdapter¶
Get the adapter registry entry for a connector.
- vendor_fabric.registry.list_connector_info(*, include_unavailable: bool = True) extended_data.containers.ExtendedList[extended_data.containers.ExtendedDict]¶
Get registry metadata for known connectors.
- vendor_fabric.registry.list_connector_categories(*, include_unavailable: bool = True) extended_data.containers.ExtendedList[extended_data.containers.ExtendedString]¶
List connector catalog categories.
- vendor_fabric.registry.list_connector_capabilities(*, include_unavailable: bool = True) extended_data.containers.ExtendedList[extended_data.containers.ExtendedString]¶
List connector catalog capabilities.
- vendor_fabric.registry.list_connectors_by_category(category: str, *, include_unavailable: bool = True) extended_data.containers.ExtendedList[extended_data.containers.ExtendedDict]¶
List connector catalog entries for a category.
- vendor_fabric.registry.list_connectors_by_capability(capability: str, *, include_unavailable: bool = True) extended_data.containers.ExtendedList[extended_data.containers.ExtendedDict]¶
List connector catalog entries for a capability.