tol-sdk 1.7.5b3__py3-none-any.whl → 1.7.5b4__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.
@@ -97,7 +97,8 @@ class SanitisingConverter(DataObjectToDataObjectOrUpdateConverter):
97
97
 
98
98
  def __init__(
99
99
  self,
100
- data_object_factory: DataObjectFactory
100
+ data_object_factory: DataObjectFactory,
101
+ **kwargs
101
102
  ):
102
103
  super().__init__(data_object_factory)
103
104
 
@@ -55,3 +55,4 @@ from .tolqc_species_to_elastic_species_converter import TolqcSpeciesToElasticSpe
55
55
  from .sts_sample_to_casm_benchling_converter import StsSampleToCasmBenchlingConverterFactory # noqa F401
56
56
  from .treeofsex_species_to_treeofsexwh_species_converter import TreeofsexSpeciesToTreeofsexwhSpeciesConverter # noqa F401
57
57
  from .treeofsex_upload_to_treeofsex_attribute_converter import TreeofsexUploadToTreeofsexAttributeConverter # noqa F401
58
+ from .skip_null_fields_converter import SkipNullFieldsConverter # noqa F401
@@ -0,0 +1,42 @@
1
+ # SPDX-FileCopyrightText: 2025 Genome Research Ltd.
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ from dataclasses import dataclass
5
+ from typing import Iterable
6
+
7
+ from tol.core import DataObject, DataObjectToDataObjectOrUpdateConverter
8
+
9
+
10
+ class SkipNullFieldsConverter(DataObjectToDataObjectOrUpdateConverter):
11
+
12
+ @dataclass(slots=True, frozen=True, kw_only=True)
13
+ class Config:
14
+ field_names: list[str]
15
+
16
+ __slots__ = ['__config']
17
+ __config: Config
18
+
19
+ def __init__(self, data_object_factory, config: Config) -> None:
20
+ super().__init__(data_object_factory)
21
+ self.__config = config
22
+ self._data_object_factory = data_object_factory
23
+
24
+ def convert(self, data_object: DataObject) -> Iterable[DataObject]:
25
+ """
26
+ removing null fields from the DataObject
27
+ """
28
+
29
+ passes = True
30
+ for field in self.__config.field_names:
31
+ value = data_object.get_field_by_name(field)
32
+ if value is None:
33
+ passes = False
34
+ break
35
+
36
+ if passes:
37
+ ret = self._data_object_factory(
38
+ data_object.type,
39
+ data_object.id,
40
+ attributes=data_object.attributes
41
+ )
42
+ yield ret
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tol-sdk
3
- Version: 1.7.5b3
3
+ Version: 1.7.5b4
4
4
  Summary: SDK for interaction with ToL, Sanger and external services
5
5
  Author-email: ToL Platforms Team <tol-platforms@sanger.ac.uk>
6
6
  License: MIT
@@ -89,7 +89,7 @@ tol/core/attribute_metadata.py,sha256=wYD3NXDdStrpkUZoyTUiEpp7c14f7MLIcyooT1G4GE
89
89
  tol/core/core_converter.py,sha256=Gn4J507BtqDjnOWV2MFRYGz8YElJAKQItmnCrD72s7k,4504
90
90
  tol/core/data_loader.py,sha256=k-ET1nIohIz6PcADbEn9Y7k9TupoiBYxKDkcAl_9pGY,14710
91
91
  tol/core/data_object.py,sha256=GxG04JMcICaiHU1rufkhoD8jb9YQLhE0QWlFU2ZkQsM,4241
92
- tol/core/data_object_converter.py,sha256=zIGcin3jcoswBfsuUe74C2nxpyzvhHkP4_ZwKZWxh_Y,3765
92
+ tol/core/data_object_converter.py,sha256=FUNUXGi5FIdIe34B0g32hhRf8GGzWTHW7vLhb1GXG6E,3783
93
93
  tol/core/data_source_attribute_metadata.py,sha256=NHvJ_Gmw7-Oej1MoFCohvq4f6emDJ2HF483UmW2Qd_c,4407
94
94
  tol/core/data_source_dict.py,sha256=d-hSmoWTwG6IOc0cQTLap1EBslsxYIWGUd3ScSoeH_Q,1705
95
95
  tol/core/datasource.py,sha256=e9GaeDPfO_Gs7cgQhmNxCiSDlRNf64reegzFebcMNkA,6303
@@ -148,7 +148,7 @@ tol/flows/__init__.py,sha256=M7iSvnBJs6fJ8M38cW0bYQa9WW0TN8FHAMjIHPDNAJ4,166
148
148
  tol/flows/logger.py,sha256=rWXbaknGcPEZRFvC1CiB1qkhFRZsQk435w7VyJ3cpyw,170
149
149
  tol/flows/secrets.py,sha256=1mlbsxaahzYRfVAx3XdztHOmUCtDMSJDzHysdbaCtj0,352
150
150
  tol/flows/sequencing_submissions.py,sha256=ukz_y5be-BCBN2y3JPQ2EK6b3jwOCh-187j-jnw3EUY,11027
