excel-list-transform 0.8.2__tar.gz → 0.8.4__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 (46) hide show
  1. {excel_list_transform-0.8.2/excel_list_transform.egg-info → excel_list_transform-0.8.4}/PKG-INFO +12 -10
  2. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/README.md +1 -1
  3. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/README_pypi.md +3 -1
  4. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4/excel_list_transform.egg-info}/PKG-INFO +12 -10
  5. excel_list_transform-0.8.4/excel_list_transform.egg-info/requires.txt +13 -0
  6. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/pyproject.toml +1 -1
  7. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/setup.py +9 -9
  8. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/commontypes.py +11 -11
  9. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/config_excel_list_transform.py +33 -27
  10. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/config_factory.py +3 -3
  11. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/generate_cfg.py +26 -26
  12. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/handle_excel.py +2 -2
  13. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/transform_cmd.py +2 -2
  14. excel_list_transform-0.8.2/excel_list_transform.egg-info/requires.txt +0 -13
  15. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/LICENSE.txt +0 -0
  16. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/excel_list_transform.egg-info/SOURCES.txt +0 -0
  17. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/excel_list_transform.egg-info/dependency_links.txt +0 -0
  18. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/excel_list_transform.egg-info/top_level.txt +0 -0
  19. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/setup.cfg +0 -0
  20. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/__init__.py +0 -0
  21. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/__main__.py +0 -0
  22. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/assert_dict_equal.py +0 -0
  23. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/check_indata_common.py +0 -0
  24. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/config.py +0 -0
  25. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/config_auto_change_hook.py +0 -0
  26. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/config_enums.py +0 -0
  27. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/config_xls_list_transf_name.py +0 -0
  28. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/config_xls_list_transf_num.py +0 -0
  29. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/file_extension.py +0 -0
  30. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/file_must_exist.py +0 -0
  31. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/generate_txt.py +0 -0
  32. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/handle_csv.py +0 -0
  33. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/handle_empty_column.py +0 -0
  34. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/migrate_cfg.py +0 -0
  35. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/migrate_cfg_warn_hook.py +0 -0
  36. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/num_named_conversion.py +0 -0
  37. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/py.typed +0 -0
  38. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/recode.py +0 -0
  39. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/rewrite_value.py +0 -0
  40. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/row_split_merge.py +0 -0
  41. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/str_to_enum.py +0 -0
  42. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/transform_func.py +0 -0
  43. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/transform_func_common.py +0 -0
  44. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/transform_func_named.py +0 -0
  45. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/transform_func_num.py +0 -0
  46. {excel_list_transform-0.8.2 → excel_list_transform-0.8.4}/src/excel_list_transform/version_information.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: excel-list-transform
3
- Version: 0.8.2
3
+ Version: 0.8.4
4
4
  Summary: Transform a list in excel or CSV
5
5
  Author: Tom Björkholm
6
6
  Author-email: Tom Björkholm <klausuler_linnet0q@icloud.com>
@@ -12,17 +12,17 @@ Requires-Python: <3.13,>=3.12
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE.txt
14
14
  Requires-Dist: openpyxl>=3.1.5
15
- Requires-Dist: types-openpyxl>=3.1.5.20250602
15
+ Requires-Dist: types-openpyxl>=3.1.5.20250919
16
16
  Requires-Dist: pylightxl>=1.61
17
- Requires-Dist: XlsxWriter>=3.2.5
18
- Requires-Dist: argcomplete>=3.6.2
19
- Requires-Dist: pypi-simple>=1.6.1
20
- Requires-Dist: requests>=2.32.4
21
- Requires-Dist: types-requests>=2.32.4.20250611
17
+ Requires-Dist: XlsxWriter>=3.2.9
18
+ Requires-Dist: argcomplete>=3.6.3
19
+ Requires-Dist: pypi-simple>=1.8.0
20
+ Requires-Dist: requests>=2.32.5
21
+ Requires-Dist: types-requests>=2.32.4.20250913
22
22
  Requires-Dist: packaging>=25.0
