eegdash 0.0.1__py3-none-any.whl → 0.0.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of eegdash might be problematic. Click here for more details.

Files changed (71) hide show
  1. eegdash/data_utils.py +5 -1
  2. eegdash/{aws_ingest.py → script.py} +8 -12
  3. eegdash/signalstore_data_utils.py +352 -2
  4. {eegdash-0.0.1.dist-info → eegdash-0.0.2.dist-info}/METADATA +75 -8
  5. eegdash-0.0.2.dist-info/RECORD +10 -0
  6. {eegdash-0.0.1.dist-info → eegdash-0.0.2.dist-info}/WHEEL +1 -1
  7. eegdash/SignalStore/__init__.py +0 -0
  8. eegdash/SignalStore/signalstore/__init__.py +0 -3
  9. eegdash/SignalStore/signalstore/adapters/read_adapters/abstract_read_adapter.py +0 -13
  10. eegdash/SignalStore/signalstore/adapters/read_adapters/domain_modeling/schema_read_adapter.py +0 -16
  11. eegdash/SignalStore/signalstore/adapters/read_adapters/domain_modeling/vocabulary_read_adapter.py +0 -19
  12. eegdash/SignalStore/signalstore/adapters/read_adapters/handmade_records/excel_study_organizer_read_adapter.py +0 -114
  13. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/axona/axona_read_adapter.py +0 -912
  14. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/ReadIntanSpikeFile.py +0 -140
  15. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/intan_read_adapter.py +0 -29
  16. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/__init__.py +0 -0
  17. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/data_to_result.py +0 -62
  18. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/get_bytes_per_data_block.py +0 -36
  19. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/notch_filter.py +0 -50
  20. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/qstring.py +0 -41
  21. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/read_header.py +0 -135
  22. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/read_one_data_block.py +0 -45
  23. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/load_intan_rhd_format.py +0 -204
  24. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/__init__.py +0 -0
  25. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/data_to_result.py +0 -60
  26. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/get_bytes_per_data_block.py +0 -37
  27. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/notch_filter.py +0 -50
  28. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/qstring.py +0 -41
  29. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/read_header.py +0 -153
  30. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/read_one_data_block.py +0 -47
  31. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/load_intan_rhs_format.py +0 -213
  32. eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/neurodata_without_borders/neurodata_without_borders_read_adapter.py +0 -14
  33. eegdash/SignalStore/signalstore/operations/__init__.py +0 -4
  34. eegdash/SignalStore/signalstore/operations/handler_executor.py +0 -22
  35. eegdash/SignalStore/signalstore/operations/handler_factory.py +0 -41
  36. eegdash/SignalStore/signalstore/operations/handlers/base_handler.py +0 -44
  37. eegdash/SignalStore/signalstore/operations/handlers/domain/property_model_handlers.py +0 -79
  38. eegdash/SignalStore/signalstore/operations/handlers/domain/schema_handlers.py +0 -3
  39. eegdash/SignalStore/signalstore/operations/helpers/abstract_helper.py +0 -17
  40. eegdash/SignalStore/signalstore/operations/helpers/neuroscikit_extractor.py +0 -33
  41. eegdash/SignalStore/signalstore/operations/helpers/neuroscikit_rawio.py +0 -165
  42. eegdash/SignalStore/signalstore/operations/helpers/spikeinterface_helper.py +0 -100
  43. eegdash/SignalStore/signalstore/operations/helpers/wrappers/neo_wrappers.py +0 -21
  44. eegdash/SignalStore/signalstore/operations/helpers/wrappers/nwb_wrappers.py +0 -27
  45. eegdash/SignalStore/signalstore/store/__init__.py +0 -8
  46. eegdash/SignalStore/signalstore/store/data_access_objects.py +0 -1181
  47. eegdash/SignalStore/signalstore/store/datafile_adapters.py +0 -131
  48. eegdash/SignalStore/signalstore/store/repositories.py +0 -928
  49. eegdash/SignalStore/signalstore/store/store_errors.py +0 -68
  50. eegdash/SignalStore/signalstore/store/unit_of_work.py +0 -97
  51. eegdash/SignalStore/signalstore/store/unit_of_work_provider.py +0 -67
  52. eegdash/SignalStore/signalstore/utilities/data_adapters/spike_interface_adapters/si_recording.py +0 -1
  53. eegdash/SignalStore/signalstore/utilities/data_adapters/spike_interface_adapters/si_sorter.py +0 -1
  54. eegdash/SignalStore/signalstore/utilities/testing/data_mocks.py +0 -513
  55. eegdash/SignalStore/signalstore/utilities/tools/dataarrays.py +0 -49
  56. eegdash/SignalStore/signalstore/utilities/tools/mongo_records.py +0 -25
  57. eegdash/SignalStore/signalstore/utilities/tools/operation_response.py +0 -78
  58. eegdash/SignalStore/signalstore/utilities/tools/purge_orchestration_response.py +0 -21
  59. eegdash/SignalStore/signalstore/utilities/tools/quantities.py +0 -15
  60. eegdash/SignalStore/signalstore/utilities/tools/strings.py +0 -38
  61. eegdash/SignalStore/signalstore/utilities/tools/time.py +0 -17
  62. eegdash/SignalStore/tests/conftest.py +0 -799
  63. eegdash/SignalStore/tests/data/valid_data/data_arrays/make_fake_data.py +0 -59
  64. eegdash/SignalStore/tests/unit/store/conftest.py +0 -0
  65. eegdash/SignalStore/tests/unit/store/test_data_access_objects.py +0 -1235
  66. eegdash/SignalStore/tests/unit/store/test_repositories.py +0 -1309
  67. eegdash/SignalStore/tests/unit/store/test_unit_of_work.py +0 -7
  68. eegdash/SignalStore/tests/unit/test_ci_cd.py +0 -8
  69. eegdash-0.0.1.dist-info/RECORD +0 -72
  70. {eegdash-0.0.1.dist-info → eegdash-0.0.2.dist-info}/LICENSE +0 -0
  71. {eegdash-0.0.1.dist-info → eegdash-0.0.2.dist-info}/top_level.txt +0 -0
