Skip to content

Extended Data

The Infrastructure & Libs division of jbcom enterprise — battle-tested Python utilities powering production systems

Extended Data provides the foundational Python infrastructure used across the entire jbcom ecosystem. These libraries are designed to work seamlessly together while remaining independently useful.


Extended Data Types

Supercharge your Python data types! YAML, JSON, TOML, Base64 encoding, string transformations, list/map utilities, and state management.

Terminal window
pip install extended-data-types

Directed Inputs Class

Transparent input handling with decorator-based API. Load from environment, stdin, or config with automatic type coercion.

Terminal window
pip install directed-inputs-class

Lifecycle Logging

Rich structured logging with verbosity control, message storage, markers, and Gunicorn integration.

Terminal window
pip install lifecyclelogging

Vendor Connectors

Universal vendor connectors for AWS, GCP, GitHub, Slack, Vault, Zoom, Meshy AI, Anthropic, and Cursor — with LangChain tools and MCP servers.

Terminal window
pip install vendor-connectors

Extended Data Types — Serialization & Transformations

Section titled “Extended Data Types — Serialization & Transformations”
from extended_data_types import (
encode_yaml, decode_yaml,
encode_json, decode_json,
base64_encode, base64_decode,
to_camel_case, to_snake_case,
deep_merge, flatten_map,
is_nothing, first_non_empty,
)
# YAML encoding/decoding
config = {"name": "app", "features": ["yaml", "json"]}
yaml_str = encode_yaml(config)
data = decode_yaml(yaml_str)
# Case transformations
to_camel_case("user_account_settings") # → "userAccountSettings"
to_snake_case("HTTPResponse") # → "http_response"
# Deep merge dictionaries
base = {"a": 1, "b": {"c": 2}}
override = {"b": {"d": 3}, "e": 4}
result = deep_merge(base, override)
# → {"a": 1, "b": {"c": 2, "d": 3}, "e": 4}
# State utilities
first_non_empty(None, "", "fallback") # → "fallback"
is_nothing([]) # → True

Directed Inputs — Automatic Parameter Injection

Section titled “Directed Inputs — Automatic Parameter Injection”
from directed_inputs_class import directed_inputs, input_config
@directed_inputs(from_env=True, env_prefix="APP_")
class UserService:
"""Methods automatically receive inputs from environment."""
def get_user(self, user_id: str, limit: int = 100) -> dict:
# user_id populated from APP_USER_ID if not provided
return {"id": user_id, "limit": limit}
@input_config("api_key", source_name="API_KEY", required=True)
def secure_call(self, api_key: str) -> str:
# Raises ValueError if API_KEY not set
return f"Authenticated with {api_key[:4]}..."
# Usage
service = UserService()
user = service.get_user() # Loads from environment

Lifecycle Logging — Rich Output with Control

Section titled “Lifecycle Logging — Rich Output with Control”
from lifecyclelogging import Logging
logger = Logging(
enable_console=True,
enable_verbose_output=True,
verbosity_threshold=2,
)
# Basic logging with rich formatting
logger.logged_statement("Server starting", log_level="info")
# With attached JSON data
logger.logged_statement(
"Request received",
json_data={"method": "POST", "path": "/api"},
log_level="debug"
)
# Verbosity control
logger.logged_statement(
"Detailed trace",
verbose=True,
verbosity=3, # Suppressed if threshold < 3
log_level="debug"
)
# Message storage for later retrieval
logger.logged_statement(
"Critical event",
storage_marker="EVENTS",
log_level="warning"
)
events = logger.stored_messages["EVENTS"]
from vendor_connectors import VendorConnectors
# Unified access to all connectors
vc = VendorConnectors()
# Cloud providers
s3 = vc.get_aws_client("s3")
google = vc.get_google_client()
# Services
github = vc.get_github_client(github_owner="myorg")
slack = vc.get_slack_client()
# AI/Agent connectors
anthropic = vc.get_anthropic_client()
cursor = vc.get_cursor_client()

Each connector supports 3 interfaces:

# 1. Direct Python API
from vendor_connectors import meshy
model = meshy.text3d.generate("a medieval sword")
# 2. LangChain Tools (works with CrewAI, LangGraph, etc.)
from vendor_connectors.meshy.tools import get_tools
tools = get_tools() # Standard StructuredTools
# 3. MCP Server (for Claude Desktop, Cline)
from vendor_connectors.meshy.mcp import run_server
run_server()

All Extended Data packages share common patterns from directed-inputs-class:

from vendor_connectors import GithubConnector
# Credentials loaded automatically from:
# 1. Direct parameters
# 2. Environment variables (GITHUB_TOKEN)
# 3. stdin JSON
# 4. Config files
github = GithubConnector(github_owner="extended-data-library")
# No explicit token needed if GITHUB_TOKEN is set!

The VendorConnectors class provides:

  • Client caching — Same parameters return same instance
  • Transparent credential loading — Works across all interfaces
  • Consistent patterns — Same API shape for every vendor


  1. Type-Safe — Full type hints and py.typed markers
  2. Zero Config — Sensible defaults that work out of the box
  3. Composable — Use packages independently or together
  4. Battle-Tested — CI/CD, 90%+ coverage, production-proven
  5. Modern Python — Targets Python 3.10+

PackagePyPIPythonStatus
extended-data-typesPyPI3.10+CI
directed-inputs-classPyPI3.10+CI
lifecycleloggingPyPI3.10+CI
vendor-connectorsPyPI3.10+CI