dapla-toolbelt-metadata 0.1.1__tar.gz → 0.1.2__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.

Potentially problematic release.


This version of dapla-toolbelt-metadata might be problematic. Click here for more details.

Files changed (22) hide show
  1. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/PKG-INFO +1 -1
  2. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/pyproject.toml +1 -1
  3. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/src/dataset/__init__.py +1 -3
  4. dapla_toolbelt_metadata-0.1.2/src/dataset/config.py +76 -0
  5. dapla_toolbelt_metadata-0.1.1/src/dataset/config.py +0 -151
  6. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/LICENSE +0 -0
  7. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/README.md +0 -0
  8. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/src/dataset/code_list.py +0 -0
  9. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/src/dataset/core.py +0 -0
  10. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/src/dataset/dapla_dataset_path_info.py +0 -0
  11. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/src/dataset/dataset_parser.py +0 -0
  12. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/src/dataset/external_sources/__init__.py +0 -0
  13. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/src/dataset/external_sources/external_sources.py +0 -0
  14. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/src/dataset/model_backwards_compatibility.py +0 -0
  15. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/src/dataset/model_validation.py +0 -0
  16. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/src/dataset/py.typed +0 -0
  17. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/src/dataset/statistic_subject_mapping.py +0 -0
  18. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/src/dataset/user_info.py +0 -0
  19. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/src/dataset/utility/__init__.py +0 -0
  20. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/src/dataset/utility/constants.py +0 -0
  21. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/src/dataset/utility/enums.py +0 -0
  22. {dapla_toolbelt_metadata-0.1.1 → dapla_toolbelt_metadata-0.1.2}/src/dataset/utility/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dapla-toolbelt-metadata
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: Dapla Toolbelt Metadata
5
5
  Home-page: https://github.com/statisticsnorway/dapla-toolbelt-metadata
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "dapla-toolbelt-metadata"
3
- version = "0.1.1"
3
+ version = "0.1.2"
4
4
  description = "Dapla Toolbelt Metadata"
5
5
  authors = ["Team Metadata <metadata@ssb.no>"]
6
6
  license = "MIT"
@@ -6,6 +6,4 @@ from .core import Datadoc
6
6
  from .dapla_dataset_path_info import DaplaDatasetPathInfo
7
7
  from .model_validation import ObligatoryDatasetWarning
8
8
  from .model_validation import ObligatoryVariableWarning
