dapla-toolbelt-metadata 0.2.5__py3-none-any.whl → 0.3.0__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.

Potentially problematic release.


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

@@ -41,7 +41,7 @@ def _load_dotenv_file() -> None:
41
41
  def _get_config_item(item: str) -> str | None:
42
42
  """Get a config item. Makes sure all access is logged."""
43
43
  _load_dotenv_file()
44
- value = os.getenv(item)
44
+ value = os.environ.get(item)
45
45
  logger.debug("Config accessed. %s", item)
46
46
  return value
47
47
 
@@ -78,3 +78,8 @@ def get_dapla_service() -> DaplaService | None:
78
78
  def get_oidc_token() -> str | None:
79
79
  """Get the JWT token from the environment."""
80
80
  return _get_config_item("OIDC_TOKEN")
81
+
82
+
83
+ def get_group_context() -> str | None:
84
+ """Get the JWT token from the environment."""
85
+ return _get_config_item("DAPLA_GROUP_CONTEXT")
@@ -42,6 +42,7 @@ from dapla_metadata.datasets.utility.utils import (
42
42
  num_obligatory_variables_fields_completed,
43
43
  )
44
44
  from dapla_metadata.datasets.utility.utils import override_dataset_fields
45
+ from dapla_metadata.datasets.utility.utils import set_dataset_owner
45
46
  from dapla_metadata.datasets.utility.utils import set_default_values_dataset
46
47
  from dapla_metadata.datasets.utility.utils import set_default_values_variables
47
48
 
@@ -189,6 +190,7 @@ class Datadoc:
189
190
  self._set_metadata(existing_metadata or extracted_metadata)
190
191
  set_default_values_variables(self.variables)
191
192
  set_default_values_dataset(self.dataset)
193
+ set_dataset_owner(self.dataset)
192
194
  self._create_variables_lookup()
193
195
 
194
196
  def _get_existing_file_path(
@@ -86,3 +86,30 @@ def get_user_info_for_current_platform() -> UserInfo:
86
86
  "Was not possible to retrieve user information! Some fields may not be set.",
87
87
  )
88
88
  return UnknownUserInfo()
89
+
90
+
91
+ def get_owner() -> str:
92
+ """Returns the owner read from the GROUP_CONTEXT environment variable."""
93
+ if group := config.get_group_context():
94
+ return parse_team_name(group)
95
+ msg = "DAPLA_GROUP_CONTEXT environment variable not found"
96
+ raise OSError(msg)
97
+
98
+
99
+ def parse_team_name(group: str) -> str:
100
+ """Parses the group to get the current team.
101
+
102
+ >>> parse_team_name(dapla-metadata-developers)
103
+ (dapla-metadata)
104
+
105
+ >>> parse_team_name(dapla-metadata-data-admins)
106
+ (dapla-metadata)
107
+
108
+ >>> parse_team_name(dapla-metadata)
109
+ (dapla)
110
+
111
+ >>> parse_team_name(dapla-metadata-not-real-name)
112
+ (dapla-metadata-not-real)
113
+ """
114
+ parts = group.split("-")
115
+ return "-".join(parts[:-2] if group.endswith("data-admins") else parts[:-1])
@@ -14,6 +14,7 @@ from datadoc_model.model import Assessment
14
14
  from datadoc_model.model import DataSetState
15
15
  from datadoc_model.model import VariableRole
16
16
 
17
+ from dapla_metadata.datasets import user_info
17
18
  from dapla_metadata.datasets.utility.constants import (
18
19
  DATASET_FIELDS_FROM_EXISTING_METADATA,
19
20
  )
@@ -139,6 +140,18 @@ def set_default_values_dataset(dataset: model.Dataset) -> None:
139
140
  dataset.contains_personal_data = False
140
141
 
141
142
 
