store¶
Store functionality for the CLI
Notes
A store is an abstraction for a folder in the user’s local data directory which pertains to a specific dataset that comprises of RNG output. The store can subsequently store test results and report markup for said results.
-
coinflip.store.
parse_data
(data_file, dtype_str=None) → pandas.core.series.Series[source]¶ Reads file containing data into a pandas Series
Reads from file containing RNG output and produces a representitive pandas Series. The appropiate dtype is inferred from the data itself, or optionally from the supplied dtype_str.
Parameters: - data_file (file-like object) – File containing RNG output
- dtype_str (str, optional) – String representation of desired dtype. If not supplied, it is inferred from the data.
Returns: Series – A pandas Series which represents the data
Raises: TypeNotRecognizedError
– If supplied dtype_str does not recognise a dtypeMultipleColumnsError
– If inputted data contains multiple values per lineNonBinarySequenceError
– If sequence does not contain only 2 values
See also
pandas.read_csv()
- The pandas method for reading data_file
store_data()
- Calls this method, and handles subsequent storage of data
-
coinflip.store.
init_store
(name=None, overwrite=False)[source]¶ Creates store in local data
A name supplied or generated is used to initialise a store. If supplied, the name is sanitised to remove invalid characters for filepaths. If generated, the name will be a timestamp of initialisation.
Parameters: - name (str, optional) – Desired name of the store, which will be sanitised. If not supplied, a name is generated automatically.
- overwrite (boolean, default False) – If a name conflicts with an existing store, this decides whether to overwrite it.
Returns: - store_name (str) – Internal name of the initialised store
- store_path (Path) – Path of the initialised store
Raises: NameConflictError
– If attempts at generating a unique name failsStoreExistsError
– If a store of the same name exists already (and overwrite is set to False)NonBinarySequenceError
– If sequence does not contain only 2 values
See also
store_data()
- Parses data and calls this method, to then save data in store
-
coinflip.store.
store_data
(data_file, name=None, dtype_str=None, overwrite=False)[source]¶ Load and parse RNG output, serialised to a local data directory
Reads from file containing RNG output and produces a representitive pandas Series. The appropiate dtype is inferred from the data itself, or optionally from the supplied dtype_str.
A name supplied or generated is used to initialise a store. If supplied, the name is sanitised to remove invalid characters for filepaths. If generated, the name will be a timestamp of initialisation.
The representive Series is serialised using Python’s pickle module, saved in the initialised store.
The store’s name is also written to a file in the user data directory, to be accessed later when identifying the last initialised store.
Parameters: - data_file (file-like object) – File containing RNG output
- name (str, optional) – Desired name of the store, which will be sanitised. If not supplied, a name is generated automatically.
- dtype_str (str, optional) – String representation of desired dtype. If not supplied, it is inferred from the data.
- overwrite (bool, default False) – If a name conflicts with an existing store, this decides whether to overwrite it.
Raises: TypeNotRecognizedError
– If supplied dtype_str does not recognise a dtypeMultipleColumnsError
– If inputted data contains multiple values per lineNameConflictError
– If attempts at generating a unique name failsStoreExistsError
– If a store of the same name exists already (and overwrite is set to False)
See also
parse_data()
- Loads and parses data_file
init_store()
- Initialises the store
find_latest_store()
- Accesses the name of the last initialised store
-
exception
coinflip.store.
NoLatestStoreRecordedError
[source]¶ Error for when latest store cannot be identified
-
coinflip.store.
find_latest_store
() → str[source]¶ Find out the last initialised store
A file is kept in the root user data directory to record the last initialised store’s name, which this method reads to identify the store.
Returns: store_name (str) – Name of the last initialised store Raises: NoLatestStoreRecordedError
– When no last initialised store is found
-
coinflip.store.
get_data
(store_name) → pandas.core.series.Series[source]¶ Access data of a store
Parameters: store_name (str) – Name of the store
Returns: Series – A pandas Series which represents the data
Raises: StoreNotFoundError
– If requested store does not existDataNotFoundError
– If requested store has no data
-
coinflip.store.
drop
(store_name)[source]¶ Remove store from local data
Parameters: store_name (str) – Name of store to remove
-
coinflip.store.
store_result
(store_name, randtest_name, result: coinflip.randtests._result.TestResult)[source]¶ Store result of a statistical test
Parameters: - store_name (str) – Name of store to save result in
- randtest_name (str) – Name of statistical test the result came from
- result (TestResult) – Result of the statistical test
See also
store_results()
- Store multiple results from multiple statistical tests
-
coinflip.store.
store_results
(store_name, results_dict: Dict[str, coinflip.randtests._result.TestResult])[source]¶ Store results of multiple statistical tests
Parameters: - store_name (str) – Name of store to save result in
- results_dict (Dict[str, TestResult]) – Mapping of statistical tests to their respective results
See also
store_result()
- Store a single results from a single statistical test
-
coinflip.store.
open_results
(store_name)[source]¶ Context manager to read/write results of a store
Parameters: store_name (str) – Name of store to access results in Yields: results (Dict[str, TestResult]) – Previously stored results of statistical tests Raises: StoreNotFoundError
– If requested store does not exist