The aitbc/queue.py module was shadowing Python's standard library queue module, causing urllib3 to fail with AttributeError when trying to import queue.LifoQueue. Renamed to queue_manager.py to resolve the naming conflict.
488 lines
10 KiB
Python
488 lines
10 KiB
Python
"""
|
|
AITBC Package
|
|
Centralized utilities for AITBC applications
|
|
"""
|
|
|
|
from .aitbc_logging import get_logger, setup_logger
|
|
from .constants import (
|
|
DATA_DIR,
|
|
CONFIG_DIR,
|
|
LOG_DIR,
|
|
REPO_DIR,
|
|
KEYSTORE_DIR,
|
|
BLOCKCHAIN_DATA_DIR,
|
|
MARKETPLACE_DATA_DIR,
|
|
ENV_FILE,
|
|
NODE_ENV_FILE,
|
|
BLOCKCHAIN_RPC_PORT,
|
|
BLOCKCHAIN_P2P_PORT,
|
|
AGENT_COORDINATOR_PORT,
|
|
MARKETPLACE_PORT,
|
|
PACKAGE_VERSION,
|
|
)
|
|
from .exceptions import (
|
|
AITBCError,
|
|
ConfigurationError,
|
|
NetworkError,
|
|
AuthenticationError,
|
|
EncryptionError,
|
|
DatabaseError,
|
|
ValidationError,
|
|
BridgeError,
|
|
RetryError,
|
|
CircuitBreakerOpenError,
|
|
RateLimitError,
|
|
)
|
|
from .env import (
|
|
get_env_var,
|
|
get_required_env_var,
|
|
get_bool_env_var,
|
|
get_int_env_var,
|
|
get_float_env_var,
|
|
get_list_env_var,
|
|
)
|
|
from .paths import (
|
|
get_data_path,
|
|
get_config_path,
|
|
get_log_path,
|
|
get_repo_path,
|
|
ensure_dir,
|
|
ensure_file_dir,
|
|
resolve_path,
|
|
get_keystore_path,
|
|
get_blockchain_data_path,
|
|
get_marketplace_data_path,
|
|
)
|
|
from .json_utils import (
|
|
load_json,
|
|
save_json,
|
|
merge_json,
|
|
json_to_string,
|
|
string_to_json,
|
|
get_nested_value,
|
|
set_nested_value,
|
|
flatten_json,
|
|
)
|
|
from .http_client import AITBCHTTPClient, AsyncAITBCHTTPClient
|
|
from .config import BaseAITBCConfig, AITBCConfig
|
|
from .decorators import (
|
|
retry,
|
|
timing,
|
|
cache_result,
|
|
validate_args,
|
|
handle_exceptions,
|
|
async_timing,
|
|
)
|
|
from .validation import (
|
|
validate_address,
|
|
validate_hash,
|
|
validate_url,
|
|
validate_port,
|
|
validate_email,
|
|
validate_non_empty,
|
|
validate_positive_number,
|
|
validate_range,
|
|
validate_chain_id,
|
|
validate_uuid,
|
|
)
|
|
from .async_helpers import (
|
|
run_sync,
|
|
gather_with_concurrency,
|
|
run_with_timeout,
|
|
batch_process,
|
|
sync_to_async,
|
|
async_to_sync,
|
|
retry_async,
|
|
wait_for_condition,
|
|
)
|
|
from .database import (
|
|
DatabaseConnection,
|
|
get_database_connection,
|
|
ensure_database,
|
|
vacuum_database,
|
|
get_table_info,
|
|
table_exists,
|
|
)
|
|
from .monitoring import (
|
|
MetricsCollector,
|
|
PerformanceTimer,
|
|
HealthChecker,
|
|
)
|
|
from .data_layer import DataLayer, MockDataGenerator, RealDataFetcher, get_data_layer
|
|
from .crypto import (
|
|
derive_ethereum_address,
|
|
sign_transaction_hash,
|
|
verify_signature,
|
|
encrypt_private_key,
|
|
decrypt_private_key,
|
|
generate_secure_random_bytes,
|
|
keccak256_hash,
|
|
sha256_hash,
|
|
validate_ethereum_address,
|
|
generate_ethereum_private_key,
|
|
)
|
|
from .web3_utils import Web3Client, create_web3_client
|
|
from .security import (
|
|
generate_token,
|
|
generate_api_key,
|
|
validate_token_format,
|
|
validate_api_key,
|
|
SessionManager,
|
|
APIKeyManager,
|
|
generate_secure_random_string,
|
|
generate_secure_random_int,
|
|
SecretManager,
|
|
hash_password,
|
|
verify_password,
|
|
generate_nonce,
|
|
generate_hmac,
|
|
verify_hmac,
|
|
)
|
|
from .time_utils import (
|
|
get_utc_now,
|
|
get_timestamp_utc,
|
|
format_iso8601,
|
|
parse_iso8601,
|
|
timestamp_to_iso,
|
|
iso_to_timestamp,
|
|
format_duration,
|
|
format_duration_precise,
|
|
parse_duration,
|
|
add_duration,
|
|
subtract_duration,
|
|
get_time_until,
|
|
get_time_since,
|
|
calculate_deadline,
|
|
is_deadline_passed,
|
|
get_deadline_remaining,
|
|
format_time_ago,
|
|
format_time_in,
|
|
to_timezone,
|
|
get_timezone_offset,
|
|
is_business_hours,
|
|
get_start_of_day,
|
|
get_end_of_day,
|
|
get_start_of_week,
|
|
get_end_of_week,
|
|
get_start_of_month,
|
|
get_end_of_month,
|
|
sleep_until,
|
|
retry_until_deadline,
|
|
Timer,
|
|
)
|
|
from .api_utils import (
|
|
APIResponse,
|
|
PaginatedResponse,
|
|
success_response,
|
|
error_response,
|
|
not_found_response,
|
|
unauthorized_response,
|
|
forbidden_response,
|
|
validation_error_response,
|
|
conflict_response,
|
|
internal_error_response,
|
|
PaginationParams,
|
|
paginate_items,
|
|
build_paginated_response,
|
|
RateLimitHeaders,
|
|
build_cors_headers,
|
|
build_standard_headers,
|
|
validate_sort_field,
|
|
validate_sort_order,
|
|
build_sort_params,
|
|
filter_fields,
|
|
exclude_fields,
|
|
sanitize_response,
|
|
merge_responses,
|
|
get_client_ip,
|
|
get_user_agent,
|
|
build_request_metadata,
|
|
)
|
|
from .events import (
|
|
Event,
|
|
EventPriority,
|
|
EventBus,
|
|
AsyncEventBus,
|
|
event_handler,
|
|
publish_event,
|
|
get_global_event_bus,
|
|
set_global_event_bus,
|
|
EventFilter,
|
|
EventAggregator,
|
|
EventRouter,
|
|
)
|
|
from .queue_manager import (
|
|
Job,
|
|
JobStatus,
|
|
JobPriority,
|
|
TaskQueue,
|
|
JobScheduler,
|
|
BackgroundTaskManager,
|
|
WorkerPool,
|
|
debounce,
|
|
throttle,
|
|
)
|
|
from .state import (
|
|
StateTransition,
|
|
StateTransitionError,
|
|
StatePersistenceError,
|
|
StateMachine,
|
|
ConfigurableStateMachine,
|
|
StatePersistence,
|
|
AsyncStateMachine,
|
|
StateMonitor,
|
|
StateValidator,
|
|
StateSnapshot,
|
|
)
|
|
from .testing import (
|
|
MockFactory,
|
|
TestDataGenerator,
|
|
TestHelpers,
|
|
MockResponse,
|
|
MockDatabase,
|
|
MockCache,
|
|
mock_async_call,
|
|
create_mock_config,
|
|
create_test_scenario,
|
|
)
|
|
|
|
__version__ = "0.6.0"
|
|
__all__ = [
|
|
# Logging
|
|
"get_logger",
|
|
"setup_logger",
|
|
# Constants
|
|
"DATA_DIR",
|
|
"CONFIG_DIR",
|
|
"LOG_DIR",
|
|
"REPO_DIR",
|
|
"KEYSTORE_DIR",
|
|
"BLOCKCHAIN_DATA_DIR",
|
|
"MARKETPLACE_DATA_DIR",
|
|
"ENV_FILE",
|
|
"NODE_ENV_FILE",
|
|
"BLOCKCHAIN_RPC_PORT",
|
|
"BLOCKCHAIN_P2P_PORT",
|
|
"AGENT_COORDINATOR_PORT",
|
|
"MARKETPLACE_PORT",
|
|
"PACKAGE_VERSION",
|
|
# Exceptions
|
|
"AITBCError",
|
|
"ConfigurationError",
|
|
"NetworkError",
|
|
"AuthenticationError",
|
|
"EncryptionError",
|
|
"DatabaseError",
|
|
"ValidationError",
|
|
"BridgeError",
|
|
"RetryError",
|
|
"CircuitBreakerOpenError",
|
|
"RateLimitError",
|
|
# Environment helpers
|
|
"get_env_var",
|
|
"get_required_env_var",
|
|
"get_bool_env_var",
|
|
"get_int_env_var",
|
|
"get_float_env_var",
|
|
"get_list_env_var",
|
|
# Path utilities
|
|
"get_data_path",
|
|
"get_config_path",
|
|
"get_log_path",
|
|
"get_repo_path",
|
|
"ensure_dir",
|
|
"ensure_file_dir",
|
|
"resolve_path",
|
|
"get_keystore_path",
|
|
"get_blockchain_data_path",
|
|
"get_marketplace_data_path",
|
|
# JSON utilities
|
|
"load_json",
|
|
"save_json",
|
|
"merge_json",
|
|
"json_to_string",
|
|
"string_to_json",
|
|
"get_nested_value",
|
|
"set_nested_value",
|
|
"flatten_json",
|
|
# HTTP client
|
|
"AITBCHTTPClient",
|
|
"AsyncAITBCHTTPClient",
|
|
# Configuration
|
|
"BaseAITBCConfig",
|
|
"AITBCConfig",
|
|
# Decorators
|
|
"retry",
|
|
"timing",
|
|
"cache_result",
|
|
"validate_args",
|
|
"handle_exceptions",
|
|
"async_timing",
|
|
# Validators
|
|
"validate_address",
|
|
"validate_hash",
|
|
"validate_url",
|
|
"validate_port",
|
|
"validate_email",
|
|
"validate_non_empty",
|
|
"validate_positive_number",
|
|
"validate_range",
|
|
"validate_chain_id",
|
|
"validate_uuid",
|
|
# Async helpers
|
|
"run_sync",
|
|
"gather_with_concurrency",
|
|
"run_with_timeout",
|
|
"batch_process",
|
|
"sync_to_async",
|
|
"async_to_sync",
|
|
"retry_async",
|
|
"wait_for_condition",
|
|
# Database
|
|
"DatabaseConnection",
|
|
"get_database_connection",
|
|
"ensure_database",
|
|
"vacuum_database",
|
|
"get_table_info",
|
|
"table_exists",
|
|
# Data layer
|
|
"DataLayer",
|
|
"MockDataGenerator",
|
|
"RealDataFetcher",
|
|
"get_data_layer",
|
|
# Monitoring
|
|
"MetricsCollector",
|
|
"PerformanceTimer",
|
|
"HealthChecker",
|
|
# Cryptography
|
|
"derive_ethereum_address",
|
|
"sign_transaction_hash",
|
|
"verify_signature",
|
|
"encrypt_private_key",
|
|
"decrypt_private_key",
|
|
"generate_secure_random_bytes",
|
|
"keccak256_hash",
|
|
"sha256_hash",
|
|
"validate_ethereum_address",
|
|
"generate_ethereum_private_key",
|
|
# Web3 utilities
|
|
"Web3Client",
|
|
"create_web3_client",
|
|
# Security
|
|
"generate_token",
|
|
"generate_api_key",
|
|
"validate_token_format",
|
|
"validate_api_key",
|
|
"SessionManager",
|
|
"APIKeyManager",
|
|
"generate_secure_random_string",
|
|
"generate_secure_random_int",
|
|
"SecretManager",
|
|
"hash_password",
|
|
"verify_password",
|
|
"generate_nonce",
|
|
"generate_hmac",
|
|
"verify_hmac",
|
|
# Time utilities
|
|
"get_utc_now",
|
|
"get_timestamp_utc",
|
|
"format_iso8601",
|
|
"parse_iso8601",
|
|
"timestamp_to_iso",
|
|
"iso_to_timestamp",
|
|
"format_duration",
|
|
"format_duration_precise",
|
|
"parse_duration",
|
|
"add_duration",
|
|
"subtract_duration",
|
|
"get_time_until",
|
|
"get_time_since",
|
|
"calculate_deadline",
|
|
"is_deadline_passed",
|
|
"get_deadline_remaining",
|
|
"format_time_ago",
|
|
"format_time_in",
|
|
"to_timezone",
|
|
"get_timezone_offset",
|
|
"is_business_hours",
|
|
"get_start_of_day",
|
|
"get_end_of_day",
|
|
"get_start_of_week",
|
|
"get_end_of_week",
|
|
"get_start_of_month",
|
|
"get_end_of_month",
|
|
"sleep_until",
|
|
"retry_until_deadline",
|
|
"Timer",
|
|
# API utilities
|
|
"APIResponse",
|
|
"PaginatedResponse",
|
|
"success_response",
|
|
"error_response",
|
|
"not_found_response",
|
|
"unauthorized_response",
|
|
"forbidden_response",
|
|
"validation_error_response",
|
|
"conflict_response",
|
|
"internal_error_response",
|
|
"PaginationParams",
|
|
"paginate_items",
|
|
"build_paginated_response",
|
|
"RateLimitHeaders",
|
|
"build_cors_headers",
|
|
"build_standard_headers",
|
|
"validate_sort_field",
|
|
"validate_sort_order",
|
|
"build_sort_params",
|
|
"filter_fields",
|
|
"exclude_fields",
|
|
"sanitize_response",
|
|
"merge_responses",
|
|
"get_client_ip",
|
|
"get_user_agent",
|
|
"build_request_metadata",
|
|
# Events
|
|
"Event",
|
|
"EventPriority",
|
|
"EventBus",
|
|
"AsyncEventBus",
|
|
"event_handler",
|
|
"publish_event",
|
|
"get_global_event_bus",
|
|
"set_global_event_bus",
|
|
"EventFilter",
|
|
"EventAggregator",
|
|
"EventRouter",
|
|
# Queue
|
|
"Job",
|
|
"JobStatus",
|
|
"JobPriority",
|
|
"TaskQueue",
|
|
"JobScheduler",
|
|
"BackgroundTaskManager",
|
|
"WorkerPool",
|
|
"debounce",
|
|
"throttle",
|
|
# State
|
|
"StateTransition",
|
|
"StateTransitionError",
|
|
"StatePersistenceError",
|
|
"StateMachine",
|
|
"ConfigurableStateMachine",
|
|
"StatePersistence",
|
|
"AsyncStateMachine",
|
|
"StateMonitor",
|
|
"StateValidator",
|
|
"StateSnapshot",
|
|
# Testing
|
|
"MockFactory",
|
|
"TestDataGenerator",
|
|
"TestHelpers",
|
|
"MockResponse",
|
|
"MockDatabase",
|
|
"MockCache",
|
|
"mock_async_call",
|
|
"create_mock_config",
|
|
"create_test_scenario",
|
|
]
|