@@ -1,131 +0,0 @@
1
- from abc import ABC, abstractmethod
2
-
3
- import xarray as xr
4
-
5
- class AbstractDataFileAdapter(ABC):
6
-
7
- def __init__(self, filesystem=None):
8
- self.filesystem = filesystem
9
-
10
- def set_filesystem(self, filesystem):
11
- self.filesystem = filesystem
12
-
13
- @abstractmethod
14
- def read_file(self, path):
15
- pass
16
-
17
- @abstractmethod
18
- def write_file(self, path, data_object):
19
- pass
20
-
21
- @abstractmethod
22
- def get_id_kwargs(self, data_object):
23
- pass
24
-
25
- @property
26
- @abstractmethod
27
- def file_extension(self):
28
- pass
29
-
30
- @property
31
- @abstractmethod
32
- def file_format(self):
33
- pass
34
-
35
- @property
36
- @abstractmethod
37
- def data_object_type(self):
38
- pass
39
-
40
- class XarrayDataArrayNetCDFAdapter(AbstractDataFileAdapter):
41
- """Adapter for reading and writing xarray DataArrays to netcdf files."""
42
-
43
- @property
44
- def file_extension(self):
45
- return ".nc"
46
-
47
- @property
48
- def file_format(self):
49
- return "NetCDF"
50
-
51
- @property
52
- def data_object_type(self):
53
- return type(xr.DataArray())
54
-
55
- def get_id_kwargs(self, data_object):
56
- return {"schema_ref": data_object.attrs.get("schema_ref"),
57
- "data_name": data_object.attrs.get("data_name"),
58
- "version_timestamp": data_object.attrs.get("version_timestamp") or 0
59
- }
60
-
61
- def read_file(self, path):
62
- with self.filesystem.open(path, mode='rb') as f:
63
- data_object = xr.open_dataarray(f, engine="scipy")
64
- return data_object
65
-
66
- def write_file(self, path, data_object):
67
- # make file if it doesn't exist
68
- data_object = self._clean_attributes(data_object)
69
- with self.filesystem.open(path, mode='wb') as f:
70
- data_object.to_netcdf(f, engine="scipy")
71
-
72
- def _clean_attributes(self, data_object):
73
- """Clean up attributes to ensure they are serializable to netcdf."""
74
- # clean name
75
- if data_object.name is None:
76
- schema_ref = data_object.attrs.get("schema_ref")
77
- data_name = data_object.attrs.get("data_name")
78
- data_object.name = f"{schema_ref}__{data_name}"
79
- # make sure dims are strings
80
- data_object = data_object.rename({k: str(k) for k in data_object.dims})
81
- # make sure attrs are strings
82
- data_object.attrs = {str(k): str(v) for k, v in data_object.attrs.items()}
83
- return data_object
84
-
85
-
86
-
87
- class XarrayDataArrayZarrAdapter(AbstractDataFileAdapter):
88
- """Adapter for reading and writing xarray DataArrays to zarr files."""
89
-
90
- @property
91
- def file_extension(self):
92
- return ""
93
-
94
- @property
95
- def file_format(self):
96
- return "Zarr"
97
-
98
- @property
99
- def data_object_type(self):
100
- return type(xr.DataArray())
101
-
102
- def get_id_kwargs(self, data_object):
103
- return {"schema_ref": data_object.attrs.get("schema_ref"),
104
- "data_name": data_object.attrs.get("data_name"),
105
- "version_timestamp": data_object.attrs.get("version_timestamp") or 0
106
- }
107
-
108
- def read_file(self, path):
109
- store = self.filesystem.get_mapper(path)
110
- data_object = xr.open_dataarray(store, engine="zarr")
111
- return data_object
112
-
113
- def write_file(self, path, data_object):
114
- # make zarr dir if it doesn't exist
115
- store = self.filesystem.get_mapper(path)
116
- data_object = self._clean_attributes(data_object)
117
- data_object.to_zarr(store, consolidated=True)
118
- return data_object
119
-
120
- def _clean_attributes(self, data_object):
121
- """Clean up attributes to ensure they are serializable to netcdf."""
122
- # clean name
123
- if data_object.name is None:
124
- schema_ref = data_object.attrs.get("schema_ref")
125
- data_name = data_object.attrs.get("data_name")
126
- data_object.name = f"{schema_ref}__{data_name}"
127
- # make sure dims are strings
128
- data_object = data_object.rename({k: str(k) for k in data_object.dims})
129
- # make sure attrs are strings
130
- data_object.attrs = {str(k): str(v) for k, v in data_object.attrs.items()}
131
- return data_object