Config
NoFallback (Exception)
¶
No fallback value can be found.
ServerConfig (BaseSettings)
pydantic-model
¶
This class stores server config parameters in a way that can be easily extended for new config file types.
aliases: Dict[Literal['links', 'references', 'structures'], Dict[str, str]]
pydantic-field
¶
A mapping between field names in the database with their corresponding OPTIMADE field names, broken down by endpoint.
base_url: str
pydantic-field
¶
Base URL for this implementation
config_file: str
pydantic-field
¶
File to load alternative defaults from
debug: bool
pydantic-field
¶
Turns on Debug Mode for the OPTIMADE Server implementation
default_db: str
pydantic-field
¶
ID of /links endpoint resource for the chosen default OPTIMADE implementation (only relevant for the index meta-database)
implementation: Implementation
pydantic-field
¶
Introspective information about this OPTIMADE implementation
index_links_path: Path
pydantic-field
¶
Absolute path to a JSON file containing the MongoDB collection of /links resources for the index meta-database
length_aliases: Dict[Literal['links', 'references', 'structures'], Dict[str, str]]
pydantic-field
¶
A mapping between a list property (or otherwise) and an integer property that defines the length of that list, for example elements -> nelements. The standard aliases are applied first, so this dictionary must refer to the API fields, not the database fields.
links_collection: str
pydantic-field
¶
Mongo collection name for /links endpoint resources
mongo_database: str
pydantic-field
¶
Mongo database for collection data
mongo_uri: str
pydantic-field
¶
URI for the Mongo server
page_limit: int
pydantic-field
¶
Default number of resources per page
page_limit_max: int
pydantic-field
¶
Max allowed number of resources per page
provider: Provider
pydantic-field
¶
General information about the provider of this OPTIMADE implementation
provider_fields: Dict[Literal['links', 'references', 'structures'], List[str]]
pydantic-field
¶
A list of additional fields to be served with the provider's prefix attached, broken down by endpoint.
references_collection: str
pydantic-field
¶
Mongo collection name for /references endpoint resources
structures_collection: str
pydantic-field
¶
Mongo collection name for /structures endpoint resources
use_real_mongo: bool
pydantic-field
¶
Use a real Mongo server rather than MongoMock
load_default_settings(values)
classmethod
¶
Loads settings from a root file if available and uses that as defaults in place of built in defaults
Source code in optimade/server/config.py
@root_validator(pre=True)
def load_default_settings(cls, values): # pylint: disable=no-self-argument
"""
Loads settings from a root file if available and uses that as defaults in
place of built in defaults
"""
config_file_path = Path(values.get("config_file", DEFAULT_CONFIG_FILE_PATH))
new_values = {}
if config_file_path.exists() and config_file_path.is_file():
logger.debug("Found config file at: %s", config_file_path)
with open(config_file_path) as f:
new_values = json.load(f)
else:
logger.debug( # pragma: no cover
"Did not find config file at: %s", config_file_path
)
new_values.update(values)
return new_values