nerdd-module 0.3.25__tar.gz → 0.3.26__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 (99) hide show
  1. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/PKG-INFO +1 -1
  2. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/converters/converter.py +7 -7
  3. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/converters/converter_config.py +5 -4
  4. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/output/__init__.py +1 -0
  5. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/output/csv_writer.py +4 -1
  6. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/output/file_writer.py +4 -1
  7. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/output/iterator_writer.py +4 -1
  8. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/output/pandas_writer.py +4 -1
  9. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/output/record_list_writer.py +4 -1
  10. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/output/sdf_writer.py +4 -1
  11. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/output/writer.py +8 -3
  12. nerdd_module-0.3.26/nerdd_module/output/writer_config.py +8 -0
  13. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module.egg-info/PKG-INFO +1 -1
  14. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module.egg-info/SOURCES.txt +1 -0
  15. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/pyproject.toml +1 -1
  16. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/LICENSE +0 -0
  17. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/README.md +0 -0
  18. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/__init__.py +0 -0
  19. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/cli.py +0 -0
  20. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/config/__init__.py +0 -0
  21. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/config/configuration.py +0 -0
  22. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/config/default_configuration.py +0 -0
  23. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/config/dict_configuration.py +0 -0
  24. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/config/merged_configuration.py +0 -0
  25. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/config/models.py +0 -0
  26. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/config/package_configuration.py +0 -0
  27. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/config/search_yaml_configuration.py +0 -0
  28. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/config/yaml_configuration.py +0 -0
  29. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/converters/__init__.py +0 -0
  30. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/converters/basic_type_converter.py +0 -0
  31. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/converters/mol_converter.py +0 -0
  32. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/converters/problem_list_converter.py +0 -0
  33. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/converters/representation_converter.py +0 -0
  34. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/converters/source_list_converter.py +0 -0
  35. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/converters/void_converter.py +0 -0
  36. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/input/__init__.py +0 -0
  37. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/input/depth_first_explorer.py +0 -0
  38. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/input/explorer.py +0 -0
  39. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/input/file_reader.py +0 -0
  40. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/input/gzip_reader.py +0 -0
  41. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/input/inchi_reader.py +0 -0
  42. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/input/list_reader.py +0 -0
  43. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/input/mol_reader.py +0 -0
  44. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/input/reader.py +0 -0
  45. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/input/reader_config.py +0 -0
  46. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/input/sdf_reader.py +0 -0
  47. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/input/smiles_reader.py +0 -0
  48. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/input/string_reader.py +0 -0
  49. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/input/tar_reader.py +0 -0
  50. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/input/zip_reader.py +0 -0
  51. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/model/__init__.py +0 -0
  52. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/model/assign_name_step.py +0 -0
  53. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/model/convert_representations_step.py +0 -0
  54. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/model/enforce_schema_step.py +0 -0
  55. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/model/model.py +0 -0
  56. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/model/read_input_step.py +0 -0
  57. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/model/simple_model.py +0 -0
  58. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/model/write_output_step.py +0 -0
  59. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/polyfills/__init__.py +0 -0
  60. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/polyfills/block_logs.py +0 -0
  61. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/polyfills/files.py +0 -0
  62. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/polyfills/get_entry_points.py +0 -0
  63. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/polyfills/literal.py +0 -0
  64. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/polyfills/typed_dict.py +0 -0
  65. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/polyfills/types.py +0 -0
  66. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/polyfills/version.py +0 -0
  67. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/preprocessing/__init__.py +0 -0
  68. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/preprocessing/check_valid_smiles.py +0 -0
  69. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/preprocessing/chembl_structure_pipeline.py +0 -0
  70. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/preprocessing/filter_by_element.py +0 -0
  71. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/preprocessing/filter_by_weight.py +0 -0
  72. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/preprocessing/preprocessing_step.py +0 -0
  73. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/preprocessing/remove_stereochemistry.py +0 -0
  74. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/preprocessing/sanitize.py +0 -0
  75. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/problem.py +0 -0
  76. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/py.typed +0 -0
  77. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/steps/__init__.py +0 -0
  78. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/steps/map_step.py +0 -0
  79. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/steps/output_step.py +0 -0
  80. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/steps/step.py +0 -0
  81. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/tests/__init__.py +0 -0
  82. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/tests/checks.py +0 -0
  83. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/tests/files.py +0 -0
  84. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/tests/models/AtomicMassModel.py +0 -0
  85. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/tests/models/MolWeightModel.py +0 -0
  86. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/tests/models/__init__.py +0 -0
  87. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/tests/predictions.py +0 -0
  88. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/tests/preprocessing/DummyPreprocessingStep.py +0 -0
  89. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/tests/preprocessing/__init__.py +0 -0
  90. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/tests/representations.py +0 -0
  91. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/util/__init__.py +0 -0
  92. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/util/call_with_mappings.py +0 -0
  93. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/util/package.py +0 -0
  94. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module/version.py +0 -0
  95. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module.egg-info/dependency_links.txt +0 -0
  96. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module.egg-info/requires.txt +0 -0
  97. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/nerdd_module.egg-info/top_level.txt +0 -0
  98. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/setup.cfg +0 -0
  99. {nerdd_module-0.3.25 → nerdd_module-0.3.26}/tests/test_features.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: nerdd-module
