ghga-transpiler 2.1.3__tar.gz → 2.1.5__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 (29) hide show
  1. {ghga_transpiler-2.1.3/src/ghga_transpiler.egg-info → ghga_transpiler-2.1.5}/PKG-INFO +6 -3
  2. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/pyproject.toml +7 -5
  3. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/src/ghga_transpiler/__init__.py +1 -1
  4. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/src/ghga_transpiler/cli.py +1 -1
  5. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/src/ghga_transpiler/config/config.py +2 -0
  6. ghga_transpiler-2.1.5/src/ghga_transpiler/configs/0.10.yaml +135 -0
  7. ghga_transpiler-2.1.5/src/ghga_transpiler/configs/1.0.yaml +135 -0
  8. ghga_transpiler-2.1.5/src/ghga_transpiler/configs/1.1.yaml +135 -0
  9. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/src/ghga_transpiler/core.py +3 -1
  10. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/src/ghga_transpiler/io.py +2 -0
  11. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/src/ghga_transpiler/transformations.py +1 -1
  12. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5/src/ghga_transpiler.egg-info}/PKG-INFO +6 -3
  13. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/src/ghga_transpiler.egg-info/SOURCES.txt +3 -0
  14. ghga_transpiler-2.1.5/src/ghga_transpiler.egg-info/requires.txt +13 -0
  15. ghga_transpiler-2.1.3/src/ghga_transpiler.egg-info/requires.txt +0 -6
  16. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/LICENSE +0 -0
  17. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/README.md +0 -0
  18. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/setup.cfg +0 -0
  19. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/src/ghga_transpiler/__main__.py +0 -0
  20. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/src/ghga_transpiler/config/__init__.py +0 -0
  21. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/src/ghga_transpiler/config/exceptions.py +0 -0
  22. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/src/ghga_transpiler/configs/__init__.py +0 -0
  23. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/src/ghga_transpiler.egg-info/dependency_links.txt +0 -0
  24. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/src/ghga_transpiler.egg-info/entry_points.txt +0 -0
  25. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/src/ghga_transpiler.egg-info/top_level.txt +0 -0
  26. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/tests/test_convert_workbook.py +0 -0
  27. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/tests/test_create_config.py +0 -0
  28. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/tests/test_io.py +0 -0
  29. {ghga_transpiler-2.1.3 → ghga_transpiler-2.1.5}/tests/test_process_workbook.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ghga_transpiler
3
- Version: 2.1.3
3
+ Version: 2.1.5
4
4
  Summary: GHGA-Transpiler - excel to JSON converter
5
5
  Author-email: "German Human Genome Phenome Archive (GHGA)" <contact@ghga.de>
6
6
  License: Apache 2.0
@@ -13,15 +13,18 @@ Classifier: License :: OSI Approved :: Apache Software License
13
13
  Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
14
14
  Classifier: Topic :: Software Development :: Libraries
15
15
  Classifier: Intended Audience :: Developers
16
- Requires-Python: >=3.12
16
+ Requires-Python: >=3.9
17
17
  Description-Content-Type: text/markdown
18
18
  License-File: LICENSE
19
19
  Requires-Dist: typer>=0.12
20
20
  Requires-Dist: openpyxl==3.*,>=3.1.2
21
21
  Requires-Dist: defusedxml==0.*,>=0.7
22
- Requires-Dist: pydantic<3,>=2
22
+ Requires-Dist: pydantic<3,>=2.6
23
23
  Requires-Dist: PyYAML~=6.0
24
24
  Requires-Dist: semver==3.*
25
+ Requires-Dist: exceptiongroup>=1.0.0; python_version < "3.11"
26
+ Requires-Dist: tomli>=2.0.0; python_version < "3.11"
27
+ Requires-Dist: eval-type-backport==0.2.0; python_version < "3.10"
25
28
 
26
29
 
