excel-list-transform 1.0__tar.gz → 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.
Files changed (43) hide show
  1. {excel_list_transform-1.0/excel_list_transform.egg-info → excel_list_transform-1.2}/PKG-INFO +17 -15
  2. {excel_list_transform-1.0 → excel_list_transform-1.2}/README.md +6 -6
  3. {excel_list_transform-1.0 → excel_list_transform-1.2}/README_pypi.md +5 -4
  4. {excel_list_transform-1.0 → excel_list_transform-1.2/excel_list_transform.egg-info}/PKG-INFO +17 -15
  5. excel_list_transform-1.2/excel_list_transform.egg-info/requires.txt +5 -0
  6. {excel_list_transform-1.0 → excel_list_transform-1.2}/pyproject.toml +7 -3
  7. {excel_list_transform-1.0 → excel_list_transform-1.2}/setup.py +6 -10
  8. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/config_excel_list_transform.py +17 -13
  9. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/config_xls_list_transf_name.py +4 -2
  10. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/config_xls_list_transf_num.py +4 -2
  11. excel_list_transform-1.0/excel_list_transform.egg-info/requires.txt +0 -9
  12. {excel_list_transform-1.0 → excel_list_transform-1.2}/LICENSE.txt +0 -0
  13. {excel_list_transform-1.0 → excel_list_transform-1.2}/excel_list_transform.egg-info/SOURCES.txt +0 -0
  14. {excel_list_transform-1.0 → excel_list_transform-1.2}/excel_list_transform.egg-info/dependency_links.txt +0 -0
  15. {excel_list_transform-1.0 → excel_list_transform-1.2}/excel_list_transform.egg-info/top_level.txt +0 -0
  16. {excel_list_transform-1.0 → excel_list_transform-1.2}/setup.cfg +0 -0
  17. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/__init__.py +0 -0
  18. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/__main__.py +0 -0
  19. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/check_indata_common.py +0 -0
  20. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/commontypes.py +0 -0
  21. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/config_enums.py +0 -0
  22. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/config_match.py +0 -0
  23. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/config_read_old.py +0 -0
  24. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/file_extension.py +0 -0
  25. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/file_must_exist.py +0 -0
  26. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/generate_cfg.py +0 -0
  27. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/generate_txt.py +0 -0
  28. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/handle_empty_column.py +0 -0
  29. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/handle_tableio.py +0 -0
  30. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/migrate_cfg.py +0 -0
  31. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/migrate_cfg_warn_hook.py +0 -0
  32. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/num_named_conversion.py +0 -0
  33. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/py.typed +0 -0
  34. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/recode.py +0 -0
  35. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/rewrite_value.py +0 -0
  36. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/row_split_merge.py +0 -0
  37. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/str_to_enum.py +0 -0
  38. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/transform_cmd.py +0 -0
  39. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/transform_func.py +0 -0
  40. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/transform_func_common.py +0 -0
  41. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/transform_func_named.py +0 -0
  42. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/transform_func_num.py +0 -0
  43. {excel_list_transform-1.0 → excel_list_transform-1.2}/src/excel_list_transform/version_information.py +0 -0
@@ -1,25 +1,26 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: excel-list-transform
3
- Version: 1.0
3
+ Version: 1.2
4
4
  Summary: Transform table data with configurable row and column changes.
5
5
  Author: Tom Björkholm
6
6
  Author-email: Tom Björkholm <klausuler_linnet0q@icloud.com>
7
7
  License-Expression: MIT
8
- Project-URL: Source code, https://bitbucket.org/tom-bjorkholm/excel-list-transform
8
+ Project-URL: Source code, https://github.com/tom-bjorkholm/excel-list-transform
9
9
  Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python :: 3.13
11
+ Classifier: Programming Language :: Python :: 3.14
10
12
  Classifier: Operating System :: OS Independent
13
+ Classifier: Intended Audience :: Other Audience
14
+ Classifier: Topic :: Office/Business
15
+ Classifier: Typing :: Typed
11
16
  Requires-Python: >=3.13
12
17
  Description-Content-Type: text/markdown
13
18
  License-File: LICENSE.txt
