primus.config package
Primus configuration management.
- class primus.config.ConfigLoader
Bases:
objectLoads and processes Primus configuration from YAML files.
- CONFIG_FILENAMES = ['config.yaml', 'config.yml']
- ENV_VAR_MAPPING = {'airtable.api_key': 'AIRTABLE_API_KEY', 'anthropic.api_key': 'ANTHROPIC_API_KEY', 'aws.access_key_id': 'AWS_ACCESS_KEY_ID', 'aws.data_lake.athena_results_bucket': 'PRIMUS_TRAINING_DATA_LAKE_ATHENA_RESULTS_BUCKET_NAME', 'aws.data_lake.bucket_name': 'PRIMUS_TRAINING_DATA_LAKE_BUCKET_NAME', 'aws.data_lake.database_name': 'PRIMUS_TRAINING_DATA_LAKE_DATABASE_NAME', 'aws.region_name': 'AWS_REGION_NAME', 'aws.secret_access_key': 'AWS_SECRET_ACCESS_KEY', 'aws.storage.datasets_bucket': 'AMPLIFY_STORAGE_DATASETS_BUCKET_NAME', 'aws.storage.report_block_details_bucket': 'AMPLIFY_STORAGE_REPORTBLOCKDETAILS_BUCKET_NAME', 'aws.storage.rubric_memory_bucket': 'AMPLIFY_STORAGE_RUBRICMEMORY_BUCKET_NAME', 'aws.storage.score_result_attachments_bucket': 'AMPLIFY_STORAGE_SCORERESULTATTACHMENTS_BUCKET_NAME', 'aws.storage.task_attachments_bucket': 'AMPLIFY_STORAGE_TASKATTACHMENTS_BUCKET_NAME', 'azure.api_base': 'AZURE_API_BASE', 'azure.api_key': 'AZURE_API_KEY', 'azure.api_version': 'AZURE_API_VERSION', 'azure.client_id': 'AZURE_CLIENT_ID', 'azure.client_secret': 'AZURE_CLIENT_SECRET', 'azure.openai_api_key': 'AZURE_OPENAI_API_KEY', 'azure.openai_deployment': 'AZURE_OPENAI_DEPLOYMENT', 'azure.openai_endpoint': 'AZURE_OPENAI_ENDPOINT', 'azure.tenant_id': 'AZURE_TENANT_ID', 'celery.aws_access_key_id': 'CELERY_AWS_ACCESS_KEY_ID', 'celery.aws_region_name': 'CELERY_AWS_REGION_NAME', 'celery.aws_secret_access_key': 'CELERY_AWS_SECRET_ACCESS_KEY', 'celery.broker_url': 'CELERY_BROKER_URL', 'celery.queue_name': 'CELERY_QUEUE_NAME', 'celery.result_backend': 'CELERY_RESULT_BACKEND', 'celery.result_backend_template': 'CELERY_RESULT_BACKEND_TEMPLATE', 'dashboard.minimal_branding': 'NEXT_PUBLIC_MINIMAL_BRANDING', 'debug': 'DEBUG', 'embedding_cache.bucket': 'EMBEDDING_CACHE_BUCKET', 'environment': 'environment', 'langchain.api_key': 'LANGCHAIN_API_KEY', 'langchain.debug': 'LANGCHAIN_DEBUG', 'langchain.endpoint': 'LANGCHAIN_ENDPOINT', 'langchain.project': 'LANGCHAIN_PROJECT', 'langchain.tracing_v2': 'LANGCHAIN_TRACING_V2', 'langgraph.timeout': 'LANGGRAPH_TIMEOUT', 'mlflow.experiment_name': 'MLFLOW_EXPERIMENT_NAME', 'mlflow.tracking_uri': 'MLFLOW_TRACKING_URI', 'openai.api_key': 'OPENAI_API_KEY', 'performance.mkl_num_threads': 'MKL_NUM_THREADS', 'performance.numexpr_num_threads': 'NUMEXPR_NUM_THREADS', 'performance.omp_num_threads': 'OMP_NUM_THREADS', 'performance.openblas_num_threads': 'OPENBLAS_NUM_THREADS', 'primus.account_key': 'PRIMUS_ACCOUNT_KEY', 'primus.api_key': 'PRIMUS_API_KEY', 'primus.api_url': 'PRIMUS_API_URL', 'primus.app_url': 'PRIMUS_APP_URL', 'primus.backend_mode': 'PRIMUS_BACKEND_MODE', 'primus.data_dir': 'PRIMUS_DATA_DIR', 'primus.default_account_id': 'PRIMUS_DEFAULT_ACCOUNT_ID', 'primus.enable_batching': 'PRIMUS_ENABLE_BATCHING', 'primus.proxy.auth_mode': 'PRIMUS_PROXY_AUTH_MODE', 'primus.proxy.upstream_disabled': 'PRIMUS_PROXY_UPSTREAM_DISABLED', 'primus.store': 'PRIMUS_STORE', 'primus.virtuus_data_dir': 'PRIMUS_VIRTUUS_DATA_DIR', 'primus.working_directory': '_PRIMUS_WORKING_DIRECTORY', 's3_vectors.bucket_name': 'S3_VECTOR_BUCKET_NAME', 's3_vectors.index_arn': 'S3_VECTOR_INDEX_ARN', 's3_vectors.index_name': 'S3_VECTOR_INDEX_NAME', 's3_vectors.region': 'AWS_REGION', 'tensorflow.force_gpu_allow_growth': 'TF_FORCE_GPU_ALLOW_GROWTH', 'tensorflow.gpu_allocator': 'TF_GPU_ALLOCATOR', 'vector_store.collection': 'PRIMUS_VECTOR_STORE_COLLECTION', 'vector_store.provider': 'PRIMUS_VECTOR_STORE_PROVIDER', 'vector_store.url': 'PRIMUS_VECTOR_STORE_URL'}
- HOME_CONFIG_DIR = '.primus'
- __init__()
- get_available_sources() List[str]
Get list of available configuration sources.
- get_config_value(key_path: str, default: Any = None) Any
Get a configuration value by key path.
- load_config() Dict[str, Any]
Load configuration from all sources and set environment variables.
- primus.config.load_config() Dict[str, Any]
Convenience function to load Primus configuration.
Submodules
- primus.config.loader module
- primus.config.test_loader module
TestConfigLoaderTestConfigLoader.setup_method()TestConfigLoader.teardown_method()TestConfigLoader.test_change_working_directory()TestConfigLoader.test_change_working_directory_missing()TestConfigLoader.test_current_directory_vs_home_directory_precedence()TestConfigLoader.test_discover_config_sources()TestConfigLoader.test_environment_variable_precedence()TestConfigLoader.test_get_available_sources()TestConfigLoader.test_get_config_value()TestConfigLoader.test_get_nested_value()TestConfigLoader.test_init()TestConfigLoader.test_load_config_multiple_files()TestConfigLoader.test_load_config_no_files()TestConfigLoader.test_load_config_single_file()TestConfigLoader.test_load_yaml_file()TestConfigLoader.test_load_yaml_file_missing()TestConfigLoader.test_load_yaml_file_yml_extension()TestConfigLoader.test_merge_configs()TestConfigLoader.test_missing_config_files()TestConfigLoader.test_set_environment_variables()TestConfigLoader.test_set_environment_variables_local_virtuus_proxy()TestConfigLoader.test_set_environment_variables_no_working_dir_change()TestConfigLoader.test_set_environment_variables_preserves_aws_profile_credentials()TestConfigLoader.test_set_environment_variables_preserves_default_sdk_credential_provider()TestConfigLoader.test_set_environment_variables_preserves_preset_store()TestConfigLoader.test_set_environment_variables_uses_static_aws_keys_only_without_an_sdk_provider()TestConfigLoader.test_set_nested_value()TestConfigLoader.test_yaml_vs_yml_extension_precedence()
TestEnvironmentVariableMappingTestLoadConfigFunction