nerdd-module 0.3.40__tar.gz → 0.3.41__tar.gz

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.
Files changed (100) hide show
  1. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/PKG-INFO +1 -1
  2. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/config/models.py +58 -1
  3. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module.egg-info/PKG-INFO +1 -1
  4. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/pyproject.toml +1 -1
  5. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/LICENSE +0 -0
  6. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/README.md +0 -0
  7. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/__init__.py +0 -0
  8. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/cli.py +0 -0
  9. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/config/__init__.py +0 -0
  10. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/config/configuration.py +0 -0
  11. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/config/default_configuration.py +0 -0
  12. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/config/dict_configuration.py +0 -0
  13. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/config/merged_configuration.py +0 -0
  14. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/config/package_configuration.py +0 -0
  15. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/config/search_yaml_configuration.py +0 -0
  16. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/config/yaml_configuration.py +0 -0
  17. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/converters/__init__.py +0 -0
  18. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/converters/basic_type_converter.py +0 -0
  19. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/converters/converter.py +0 -0
  20. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/converters/converter_config.py +0 -0
  21. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/converters/mol_converter.py +0 -0
  22. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/converters/problem_list_converter.py +0 -0
  23. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/converters/representation_converter.py +0 -0
  24. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/converters/source_list_converter.py +0 -0
  25. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/converters/void_converter.py +0 -0
  26. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/input/__init__.py +0 -0
  27. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/input/depth_first_explorer.py +0 -0
  28. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/input/explorer.py +0 -0
  29. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/input/file_reader.py +0 -0
  30. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/input/gzip_reader.py +0 -0
  31. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/input/inchi_reader.py +0 -0
  32. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/input/list_reader.py +0 -0
  33. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/input/mol_reader.py +0 -0
  34. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/input/reader.py +0 -0
  35. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/input/reader_config.py +0 -0
  36. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/input/sdf_reader.py +0 -0
  37. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/input/smiles_reader.py +0 -0
  38. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/input/string_reader.py +0 -0
  39. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/input/tar_reader.py +0 -0
  40. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/input/zip_reader.py +0 -0
  41. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/model/__init__.py +0 -0
  42. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/model/assign_name_step.py +0 -0
  43. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/model/convert_representations_step.py +0 -0
  44. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/model/enforce_schema_step.py +0 -0
  45. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/model/model.py +0 -0
  46. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/model/prediction_step.py +0 -0
  47. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/model/read_input_step.py +0 -0
  48. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/model/write_output_step.py +0 -0
  49. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/output/__init__.py +0 -0
  50. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/output/csv_writer.py +0 -0
  51. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/output/file_writer.py +0 -0
  52. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/output/iterator_writer.py +0 -0
  53. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/output/pandas_writer.py +0 -0
  54. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/output/record_list_writer.py +0 -0
  55. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/output/sdf_writer.py +0 -0
  56. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/output/writer.py +0 -0
  57. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/output/writer_config.py +0 -0
  58. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/polyfills/__init__.py +0 -0
  59. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/polyfills/block_logs.py +0 -0
  60. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/polyfills/files.py +0 -0
  61. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/polyfills/get_entry_points.py +0 -0
  62. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/polyfills/literal.py +0 -0
  63. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/polyfills/typed_dict.py +0 -0
  64. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/polyfills/types.py +0 -0
  65. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/polyfills/version.py +0 -0
  66. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/preprocessing/__init__.py +0 -0
  67. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/preprocessing/check_valid_smiles.py +0 -0
  68. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/preprocessing/chembl_structure_pipeline.py +0 -0
  69. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/preprocessing/filter_by_element.py +0 -0
  70. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/preprocessing/filter_by_weight.py +0 -0
  71. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/preprocessing/preprocessing_step.py +0 -0
  72. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/preprocessing/remove_small_fragments.py +0 -0
  73. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/preprocessing/remove_stereochemistry.py +0 -0
  74. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/preprocessing/sanitize.py +0 -0
  75. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/problem.py +0 -0
  76. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/py.typed +0 -0
  77. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/steps/__init__.py +0 -0
  78. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/steps/map_step.py +0 -0
  79. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/steps/output_step.py +0 -0
  80. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/steps/step.py +0 -0
  81. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/tests/__init__.py +0 -0
  82. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/tests/checks.py +0 -0
  83. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/tests/files.py +0 -0
  84. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/tests/models/AtomicMassModel.py +0 -0
  85. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/tests/models/MolWeightModel.py +0 -0
  86. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/tests/models/__init__.py +0 -0
  87. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/tests/predictions.py +0 -0
  88. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/tests/preprocessing/DummyPreprocessingStep.py +0 -0
  89. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/tests/preprocessing/__init__.py +0 -0
  90. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/tests/representations.py +0 -0
  91. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/util/__init__.py +0 -0
  92. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/util/call_with_mappings.py +0 -0
  93. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/util/package.py +0 -0
  94. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module/version.py +0 -0
  95. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module.egg-info/SOURCES.txt +0 -0
  96. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module.egg-info/dependency_links.txt +0 -0
  97. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module.egg-info/requires.txt +0 -0
  98. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/nerdd_module.egg-info/top_level.txt +0 -0
  99. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/setup.cfg +0 -0
  100. {nerdd_module-0.3.40 → nerdd_module-0.3.41}/tests/test_features.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nerdd-module
