Clash Data Serializer#

Overview#

File Name: clash_data_serializer.py

This file contains an abstract base class for serializing clash data AbstractClashDataSerializer.

AbstractClashDataSerializer Class#

class AbstractClashDataSerializer#

An abstract base class for serializing clash data.

This class defines the interface for clash data serialization and deserialization.

Any serializer must fully implement this abstract class.

Constructor#

__init__()

Initializes a new instance of the AbstractClashDataSerializer class.

Methods#

open(file_path_name: str) None

Creates a file or opens an existing.

Parameters:

file_path_name (str) – The path to the file to open or create.

Returns:

None

get_file_path() str#

Returns the serializer file path.

Returns:

The file path as a string.

get_file_size() int#

Returns the serializer file size in bytes.

Returns:

The file size in bytes.

data_structures_compatible() bool#

Checks if the serializer has no compatibility issues with data structures or tables.

Returns:

True if compatible, False otherwise.

deferred_file_creation_until_first_write_op() bool#

Determines if file creation is postponed until the first write operation.

Returns:

True if file creation is deferred, False otherwise.

set_deferred_file_creation_until_first_write_op(value: bool)#

Sets whether file creation should be postponed until the first write operation.

Parameters:

value (bool) – True to enable deferred file creation, False otherwise.

Returns:

None

set_on_modified_fnc(on_modified_fnc: Callable[[str], None])#

Sets the function to be called when the file is modified.

Parameters:

on_modified_fnc (Callable[[str], None]) – The function to call on modification.

Returns:

None

on_modified_fnc#

Gets the function that is called when the file is modified.

Returns:

The function as a callable.

is_open() bool

Checks if the serializer is ready for operations.

Returns:

True if the serializer is open, False otherwise.

save() bool

Saves data to the target file.

Returns:

True if the data was successfully saved, False otherwise.

close() None

Closes the opened file.

Returns:

None

commit() None

Writes any unwritten data to the file. Committing bigger batches is advised.

Returns:

None

insert_overlap(
clash_info: ClashInfo,
insert_also_frame_info: bool,
update_identifier: bool,
commit: bool,
) int#

Inserts clash data. If already present, insertion is skipped. Returns the ID of the new record.

Parameters:
  • clash_info – The clash information to insert.

  • insert_also_frame_info – Whether to also insert frame information.

  • update_identifier – Whether to update the identifier.

  • commit – Whether to commit the operation.

Returns:

The ID of the new record as an integer.

update_overlap(
clash_info: ClashInfo,
update_also_frame_info: bool,
commit: bool,
) int#

Updates clash data if present in the database. Returns the number of affected records.

Parameters:
  • clash_info – The clash information to update.

  • update_also_frame_info – Whether to also update frame information.

  • commit – Whether to commit the operation.

Returns:

The number of affected records as an integer.

find_all_overlaps_by_query_id(
clash_query_id: int,
fetch_also_frame_info: bool,
) Dict[str, ClashInfo]#

Returns all clash data associated with a query ID. If not present, returns an empty dictionary.

Parameters:
  • clash_query_id – The query ID to search for.

  • fetch_also_frame_info – Whether to also fetch frame information.

Returns:

A dictionary of clash data.

find_all_overlaps_by_overlap_id(
overlap_id: Sequence[int],
fetch_also_frame_info: bool,
) Dict[str, ClashInfo]#

Returns clash data associated with single or multiple overlap IDs. If not present, returns an empty dictionary.

Parameters:
  • overlap_id – The overlap IDs to search for.

  • fetch_also_frame_info – Whether to also fetch frame information.

Returns:

A dictionary of clash data.

remove_all_overlaps_by_query_id(
clash_query_id: int,
commit: bool,
) int#

Deletes specified clash data related to a query ID. If not present, nothing happens. Returns the number of deleted rows.

Parameters:
  • clash_query_id – The query ID whose data is to be deleted.

  • commit – Whether to commit the operation.

Returns:

The number of deleted rows as an integer.

remove_overlap_by_id(overlap_id: int, commit: bool) int#

Deletes specified clash data by ID. If not present, nothing happens. Returns the number of deleted rows.

Parameters:
  • overlap_id – The ID of the overlap to delete.

  • commit – Whether to commit the operation.

Returns:

The number of deleted rows as an integer.

fetch_clash_frame_info_by_clash_info_id(
clash_info_id: int,
) Sequence[ClashFrameInfo]#

Returns all clash frame info items associated with a clash_info_id. If not present, returns empty list.

Parameters:

clash_info_id – The clash info ID to search for.

Returns:

A sequence of clash frame info items or empty list.

insert_clash_frame_info_from_clash_info(
clash_info: ClashInfo,
commit: bool,
) int#

Inserts clash frame info from clash info. If already present, insertion is skipped. Returns the number of affected records.

Parameters:
  • clash_info – The clash information based on which to insert frame info.

  • commit – Whether to commit the operation.

Returns:

The number of affected records as an integer.

insert_clash_frame_info(
clash_frame_info: ClashFrameInfo,
clash_info_id: int,
commit: bool,
) int#

Inserts clash frame info. If already present, insertion is skipped. Returns the ID of the new record.

Parameters:
  • clash_frame_info – The clash frame information to insert.

  • clash_info_id – The clash info ID to associate with.

  • commit – Whether to commit the operation.

Returns:

The ID of the new record as an integer.

remove_clash_frame_info_by_clash_info_id(
clash_info_id: int,
commit: bool,
) int#

Deletes specified clash frame info data. If not present, nothing happens. Returns the number of deleted rows.

Parameters:
  • clash_info_id – The clash info ID whose frame info is to be deleted.

  • commit – Whether to commit the operation.

Returns:

The number of deleted rows as an integer.

fetch_all_queries() Dict[int, ClashQuery]#

Returns all clash queries. If not present, returns an empty dictionary.

Returns:

A dictionary of all clash queries.

insert_query(
clash_query: ClashQuery,
update_identifier: bool,
commit: bool,
) int#

Inserts a clash query. If already present, insertion is skipped. Returns the ID of the new record.

Parameters:
  • clash_query – The clash query to insert.

  • update_identifier – Whether to update the identifier.

  • commit – Whether to commit the operation.

Returns:

The ID of the new record as an integer.

find_query(clash_query_id: int) Optional[ClashQuery]:#

Returns the specified clash query. If not present, returns None.

Parameters:

clash_query_id – The ID of the clash query to find.

Returns:

The specified clash query or None.

update_query(clash_query: ClashQuery, commit: bool) int#

Updates a clash query if present in the database. Returns the number of affected records.

Parameters:
  • clash_query – The clash query to update.

  • commit – Whether to commit the operation.

Returns:

The number of affected records as an integer.

remove_query_by_id(query_id: int, commit: bool) int#

Deletes specified clash data. If not present, nothing happens. Returns the number of deleted rows.

Parameters:
  • query_id – The ID of the query to delete.

  • commit – Whether to commit the operation.

Returns:

The number of deleted rows as an integer.

ClashDataSerializerSqlite Class#

class ClashDataSerializerSqlite#

ClashDataSerializerSqlite class which implements ‘AbstractClashDataSerializer’ to serialize and deserialize clash data to SQLite database.