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.