Package Overview
Extended Data Packages
Section titled “Extended Data Packages”The Extended Data ecosystem provides four production-ready Python packages that work together seamlessly or independently.
Extended Data Types Core utilities: YAML, JSON, TOML, Base64, string transformations, list/map operations
Directed Inputs Class Decorator-based input handling with automatic type coercion
Lifecycle Logging Rich structured logging with verbosity control and message storage
Vendor Connectors Universal connectors for AWS, GCP, GitHub, Slack, AI APIs
Installation
Section titled “Installation”# Install all packagespip install extended-data-types directed-inputs-class lifecyclelogging vendor-connectors
# Or install individuallypip install extended-data-types # Core utilitiespip install directed-inputs-class # Input handlingpip install lifecyclelogging # Loggingpip install vendor-connectors[all] # All vendor connectorsHow They Work Together
Section titled “How They Work Together”All Extended Data packages share common patterns:
┌─────────────────────────────────────────────────────────────┐│ vendor-connectors ││ AWS, GCP, GitHub, Slack, Vault, Zoom, Meshy, Anthropic │├─────────────────────────────────────────────────────────────┤│ directed-inputs-class ││ Transparent credential loading from env/stdin/config │├─────────────────────────────────────────────────────────────┤│ extended-data-types │ lifecyclelogging ││ Serialization, Utils │ Structured Logging │└─────────────────────────────────────────────────────────────┘Example: Full Stack Usage
Section titled “Example: Full Stack Usage”from lifecyclelogging import Loggingfrom directed_inputs_class import directed_inputsfrom extended_data_types import encode_yaml, deep_mergefrom vendor_connectors import VendorConnectors
# Logging setuplogger = Logging(enable_console=True, enable_file=True)
# Service with automatic input handling@directed_inputs(from_env=True, env_prefix="APP_")class ConfigService: def __init__(self): self.vc = VendorConnectors() self.logger = logger
def load_config(self, config_path: str = "config.yaml") -> dict: """Load and merge configuration from multiple sources.""" self.logger.logged_statement( f"Loading config from {config_path}", context_marker="CONFIG", log_level="info" )
# Use vendor connectors to fetch remote config github = self.vc.get_github_client(github_owner="myorg") remote_config = github.get_file_contents(config_path)
# Merge with local overrides using extended-data-types local_config = {"debug": True, "log_level": "DEBUG"} merged = deep_merge(remote_config, local_config)
self.logger.logged_statement( "Config loaded successfully", json_data=merged, log_level="debug" )
return merged
# Usageservice = ConfigService()config = service.load_config()print(encode_yaml(config))Package Details
Section titled “Package Details”| Package | PyPI | Python | License |
|---|---|---|---|
| extended-data-types | 3.10+ | MIT | |
| directed-inputs-class | 3.10+ | MIT | |
| lifecyclelogging | 3.10+ | MIT | |
| vendor-connectors | 3.10+ | MIT |
Source Repositories
Section titled “Source Repositories”| Package | Repository |
|---|---|
| Extended Data Types | extended-data-library/core |
| Directed Inputs Class | extended-data-library/inputs |
| Lifecycle Logging | extended-data-library/logging |
| Vendor Connectors | extended-data-library/vendor-connectors |