14
- Requires-Dist: tableio-cfg-json>=0.4
15
- Requires-Dist: tableio>=1.0
16
- Requires-Dist: config-as-json>=1.2
17
- Requires-Dist: versionreporter>=0.2
18
- Requires-Dist: argcomplete>=3.6.3
19
- Requires-Dist: pip>=26.1
20
- Requires-Dist: setuptools>=82.0.1
21
- Requires-Dist: build>=1.5.0
22
- Requires-Dist: wheel>=0.47.0
19
+ Requires-Dist: tableio-cfg-json>=1.4
20
+ Requires-Dist: tableio>=1.1
21
+ Requires-Dist: config-as-json>=1.7
22
+ Requires-Dist: versionreporter>=0.4
23
+ Requires-Dist: argcomplete>=3.7.2
23
24
  Dynamic: author
24
25
  Dynamic: license-file
25
26
  Dynamic: requires-dist
@@ -505,13 +506,14 @@ python3 -m excel_list_transform.recode -i a.txt -o b.txt --from cp1250 --to utf-
505
506
 
506
507
  ## Source code
507
508
 
508
- Source code and tests are available at [https://bitbucket.org/tom-bjorkholm/excel-list-transform](https://bitbucket.org/tom-bjorkholm/excel-list-transform).
509
+ Source code and tests are available at [https://github.com/tom-bjorkholm/excel-list-transform](https://github.com/tom-bjorkholm/excel-list-transform).
509
510
 
510
511
  ## Test summary
511
512
 
512
- - Test result: 1368 passed in 65s (0:01:05)
513
+ - Test result: 1289 passed in 60s (0:01:00)
513
514
  - No flake8 warnings.
514
515
  - No mypy errors found.
516
+ - No pylint warnings.
515
517
  - No python layout warnings.
516
- - Built version(s): 1.0
517
- - Build and test using Python 3.14.5
518
+ - Built version(s): 1.2
519
+ - Build and test using Python 3.14.7
@@ -7,7 +7,7 @@ This python application was born out of an experience at sail racing events. At
7
7
  ## Using it
8
8
 
9
9
  If you want to use it install it using pip from [https://pypi.org/project/excel-list-transform](https://pypi.org/project/excel-list-transform).
10
- There is no need to download anything from Bitbucket to use the application.
10
+ There is no need to download anything from GitHub to use the application.
11
11
 
12
12
  ### Installing on mac and Linux
13
13
 
@@ -52,8 +52,7 @@ How this is done is governed by a configuration file. The application can create
52
52
  This repository uses submodules. Clone it with:
53
53
 
54
54
  ```sh
55
- git clone --recurse-submodules \
56
- git@bitbucket.org:tom-bjorkholm/excel-list-transform.git
55
+ git clone --recurse-submodules git@github.com:tom-bjorkholm/excel-list-transform.git
57
56
  ```
58
57
 
59
58
  If you already cloned without submodules, initialize them with:
@@ -108,9 +107,10 @@ the built and installed application in the virtual environment `./venv`.
108
107
 
109
108
  ## Test summary
110
109
 
111
- - Test result: 1368 passed in 65s (0:01:05)
110
+ - Test result: 1289 passed in 60s (0:01:00)
112
111
  - No flake8 warnings.
113
112
  - No mypy errors found.
113
+ - No pylint warnings.
114
114
  - No python layout warnings.
115
- - Built version(s): 1.0
116
- - Build and test using Python 3.14.5
115
+ - Built version(s): 1.2
116
+ - Build and test using Python 3.14.7
@@ -478,13 +478,14 @@ python3 -m excel_list_transform.recode -i a.txt -o b.txt --from cp1250 --to utf-
478
478
 
479
479
  ## Source code
480
480
 
481
- Source code and tests are available at [https://bitbucket.org/tom-bjorkholm/excel-list-transform](https://bitbucket.org/tom-bjorkholm/excel-list-transform).
481
+ Source code and tests are available at [https://github.com/tom-bjorkholm/excel-list-transform](https://github.com/tom-bjorkholm/excel-list-transform).
482
482
 
483
483
  ## Test summary
484
484
 
485
- - Test result: 1368 passed in 65s (0:01:05)
485
+ - Test result: 1289 passed in 60s (0:01:00)
486
486
  - No flake8 warnings.
487
487
  - No mypy errors found.
488
+ - No pylint warnings.
488
489
  - No python layout warnings.
489
- - Built version(s): 1.0
490
- - Build and test using Python 3.14.5
490
+ - Built version(s): 1.2
491
+ - Build and test using Python 3.14.7
@@ -1,25 +1,26 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: excel-list-transform
3
- Version: 1.0
3
+ Version: 1.2
4
4
  Summary: Transform table data with configurable row and column changes.
5
5
  Author: Tom Björkholm
6
6
  Author-email: Tom Björkholm <klausuler_linnet0q@icloud.com>
7
7
  License-Expression: MIT
8
- Project-URL: Source code, https://bitbucket.org/tom-bjorkholm/excel-list-transform
8
+ Project-URL: Source code, https://github.com/tom-bjorkholm/excel-list-transform
9
9
  Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python :: 3.13
11
+ Classifier: Programming Language :: Python :: 3.14
10
12
  Classifier: Operating System :: OS Independent
13
+ Classifier: Intended Audience :: Other Audience
14
+ Classifier: Topic :: Office/Business
15
+ Classifier: Typing :: Typed
11
16
  Requires-Python: >=3.13
12
17
  Description-Content-Type: text/markdown
13
18
  License-File: LICENSE.txt
14
- Requires-Dist: tableio-cfg-json>=0.4
15
- Requires-Dist: tableio>=1.0
16
- Requires-Dist: config-as-json>=1.2
17
- Requires-Dist: versionreporter>=0.2
18
- Requires-Dist: argcomplete>=3.6.3
19
- Requires-Dist: pip>=26.1
20
- Requires-Dist: setuptools>=82.0.1
21
- Requires-Dist: build>=1.5.0
22
- Requires-Dist: wheel>=0.47.0
19
+ Requires-Dist: tableio-cfg-json>=1.4
20
+ Requires-Dist: tableio>=1.1
21
+ Requires-Dist: config-as-json>=1.7
22
+ Requires-Dist: versionreporter>=0.4
23
+ Requires-Dist: argcomplete>=3.7.2
23
24
  Dynamic: author
24
25
  Dynamic: license-file
25
26
  Dynamic: requires-dist
@@ -505,13 +506,14 @@ python3 -m excel_list_transform.recode -i a.txt -o b.txt --from cp1250 --to utf-
505
506
 
506
507
  ## Source code
507
508
 
508
- Source code and tests are available at [https://bitbucket.org/tom-bjorkholm/excel-list-transform](https://bitbucket.org/tom-bjorkholm/excel-list-transform).
509
+ Source code and tests are available at [https://github.com/tom-bjorkholm/excel-list-transform](https://github.com/tom-bjorkholm/excel-list-transform).
509
510
 
510
511
  ## Test summary
511
512
 
512
- - Test result: 1368 passed in 65s (0:01:05)
513
+ - Test result: 1289 passed in 60s (0:01:00)
513
514
  - No flake8 warnings.
514
515
  - No mypy errors found.
516
+ - No pylint warnings.
515
517
  - No python layout warnings.
516
- - Built version(s): 1.0
517
- - Build and test using Python 3.14.5
518
+ - Built version(s): 1.2
519
+ - Build and test using Python 3.14.7
@@ -0,0 +1,5 @@
1
+ tableio-cfg-json>=1.4
2
+ tableio>=1.1
3
+ config-as-json>=1.7
4
+ versionreporter>=0.4
5
+ argcomplete>=3.7.2
@@ -4,7 +4,6 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "excel-list-transform"
7
- version = "1.0"
8
7
  authors = [
9
8
  { name="Tom Björkholm", email="klausuler_linnet0q@icloud.com" },
10
9
  ]
@@ -14,9 +13,14 @@ license = "MIT"
14
13
  requires-python = ">=3.13"
15
14
  classifiers = [
16
15
  "Programming Language :: Python :: 3",
16
+ "Programming Language :: Python :: 3.13",
17
+ "Programming Language :: Python :: 3.14",
17
18
  "Operating System :: OS Independent",
19
+ "Intended Audience :: Other Audience",
20
+ "Topic :: Office/Business",
21
+ "Typing :: Typed"
18
22
  ]
19
- dynamic = ["dependencies"]
23
+ dynamic = ["dependencies", "version"]
20
24
 
21
25
  [project.urls]
22
- "Source code" = "https://bitbucket.org/tom-bjorkholm/excel-list-transform"
26
+ "Source code" = "https://github.com/tom-bjorkholm/excel-list-transform"
@@ -5,7 +5,7 @@ from setuptools import setup
5
5
 
6
6
  setup(
7
7
  name='excel-list-transform',
8
- version='1.0',
8
+ version='1.2',
9
9
  description='Transform table data with configurable row and column changes.',
10
10
  author='Tom Björkholm',
11
11
  author_email='klausuler_linnet0q@icloud.com',
@@ -14,14 +14,10 @@ setup(
14
14
  package_dir={'excel_list_transform': 'src/excel_list_transform'},
15
15
  package_data={'excel_list_transform': ['src/py.typed']},
16
16
  install_requires=[
17
- 'tableio-cfg-json >= 0.4',
18
- 'tableio >= 1.0',
19
- 'config-as-json >= 1.2',
20
- 'versionreporter >= 0.2',
21
- 'argcomplete >= 3.6.3',
22
- 'pip >= 26.1',
23
- 'setuptools >= 82.0.1',
24
- 'build >= 1.5.0',
25
- 'wheel>=0.47.0'
17
+ 'tableio-cfg-json >= 1.4',
18
+ 'tableio >= 1.1',
19
+ 'config-as-json >= 1.7',
20
+ 'versionreporter >= 0.4',
21
+ 'argcomplete >= 3.7.2'
26
22
  ]
27
23
  )
@@ -18,7 +18,7 @@ from config_as_json import Config, ConfigAutoChangeHook, ConfigNesting, \
18
18
  CallingWholeConfigValidator, MemberValidator, DictKeysValidator, \
19
19
  DictRule, DictForEachValidator, DictVariant, \
20
20
  DiscriminatedDictValidator, ListForEachValidator, \
21
- ListSizeValidator, ListValueTypeValidator
21
+ ListSizeValidator, ListValueTypeValidator, member_path
22
22
  from tableio import CAP_IGNORABLE, CAP_NEEDED, Capabilities, FileAccess, \
23
23
  TableBorderStyle
24
24
  from tableio_cfg_json import TioJsonConfig
@@ -70,28 +70,28 @@ def output_capabilities() -> Capabilities:
70
70
  can_write_borders=CAP_IGNORABLE)
71
71
 
72
72
 
73
- def input_table_factory(from_json_data_text: Optional[str] = None,
73
+ def input_table_factory(*, from_json_data_text: Optional[str] = None,
74
74
  from_json_filename: Optional[PathOrStr] = None,
75
- auto_ch_hook: Optional[ConfigAutoChangeHook] = None,
76
- stderr_file: TextIO = sys.stderr) -> TioJsonConfig:
75
+ stderr_file: TextIO = sys.stderr,
76
+ member_name: Optional[str] = None) -> TioJsonConfig:
77
77
  """Create JSON-backed TableIO configuration for input files."""
78
78
  return TioJsonConfig(capabilities=input_capabilities(),
79
79
  file_access=FileAccess.READ,
80
80
  from_json_data_text=from_json_data_text,
81
81
  from_json_filename=from_json_filename,
82
- auto_ch_hook=auto_ch_hook, stderr_file=stderr_file)
82
+ stderr_file=stderr_file, member_name=member_name)
83
83
 
84
84
 
85
- def output_table_factory(from_json_data_text: Optional[str] = None,
85
+ def output_table_factory(*, from_json_data_text: Optional[str] = None,
86
86
  from_json_filename: Optional[PathOrStr] = None,
87
- auto_ch_hook: Optional[ConfigAutoChangeHook] = None,
88
- stderr_file: TextIO = sys.stderr) -> TioJsonConfig:
87
+ stderr_file: TextIO = sys.stderr,
88
+ member_name: Optional[str] = None) -> TioJsonConfig:
89
89
  """Create JSON-backed TableIO configuration for output files."""
90
90
  return TioJsonConfig(capabilities=output_capabilities(),
91
91
  file_access=FileAccess.CREATE,
92
92
  from_json_data_text=from_json_data_text,
93
93
  from_json_filename=from_json_filename,
94
- auto_ch_hook=auto_ch_hook, stderr_file=stderr_file)
94
+ stderr_file=stderr_file, member_name=member_name)
95
95
 
96
96
 
97
97
  def _invalid_projection(member_name: str, message: str,
@@ -202,7 +202,8 @@ class ConfigExcelListTransform(Config, Generic[Column]):
202
202
  tinfo: Column, from_json_data_text: Optional[str] = None,
203
203
  from_json_filename: Optional[PathOrStr] = None,
204
204
  auto_ch_hook: Optional[ConfigAutoChangeHook] = None,
205
- stderr_file: TextIO = sys.stderr) -> None:
205
+ stderr_file: TextIO = sys.stderr,
206
+ member_name: Optional[str] = None) -> None:
206
207
  """Construct configuration for excel list transform."""
207
208
  assert isinstance(colinfo.tinfo, type(tinfo))
208
209
  hook = EltMigrateCfgWarnHook() if auto_ch_hook is None \
@@ -213,9 +214,11 @@ class ConfigExcelListTransform(Config, Generic[Column]):
213
214
  col2use = deepcopy(colinfo.col_to_use) # dont destroying caller's arg
214
215
  col2userow = deepcopy(colinfo.col_to_use_row)
215
216
  self.max_column_read: int = 20
216
- self.input_table: TioJsonConfig = input_table_factory()
217
+ self.input_table: TioJsonConfig = input_table_factory(
218
+ member_name=member_path(member_name, 'input_table'))
217
219
  self.input_table.character_encoding = 'utf_8_sig'
218
- self.output_table: TioJsonConfig = output_table_factory()
220
+ self.output_table: TioJsonConfig = output_table_factory(
221
+ member_name=member_path(member_name, 'output_table'))
219
222
  self.output_table.character_encoding = 'utf-8'
220
223
  self.in_excel_col_name_strip = True
221
224
  self.in_excel_values_strip = False
@@ -259,7 +262,8 @@ class ConfigExcelListTransform(Config, Generic[Column]):
259
262
  'case': CaseSensitivity.IGNORE_CASE}]
260
263
  super().__init__(from_json_data_text=from_json_data_text,
261
264
  from_json_filename=from_json_filename,
262
- auto_ch_hook=hook, stderr_file=stderr_file)
265
+ auto_ch_hook=hook, stderr_file=stderr_file,
266
+ member_name=member_name)
263
267
 
264
268
  @override
265
269
  def nested_configs(self) -> NestedConfigs:
@@ -21,7 +21,8 @@ class ConfigXlsListTransfName(ConfigExcelListTransform[str]):
21
21
  def __init__(self, from_json_data_text: Optional[str] = None,
22
22
  from_json_filename: Optional[PathOrStr] = None,
23
23
  auto_ch_hook: Optional[ConfigAutoChangeHook] = None,
24
- stderr_file: TextIO = sys.stderr) -> None:
24
+ stderr_file: TextIO = sys.stderr, *,
25
+ member_name: Optional[str] = None) -> None:
25
26
  """Construct configuration for excel list transform."""
