1
0
Fork 0

Adding upstream version 1.4.2.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-04-22 13:23:23 +02:00
parent e344d0b8ae
commit 1ea3e103a7
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
77 changed files with 5760 additions and 0 deletions

View file

@ -0,0 +1,69 @@
"""dsc_datatool.transformer.labler
See `man dsc-datatool-transformer labler`.
Part of dsc_datatool.
:copyright: 2024 OARC, Inc.
"""
import yaml
from dsc_datatool import Transformer, encoding
def _process(label, d):
l = label.get(d.name, None)
if d.values:
if l is None:
return
values = d.values
d.values = {}
for k, v in values.items():
nk = l.get(k, None)
d.values[nk or k] = v
return
if l:
v = l.get(d.value, None)
if v:
d.value = v
for d2 in d.dimensions:
_process(label, d2)
class Labler(Transformer):
label = None
def __init__(self, opts):
Transformer.__init__(self, opts)
if not 'yaml' in opts:
raise Exception('yaml=file option required')
f = open(opts.get('yaml'), 'r', encoding=encoding)
try:
self.label = yaml.full_load(f)
except AttributeError:
self.label = yaml.load(f)
f.close()
def process(self, datasets):
if self.label is None:
return
for dataset in datasets:
label = self.label.get(dataset.name, None)
if label is None:
continue
for d in dataset.dimensions:
_process(label, d)
import sys
if sys.version_info[0] == 3 and sys.version_info[1] == 5: # pragma: no cover
Transformer.__init_subclass__(Labler)