3
- Version: 0.3.25
3
+ Version: 0.3.26
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>
@@ -38,17 +38,17 @@ class Converter(ABC):
38
38
  @classmethod
39
39
  def __init_subclass__(
40
40
  cls,
41
- is_abstract: bool = False,
42
41
  **kwargs: Any,
43
42
  ) -> None:
44
43
  super().__init_subclass__(**kwargs)
45
44
 
46
- if hasattr(cls, "config"):
47
- data_types = cls.config["data_types"]
48
- output_formats = cls.config["output_formats"]
49
- else:
50
- data_types = None
51
- output_formats = None
45
+ assert hasattr(
46
+ cls, "config"
47
+ ), "All subclasses of Converter need to have a config attribute of type ConverterConfig"
48
+
49
+ data_types = cls.config["data_types"]
50
+ output_formats = cls.config["output_formats"]
51
+ is_abstract = cls.config.get("is_abstract", False)
52
52
 
53
53
  if not is_abstract:
54
54
  if isinstance(data_types, str) or data_types is ALL:
@@ -1,4 +1,4 @@
1
- from typing import List, Optional, Union
1
+ from typing import List, Union
2
2
 
3
3
  from ..polyfills import Literal, TypedDict
4
4
 
@@ -10,6 +10,7 @@ ALL_TYPE = Literal["ALL"]
10
10
  ALL: ALL_TYPE = "ALL"
11
11
 
12
12
 
13
- class ConverterConfig(TypedDict):
14
- data_types: Optional[Union[str, List[str], ALL_TYPE]]
15
- output_formats: Optional[Union[str, List[str], ALL_TYPE]]
13
+ class ConverterConfig(TypedDict, total=False):
14
+ data_types: Union[str, List[str], ALL_TYPE]
15
+ output_formats: Union[str, List[str], ALL_TYPE]
16
+ is_abstract: bool
@@ -5,3 +5,4 @@ from .pandas_writer import *
5
5
  from .record_list_writer import *
6
6
  from .sdf_writer import *
7
7
  from .writer import *
8
+ from .writer_config import *
@@ -3,11 +3,12 @@ from itertools import chain
3
3
  from typing import IO, Any, Dict, Iterable
4
4
 
5
5
  from .file_writer import FileLike, FileWriter
6
+ from .writer_config import WriterConfig
6
7
 
7
8
  __all__ = ["CsvWriter"]
8
9
 
9
10
 
10
- class CsvWriter(FileWriter, output_format="csv"):
11
+ class CsvWriter(FileWriter):
11
12
  def __init__(self, output_file: FileLike) -> None:
12
13
  super().__init__(output_file, writes_bytes=False)
13
14
 
@@ -22,3 +23,5 @@ class CsvWriter(FileWriter, output_format="csv"):
22
23
  writer.writeheader()
23
24
  for entry in chain([first_entry], entry_iter):
24
25
  writer.writerow(entry)
26
+
27
+ config = WriterConfig(output_format="csv")
@@ -4,6 +4,7 @@ from pathlib import Path
4
4
  from typing import IO, Any, BinaryIO, Iterable, TextIO, Union
5
5
 
6
6
  from .writer import Writer
7
+ from .writer_config import WriterConfig
7
8
 
8
9
  StreamWriter = codecs.getwriter("utf-8")
9
10
 
@@ -13,7 +14,7 @@ __all__ = ["FileWriter", "FileLike"]
13
14
  FileLike = Union[str, Path, TextIO, BinaryIO]
14
15
 
15
16
 
16
- class FileWriter(Writer, is_abstract=True):
17
+ class FileWriter(Writer):
17
18
  """Abstract class for writers."""
18
19
 
19
20
  def __init__(self, output_file: FileLike, writes_bytes: bool = False) -> None:
@@ -39,3 +40,5 @@ class FileWriter(Writer, is_abstract=True):
39
40
  def writes_bytes(self) -> bool:
40
41
  """Whether the writer writes bytes."""
41
42
  return self._writes_bytes
43
+
44
+ config = WriterConfig(is_abstract=True, output_format="file")
@@ -1,13 +1,16 @@
1
1
  from typing import Iterable
2
2
 
3
3
  from .writer import Writer
4
+ from .writer_config import WriterConfig
4
5
 
5
6
  __all__ = ["IteratorWriter"]
6
7
 
7
8
 