151
- tol/flows/converters/__init__.py,sha256=Ee1yMFWwsRoG71ZFCsqtNwF45AR8farmV9h3ERrK994,6154
151
+ tol/flows/converters/__init__.py,sha256=ZSF9i-32mVsV4-rNYjA6TrIEPrgku5svCF8lz6HEqf8,6231
152
152
  tol/flows/converters/benchling_entity_to_benchling_worklist_item_converter_factory.py,sha256=PN27fcvN4JLBnLrtPPAot1cWjAwPQHVcIDoMfPDeKzU,1210
153
153
  tol/flows/converters/benchling_extraction_to_elastic_extraction_converter.py,sha256=S8pbmIeKlcXrLPRJHYBUGP0-Q7jTOV2QQk2TeA2naWo,1966
154
154
  tol/flows/converters/benchling_extraction_to_elastic_sequencing_request_converter.py,sha256=2RiyRvGRSWzpUwEI4p-s0afshJpFUUxPqv2z-nyDSVg,1992
@@ -188,6 +188,7 @@ tol/flows/converters/labwhere_location_to_sts_tray_converter.py,sha256=dSBP5Hfdv
188
188
  tol/flows/converters/mlwh_extraction_to_elastic_extraction_converter.py,sha256=047eU_3Zb3ZlJ8utrk3o_VW7jifv5VO0WxgmFg-QkaE,1195
189
189
  tol/flows/converters/mlwh_run_data_to_elastic_run_data_converter.py,sha256=f0I_N8DH_9Kom4Fpl_O7hKTUPPiURWeyhxWN3XFLmLk,1313
190
190
  tol/flows/converters/mlwh_sequencing_request_to_elastic_sequencing_request_converter.py,sha256=zXYkq37qsvHEY7O1zh2vOoMBdt8hE7T1SuFIOR2DQrM,1209
191
+ tol/flows/converters/skip_null_fields_converter.py,sha256=IlLrX31XWpQ58indW-hk9eApMunu2HGFhMConYDmxtU,1226
191
192
  tol/flows/converters/sts_banked_sample_to_elastic_sample_converter.py,sha256=HK_3Q60E6CKCT8YSWbZXu0Wqs2mmBLYhcD0OEwXM4Qs,688
192
193
  tol/flows/converters/sts_manifest_to_elastic_manifest_converter.py,sha256=Ko3ulOFXXYaZB1YUiwu_HPlP5oPZeI65hViAZ05cioQ,1806
193
194
  tol/flows/converters/sts_project_to_elastic_sample_update_converter.py,sha256=b-hdbusSgbWDg7KwPXOVsaxzznZg0kGJcYpvvs4LDHU,623
@@ -339,9 +340,9 @@ tol/validators/unique_values.py,sha256=o5IrfUNLEmlEp8kpInTtFnTq-FqiHSC9TItKdf-LI
339
340
  tol/validators/unique_whole_organisms.py,sha256=RdqA1GzIf3LTdrmNGGdxv0aW2udDY2P9EaqZb40hhik,5735
340
341
  tol/validators/interfaces/__init__.py,sha256=jtOxnwnwqV_29xjmmMcS_kvlt-pQiWwQYJn2YRP07_w,172
341
342
  tol/validators/interfaces/condition_evaluator.py,sha256=nj8Cb8hi47OBy6OVNfeLhF-Pjwtr8MiOSymYL6hfVes,3766
342
- tol_sdk-1.7.5b3.dist-info/licenses/LICENSE,sha256=RF9Jacy-9BpUAQQ20INhTgtaNBkmdTolYCHtrrkM2-8,1077
343
- tol_sdk-1.7.5b3.dist-info/METADATA,sha256=EJao_K6Vaa6nFKvIM8iw1vx73RocSQXiK4KkuFfQRVM,3081
344
- tol_sdk-1.7.5b3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
345
- tol_sdk-1.7.5b3.dist-info/entry_points.txt,sha256=jH3HfTwxjzog7E3lq8CKpUWGIRY9FSXbyL6CpUmv6D0,36
346
- tol_sdk-1.7.5b3.dist-info/top_level.txt,sha256=PwKMQLphyZNvagBoriVbl8uwHXQl8IC1niawVG0iXMM,10
347
- tol_sdk-1.7.5b3.dist-info/RECORD,,
343
+ tol_sdk-1.7.5b4.dist-info/licenses/LICENSE,sha256=RF9Jacy-9BpUAQQ20INhTgtaNBkmdTolYCHtrrkM2-8,1077
344
+ tol_sdk-1.7.5b4.dist-info/METADATA,sha256=ZR7pMG-jGHoasPgY1zqvDMJMc4rm4rbqRi0hiC5pyN4,3081
345
+ tol_sdk-1.7.5b4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
346
+ tol_sdk-1.7.5b4.dist-info/entry_points.txt,sha256=jH3HfTwxjzog7E3lq8CKpUWGIRY9FSXbyL6CpUmv6D0,36
347
+ tol_sdk-1.7.5b4.dist-info/top_level.txt,sha256=PwKMQLphyZNvagBoriVbl8uwHXQl8IC1niawVG0iXMM,10
348
+ tol_sdk-1.7.5b4.dist-info/RECORD,,