23
- Requires-Dist: pip>=25.1.1
23
+ Requires-Dist: pip>=25.3
24
24
  Requires-Dist: setuptools>=80.9.0
25
- Requires-Dist: build>=1.2.2.post1
25
+ Requires-Dist: build>=1.3.0
26
26
  Requires-Dist: wheel>=0.45.1
27
27
  Dynamic: author
28
28
  Dynamic: license-file
@@ -92,6 +92,8 @@ pip install --upgrade excel-list-transform
92
92
  | 0.8.1 | 23 Jul 2025 | 3.11.x | Backport 0.8.3 to Python 3.11 |
93
93
  | 0.8.2 | 23 Jul 2025 | 3.12.x | Backport 0.8.3 to Python 3.12 |
94
94
  | 0.8.3 | 23 Jul 2025 | 3.13 or newer | Add split-row and merge-row |
95
+ | 0.8.4 | 23 Nov 2025 | 3.12.x | Backport 0.8.5 to Python 3.12 |
96
+ | 0.8.5 | 23 Nov 2025 | 3.13 or newer | Adapted to Python 3.14 |
95
97
 
96
98
  ## Running the application
97
99
 
@@ -509,4 +511,4 @@ Source code and tests are available at [https://bitbucket.org/tom-bjorkholm/exce
509
511
  * Test result: 4119 passed in 14s
510
512
  * No Flake8 warnings.
511
513
  * No mypy errors found.
512
- * 0.8.2 built and tested using python version: Python 3.12.6
514
+ * 0.8.4 built and tested using python version: Python 3.12.6
@@ -82,4 +82,4 @@ After running doBuild.zsh you can do manual test of the built and installed appl
82
82
  * Test result: 4119 passed in 14s
83
83
  * No Flake8 warnings.
84
84
  * No mypy errors found.
85
- * 0.8.2 built and tested using python version: Python 3.12.6
85
+ * 0.8.4 built and tested using python version: Python 3.12.6
@@ -61,6 +61,8 @@ pip install --upgrade excel-list-transform
61
61
  | 0.8.1 | 23 Jul 2025 | 3.11.x | Backport 0.8.3 to Python 3.11 |
62
62
  | 0.8.2 | 23 Jul 2025 | 3.12.x | Backport 0.8.3 to Python 3.12 |
63
63
  | 0.8.3 | 23 Jul 2025 | 3.13 or newer | Add split-row and merge-row |
64
+ | 0.8.4 | 23 Nov 2025 | 3.12.x | Backport 0.8.5 to Python 3.12 |
65
+ | 0.8.5 | 23 Nov 2025 | 3.13 or newer | Adapted to Python 3.14 |
64
66
 
65
67
  ## Running the application
66
68
 
@@ -478,4 +480,4 @@ Source code and tests are available at [https://bitbucket.org/tom-bjorkholm/exce
478
480
  * Test result: 4119 passed in 14s
479
481
  * No Flake8 warnings.
480
482
  * No mypy errors found.
481
- * 0.8.2 built and tested using python version: Python 3.12.6
483
+ * 0.8.4 built and tested using python version: Python 3.12.6
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: excel-list-transform
3
- Version: 0.8.2
3
+ Version: 0.8.4
4
4
  Summary: Transform a list in excel or CSV
5
5
  Author: Tom Björkholm
6
6
  Author-email: Tom Björkholm <klausuler_linnet0q@icloud.com>
@@ -12,17 +12,17 @@ Requires-Python: <3.13,>=3.12
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE.txt
14
14
  Requires-Dist: openpyxl>=3.1.5
15
- Requires-Dist: types-openpyxl>=3.1.5.20250602
15
+ Requires-Dist: types-openpyxl>=3.1.5.20250919
16
16
  Requires-Dist: pylightxl>=1.61
17
- Requires-Dist: XlsxWriter>=3.2.5
18
- Requires-Dist: argcomplete>=3.6.2
19
- Requires-Dist: pypi-simple>=1.6.1
20
- Requires-Dist: requests>=2.32.4
21
- Requires-Dist: types-requests>=2.32.4.20250611
17
+ Requires-Dist: XlsxWriter>=3.2.9
18
+ Requires-Dist: argcomplete>=3.6.3
19
+ Requires-Dist: pypi-simple>=1.8.0
20
+ Requires-Dist: requests>=2.32.5
21
+ Requires-Dist: types-requests>=2.32.4.20250913
22
22
  Requires-Dist: packaging>=25.0
23
- Requires-Dist: pip>=25.1.1
23
+ Requires-Dist: pip>=25.3
24
24
  Requires-Dist: setuptools>=80.9.0
25
- Requires-Dist: build>=1.2.2.post1
25
+ Requires-Dist: build>=1.3.0
26
26
  Requires-Dist: wheel>=0.45.1
27
27
  Dynamic: author
28
28
  Dynamic: license-file
@@ -92,6 +92,8 @@ pip install --upgrade excel-list-transform
92
92
  | 0.8.1 | 23 Jul 2025 | 3.11.x | Backport 0.8.3 to Python 3.11 |
93
93
  | 0.8.2 | 23 Jul 2025 | 3.12.x | Backport 0.8.3 to Python 3.12 |
94
94
  | 0.8.3 | 23 Jul 2025 | 3.13 or newer | Add split-row and merge-row |
95
+ | 0.8.4 | 23 Nov 2025 | 3.12.x | Backport 0.8.5 to Python 3.12 |
96
+ | 0.8.5 | 23 Nov 2025 | 3.13 or newer | Adapted to Python 3.14 |
95
97
 
96
98
  ## Running the application
97
99
 
@@ -509,4 +511,4 @@ Source code and tests are available at [https://bitbucket.org/tom-bjorkholm/exce
509
511
  * Test result: 4119 passed in 14s
510
512
  * No Flake8 warnings.
511
513
  * No mypy errors found.
512
- * 0.8.2 built and tested using python version: Python 3.12.6
514
+ * 0.8.4 built and tested using python version: Python 3.12.6
@@ -0,0 +1,13 @@
1
+ openpyxl>=3.1.5
2
+ types-openpyxl>=3.1.5.20250919
3
+ pylightxl>=1.61
4
+ XlsxWriter>=3.2.9
5
+ argcomplete>=3.6.3
6
+ pypi-simple>=1.8.0
7
+ requests>=2.32.5
8
+ types-requests>=2.32.4.20250913
9
+ packaging>=25.0
10
+ pip>=25.3
11
+ setuptools>=80.9.0
12
+ build>=1.3.0
13
+ wheel>=0.45.1
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "excel-list-transform"
7
- version = "0.8.2"
7
+ version = "0.8.4"
8
8
  authors = [
9
9
  { name="Tom Björkholm", email="klausuler_linnet0q@icloud.com" },
10
10
  ]
@@ -5,7 +5,7 @@ from setuptools import setup
5
5
 
6
6
  setup(
7
7
  name='excel-list-transform',
8
- version='0.8.2',
8
+ version='0.8.4',
9
9
  description='Transform a list in excel or CSV.',
10
10
  author='Tom Björkholm',
11
11
  author_email='klausuler_linnet0q@icloud.com',
@@ -15,17 +15,17 @@ setup(
15
15
  package_data={'excel_list_transform': ['src/py.typed']},
16
16
  install_requires=[
17
17
  'openpyxl >= 3.1.5',
18
- 'types-openpyxl >= 3.1.5.20250602',
18
+ 'types-openpyxl >= 3.1.5.20250919',
19
19
  'pylightxl >= 1.61',
20
- 'XlsxWriter >= 3.2.5',
21
- 'argcomplete >= 3.6.2',
22
- 'pypi-simple >= 1.6.1',
23
- 'requests >= 2.32.4',
24
- 'types-requests >= 2.32.4.20250611',
20
+ 'XlsxWriter >= 3.2.9',
21
+ 'argcomplete >= 3.6.3',
22
+ 'pypi-simple >= 1.8.0',
23
+ 'requests >= 2.32.5',
24
+ 'types-requests >= 2.32.4.20250913',
25
25
  'packaging >= 25.0',
26
- 'pip >= 25.1.1',
26
+ 'pip >= 25.3',
27
27
  'setuptools >= 80.9.0',
28
- 'build >= 1.2.2.post1',
28
+ 'build >= 1.3.0',
29
29
  'wheel>=0.45.1'
30
30
  ]
31
31
  )
@@ -5,7 +5,7 @@
5
5
  # MIT License
6
6
 
7
7
 
8
- from typing import TypeAlias, Optional, cast, Sequence, Mapping, TypeVar, \
8
+ from typing import Optional, cast, Sequence, Mapping, TypeVar, \
9
9
  Any
10
10
  from datetime import datetime
11
11
  # imports needed by mypy, but not by python:
@@ -13,20 +13,20 @@ from typing import Union, List, Dict # pylint: disable=unused-import,ungrouped-
13
13
 
14
14
 
15
15
  # types used to describe input and output data
16
- Value: TypeAlias = Optional[str | int | float | datetime]
17
- NumRow: TypeAlias = list[Value]
18
- NumRowSeq: TypeAlias = Sequence[Value]
19
- NameRow: TypeAlias = dict[str, Value]
16
+ type Value = Optional[str | int | float | datetime]
17
+ type NumRow = list[Value]
18
+ type NumRowSeq = Sequence[Value]
19
+ type NameRow = dict[str, Value]
20
20
  Row = TypeVar('Row', NumRow, NameRow)
21
- NameRowMap: TypeAlias = Mapping[str, Value]
22
- NumData: TypeAlias = list[NumRow]
23
- NumDataSeq: TypeAlias = list[NumRowSeq]
24
- NameData: TypeAlias = list[NameRow]
25
- NameDataMap: TypeAlias = Sequence[NameRowMap]
21
+ type NameRowMap = Mapping[str, Value]
22
+ type NumData = list[NumRow]
23
+ type NumDataSeq = list[NumRowSeq]
24
+ type NameData = list[NameRow]
25
+ type NameDataMap = Sequence[NameRowMap]
26
26
  type Data[Row] = list[Row]
27
27
  DataCov = TypeVar('DataCov', NumDataSeq, NameDataMap)
28
28
 
29
- JsonType: TypeAlias = \
29
+ type JsonType = \
30
30
  'Union[None, int, str, bool, List[JsonType], Dict[str, JsonType]]'
31
31
 
32
32
  # helper functions
@@ -8,7 +8,7 @@
8
8
  import sys
9
9
  from copy import deepcopy
10
10
  from enum import Enum
11
- from typing import Optional, Callable, TypeAlias, TypeVar, NamedTuple, \
11
+ from typing import Optional, Callable, TypeVar, NamedTuple, \
12
12
  Generic, TypedDict
13
13
  from csv import Dialect
14
14
  from excel_list_transform.config import Config, ParseConverter, \
@@ -21,36 +21,42 @@ from excel_list_transform.config_auto_change_hook import ConfigAutoChangeHook
21
21
  from excel_list_transform.migrate_cfg_warn_hook import MigrateCfgWarnHook
22
22
 
23
23
 
24
- CsvSpec: TypeAlias = dict[str, Optional[str]]
24
+ type CsvSpec = dict[str, Optional[str]]
25
25
  Column = TypeVar('Column', int, str)
26
- SingleRule: TypeAlias = dict[str, Optional[Column | str]]
27
- Rule: TypeAlias = list[SingleRule[Column]]
28
- SingleRuleSplit: TypeAlias = dict[str, Optional[Column | str | SplitWhere]]
29
- SingleRuleRowSplit = \
30
- TypedDict('SingleRuleRowSplit', {'column': Column,
31
- 'separators': list[str],
32
- 'not_separators': list[str]})
33
- RuleSplit: TypeAlias = list[SingleRuleSplit[Column]]
34
- RuleRowSplit: TypeAlias = list[SingleRuleRowSplit[Column]]
35
- RuleOrder: TypeAlias = list[str]
36
- RulePlace: TypeAlias = list[int]
37
- RuleRemove: TypeAlias = RulePlace
38
- RulePlaceOrOrder: TypeAlias = RulePlace | RuleOrder
39
- SingleRuleRewrite: TypeAlias = dict[str,
40
- Optional[Column | str |
41
- list[str] |
42
- RewriteKind |
43
- CaseSensitivity]]
44
- RuleRewrite: TypeAlias = list[SingleRuleRewrite[Column]]
45
- SingleRuleMerge: TypeAlias = dict[str, list[Column] | str]
46
- RuleMerge: TypeAlias = list[SingleRuleMerge[Column]]
47
- DupCheckKeyArg: TypeAlias = \
26
+ type SingleRule[Column] = dict[str, Optional[Column | str]]
27
+ type Rule[Column] = list[SingleRule[Column]]
28
+ type SingleRuleSplit[Column] = dict[str, Optional[Column | str | SplitWhere]]
29
+
30
+
31
+ class SingleRuleRowSplit[Column](TypedDict):
32
+ """Sinle rule for splitting a column."""
33
+
34
+ column: Column
35
+ separators: list[str]
36
+ not_separators: list[str]
37
+
38
+
39
+ type RuleSplit[Column] = list[SingleRuleSplit[Column]]
40
+ type RuleRowSplit[Column] = list[SingleRuleRowSplit[Column]]
41
+ type RuleOrder = list[str]
42
+ type RulePlace = list[int]
43
+ type RuleRemove = RulePlace
44
+ type RulePlaceOrOrder = RulePlace | RuleOrder
45
+ type SingleRuleRewrite[Column] = dict[str,
46
+ Optional[Column | str |
47
+ list[str] |
48
+ RewriteKind |
49
+ CaseSensitivity]]
50
+ type RuleRewrite[Column] = list[SingleRuleRewrite[Column]]
51
+ type SingleRuleMerge[Column] = dict[str, list[Column] | str]
52
+ type RuleMerge[Column] = list[SingleRuleMerge[Column]]
53
+ type DupCheckKeyArg[Column] = \
48
54
  SingleRule[Column] | SingleRuleMerge[Column] | SingleRuleSplit[Column]
49
- DupCheckKey: TypeAlias = \
55
+ type DupCheckKey[Column] = \
50
56
  Callable[[DupCheckKeyArg[Column]], Column | list[Column]]
51
- IncrCheckKey: TypeAlias = \
57
+ type IncrCheckKey[Column] = \
52
58
  Callable[[SingleRuleMerge[Column]], Column | list[Column]]
53
- NoDupKeydType: TypeAlias = \
59
+ type NoDupKeydType[Column] = \
54
60
  Rule[Column] | RuleMerge[Column] | RuleSplit[Column]
55
61
 
56
62
 
@@ -5,7 +5,7 @@
5
5
  # MIT License
6
6
 
7
7
 
8
- from typing import Optional, TypeAlias
8
+ from typing import Optional
9
9
  import sys
10
10
  from json import loads as json_loads
11
11
  from json import JSONDecodeError
@@ -21,10 +21,10 @@ from excel_list_transform.config_auto_change_hook import ConfigAutoChangeHook
21
21
  from excel_list_transform.migrate_cfg_warn_hook import MigrateCfgWarnHook
22
22
 
23
23
 
24
- Configs: TypeAlias = \
24
+ type Configs = \
25
25
  dict[ColumnRef,
26
26
  type[ConfigXlsListTransfName] | type[ConfigXlsListTransfNum]]
27
- DerivedConfig: TypeAlias = ConfigXlsListTransfName | ConfigXlsListTransfNum
27
+ type DerivedConfig = ConfigXlsListTransfName | ConfigXlsListTransfNum
28
28
 
29
29
  _CONFIGS: Configs = {ColumnRef.BY_NAME: ConfigXlsListTransfName,
30
30
  ColumnRef.BY_NUMBER: ConfigXlsListTransfNum}
@@ -17,7 +17,7 @@ from excel_list_transform.config_xls_list_transf_name import \
17
17
  from excel_list_transform.config_xls_list_transf_num import \
18
18
  ConfigXlsListTransfNum
19
19
 
20
- syntax_phone_fix: str = '''
20
+ SYNTAX_PHONE_FIX: str = '''
21
21
  The phone number has to be in international format '+' followed by only
22
22
  digits for RRS, but the sailors filling in the form sometimes use
23
23
  national format (no + and no country code). Also the sailors filling
@@ -29,7 +29,7 @@ phone numbers. For other countries s09_rewrite_columns need to be
29
29
  adjusted.
30
30
  '''
31
31
 
32
- syntax_o2x_common: str = '''
32
+ SYNYAX_O2X_COMMON: str = '''
33
33
 
34
34
  Column names are changed from another language (Swedish) and sometimes from
35
35
  a more instuctive naming to the names understood by RRS.
@@ -38,15 +38,15 @@ The events does not use divisions, boat names and WhatsApp. Thus the
38
38
  form did not ask for these. They are inserted as empty columns to please
39
39
  RRS.
40
40
 
41
- ''' + syntax_phone_fix
41
+ ''' + SYNTAX_PHONE_FIX
42
42
 
43
- syntax_only_o2r_common: str = '''
43
+ SYNTAX_ONLY_O2R_COMMON: str = '''
44
44
  This an example of taking a registration list from the excel file received
45
45
  from office forms or google forms and transforming it for importing into
46
46
  RRS ( https://www.racingrulesofsailing.org ).
47
47
  '''
48
48
 
49
- by_name_common: str = '''
49
+ BY_NAME_COMMON: str = '''
50
50
 
51
51
  s10_column_order both tells the order the columns shall be written
52
52
  in, and what columns to write out. The columns not listed here
@@ -56,16 +56,16 @@ This configuration files references columns "BY_NAME", which is the
56
56
  preferred way to reference columns.
57
57
  '''
58
58
 
59
- by_number_common: str = '''
59
+ BY_NUMBER_COMMON: str = '''
60
60
 
61
61
  This configuration files references columns "BY_NUMBER".
62
62
  The preferred way to reference columns in configuration files
63
63
  is "BY_NAME".
64
64
  '''
65
65
 
66
- syntax_o2r_common: str = syntax_only_o2r_common + syntax_o2x_common
66
+ SYNTAX_O2R_COMMON: str = SYNTAX_ONLY_O2R_COMMON + SYNYAX_O2X_COMMON
67
67
 
68
- syntax_sw2r_common: str = '''
68
+ SYNTAX_SW2R_COMMON: str = '''
69
69
 
70
70
  In this example the input data is exported as JSON or XML from SailWave
71
71
  https://www.sailwave.com . The data as a list in excel format is then
@@ -77,9 +77,9 @@ before it can be imported into RRS https://www.racingrulesofsailing.org/
77
77
  The Name column is split into First Name and Last Name columns.
78
78
  The column WhatsApp is added with no data.
79
79
 
80
- ''' + syntax_phone_fix
80
+ ''' + SYNTAX_PHONE_FIX
81
81
 
82
- syntax_sa2r_common: str = '''
82
+ SYNTAX_SA2R_COMMON: str = '''
83
83
 
84
84
  In this example the input data is exported from SailArena to RRS.
85
85
  This input format is a comma separated values text file, with the
@@ -87,7 +87,7 @@ old character encoding scheme cp1252.
87
87
 
88
88
  The only fixes needed are to read CSV in cp1252 encoding, fix the
89
89
  format of the phone number and save to excel.
90
- ''' + syntax_phone_fix
90
+ ''' + SYNTAX_PHONE_FIX
91
91
 
92
92
 
93
93
  def rewrite_phone_46_cfg(cfg: ConfigXlsListTransfName | ConfigXlsListTransfNum,
@@ -171,8 +171,8 @@ def generate_syntax_sw2r_name(filename: str, colref: ColumnRef) -> None:
171
171
  cfg.write(to_json_filename=filename)
172
172
 
173
173
 
174
- TXT_SW2R_NAME = syntax_sw2r_common + by_name_common
175
- TXT_SA2R_NAME = syntax_sa2r_common + by_name_common
174
+ TXT_SW2R_NAME = SYNTAX_SW2R_COMMON + BY_NAME_COMMON
175
+ TXT_SA2R_NAME = SYNTAX_SA2R_COMMON + BY_NAME_COMMON
176
176
 
177
177
 
178
178
  def generate_syntax_sa2r_num(filename: str, colref: ColumnRef) -> None:
@@ -224,8 +224,8 @@ def generate_syntax_sw2r_num(filename: str, colref: ColumnRef) -> None:
224
224
  cfg.write(to_json_filename=filename)
225
225
 
226
226
 
227
- TXT_SW2R_NUM = syntax_sw2r_common + by_number_common
228
- TXT_SA2R_NUM = syntax_sa2r_common + by_number_common
227
+ TXT_SW2R_NUM = SYNTAX_SW2R_COMMON + BY_NUMBER_COMMON
228
+ TXT_SA2R_NUM = SYNTAX_SA2R_COMMON + BY_NUMBER_COMMON
229
229
 
230
230
 
231
231
  def generate_syntax_o2r_name(filename: str, colref: ColumnRef) -> None:
@@ -260,7 +260,7 @@ def generate_syntax_o2r_name(filename: str, colref: ColumnRef) -> None:
260
260
  cfg.write(to_json_filename=filename)
261
261
 
262
262
 
263
- TXT_O2R_NAME = syntax_o2r_common + by_name_common
263
+ TXT_O2R_NAME = SYNTAX_O2R_COMMON + BY_NAME_COMMON
264
264
 
265
265
 
266
266
  def generate_syntax_o2r_num(filename: str, colref: ColumnRef) -> None:
@@ -293,15 +293,15 @@ def generate_syntax_o2r_num(filename: str, colref: ColumnRef) -> None:
293
293
  cfg.write(to_json_filename=filename)
294
294
 
295
295
 
296
- TXT_O2R_NUM = syntax_o2r_common + by_number_common
296
+ TXT_O2R_NUM = SYNTAX_O2R_COMMON + BY_NUMBER_COMMON
297
297
 
298
- syntax_only_o2s_common: str = '''
298
+ SYNTAX_ONLY_O2S_COMMON: str = '''
299
299
  This an example of taking a registration list from the excel file received
300
300
  from office forms or google forms and transforming it for importing into
301
301
  SailWave regatta scoring program ( https://www.sailwave.com ).
302
302
  '''
303
303
 
304
- syntax_o2s_common: str = syntax_only_o2s_common + syntax_o2x_common
304
+ SYNTAX_O2S_COMMON: str = SYNTAX_ONLY_O2R_COMMON + SYNYAX_O2X_COMMON
305
305
 
306
306
 
307
307
  def generate_syntax_o2s_name(filename: str, colref: ColumnRef) -> None:
@@ -333,7 +333,7 @@ def generate_syntax_o2s_name(filename: str, colref: ColumnRef) -> None:
333
333
  cfg.write(to_json_filename=filename)
334
334
 
335
335
 
336
- TXT_O2S_NAME = syntax_o2s_common + by_name_common
336
+ TXT_O2S_NAME = SYNTAX_O2S_COMMON + BY_NAME_COMMON
337
337
 
338
338
 
339
339
  def generate_syntax_o2s_num(filename: str, colref: ColumnRef) -> None:
@@ -364,10 +364,10 @@ def generate_syntax_o2s_num(filename: str, colref: ColumnRef) -> None:
364
364
  cfg.write(to_json_filename=filename)
365
365
 
366
366
 
367
- TXT_O2S_NUM = syntax_o2s_common + by_number_common
367
+ TXT_O2S_NUM = SYNTAX_O2S_COMMON + BY_NUMBER_COMMON
368
368
 
369
369
 
370
- syntax_r2s_common: str = '''
370
+ SYNTAX_R2S_COMMON: str = '''
371
371
  This an example of taking a registration list from the excel file
372
372
  exported from RRS ( https://www.racingrulesofsailing.org ) and
373
373
  transforming it for importing into SailWave regatta scoring
@@ -411,7 +411,7 @@ def generate_syntax_r2s_name(filename: str, colref: ColumnRef) -> None:
411
411
  cfg.write(to_json_filename=filename)
412
412
 
413
413
 
414
- TXT_R2S_NAME = syntax_r2s_common + by_name_common
414
+ TXT_R2S_NAME = SYNTAX_R2S_COMMON + BY_NAME_COMMON
415
415
 
416
416
 
417
417
  def generate_syntax_r2s_num(filename: str, colref: ColumnRef) -> None:
@@ -448,7 +448,7 @@ def generate_syntax_r2s_num(filename: str, colref: ColumnRef) -> None:
448
448
  cfg.write(to_json_filename=filename)
449
449
 
450
450
 
451
- TXT_R2S_NUM = syntax_r2s_common + by_number_common
451
+ TXT_R2S_NUM = SYNTAX_R2S_COMMON + BY_NUMBER_COMMON
452
452
 
453
453
 
454
454
  def generate_syntax_example(filename: str, colref: ColumnRef) -> None:
@@ -518,8 +518,8 @@ identical values in the "To" column.
518
518
  Finally we specify the new column order.
519
519
  '''
520
520
 
521
- TXT_ROWSPLITMERGE_NAME = TXT_ROWSPLITMERGE + by_name_common
522
- TXT_ROWSPLITMERGE_NUM = TXT_ROWSPLITMERGE + by_number_common
521
+ TXT_ROWSPLITMERGE_NAME = TXT_ROWSPLITMERGE + BY_NAME_COMMON
522
+ TXT_ROWSPLITMERGE_NUM = TXT_ROWSPLITMERGE + BY_NUMBER_COMMON
523
523
 
524
524
 
525
525
  dispatch = {'forms_to_rrs': {ColumnRef.BY_NAME: generate_syntax_o2r_name,
@@ -10,7 +10,7 @@
10
10
  import sys
11
11
  from datetime import datetime, date, time
12
12
  from copy import deepcopy
13
- from typing import Optional, TypeAlias, Any
13
+ from typing import Optional, Any
14
14
  from decimal import Decimal
15
15
  from xlsxwriter import Workbook as xlsxwriter_wb # type: ignore
16
16
  from pylightxl import readxl as pl_readxl # type: ignore
@@ -30,7 +30,7 @@ from excel_list_transform.num_named_conversion import \
30
30
  named_cols_from_num_cols, num_cols_from_named_cols
31
31
 
32
32
 
33
- _AnyCellValue: TypeAlias = Any # AnyOf _CellGetValue # noqa: Y047
33
+ type _AnyCellValue = Any # AnyOf _CellGetValue # noqa: Y047
34
34
  seentypes: list[str] = []
35
35
 
36
36
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  from copy import deepcopy
10
10
  from sys import argv as sys_argv
11
- from typing import Optional, TypeAlias
11
+ from typing import Optional
12
12
  import argparse
13
13
  import argcomplete
14
14
  from excel_list_transform.transform_func import transform_named_files
@@ -90,7 +90,7 @@ SEE_MAIN_HELP = '''
90
90
  See also help text for main command without sub-commands.
91
91
  '''
92
92
 
93
- SubParseAct: TypeAlias = 'argparse._SubParsersAction[argparse.ArgumentParser]'
93
+ type SubParseAct = 'argparse._SubParsersAction[argparse.ArgumentParser]'
94
94
 
95
95
 
96
96
  def gen_cfg_args_named(subparsers: SubParseAct, sub_pars_name: str) -> None:
@@ -1,13 +0,0 @@
1
- openpyxl>=3.1.5
2
- types-openpyxl>=3.1.5.20250602
3
- pylightxl>=1.61
4
- XlsxWriter>=3.2.5
5
- argcomplete>=3.6.2
6
- pypi-simple>=1.6.1
7
- requests>=2.32.4
8
- types-requests>=2.32.4.20250611
9
- packaging>=25.0
10
- pip>=25.1.1
11
- setuptools>=80.9.0
12
- build>=1.2.2.post1
13
- wheel>=0.45.1