8
- class IteratorWriter(Writer, output_format="iterator"):
9
+ class IteratorWriter(Writer):
9
10
  def __init__(self) -> None:
10
11
  pass
11
12
 
12
13
  def write(self, records: Iterable[dict]) -> Iterable[dict]:
13
14
  return records
15
+
16
+ config = WriterConfig(output_format="iterator")
@@ -3,14 +3,17 @@ from typing import Iterable
3
3
  import pandas as pd
4
4
 
5
5
  from .writer import Writer
6
+ from .writer_config import WriterConfig
6
7
 
7
8
  __all__ = ["PandasWriter"]
8
9
 
9
10
 
10
- class PandasWriter(Writer, output_format="pandas"):
11
+ class PandasWriter(Writer):
11
12
  def __init__(self) -> None:
12
13
  pass
13
14
 
14
15
  def write(self, records: Iterable[dict]) -> pd.DataFrame:
15
16
  df = pd.DataFrame(records)
16
17
  return df
18
+
19
+ config = WriterConfig(output_format="pandas")
@@ -1,13 +1,16 @@
1
1
  from typing import Iterable, List
2
2
 
3
3
  from .writer import Writer
4
+ from .writer_config import WriterConfig
4
5
 
5
6
  __all__ = ["RecordListWriter"]
6
7
 
7
8
 
8
- class RecordListWriter(Writer, output_format="record_list"):
9
+ class RecordListWriter(Writer):
9
10
  def __init__(self) -> None:
10
11
  pass
11
12
 
12
13
  def write(self, records: Iterable[dict]) -> List[dict]:
13
14
  return list(records)
15
+
16
+ config = WriterConfig(output_format="record_list")
@@ -3,11 +3,12 @@ from typing import IO, Any, Dict, Iterable
3
3
  from rdkit.Chem import Mol, SDWriter
4
4
 
5
5
  from .file_writer import FileLike, FileWriter
6
+ from .writer_config import WriterConfig
6
7
 
7
8
  __all__ = ["SdfWriter"]
8
9
 
9
10
 
10
- class SdfWriter(FileWriter, output_format="sdf"):
11
+ class SdfWriter(FileWriter):
11
12
  def __init__(self, output_file: FileLike) -> None:
12
13
  super().__init__(output_file, writes_bytes=False)
13
14
 
@@ -40,3 +41,5 @@ class SdfWriter(FileWriter, output_format="sdf"):
40
41
  writer.write(mol)
41
42
  finally:
42
43
  writer.close()
44
+
45
+ config = WriterConfig(output_format="sdf")
@@ -3,7 +3,7 @@ from __future__ import annotations
3
3
  import codecs
4
4
  from abc import ABC, abstractmethod
5
5
  from functools import partial
6
- from typing import Any, Dict, Iterable, List, Optional
6
+ from typing import Any, Dict, Iterable, List
7
7
 
8
8
  from typing_extensions import Protocol
9
9
 
@@ -27,11 +27,16 @@ class Writer(ABC):
27
27
  @classmethod
28
28
  def __init_subclass__(
29
29
  cls,
30
- output_format: Optional[str] = None,
31
- is_abstract: bool = False,
32
30
  **kwargs: Any,
33
31
  ) -> None:
34
32
  super().__init_subclass__(**kwargs)
33
+
34
+ assert hasattr(
35
+ cls, "config"
36
+ ), "All subclasses of Writer need to have a config attribute of type WriterConfig"
37
+ output_format = cls.config["output_format"]
38
+ is_abstract = cls.config.get("is_abstract", False)
39
+
35
40
  if not is_abstract:
36
41
  assert output_format is not None, "output_format must not be None"
37
42
  _factories[output_format] = partial(call_with_mappings, cls)
@@ -0,0 +1,8 @@
1
+ from ..polyfills import TypedDict
2
+
3
+ __all__ = ["WriterConfig"]
4
+
5
+
6
+ class WriterConfig(TypedDict, total=False):
7
+ output_format: str
8
+ is_abstract: bool
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: nerdd-module
3
- Version: 0.3.25
3
+ Version: 0.3.26
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>
@@ -60,6 +60,7 @@ nerdd_module/output/pandas_writer.py
60
60
  nerdd_module/output/record_list_writer.py
61
61
  nerdd_module/output/sdf_writer.py
62
62
  nerdd_module/output/writer.py
63
+ nerdd_module/output/writer_config.py
63
64
  nerdd_module/polyfills/__init__.py
64
65
  nerdd_module/polyfills/block_logs.py
65
66
  nerdd_module/polyfills/files.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "nerdd-module"
7
- version = "0.3.25"
7
+ version = "0.3.26"
8
8
  description = "Base package to create NERDD modules"
9
9
  readme = "README.md"
10
10
  license = { file = "LICENSE" }
File without changes
File without changes
File without changes