sqlite_utilities

SQLite-specific utility functions for use in graphnet.data.

graphnet.data.utilities.sqlite_utilities.database_exists(database_path)[source]

Check whether database exists at database_path.

Return type:

bool

Parameters:

database_path (str)

graphnet.data.utilities.sqlite_utilities.query_database(database, query)[source]

Execute query on database, and return result.

Parameters:
  • database (str) – path to database.

  • query (str) – query to be executed.

Return type:

DataFrame

Returns:

DataFrame containing the result of the query.

graphnet.data.utilities.sqlite_utilities.get_primary_keys(database)[source]

Get name of primary key column for each table in database.

Parameters:

database (str) – path to database.

Return type:

Tuple[Dict[str, Optional[str]], Optional[str]]

Returns:

A dictionary containing the names of primary keys in each table of database. E.g. {‘truth’: “event_no”,

’SplitInIcePulses’: None}

Name of the primary key.

graphnet.data.utilities.sqlite_utilities.database_table_exists(database_path, table_name)[source]

Check whether table_name exists in database at database_path.

Return type:

bool

Parameters:
  • database_path (str)

  • table_name (str)

graphnet.data.utilities.sqlite_utilities.run_sql_code(database_path, code)[source]

Execute SQLite code.

Parameters:
  • database_path (str) – Path to databases

  • code (str) – SQLite code

Return type:

None

graphnet.data.utilities.sqlite_utilities.save_to_sql(df, table_name, database_path)[source]

Save a dataframe df to a table table_name in SQLite database.

Table must exist already.

Parameters:
  • df (DataFrame) – Dataframe with data to be stored in sqlite table

  • table_name (str) – Name of table. Must exist already

  • database_path (str) – Path to SQLite database

Return type:

None

graphnet.data.utilities.sqlite_utilities.attach_index(database_path, table_name, index_column)[source]

Attach the table (i.e., event) index.

Important for query times!

Return type:

None

Parameters:
  • database_path (str)

  • table_name (str)

  • index_column (str)

graphnet.data.utilities.sqlite_utilities.create_table(columns, table_name, database_path, *, index_column, default_type NULL', integer_primary_key)[source]

Create a table.

Parameters:
  • columns (List[str]) – Column names to be created in table.

  • table_name (str) – Name of the table.

  • database_path (str) – Path to the database.

  • index_column (str, default: 'event_no') – Name of the index column.

  • default_type (str, default: 'NOT NULL') – The type used for all non-index columns.

  • integer_primary_key (bool, default: True) – Whether or not to create the index_column with the INTEGER PRIMARY KEY type. Such a column is required to have unique, integer values for each row. This is appropriate when the table has one row per event, e.g., event-level MC truth. It is not appropriate for pulse map series, particle-level MC truth, and other such data that is expected to have more that one row per event (i.e., with the same index).

Return type:

None

graphnet.data.utilities.sqlite_utilities.create_table_and_save_to_sql(df, table_name, database_path, *, index_column, default_type NULL', integer_primary_key)[source]

Create table if it doesn’t exist and save dataframe to it.

Return type:

None

Parameters:
  • df (DataFrame)

  • table_name (str)

  • database_path (str)

  • index_column (str)

  • default_type (str)

  • integer_primary_key (bool)