143
+ def set_dataset_owner(dataset: model.Dataset) -> None:
144
+ """Sets the owner of the dataset from the DAPLA_GROUP_CONTEXT enviornment variable.
145
+
146
+ Args:
147
+ dataset: The dataset object to set default values on.
148
+ """
149
+ try:
150
+ dataset.owner = user_info.get_owner()
151
+ except OSError:
152
+ logger.exception("Failed to find environment variable DAPLA_GROUP_CONTEXT")
153
+
154
+
142
155
  def set_variables_inherit_from_dataset(
143
156
  dataset: model.Dataset,
144
157
  variables: list,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dapla-toolbelt-metadata
3
- Version: 0.2.5
3
+ Version: 0.3.0
4
4
  Summary: Dapla Toolbelt Metadata
5
5
  Home-page: https://github.com/statisticsnorway/dapla-toolbelt-metadata
6
6
  License: MIT
@@ -13,6 +13,7 @@ Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Programming Language :: Python :: 3.10
14
14
  Classifier: Programming Language :: Python :: 3.11
15
15
  Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
16
17
  Requires-Dist: arrow (>=1.3.0)
17
18
  Requires-Dist: beautifulsoup4 (>=4.12.3)
18
19
  Requires-Dist: cloudpathlib[gs] (>=0.17.0)
@@ -1,8 +1,8 @@
1
1
  dapla_metadata/__init__.py,sha256=sGQ4msqsvSa-f2fs-og8KRsD97TP_yKz1YT8q9od2HM,137
2
2
  dapla_metadata/datasets/__init__.py,sha256=TvzskpdFC6hGcC9_55URT5jr5wNAPzXuISd2UjJWM_8,280
3
3
  dapla_metadata/datasets/code_list.py,sha256=kp1O6sUiUAP9WKlWY8IgHWx_1IOzJA63WveHqolgKmg,9082
4
- dapla_metadata/datasets/config.py,sha256=0YrhmsCYRWU75bPr5Cb8qgU7HUvIMTEiMXiCoQ-REgQ,2161
5
- dapla_metadata/datasets/core.py,sha256=GVqK7zH94ch9fJvhf04L61nNBk48XpjdmAZrY6lvj6I,21582
4
+ dapla_metadata/datasets/config.py,sha256=b3eK2X33pQAlZi-Wl-2EV-rfDxBFoG_0wbZm0pTMCp8,2308
5
+ dapla_metadata/datasets/core.py,sha256=Ns0O3LY1XWk7KwnhD8bOFigaomrxmUNkXJMw1qqNlpc,21690
6
6
  dapla_metadata/datasets/dapla_dataset_path_info.py,sha256=drPB7EXhAGMSIktX9DfjGoCstX_RQhgiqdk1N-9Lkhg,22058
7
7
  dapla_metadata/datasets/dataset_parser.py,sha256=juXLi8L9wcDmEdjnVESSS8d0i6G9uB4YF_SaJd-lOxs,8008
8
8
  dapla_metadata/datasets/external_sources/__init__.py,sha256=qvIdXwqyEmXNUCB94ZtZXRzifdW4hiXASFFPtC70f6E,83
@@ -11,12 +11,12 @@ dapla_metadata/datasets/model_backwards_compatibility.py,sha256=69RKZwOrSyaBQvMC
11
11
  dapla_metadata/datasets/model_validation.py,sha256=j0yHxiV3QusAwzohUG-pSq-6ojhynnto0z_dD5cSnVs,6875
12
12
  dapla_metadata/datasets/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  dapla_metadata/datasets/statistic_subject_mapping.py,sha256=QdC22DUBOdRgsfmTTEUr9CKCE8fKjMq6-Ezdr6Eof_A,6254
14
- dapla_metadata/datasets/user_info.py,sha256=6cjIhYHUQmCKnhBjvH6GN3B6H3J-pOjc9NdQcs-NGsE,2589
14
+ dapla_metadata/datasets/user_info.py,sha256=gHfTVFJ7MUSelrWSjUrtxxxDTo22tsKU_PqDvm5S0w0,3355
15
15
  dapla_metadata/datasets/utility/__init__.py,sha256=pp6tUcgUbo8iq9OPtFKQrTbLuI3uY7NHptwWSTpasOU,33
16
16
  dapla_metadata/datasets/utility/constants.py,sha256=V9ixHTShK1uBcSesaVoKDSHzAh3CX1ATO-Z3wZHxAKs,2417
17
17
  dapla_metadata/datasets/utility/enums.py,sha256=C-qlB9ZI4Oy3q1ehbuF0GD7lqJJbuaspY_e8BDFu5DU,727
18
- dapla_metadata/datasets/utility/utils.py,sha256=wCRZBB3YwXTB_BaqDABaaeBjVmMZP8z3grjfTxX308k,18018
19
- dapla_toolbelt_metadata-0.2.5.dist-info/LICENSE,sha256=np3IfD5m0ZUofn_kVzDZqliozuiO6wrktw3LRPjyEiI,1073
20
- dapla_toolbelt_metadata-0.2.5.dist-info/METADATA,sha256=z6_fYblDESBWNSTQkEyPiaDfS3xzpSoVgmlfLEUJC5Y,4935
21
- dapla_toolbelt_metadata-0.2.5.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
22
- dapla_toolbelt_metadata-0.2.5.dist-info/RECORD,,
18
+ dapla_metadata/datasets/utility/utils.py,sha256=YwL6xZZSILLw_qqaPt8fAdPWLHo46p2L3oMsgW0wBS4,18449
19
+ dapla_toolbelt_metadata-0.3.0.dist-info/LICENSE,sha256=np3IfD5m0ZUofn_kVzDZqliozuiO6wrktw3LRPjyEiI,1073
20
+ dapla_toolbelt_metadata-0.3.0.dist-info/METADATA,sha256=c-_B34Th7I63RbiMrWrBSgsXS8quJRj1zRmY8cr3iEo,4986
21
+ dapla_toolbelt_metadata-0.3.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
22
+ dapla_toolbelt_metadata-0.3.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.0
2
+ Generator: poetry-core 1.9.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any