airsspy.jf.store#

Query layer for AIRSS search results stored in jobflow JobStore.

Provides SearchStore — a high-level interface for querying, filtering, and summarising AIRSS results without direct MongoDB knowledge.

Module Contents#

Classes#

SearchStore

Query interface for AIRSS results in a jobflow JobStore.

Data#

API#

airsspy.jf.store.logger#

‘getLogger(…)’

class airsspy.jf.store.SearchStore(database: str = 'airss', host: str = 'localhost', port: int = 27017, collection: str = 'jobs', username: Optional[str] = None, password: Optional[str] = None, **kwargs)[source]#

Query interface for AIRSS results in a jobflow JobStore.

Wraps a MongoStore (maggma) and provides project-oriented query methods that flatten multi-structure job documents into individual result records.

Initialization

Connect to the jobflow store.

Args: database: MongoDB database name. host: MongoDB host. port: MongoDB port. collection: Collection name for jobflow jobs. username: Optional MongoDB username. password: Optional MongoDB password. **kwargs: Additional arguments passed to MongoStore.

connect() None[source]#

Open the connection to the MongoDB store.

close() None[source]#

Close the connection.

__enter__()[source]#
__exit__(*args)[source]#
retrieve_project(project_name: str) list[airsspy.jf.documents.AirssResultDoc][source]#

Get all results for a project, flattened from multi-structure jobs.

Args: project_name: The project identifier.

Returns: A list of AirssResultDoc instances.

retrieve_project_df(project_name: str, **filters) pandas.DataFrame[source]#

Get all results for a project as a DataFrame.

Args: project_name: The project identifier. **filters: Additional MongoDB query filters.

Returns: A DataFrame with one row per result.

list_projects() list[str][source]#

List all distinct project names in the store.

list_seeds(project_name: Optional[str] = None) list[str][source]#

List seed names, optionally filtered by project.

Args: project_name: If given, filter seeds to this project.

show_struct_counts(project_name: Optional[str] = None) pandas.DataFrame[source]#

Summary of structures per project/seed.

Args: project_name: If given, filter to this project.

Returns: DataFrame with columns project_name, seed_name, n_structures, n_finished, n_errored.

throughput_summary(past_days: int = 2, project_name: Optional[str] = None) pandas.DataFrame[source]#

Throughput over recent days.

Args: past_days: Number of days to look back. project_name: If given, filter to this project.

Returns: DataFrame with date, n_structures, n_finished columns.