26
27
  col_to_use = ['street', 'street number', 'name', 'last name',
27
28
  'Phone', 'Phone', 'Phone', 'Phone', 'Phone',
@@ -43,7 +44,8 @@ class ConfigXlsListTransfName(ConfigExcelListTransform[str]):
43
44
  super().__init__(col_ref=ColumnRef.BY_NAME, colinfo=colinfo, tinfo='a',
44
45
  from_json_data_text=from_json_data_text,
45
46
  from_json_filename=from_json_filename,
46
- auto_ch_hook=auto_ch_hook, stderr_file=stderr_file)
47
+ auto_ch_hook=auto_ch_hook, stderr_file=stderr_file,
48
+ member_name=member_name)
47
49
 
48
50
  @override
49
51
  def get_column_val_steps(self) -> list[MemberValidationStep]:
@@ -37,7 +37,8 @@ class ConfigXlsListTransfNum(ConfigExcelListTransform[int]):
37
37
  def __init__(self, from_json_data_text: Optional[str] = None,
38
38
  from_json_filename: Optional[PathOrStr] = None,
39
39
  auto_ch_hook: Optional[ConfigAutoChangeHook] = None,
40
- stderr_file: TextIO = sys.stderr) -> None:
40
+ stderr_file: TextIO = sys.stderr, *,
41
+ member_name: Optional[str] = None) -> None:
41
42
  """Construct configuration for excel list transform."""
42
43
  self.s04_remove_columns: RuleRemove = [1, 2, 3]
43
44
  self.s06_place_columns_first: RulePlace = [7, 3, 6]
@@ -55,7 +56,8 @@ class ConfigXlsListTransfNum(ConfigExcelListTransform[int]):
55
56
  super().__init__(col_ref=ColumnRef.BY_NUMBER, colinfo=colinfo, tinfo=2,
56
57
  from_json_data_text=from_json_data_text,
57
58
  from_json_filename=from_json_filename,
58
- auto_ch_hook=auto_ch_hook, stderr_file=stderr_file)
59
+ auto_ch_hook=auto_ch_hook, stderr_file=stderr_file,
60
+ member_name=member_name)
59
61
 
60
62
  @override
61
63
  def column_shape_steps(self) -> list[MemberValidationStep]:
@@ -1,9 +0,0 @@
1
- tableio-cfg-json>=0.4
2
- tableio>=1.0
3
- config-as-json>=1.2
4
- versionreporter>=0.2
5
- argcomplete>=3.6.3
6
- pip>=26.1
7
- setuptools>=82.0.1
8
- build>=1.5.0
9
- wheel>=0.47.0