3
- Version: 0.3.40
3
+ Version: 0.3.41
4
4
  Summary: Base package to create NERDD modules
5
5
  Author-email: Steffen Hirte <steffen.hirte@univie.ac.at>
6
6
  Maintainer-email: Steffen Hirte <steffen.hirte@univie.ac.at>
@@ -51,15 +51,50 @@ class Choice(BaseModel):
51
51
  label: Optional[str] = None
52
52
 
53
53
 
54
+ JobType = Literal["int", "integer", "float", "bool", "boolean", "str", "string"]
55
+
56
+
54
57
  class JobParameter(BaseModel):
55
58
  name: str
56
- type: str
59
+ type: JobType
57
60
  visible_name: Optional[str] = None
58
61
  help_text: Optional[str] = None
59
62
  default: Any = None
60
63
  required: bool = False
61
64
  choices: Optional[List[Choice]] = None
62
65
 
66
+ def validate_value(self, value: Any) -> None:
67
+ if self.type == ["int", "integer"]:
68
+ if not isinstance(value, int):
69
+ raise ValueError(
70
+ f"Parameter {self.name} must be an integer, got {type(value).__name__}."
71
+ )
72
+ elif self.type == "float":
73
+ if not isinstance(value, (int, float)):
74
+ raise ValueError(
75
+ f"Parameter {self.name} must be a float, got {type(value).__name__}."
76
+ )
77
+ elif self.type in ["bool", "boolean"]:
78
+ if not isinstance(value, bool):
79
+ raise ValueError(
80
+ f"Parameter {self.name} must be a boolean, got {type(value).__name__}."
81
+ )
82
+ elif self.type in ["str", "string"]:
83
+ if not isinstance(value, str):
84
+ raise ValueError(
85
+ f"Parameter {self.name} must be a string, got {type(value).__name__}."
86
+ )
87
+ else:
88
+ raise ValueError(f"Unknown type for parameter {self.name}: {self.type}")
89
+
90
+ if self.choices:
91
+ choice_values = [choice.value for choice in self.choices]
92
+ if value not in choice_values:
93
+ raise ValueError(
94
+ f"Invalid value for parameter {self.name}: {value}. "
95
+ f"Expected one of {choice_values}."
96
+ )
97
+
63
98
 
64
99
  Task = Literal[
65
100
  "molecular_property_prediction",
@@ -207,3 +242,25 @@ class Module(BaseModel):
207
242
  )
208
243
 
209
244
  return values
245
+
246
+ def validate_job_parameters(self, params: dict) -> None:
247
+ """
248
+ Validate the job parameters against the module's job parameters.
249
+ Raises an error if a parameter is missing or has an invalid type.
250
+ """
251
+ # make sure that all job parameters are present
252
+ for param in self.job_parameters:
253
+ if param.name not in params and param.required:
254
+ raise ValueError(f"Missing required job parameter: {param.name}")
255
+
256
+ # check that there are no additional parameters
257
+ param_names = {param.name for param in self.job_parameters}
258
+ for key in params.keys():
259
+ if key not in param_names:
260
+ raise ValueError(f"Unknown job parameter: {key}")
261
+
262
+ # validate all parameters
263
+ for param in self.job_parameters:
264
+ if param.name in params:
265
+ value = params[param.name]
266
+ param.validate_value(value)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nerdd-module
3
- Version: 0.3.40
3
+ Version: 0.3.41
4
4
  Summary: Base package to create NERDD modules
5
5
  Author-email: Steffen Hirte <steffen.hirte@univie.ac.at>
6
6
  Maintainer-email: Steffen Hirte <steffen.hirte@univie.ac.at>
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "nerdd-module"
7
- version = "0.3.40"
7
+ version = "0.3.41"
8
8
  description = "Base package to create NERDD modules"
9
9
  readme = "README.md"
10
10
  license = "BSD-3-Clause"
File without changes
File without changes
File without changes