python-table-converter 0.2.1__tar.gz → 0.2.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-table-converter
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: A table data converter
5
5
  Home-page: https://github.com/akivajp/python-table-converter
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "python-table-converter"
3
- version = "0.2.1"
3
+ version = "0.2.2"
4
4
  description = "A table data converter"
5
5
  authors = ["Akiva Miura <akiva.miura@gmail.com>"]
6
6
  license = "MIT"
@@ -0,0 +1,2 @@
1
+ __version__ = "0.2.2"
2
+ __version_tuple__ = (0, 2, 2)
@@ -12,8 +12,12 @@ type FieldMap = Mapping[str, str|FieldMap]
12
12
 
13
13
  @dataclasses.dataclass
14
14
  class ProcessConfig:
15
+ assign_constants: FlatFieldMap = dataclasses.field(default_factory=OrderedDict)
15
16
  split_by_newline: FlatFieldMap = dataclasses.field(default_factory=OrderedDict)
16
17
 
18
+ def __setitem__(self, key, value):
19
+ setattr(self, key, value)
20
+
17
21
  @dataclasses.dataclass
18
22
  class Config:
19
23
  map: FieldMap = dataclasses.field(default_factory=OrderedDict)
@@ -53,7 +57,14 @@ def setup_config(
53
57
  ic(loaded)
54
58
  if 'map' in loaded:
55
59
  config.map = flatten(loaded['map'])
56
- if 'process' in loaded:
57
- if 'split_by_newline' in loaded['process']:
58
- config.process.split_by_newline = flatten(loaded['process']['split_by_newline'])
60
+ #if 'process' in loaded:
61
+ dict_process = loaded.get('process')
62
+ if isinstance(dict_process, Mapping):
63
+ for process_key in [
64
+ 'assign_constants',
65
+ 'split_by_newline',
66
+ ]:
67
+ dict_subprocess = dict_process.get(process_key)
68
+ if isinstance(dict_subprocess, Mapping):
69
+ config.process[process_key] = flatten(loaded['process'][process_key])
59
70
  return config
@@ -147,15 +147,21 @@ def map_formats(
147
147
  new_row = OrderedDict(row)
148
148
  for column in dict_formats.keys():
149
149
  template = dict_formats[column]
150
- try:
151
- params = {}
152
- params.update(row['__debug__'])
153
- params.update(row)
154
- formatted = template.format(**params)
155
- except KeyError as e:
156
- ic(e)
157
- formatted = template
158
- raise e
150
+ params = {}
151
+ params.update(row['__debug__'])
152
+ params.update(row)
153
+ formatted = None
154
+ while formatted is None:
155
+ try:
156
+ formatted = template.format(**params)
157
+ except KeyError as e:
158
+ #ic(e)
159
+ #ic(e.args)
160
+ #ic(e.args[0])
161
+ key = e.args[0]
162
+ params[key] = '__undefined__'
163
+ except:
164
+ raise
159
165
  set_field_value(new_row, f'__debug__.{column}', formatted)
160
166
  return new_row
161
167
 
@@ -1,2 +0,0 @@
1
- __version__ = "0.2.1"
2
- __version_tuple__ = (0, 2, 1)