9
- from .utility.enums import DaplaRegion
10
- from .utility.enums import DaplaService
11
- from .utility.enums import SupportedLanguages
9
+ from .utility import enums
@@ -0,0 +1,76 @@
1
+ """Configuration management for dataset package."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import logging
6
+ import os
7
+ from pathlib import Path
8
+ from pprint import pformat
9
+
10
+ from dotenv import dotenv_values
11
+ from dotenv import load_dotenv
12
+
13
+ from dataset.utility.enums import DaplaRegion
14
+ from dataset.utility.enums import DaplaService
15
+
16
+ logging.basicConfig(level=logging.DEBUG, force=True)
17
+
18
+ logger = logging.getLogger(__name__)
19
+
20
+ DOT_ENV_FILE_PATH = Path(__file__).parent.joinpath(".env")
21
+
22
+ JUPYTERHUB_USER = "JUPYTERHUB_USER"
23
+ DAPLA_REGION = "DAPLA_REGION"
24
+ DAPLA_SERVICE = "DAPLA_SERVICE"
25
+
26
+ env_loaded = False
27
+
28
+
29
+ def _load_dotenv_file() -> None:
30
+ global env_loaded # noqa: PLW0603
31
+ if not env_loaded and DOT_ENV_FILE_PATH.exists():
32
+ load_dotenv(DOT_ENV_FILE_PATH)
33
+ env_loaded = True
34
+ logger.info(
35
+ "Loaded .env file with config keys: \n%s",
36
+ pformat(list(dotenv_values(DOT_ENV_FILE_PATH).keys())),
37
+ )
38
+
39
+
40
+ def _get_config_item(item: str) -> str | None:
41
+ """Get a config item. Makes sure all access is logged."""
42
+ _load_dotenv_file()
43
+ value = os.getenv(item)
44
+ logger.debug("Config accessed. %s", item)
45
+ return value
46
+
47
+
48
+ def get_jupyterhub_user() -> str | None:
49
+ """Get the JupyterHub user name."""
50
+ return _get_config_item(JUPYTERHUB_USER)
51
+
52
+
53
+ def get_statistical_subject_source_url() -> str | None:
54
+ """Get the URL to the statistical subject source."""
55
+ return _get_config_item("DATADOC_STATISTICAL_SUBJECT_SOURCE_URL")
56
+
57
+
58
+ def get_dapla_region() -> DaplaRegion | None:
59
+ """Get the Dapla region we're running on."""
60
+ if region := _get_config_item(DAPLA_REGION):
61
+ return DaplaRegion(region)
62
+
63
+ return None
64
+
65
+
66
+ def get_dapla_service() -> DaplaService | None:
67
+ """Get the Dapla service we're running on."""
68
+ if service := _get_config_item(DAPLA_SERVICE):
69
+ return DaplaService(service)
70
+
71
+ return None
72
+
73
+
74
+ def get_oidc_token() -> str | None:
75
+ """Get the JWT token from the environment."""
76
+ return _get_config_item("OIDC_TOKEN")
@@ -1,151 +0,0 @@
1
- """Configuration management for dataset package."""
2
-
3
- from __future__ import annotations
4
-
5
- import logging
6
- import os
7
- from pathlib import Path
8
- from pprint import pformat
9
- from typing import Literal
10
-
11
- from dotenv import dotenv_values
12
- from dotenv import load_dotenv
13
-
14
- from dataset.utility.enums import DaplaRegion
15
- from dataset.utility.enums import DaplaService
16
-
17
- logging.basicConfig(level=logging.DEBUG, force=True)
18
-
19
- logger = logging.getLogger(__name__)
20
-
21
- DOT_ENV_FILE_PATH = Path(__file__).parent.joinpath(".env")
22
-
23
- JUPYTERHUB_USER = "JUPYTERHUB_USER"
24
- DAPLA_REGION = "DAPLA_REGION"
25
- DAPLA_SERVICE = "DAPLA_SERVICE"
26
-
27
- env_loaded = False
28
-
29
-
30
- def _load_dotenv_file() -> None:
31
- global env_loaded # noqa: PLW0603
32
- if not env_loaded and DOT_ENV_FILE_PATH.exists():
33
- load_dotenv(DOT_ENV_FILE_PATH)
34
- env_loaded = True
35
- logger.info(
36
- "Loaded .env file with config keys: \n%s",
37
- pformat(list(dotenv_values(DOT_ENV_FILE_PATH).keys())),
38
- )
39
-
40
-
41
- def _get_config_item(item: str) -> str | None:
42
- """Get a config item. Makes sure all access is logged."""
43
- _load_dotenv_file()
44
- value = os.getenv(item)
45
- logger.debug("Config accessed. %s", item)
46
- return value
47
-
48
-
49
- def get_jupyterhub_user() -> str | None:
50
- """Get the JupyterHub user name."""
51
- return _get_config_item(JUPYTERHUB_USER)
52
-
53
-
54
- def get_datadoc_dataset_path() -> str | None:
55
- """Get the path to the dataset."""
56
- return _get_config_item("DATADOC_DATASET_PATH")
57
-
58
-
59
- def get_log_level() -> int:
60
- """Get the log level."""
61
- # Magic numbers as defined in Python's stdlib logging
62
- log_levels: dict[str, int] = {
63
- "CRITICAL": 50,
64
- "ERROR": 40,
65
- "WARNING": 30,
66
- "INFO": 20,
67
- "DEBUG": 10,
68
- }
69
- if level_string := _get_config_item("DATADOC_LOG_LEVEL"):
70
- try:
71
- return log_levels[level_string.upper()]
72
- except KeyError:
73
- return log_levels["INFO"]
74
- else:
75
- return log_levels["INFO"]
76
-
77
-
78
- def get_log_formatter() -> Literal["simple", "json"]:
79
- """Get log formatter configuration."""
80
- if (
81
- _get_config_item("DATADOC_ENABLE_JSON_FORMATTING") == "True"
82
- or get_dapla_region() is not None
83
- ):
84
- return "json"
85
- return "simple"
86
-
87
-
88
- def get_jupyterhub_service_prefix() -> str | None:
89
- """Get the JupyterHub service prefix."""
90
- return _get_config_item("JUPYTERHUB_SERVICE_PREFIX")
91
-
92
-
93
- def get_app_name() -> str:
94
- """Get the name of the app. Defaults to 'Datadoc'."""
95
- return _get_config_item("DATADOC_APP_NAME") or "Datadoc"
96
-
97
-
98
- def get_jupyterhub_http_referrer() -> str | None:
99
- """Get the JupyterHub http referrer."""
100
- return _get_config_item("JUPYTERHUB_HTTP_REFERER")
101
-
102
-
103
- def get_port() -> int:
104
- """Get the port to run the app on."""
105
- return int(_get_config_item("DATADOC_PORT") or 7002)
106
-
107
-
108
- def get_statistical_subject_source_url() -> str | None:
109
- """Get the URL to the statistical subject source."""
110
- return _get_config_item("DATADOC_STATISTICAL_SUBJECT_SOURCE_URL")
111
-
112
-
113
- def get_dapla_region() -> DaplaRegion | None:
114
- """Get the Dapla region we're running on."""
115
- if region := _get_config_item(DAPLA_REGION):
116
- return DaplaRegion(region)
117
-
118
- return None
119
-
120
-
121
- def get_dapla_service() -> DaplaService | None:
122
- """Get the Dapla service we're running on."""
123
- if service := _get_config_item(DAPLA_SERVICE):
124
- return DaplaService(service)
125
-
126
- return None
127
-
128
-
129
- def get_oidc_token() -> str | None:
130
- """Get the JWT token from the environment."""
131
- return _get_config_item("OIDC_TOKEN")
132
-
133
-
134
- def get_unit_code() -> int | None:
135
- """The code for the Unit Type code list in Klass."""
136
- return int(_get_config_item("DATADOC_UNIT_CODE") or 702)
137
-
138
-
139
- def get_measurement_unit_code() -> int | None:
140
- """The code for the Measurement Unit code list in Klass."""
141
- return int(_get_config_item("DATADOC_MEASUREMENT_UNIT") or 303)
142
-
143
-
144
- def get_organisational_unit_code() -> int | None:
145
- """The code for the organisational units code list in Klass."""
146
- return int(_get_config_item("DATADOC_ORGANISATIONAL_UNIT_CODE") or 83)
147
-
148
-
149
- def get_data_source_code() -> int | None:
150
- """The code for the organisational units code list in Klass."""
151
- return int(_get_config_item("DATADOC_DATA_SOURCE_CODE") or 712)