27
30
  [![tests](https://github.com/ghga-de/ghga-transpiler/actions/workflows/tests.yaml/badge.svg)](https://github.com/ghga-de/ghga-transpiler/actions/workflows/unit_and_int_tests.yaml)
@@ -9,7 +9,7 @@ readme = "README.md"
9
9
  authors = [
10
10
  { name = "German Human Genome Phenome Archive (GHGA)", email = "contact@ghga.de" },
11
11
  ]
12
- requires-python = ">=3.12"
12
+ requires-python = ">=3.9"
13
13
  classifiers = [
14
14
  "Development Status :: 1 - Planning",
15
15
  "Operating System :: POSIX :: Linux",
@@ -21,15 +21,18 @@ classifiers = [
21
21
  "Intended Audience :: Developers",
22
22
  ]
23
23
  name = "ghga_transpiler"
24
- version = "2.1.3"
24
+ version = "2.1.5"
25
25
  description = "GHGA-Transpiler - excel to JSON converter"
26
26
  dependencies = [
27
27
  "typer >= 0.12",
28
28
  "openpyxl >= 3.1.2, == 3.*",
29
29
  "defusedxml >= 0.7, == 0.*",
30
- "pydantic >=2, <3",
30
+ "pydantic >=2.6, <3",
31
31
  "PyYAML ~= 6.0",
32
32
  "semver == 3.*",
33
+ "exceptiongroup>=1.0.0; python_version < \"3.11\"",
34
+ "tomli>= 2.0.0; python_version < \"3.11\"",
35
+ "eval-type-backport==0.2.0; python_version < \"3.10\"",
33
36
  ]
34
37
 
35
38
  [project.license]
@@ -47,7 +50,7 @@ where = [
47
50
  ]
48
51
 
49
52
  [tool.setuptools.package-data]
50
- configs = [
53
+ "ghga_transpiler.configs" = [
51
54
  "*.yaml",
52
55
  ]
53
56
 
@@ -66,7 +69,6 @@ src = [
66
69
  "examples",
67
70
  "scripts",
68
71
  ]
69
- target-version = "py312"
70
72
 
71
73
  [tool.ruff.lint]
72
74
  fixable = [
@@ -18,7 +18,7 @@
18
18
 
19
19
  from openpyxl.xml import DEFUSEDXML
20
20
 
21
- __version__ = "2.1.1"
21
+ __version__ = "2.1.5"
22
22
 
23
23
  if not DEFUSEDXML:
24
24
  raise RuntimeError(
@@ -45,7 +45,7 @@ def transpile(
45
45
  dir_okay=False,
46
46
  readable=True,
47
47
  ),
48
- output_file: Optional[Path] = typer.Argument( # noqa: UP007 (typer issue #461)
48
+ output_file: Optional[Path] = typer.Argument(
49
49
  None, help="The path to output file (JSON).", dir_okay=False
50
50
  ),
51
51
  force: bool = typer.Option(
@@ -17,6 +17,8 @@
17
17
 
18
18
  """Module to process config file"""
19
19
 
20
+ from __future__ import annotations
21
+
20
22
  from collections import Counter
21
23
  from collections.abc import Callable
22
24
  from importlib import resources
@@ -0,0 +1,135 @@
1
+ ghga_metadata_version: 0.10.0
2
+ default_settings:
3
+ header_row: 1
4
+ start_row: 7
5
+ start_column: 1
6
+ transformations:
7
+ attributes: !!python/object/apply:ghga_transpiler.transformations.to_attributes []
8
+ format: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
9
+ forward_or_reverse: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
10
+ worksheets:
11
+ - settings:
12
+ end_column: 6
13
+ name: analyses
14
+ sheet_name: Analysis
15
+ - settings:
16
+ end_column: 8
17
+ name: analysis_process_output_files
18
+ sheet_name: AnalysisProcessOutputFile
19
+ - settings:
20
+ end_column: 5
21
+ name: analysis_processes
22
+ transformations:
23
+ study_input_files: !!python/object/apply:ghga_transpiler.transformations.to_list []
24
+ sample_input_files: !!python/object/apply:ghga_transpiler.transformations.to_list []
25
+ sequencing_process_input_files: !!python/object/apply:ghga_transpiler.transformations.to_list []
26
+ sheet_name: AnalysisProcess
27
+ - settings:
28
+ end_column: 9
29
+ name: biospecimens
30
+ transformations:
31
+ vital_status_at_sampling: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
32
+ age_at_sampling: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
33
+ sheet_name: Biospecimen
34
+ - settings:
35
+ end_column: 9
36
+ name: conditions
37
+ transformations:
38
+ disease_or_healthy: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
39
+ case_control_status: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
40
+ mutant_or_wildtype: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
41
+ sheet_name: Condition
42
+ - settings:
43
+ end_column: 3
44
+ name: data_access_committees
45
+ sheet_name: DataAccessCommittee
46
+ - settings:
47
+ end_column: 8
48
+ name: data_access_policies
49
+ transformations:
50
+ data_use_modifiers: !!python/object/apply:ghga_transpiler.transformations.to_snake_case_list []
51
+ data_use_permission: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
52
+ sheet_name: DataAccessPolicy
53
+ - settings:
54
+ end_column: 5
55
+ name: datasets
56
+ transformations:
57
+ types: !!python/object/apply:ghga_transpiler.transformations.to_list []
58
+ sheet_name: Dataset
59
+ - settings:
60
+ end_column: 8
61
+ name: individuals
62
+ transformations:
63
+ ancestries: !!python/object/apply:ghga_transpiler.transformations.to_list []
64
+ phenotypic_features: !!python/object/apply:ghga_transpiler.transformations.to_list []
65
+ karyotype: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
66
+ sex: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
67
+ sheet_name: Individual
68
+ - settings:
69
+ end_column: 14
70
+ name: library_preparation_protocols
71
+ transformations:
72
+ target_regions: !!python/object/apply:ghga_transpiler.transformations.to_list []
73
+ attributes: !!python/object/apply:ghga_transpiler.transformations.to_attributes []
74
+ library_layout: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
75
+ library_type: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
76
+ library_selection: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
77
+ library_preparation_kit_retail_name: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
78
+ rnaseq_strandedness: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
79
+ primer: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
80
+ end_bias: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
81
+ sheet_name: LibraryPreparationProtocol
82
+ - settings:
83
+ end_column: 9
84
+ name: publications
85
+ transformations:
86
+ xref: !!python/object/apply:ghga_transpiler.transformations.to_list []
87
+ sheet_name: Publication
88
+ - settings:
89
+ end_column: 8
90
+ name: sample_files
91
+ sheet_name: SampleFile
92
+ - settings:
93
+ end_column: 10
94
+ name: samples
95
+ transformations:
96
+ xref: !!python/object/apply:ghga_transpiler.transformations.to_list []
97
+ type: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
98
+ sheet_name: Sample
99
+ - settings:
100
+ end_column: 7
101
+ name: sequencing_experiments
102
+ sheet_name: SequencingExperiment
103
+ - settings:
104
+ end_column: 8
105
+ name: sequencing_process_files
106
+ sheet_name: SequencingProcessFile
107
+ - settings:
108
+ end_column: 10
109
+ name: sequencing_processes
110
+ sheet_name: SequencingProcess
111
+ - settings:
112
+ end_column: 20
113
+ name: sequencing_protocols
114
+ transformations:
115
+ instrument_model: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
116
+ flow_cell_type: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
117
+ umi_barcode_read: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
118
+ sample_barcode_read: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
119
+ sheet_name: SequencingProtocol
120
+ - settings:
121
+ end_column: 6
122
+ name: studies
123
+ transformations:
124
+ affiliations: !!python/object/apply:ghga_transpiler.transformations.to_list []
125
+ attributes: !!python/object/apply:ghga_transpiler.transformations.to_attributes []
126
+ type: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
127
+ sheet_name: Study
128
+ - settings:
129
+ end_column: 8
130
+ name: study_files
131
+ sheet_name: StudyFile
132
+ - settings:
133
+ end_column: 4
134
+ name: trios
135
+ sheet_name: Trio
@@ -0,0 +1,135 @@
1
+ ghga_metadata_version: 1.0.0
2
+ default_settings:
3
+ header_row: 1
4
+ start_row: 7
5
+ start_column: 1
6
+ transformations:
7
+ attributes: !!python/object/apply:ghga_transpiler.transformations.to_attributes []
8
+ format: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
9
+ forward_or_reverse: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
10
+ worksheets:
11
+ - settings:
12
+ end_column: 6
13
+ name: analyses
14
+ sheet_name: Analysis
15
+ - settings:
16
+ end_column: 9
17
+ name: analysis_process_output_files
18
+ sheet_name: AnalysisProcessOutputFile
19
+ - settings:
20
+ end_column: 5
21
+ name: analysis_processes
22
+ transformations:
23
+ study_input_files: !!python/object/apply:ghga_transpiler.transformations.to_list []
24
+ sample_input_files: !!python/object/apply:ghga_transpiler.transformations.to_list []
25
+ sequencing_process_input_files: !!python/object/apply:ghga_transpiler.transformations.to_list []
26
+ sheet_name: AnalysisProcess
27
+ - settings:
28
+ end_column: 10
29
+ name: biospecimens
30
+ transformations:
31
+ vital_status_at_sampling: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
32
+ age_at_sampling: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
33
+ sheet_name: Biospecimen
34
+ - settings:
35
+ end_column: 9
36
+ name: conditions
37
+ transformations:
38
+ disease_or_healthy: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
39
+ case_control_status: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
40
+ mutant_or_wildtype: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
41
+ sheet_name: Condition
42
+ - settings:
43
+ end_column: 3
44
+ name: data_access_committees
45
+ sheet_name: DataAccessCommittee
46
+ - settings:
47
+ end_column: 8
48
+ name: data_access_policies
49
+ transformations:
50
+ data_use_modifiers: !!python/object/apply:ghga_transpiler.transformations.to_snake_case_list []
51
+ data_use_permission: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
52
+ sheet_name: DataAccessPolicy
53
+ - settings:
54
+ end_column: 5
55
+ name: datasets
56
+ transformations:
57
+ types: !!python/object/apply:ghga_transpiler.transformations.to_list []
58
+ sheet_name: Dataset
59
+ - settings:
60
+ end_column: 6
61
+ name: individuals
62
+ transformations:
63
+ ancestries: !!python/object/apply:ghga_transpiler.transformations.to_list []
64
+ phenotypic_features: !!python/object/apply:ghga_transpiler.transformations.to_list []
65
+ karyotype: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
66
+ sex: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
67
+ sheet_name: Individual
68
+ - settings:
69
+ end_column: 14
70
+ name: library_preparation_protocols
71
+ transformations:
72
+ target_regions: !!python/object/apply:ghga_transpiler.transformations.to_list []
73
+ attributes: !!python/object/apply:ghga_transpiler.transformations.to_attributes []
74
+ library_layout: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
75
+ library_type: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
76
+ library_selection: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
77
+ library_preparation_kit_retail_name: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
78
+ rnaseq_strandedness: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
79
+ primer: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
80
+ end_bias: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
81
+ sheet_name: LibraryPreparationProtocol
82
+ - settings:
83
+ end_column: 9
84
+ name: publications
85
+ transformations:
86
+ xref: !!python/object/apply:ghga_transpiler.transformations.to_list []
87
+ sheet_name: Publication
88
+ - settings:
89
+ end_column: 9
90
+ name: sample_files
91
+ sheet_name: SampleFile
92
+ - settings:
93
+ end_column: 10
94
+ name: samples
95
+ transformations:
96
+ xref: !!python/object/apply:ghga_transpiler.transformations.to_list []
97
+ type: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
98
+ sheet_name: Sample
99
+ - settings:
100
+ end_column: 7
101
+ name: sequencing_experiments
102
+ sheet_name: SequencingExperiment
103
+ - settings:
104
+ end_column: 9
105
+ name: sequencing_process_files
106
+ sheet_name: SequencingProcessFile
107
+ - settings:
108
+ end_column: 12
109
+ name: sequencing_processes
110
+ sheet_name: SequencingProcess
111
+ - settings:
112
+ end_column: 17
113
+ name: sequencing_protocols
114
+ transformations:
115
+ instrument_model: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
116
+ flow_cell_type: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
117
+ umi_barcode_read: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
118
+ sample_barcode_read: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
119
+ sheet_name: SequencingProtocol
120
+ - settings:
121
+ end_column: 6
122
+ name: studies
123
+ transformations:
124
+ affiliations: !!python/object/apply:ghga_transpiler.transformations.to_list []
125
+ attributes: !!python/object/apply:ghga_transpiler.transformations.to_attributes []
126
+ type: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
127
+ sheet_name: Study
128
+ - settings:
129
+ end_column: 9
130
+ name: study_files
131
+ sheet_name: StudyFile
132
+ - settings:
133
+ end_column: 4
134
+ name: trios
135
+ sheet_name: Trio
@@ -0,0 +1,135 @@
1
+ ghga_metadata_version: 1.1.0
2
+ default_settings:
3
+ header_row: 1
4
+ start_row: 7
5
+ start_column: 1
6
+ transformations:
7
+ attributes: !!python/object/apply:ghga_transpiler.transformations.to_attributes []
8
+ format: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
9
+ forward_or_reverse: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
10
+ worksheets:
11
+ - settings:
12
+ end_column: 6
13
+ name: analyses
14
+ sheet_name: Analysis
15
+ - settings:
16
+ end_column: 9
17
+ name: analysis_process_output_files
18
+ sheet_name: AnalysisProcessOutputFile
19
+ - settings:
20
+ end_column: 5
21
+ name: analysis_processes
22
+ transformations:
23
+ study_input_files: !!python/object/apply:ghga_transpiler.transformations.to_list []
24
+ sample_input_files: !!python/object/apply:ghga_transpiler.transformations.to_list []
25
+ sequencing_process_input_files: !!python/object/apply:ghga_transpiler.transformations.to_list []
26
+ sheet_name: AnalysisProcess
27
+ - settings:
28
+ end_column: 10
29
+ name: biospecimens
30
+ transformations:
31
+ vital_status_at_sampling: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
32
+ age_at_sampling: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
33
+ sheet_name: Biospecimen
34
+ - settings:
35
+ end_column: 9
36
+ name: conditions
37
+ transformations:
38
+ disease_or_healthy: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
39
+ case_control_status: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
40
+ mutant_or_wildtype: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
41
+ sheet_name: Condition
42
+ - settings:
43
+ end_column: 3
44
+ name: data_access_committees
45
+ sheet_name: DataAccessCommittee
46
+ - settings:
47
+ end_column: 8
48
+ name: data_access_policies
49
+ transformations:
50
+ data_use_modifiers: !!python/object/apply:ghga_transpiler.transformations.to_snake_case_list []
51
+ data_use_permission: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
52
+ sheet_name: DataAccessPolicy
53
+ - settings:
54
+ end_column: 5
55
+ name: datasets
56
+ transformations:
57
+ types: !!python/object/apply:ghga_transpiler.transformations.to_list []
58
+ sheet_name: Dataset
59
+ - settings:
60
+ end_column: 6
61
+ name: individuals
62
+ transformations:
63
+ ancestries: !!python/object/apply:ghga_transpiler.transformations.to_list []
64
+ phenotypic_features: !!python/object/apply:ghga_transpiler.transformations.to_list []
65
+ karyotype: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
66
+ sex: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
67
+ sheet_name: Individual
68
+ - settings:
69
+ end_column: 14
70
+ name: library_preparation_protocols
71
+ transformations:
72
+ target_regions: !!python/object/apply:ghga_transpiler.transformations.to_list []
73
+ attributes: !!python/object/apply:ghga_transpiler.transformations.to_attributes []
74
+ library_layout: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
75
+ library_type: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
76
+ library_selection: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
77
+ library_preparation_kit_retail_name: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
78
+ rnaseq_strandedness: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
79
+ primer: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
80
+ end_bias: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
81
+ sheet_name: LibraryPreparationProtocol
82
+ - settings:
83
+ end_column: 9
84
+ name: publications
85
+ transformations:
86
+ xref: !!python/object/apply:ghga_transpiler.transformations.to_list []
87
+ sheet_name: Publication
88
+ - settings:
89
+ end_column: 9
90
+ name: sample_files
91
+ sheet_name: SampleFile
92
+ - settings:
93
+ end_column: 10
94
+ name: samples
95
+ transformations:
96
+ xref: !!python/object/apply:ghga_transpiler.transformations.to_list []
97
+ type: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
98
+ sheet_name: Sample
99
+ - settings:
100
+ end_column: 7
101
+ name: sequencing_experiments
102
+ sheet_name: SequencingExperiment
103
+ - settings:
104
+ end_column: 9
105
+ name: sequencing_process_files
106
+ sheet_name: SequencingProcessFile
107
+ - settings:
108
+ end_column: 12
109
+ name: sequencing_processes
110
+ sheet_name: SequencingProcess
111
+ - settings:
112
+ end_column: 17
113
+ name: sequencing_protocols
114
+ transformations:
115
+ instrument_model: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
116
+ flow_cell_type: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
117
+ umi_barcode_read: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
118
+ sample_barcode_read: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
119
+ sheet_name: SequencingProtocol
120
+ - settings:
121
+ end_column: 6
122
+ name: studies
123
+ transformations:
124
+ affiliations: !!python/object/apply:ghga_transpiler.transformations.to_list []
125
+ attributes: !!python/object/apply:ghga_transpiler.transformations.to_attributes []
126
+ type: !!python/object/apply:ghga_transpiler.transformations.to_snake_case []
127
+ sheet_name: Study
128
+ - settings:
129
+ end_column: 9
130
+ name: study_files
131
+ sheet_name: StudyFile
132
+ - settings:
133
+ end_column: 4
134
+ name: trios
135
+ sheet_name: Trio
@@ -17,6 +17,8 @@
17
17
 
18
18
  """This module contains functionalities for processing excel sheets into json object."""
19
19
 
20
+ from __future__ import annotations
21
+
20
22
  from collections.abc import Callable
21
23
  from importlib import resources
22
24
 
@@ -97,7 +99,7 @@ def convert_rows(header, rows) -> list[dict]:
97
99
  return [
98
100
  {
99
101
  key: value
100
- for key, value in zip(header, row, strict=False)
102
+ for key, value in zip(header, row)
101
103
  if value is not None and value != ""
102
104
  }
103
105
  for row in rows
@@ -17,6 +17,8 @@
17
17
 
18
18
  """IO related functionality"""
19
19
 
20
+ from __future__ import annotations
21
+
20
22
  import json
21
23
  import sys
22
24
  from importlib import resources
@@ -36,7 +36,7 @@ def to_attributes() -> Callable:
36
36
  def split_one(value: str) -> dict:
37
37
  """Returns a dictionary with key, value as keys, splitted string as values"""
38
38
  splitted = (elem.strip() for elem in value.split("="))
39
- return dict(zip(("key", "value"), splitted, strict=False))
39
+ return dict(zip(("key", "value"), splitted))
40
40
 
41
41
  def split_mult(value: str) -> list[dict]:
42
42
  """Converts string to attributes"""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ghga_transpiler
3
- Version: 2.1.3
3
+ Version: 2.1.5
4
4
  Summary: GHGA-Transpiler - excel to JSON converter
5
5
  Author-email: "German Human Genome Phenome Archive (GHGA)" <contact@ghga.de>
6
6
  License: Apache 2.0
@@ -13,15 +13,18 @@ Classifier: License :: OSI Approved :: Apache Software License
13
13
  Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
14
14
  Classifier: Topic :: Software Development :: Libraries
15
15
  Classifier: Intended Audience :: Developers
16
- Requires-Python: >=3.12
16
+ Requires-Python: >=3.9
17
17
  Description-Content-Type: text/markdown
18
18
  License-File: LICENSE
19
19
  Requires-Dist: typer>=0.12
20
20
  Requires-Dist: openpyxl==3.*,>=3.1.2
21
21
  Requires-Dist: defusedxml==0.*,>=0.7
22
- Requires-Dist: pydantic<3,>=2
22
+ Requires-Dist: pydantic<3,>=2.6
23
23
  Requires-Dist: PyYAML~=6.0
24
24
  Requires-Dist: semver==3.*
25
+ Requires-Dist: exceptiongroup>=1.0.0; python_version < "3.11"
26
+ Requires-Dist: tomli>=2.0.0; python_version < "3.11"
27
+ Requires-Dist: eval-type-backport==0.2.0; python_version < "3.10"
25
28
 
26
29
 
27
30
  [![tests](https://github.com/ghga-de/ghga-transpiler/actions/workflows/tests.yaml/badge.svg)](https://github.com/ghga-de/ghga-transpiler/actions/workflows/unit_and_int_tests.yaml)
@@ -16,6 +16,9 @@ src/ghga_transpiler.egg-info/top_level.txt
16
16
  src/ghga_transpiler/config/__init__.py
17
17
  src/ghga_transpiler/config/config.py
18
18
  src/ghga_transpiler/config/exceptions.py
19
+ src/ghga_transpiler/configs/0.10.yaml
20
+ src/ghga_transpiler/configs/1.0.yaml
21
+ src/ghga_transpiler/configs/1.1.yaml
19
22
  src/ghga_transpiler/configs/__init__.py
20
23
  tests/test_convert_workbook.py
21
24
  tests/test_create_config.py
@@ -0,0 +1,13 @@
1
+ typer>=0.12
2
+ openpyxl==3.*,>=3.1.2
3
+ defusedxml==0.*,>=0.7
4
+ pydantic<3,>=2.6
5
+ PyYAML~=6.0
6
+ semver==3.*
7
+
8
+ [:python_version < "3.10"]
9
+ eval-type-backport==0.2.0
10
+
11
+ [:python_version < "3.11"]
12
+ exceptiongroup>=1.0.0
13
+ tomli>=2.0.0
@@ -1,6 +0,0 @@
1
- typer>=0.12
2
- openpyxl==3.*,>=3.1.2
3
- defusedxml==0.*,>=0.7
4
- pydantic<3,>=2
5
- PyYAML~=6.0
6
- semver==3.*
File without changes