excel-list-transform 0.9__tar.gz → 1.1__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.
- excel_list_transform-0.9/README_pypi.md → excel_list_transform-1.1/PKG-INFO +50 -42
- {excel_list_transform-0.9 → excel_list_transform-1.1}/README.md +5 -6
- excel_list_transform-0.9/PKG-INFO → excel_list_transform-1.1/README_pypi.md +22 -69
- {excel_list_transform-0.9 → excel_list_transform-1.1}/excel_list_transform.egg-info/PKG-INFO +34 -53
- excel_list_transform-1.1/excel_list_transform.egg-info/requires.txt +5 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/pyproject.toml +7 -2
- {excel_list_transform-0.9 → excel_list_transform-1.1}/setup.py +6 -10
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/config_excel_list_transform.py +2 -3
- excel_list_transform-0.9/excel_list_transform.egg-info/requires.txt +0 -9
- {excel_list_transform-0.9 → excel_list_transform-1.1}/LICENSE.txt +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/excel_list_transform.egg-info/SOURCES.txt +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/excel_list_transform.egg-info/dependency_links.txt +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/excel_list_transform.egg-info/top_level.txt +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/setup.cfg +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/__init__.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/__main__.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/check_indata_common.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/commontypes.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/config_enums.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/config_match.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/config_read_old.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/config_xls_list_transf_name.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/config_xls_list_transf_num.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/file_extension.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/file_must_exist.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/generate_cfg.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/generate_txt.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/handle_empty_column.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/handle_tableio.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/migrate_cfg.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/migrate_cfg_warn_hook.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/num_named_conversion.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/py.typed +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/recode.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/rewrite_value.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/row_split_merge.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/str_to_enum.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/transform_cmd.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/transform_func.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/transform_func_common.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/transform_func_named.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/transform_func_num.py +0 -0
- {excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/version_information.py +0 -0
|
@@ -1,3 +1,31 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: excel-list-transform
|
|
3
|
+
Version: 1.1
|
|
4
|
+
Summary: Transform table data with configurable row and column changes.
|
|
5
|
+
Author: Tom Björkholm
|
|
6
|
+
Author-email: Tom Björkholm <klausuler_linnet0q@icloud.com>
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
Project-URL: Source code, https://github.com/tom-bjorkholm/excel-list-transform
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Classifier: Intended Audience :: Other Audience
|
|
14
|
+
Classifier: Topic :: Office/Business
|
|
15
|
+
Classifier: Typing :: Typed
|
|
16
|
+
Requires-Python: >=3.13
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
License-File: LICENSE.txt
|
|
19
|
+
Requires-Dist: tableio-cfg-json>=0.8
|
|
20
|
+
Requires-Dist: tableio>=1.1
|
|
21
|
+
Requires-Dist: config-as-json>=1.4
|
|
22
|
+
Requires-Dist: versionreporter>=0.4
|
|
23
|
+
Requires-Dist: argcomplete>=3.7.0
|
|
24
|
+
Dynamic: author
|
|
25
|
+
Dynamic: license-file
|
|
26
|
+
Dynamic: requires-dist
|
|
27
|
+
Dynamic: requires-python
|
|
28
|
+
|
|
1
29
|
# excel-list-transform
|
|
2
30
|
|
|
3
31
|
## Background
|
|
@@ -56,32 +84,6 @@ pip3 install --upgrade excel-list-transform
|
|
|
56
84
|
pip install --upgrade excel-list-transform
|
|
57
85
|
````
|
|
58
86
|
|
|
59
|
-
## Version history
|
|
60
|
-
|
|
61
|
-
| Version | Date | Python version | Description |
|
|
62
|
-
|---------|-------------|-----------------|-------------------------------------|
|
|
63
|
-
| 0.5 | 10 Sep 2024 | 3.10.5 or newer | First released version |
|
|
64
|
-
| 0.6 | 22 Sep 2024 | 3.12.6 or newer | Configured encoding for CSV |
|
|
65
|
-
| 0.6.2 | 28 Sep 2024 | 3.12.6 or newer | Fix name in test report |
|
|
66
|
-
| 0.7.0 | 03 Nov 2024 | 3.12.6 or newer | Option to strip space in excel |
|
|
67
|
-
| 0.7.1 | 15 Dec 2024 | 3.12.6 or newer | Refactor tests |
|
|
68
|
-
| 0.7.3 | 06 Jan 2025 | 3.12.6 or newer | Example config for Sailwave to RRS |
|
|
69
|
-
| 0.7.5 | 21 Mar 2025 | 3.12.6 or newer | Example config for Sailarena to RRS |
|
|
70
|
-
| 0.7.6 | 21 Mar 2025 | 3.13.2 or newer | Adapted to Python 3.13.2 |
|
|
71
|
-
| 0.7.7 | 09 Apr 2025 | 3.13.3 or newer | refactor phone number rewrite cfg |
|
|
72
|
-
| 0.7.9 | 09 Jun 2025 | 3.10.x | Backport 0.7.12 to Python 3.10 |
|
|
73
|
-
| 0.7.10 | 09 Jun 2025 | 3.11.x | Backport 0.7.12 to Python 3.11 |
|
|
74
|
-
| 0.7.11 | 09 Jun 2025 | 3.12.x | Backport 0.7.12 to Python 3.12 |
|
|
75
|
-
| 0.7.12 | 09 Jun 2025 | 3.13.3 or newer | Add version sub-command |
|
|
76
|
-
| 0.7.13 | 11 Jun 2025 | 3.13 or newer | Relax Python version requirement |
|
|
77
|
-
| 0.8.0 | 23 Jul 2025 | 3.10.x | Backport 0.8.3 to Python 3.10 |
|
|
78
|
-
| 0.8.1 | 23 Jul 2025 | 3.11.x | Backport 0.8.3 to Python 3.11 |
|
|
79
|
-
| 0.8.2 | 23 Jul 2025 | 3.12.x | Backport 0.8.3 to Python 3.12 |
|
|
80
|
-
| 0.8.3 | 23 Jul 2025 | 3.13 or newer | Add split-row and merge-row |
|
|
81
|
-
| 0.8.4 | 23 Nov 2025 | 3.12.x | Backport 0.8.5 to Python 3.12 |
|
|
82
|
-
| 0.8.5 | 23 Nov 2025 | 3.13 or newer | Adapted to Python 3.14 |
|
|
83
|
-
| 0.9 | 06 Jun 2026 | 3.13 or newer | Many new input/output formats |
|
|
84
|
-
|
|
85
87
|
## Running the application
|
|
86
88
|
|
|
87
89
|
### Running the application on mac and Linux
|
|
@@ -140,22 +142,28 @@ configuration file to understand the syntax and the possible options.
|
|
|
140
142
|
## Performance
|
|
141
143
|
|
|
142
144
|
This application is written for the moderate amounts of data when
|
|
143
|
-
registering participants for the majority of sports events
|
|
144
|
-
|
|
145
|
+
registering participants for the majority of sports events, or
|
|
146
|
+
processing scrum backlogs in excel. If you have millions of rows
|
|
147
|
+
this application is not for you.
|
|
145
148
|
|
|
146
149
|
With an input file consisting of 20 columns producing an output file of
|
|
147
150
|
11 columns I have measured the following performance:
|
|
148
151
|
|
|
149
|
-
| number of rows | on MacBook Air M4 |
|
|
150
|
-
|
|
151
|
-
| 100 | less than 0.2 seconds |
|
|
152
|
-
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
152
|
+
| number of rows | on MacBook Air M4 |
|
|
153
|
+
|----------------|-----------------------|
|
|
154
|
+
| 100 | less than 0.2 seconds |
|
|
155
|
+
| 1000 | less than 0.3 seconds |
|
|
156
|
+
| 10 000 | less than 2.5 seconds |
|
|
157
|
+
| 20 000 | less than 5 seconds |
|
|
158
|
+
| 40 000 | less than 11 seconds |
|
|
159
|
+
| 80 000 | less than 23 seconds |
|
|
160
|
+
| 120 000 | less than 34 seconds |
|
|
161
|
+
|
|
162
|
+
Naturally your performance will be different based on computer hardware,
|
|
163
|
+
operating system and Python version. Generally it should be reasonably
|
|
164
|
+
fast for less than 10 000 rows, painfully slow but somewhat usable up
|
|
165
|
+
to 100 000 rows and probably so slow that it is unusable for more
|
|
166
|
+
than 100 000 rows.
|
|
159
167
|
|
|
160
168
|
## Description of how to write/change the configuration file
|
|
161
169
|
|
|
@@ -498,13 +506,13 @@ python3 -m excel_list_transform.recode -i a.txt -o b.txt --from cp1250 --to utf-
|
|
|
498
506
|
|
|
499
507
|
## Source code
|
|
500
508
|
|
|
501
|
-
Source code and tests are available at [https://
|
|
509
|
+
Source code and tests are available at [https://github.com/tom-bjorkholm/excel-list-transform](https://github.com/tom-bjorkholm/excel-list-transform).
|
|
502
510
|
|
|
503
511
|
## Test summary
|
|
504
512
|
|
|
505
|
-
- Test result: 1368 passed in 64s (0:01:04)
|
|
513
|
+
- Test result: 1368 passed, 1 warning in 64s (0:01:04)
|
|
506
514
|
- No flake8 warnings.
|
|
507
515
|
- No mypy errors found.
|
|
508
516
|
- No python layout warnings.
|
|
509
|
-
- Built version(s):
|
|
510
|
-
- Build and test using Python 3.14.
|
|
517
|
+
- Built version(s): 1.1
|
|
518
|
+
- Build and test using Python 3.14.6
|
|
@@ -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
|
|
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,9 @@ the built and installed application in the virtual environment `./venv`.
|
|
|
108
107
|
|
|
109
108
|
## Test summary
|
|
110
109
|
|
|
111
|
-
- Test result: 1368 passed in 64s (0:01:04)
|
|
110
|
+
- Test result: 1368 passed, 1 warning in 64s (0:01:04)
|
|
112
111
|
- No flake8 warnings.
|
|
113
112
|
- No mypy errors found.
|
|
114
113
|
- No python layout warnings.
|
|
115
|
-
- Built version(s):
|
|
116
|
-
- Build and test using Python 3.14.
|
|
114
|
+
- Built version(s): 1.1
|
|
115
|
+
- Build and test using Python 3.14.6
|
|
@@ -1,30 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: excel-list-transform
|
|
3
|
-
Version: 0.9
|
|
4
|
-
Summary: Transform table data with configurable row and column changes.
|
|
5
|
-
Author: Tom Björkholm
|
|
6
|
-
Author-email: Tom Björkholm <klausuler_linnet0q@icloud.com>
|
|
7
|
-
License-Expression: MIT
|
|
8
|
-
Project-URL: Source code, https://bitbucket.org/tom-bjorkholm/excel-list-transform
|
|
9
|
-
Classifier: Programming Language :: Python :: 3
|
|
10
|
-
Classifier: Operating System :: OS Independent
|
|
11
|
-
Requires-Python: >=3.13
|
|
12
|
-
Description-Content-Type: text/markdown
|
|
13
|
-
License-File: LICENSE.txt
|
|
14
|
-
Requires-Dist: tableio-cfg-json>=0.3
|
|
15
|
-
Requires-Dist: tableio>=0.9
|
|
16
|
-
Requires-Dist: config-as-json>=1.1
|
|
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
|
|
23
|
-
Dynamic: author
|
|
24
|
-
Dynamic: license-file
|
|
25
|
-
Dynamic: requires-dist
|
|
26
|
-
Dynamic: requires-python
|
|
27
|
-
|
|
28
1
|
# excel-list-transform
|
|
29
2
|
|
|
30
3
|
## Background
|
|
@@ -83,32 +56,6 @@ pip3 install --upgrade excel-list-transform
|
|
|
83
56
|
pip install --upgrade excel-list-transform
|
|
84
57
|
````
|
|
85
58
|
|
|
86
|
-
## Version history
|
|
87
|
-
|
|
88
|
-
| Version | Date | Python version | Description |
|
|
89
|
-
|---------|-------------|-----------------|-------------------------------------|
|
|
90
|
-
| 0.5 | 10 Sep 2024 | 3.10.5 or newer | First released version |
|
|
91
|
-
| 0.6 | 22 Sep 2024 | 3.12.6 or newer | Configured encoding for CSV |
|
|
92
|
-
| 0.6.2 | 28 Sep 2024 | 3.12.6 or newer | Fix name in test report |
|
|
93
|
-
| 0.7.0 | 03 Nov 2024 | 3.12.6 or newer | Option to strip space in excel |
|
|
94
|
-
| 0.7.1 | 15 Dec 2024 | 3.12.6 or newer | Refactor tests |
|
|
95
|
-
| 0.7.3 | 06 Jan 2025 | 3.12.6 or newer | Example config for Sailwave to RRS |
|
|
96
|
-
| 0.7.5 | 21 Mar 2025 | 3.12.6 or newer | Example config for Sailarena to RRS |
|
|
97
|
-
| 0.7.6 | 21 Mar 2025 | 3.13.2 or newer | Adapted to Python 3.13.2 |
|
|
98
|
-
| 0.7.7 | 09 Apr 2025 | 3.13.3 or newer | refactor phone number rewrite cfg |
|
|
99
|
-
| 0.7.9 | 09 Jun 2025 | 3.10.x | Backport 0.7.12 to Python 3.10 |
|
|
100
|
-
| 0.7.10 | 09 Jun 2025 | 3.11.x | Backport 0.7.12 to Python 3.11 |
|
|
101
|
-
| 0.7.11 | 09 Jun 2025 | 3.12.x | Backport 0.7.12 to Python 3.12 |
|
|
102
|
-
| 0.7.12 | 09 Jun 2025 | 3.13.3 or newer | Add version sub-command |
|
|
103
|
-
| 0.7.13 | 11 Jun 2025 | 3.13 or newer | Relax Python version requirement |
|
|
104
|
-
| 0.8.0 | 23 Jul 2025 | 3.10.x | Backport 0.8.3 to Python 3.10 |
|
|
105
|
-
| 0.8.1 | 23 Jul 2025 | 3.11.x | Backport 0.8.3 to Python 3.11 |
|
|
106
|
-
| 0.8.2 | 23 Jul 2025 | 3.12.x | Backport 0.8.3 to Python 3.12 |
|
|
107
|
-
| 0.8.3 | 23 Jul 2025 | 3.13 or newer | Add split-row and merge-row |
|
|
108
|
-
| 0.8.4 | 23 Nov 2025 | 3.12.x | Backport 0.8.5 to Python 3.12 |
|
|
109
|
-
| 0.8.5 | 23 Nov 2025 | 3.13 or newer | Adapted to Python 3.14 |
|
|
110
|
-
| 0.9 | 06 Jun 2026 | 3.13 or newer | Many new input/output formats |
|
|
111
|
-
|
|
112
59
|
## Running the application
|
|
113
60
|
|
|
114
61
|
### Running the application on mac and Linux
|
|
@@ -167,22 +114,28 @@ configuration file to understand the syntax and the possible options.
|
|
|
167
114
|
## Performance
|
|
168
115
|
|
|
169
116
|
This application is written for the moderate amounts of data when
|
|
170
|
-
registering participants for the majority of sports events
|
|
171
|
-
|
|
117
|
+
registering participants for the majority of sports events, or
|
|
118
|
+
processing scrum backlogs in excel. If you have millions of rows
|
|
119
|
+
this application is not for you.
|
|
172
120
|
|
|
173
121
|
With an input file consisting of 20 columns producing an output file of
|
|
174
122
|
11 columns I have measured the following performance:
|
|
175
123
|
|
|
176
|
-
| number of rows | on MacBook Air M4 |
|
|
177
|
-
|
|
178
|
-
| 100 | less than 0.2 seconds |
|
|
179
|
-
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
124
|
+
| number of rows | on MacBook Air M4 |
|
|
125
|
+
|----------------|-----------------------|
|
|
126
|
+
| 100 | less than 0.2 seconds |
|
|
127
|
+
| 1000 | less than 0.3 seconds |
|
|
128
|
+
| 10 000 | less than 2.5 seconds |
|
|
129
|
+
| 20 000 | less than 5 seconds |
|
|
130
|
+
| 40 000 | less than 11 seconds |
|
|
131
|
+
| 80 000 | less than 23 seconds |
|
|
132
|
+
| 120 000 | less than 34 seconds |
|
|
133
|
+
|
|
134
|
+
Naturally your performance will be different based on computer hardware,
|
|
135
|
+
operating system and Python version. Generally it should be reasonably
|
|
136
|
+
fast for less than 10 000 rows, painfully slow but somewhat usable up
|
|
137
|
+
to 100 000 rows and probably so slow that it is unusable for more
|
|
138
|
+
than 100 000 rows.
|
|
186
139
|
|
|
187
140
|
## Description of how to write/change the configuration file
|
|
188
141
|
|
|
@@ -525,13 +478,13 @@ python3 -m excel_list_transform.recode -i a.txt -o b.txt --from cp1250 --to utf-
|
|
|
525
478
|
|
|
526
479
|
## Source code
|
|
527
480
|
|
|
528
|
-
Source code and tests are available at [https://
|
|
481
|
+
Source code and tests are available at [https://github.com/tom-bjorkholm/excel-list-transform](https://github.com/tom-bjorkholm/excel-list-transform).
|
|
529
482
|
|
|
530
483
|
## Test summary
|
|
531
484
|
|
|
532
|
-
- Test result: 1368 passed in 64s (0:01:04)
|
|
485
|
+
- Test result: 1368 passed, 1 warning in 64s (0:01:04)
|
|
533
486
|
- No flake8 warnings.
|
|
534
487
|
- No mypy errors found.
|
|
535
488
|
- No python layout warnings.
|
|
536
|
-
- Built version(s):
|
|
537
|
-
- Build and test using Python 3.14.
|
|
489
|
+
- Built version(s): 1.1
|
|
490
|
+
- Build and test using Python 3.14.6
|
{excel_list_transform-0.9 → excel_list_transform-1.1}/excel_list_transform.egg-info/PKG-INFO
RENAMED
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: excel-list-transform
|
|
3
|
-
Version:
|
|
3
|
+
Version: 1.1
|
|
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://
|
|
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.
|
|
15
|
-
Requires-Dist: tableio>=
|
|
16
|
-
Requires-Dist: config-as-json>=1.
|
|
17
|
-
Requires-Dist: versionreporter>=0.
|
|
18
|
-
Requires-Dist: argcomplete>=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>=0.8
|
|
20
|
+
Requires-Dist: tableio>=1.1
|
|
21
|
+
Requires-Dist: config-as-json>=1.4
|
|
22
|
+
Requires-Dist: versionreporter>=0.4
|
|
23
|
+
Requires-Dist: argcomplete>=3.7.0
|
|
23
24
|
Dynamic: author
|
|
24
25
|
Dynamic: license-file
|
|
25
26
|
Dynamic: requires-dist
|
|
@@ -83,32 +84,6 @@ pip3 install --upgrade excel-list-transform
|
|
|
83
84
|
pip install --upgrade excel-list-transform
|
|
84
85
|
````
|
|
85
86
|
|
|
86
|
-
## Version history
|
|
87
|
-
|
|
88
|
-
| Version | Date | Python version | Description |
|
|
89
|
-
|---------|-------------|-----------------|-------------------------------------|
|
|
90
|
-
| 0.5 | 10 Sep 2024 | 3.10.5 or newer | First released version |
|
|
91
|
-
| 0.6 | 22 Sep 2024 | 3.12.6 or newer | Configured encoding for CSV |
|
|
92
|
-
| 0.6.2 | 28 Sep 2024 | 3.12.6 or newer | Fix name in test report |
|
|
93
|
-
| 0.7.0 | 03 Nov 2024 | 3.12.6 or newer | Option to strip space in excel |
|
|
94
|
-
| 0.7.1 | 15 Dec 2024 | 3.12.6 or newer | Refactor tests |
|
|
95
|
-
| 0.7.3 | 06 Jan 2025 | 3.12.6 or newer | Example config for Sailwave to RRS |
|
|
96
|
-
| 0.7.5 | 21 Mar 2025 | 3.12.6 or newer | Example config for Sailarena to RRS |
|
|
97
|
-
| 0.7.6 | 21 Mar 2025 | 3.13.2 or newer | Adapted to Python 3.13.2 |
|
|
98
|
-
| 0.7.7 | 09 Apr 2025 | 3.13.3 or newer | refactor phone number rewrite cfg |
|
|
99
|
-
| 0.7.9 | 09 Jun 2025 | 3.10.x | Backport 0.7.12 to Python 3.10 |
|
|
100
|
-
| 0.7.10 | 09 Jun 2025 | 3.11.x | Backport 0.7.12 to Python 3.11 |
|
|
101
|
-
| 0.7.11 | 09 Jun 2025 | 3.12.x | Backport 0.7.12 to Python 3.12 |
|
|
102
|
-
| 0.7.12 | 09 Jun 2025 | 3.13.3 or newer | Add version sub-command |
|
|
103
|
-
| 0.7.13 | 11 Jun 2025 | 3.13 or newer | Relax Python version requirement |
|
|
104
|
-
| 0.8.0 | 23 Jul 2025 | 3.10.x | Backport 0.8.3 to Python 3.10 |
|
|
105
|
-
| 0.8.1 | 23 Jul 2025 | 3.11.x | Backport 0.8.3 to Python 3.11 |
|
|
106
|
-
| 0.8.2 | 23 Jul 2025 | 3.12.x | Backport 0.8.3 to Python 3.12 |
|
|
107
|
-
| 0.8.3 | 23 Jul 2025 | 3.13 or newer | Add split-row and merge-row |
|
|
108
|
-
| 0.8.4 | 23 Nov 2025 | 3.12.x | Backport 0.8.5 to Python 3.12 |
|
|
109
|
-
| 0.8.5 | 23 Nov 2025 | 3.13 or newer | Adapted to Python 3.14 |
|
|
110
|
-
| 0.9 | 06 Jun 2026 | 3.13 or newer | Many new input/output formats |
|
|
111
|
-
|
|
112
87
|
## Running the application
|
|
113
88
|
|
|
114
89
|
### Running the application on mac and Linux
|
|
@@ -167,22 +142,28 @@ configuration file to understand the syntax and the possible options.
|
|
|
167
142
|
## Performance
|
|
168
143
|
|
|
169
144
|
This application is written for the moderate amounts of data when
|
|
170
|
-
registering participants for the majority of sports events
|
|
171
|
-
|
|
145
|
+
registering participants for the majority of sports events, or
|
|
146
|
+
processing scrum backlogs in excel. If you have millions of rows
|
|
147
|
+
this application is not for you.
|
|
172
148
|
|
|
173
149
|
With an input file consisting of 20 columns producing an output file of
|
|
174
150
|
11 columns I have measured the following performance:
|
|
175
151
|
|
|
176
|
-
| number of rows | on MacBook Air M4 |
|
|
177
|
-
|
|
178
|
-
| 100 | less than 0.2 seconds |
|
|
179
|
-
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
152
|
+
| number of rows | on MacBook Air M4 |
|
|
153
|
+
|----------------|-----------------------|
|
|
154
|
+
| 100 | less than 0.2 seconds |
|
|
155
|
+
| 1000 | less than 0.3 seconds |
|
|
156
|
+
| 10 000 | less than 2.5 seconds |
|
|
157
|
+
| 20 000 | less than 5 seconds |
|
|
158
|
+
| 40 000 | less than 11 seconds |
|
|
159
|
+
| 80 000 | less than 23 seconds |
|
|
160
|
+
| 120 000 | less than 34 seconds |
|
|
161
|
+
|
|
162
|
+
Naturally your performance will be different based on computer hardware,
|
|
163
|
+
operating system and Python version. Generally it should be reasonably
|
|
164
|
+
fast for less than 10 000 rows, painfully slow but somewhat usable up
|
|
165
|
+
to 100 000 rows and probably so slow that it is unusable for more
|
|
166
|
+
than 100 000 rows.
|
|
186
167
|
|
|
187
168
|
## Description of how to write/change the configuration file
|
|
188
169
|
|
|
@@ -525,13 +506,13 @@ python3 -m excel_list_transform.recode -i a.txt -o b.txt --from cp1250 --to utf-
|
|
|
525
506
|
|
|
526
507
|
## Source code
|
|
527
508
|
|
|
528
|
-
Source code and tests are available at [https://
|
|
509
|
+
Source code and tests are available at [https://github.com/tom-bjorkholm/excel-list-transform](https://github.com/tom-bjorkholm/excel-list-transform).
|
|
529
510
|
|
|
530
511
|
## Test summary
|
|
531
512
|
|
|
532
|
-
- Test result: 1368 passed in 64s (0:01:04)
|
|
513
|
+
- Test result: 1368 passed, 1 warning in 64s (0:01:04)
|
|
533
514
|
- No flake8 warnings.
|
|
534
515
|
- No mypy errors found.
|
|
535
516
|
- No python layout warnings.
|
|
536
|
-
- Built version(s):
|
|
537
|
-
- Build and test using Python 3.14.
|
|
517
|
+
- Built version(s): 1.1
|
|
518
|
+
- Build and test using Python 3.14.6
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "excel-list-transform"
|
|
7
|
-
version = "
|
|
7
|
+
version = "1.1"
|
|
8
8
|
authors = [
|
|
9
9
|
{ name="Tom Björkholm", email="klausuler_linnet0q@icloud.com" },
|
|
10
10
|
]
|
|
@@ -14,9 +14,14 @@ license = "MIT"
|
|
|
14
14
|
requires-python = ">=3.13"
|
|
15
15
|
classifiers = [
|
|
16
16
|
"Programming Language :: Python :: 3",
|
|
17
|
+
"Programming Language :: Python :: 3.13",
|
|
18
|
+
"Programming Language :: Python :: 3.14",
|
|
17
19
|
"Operating System :: OS Independent",
|
|
20
|
+
"Intended Audience :: Other Audience",
|
|
21
|
+
"Topic :: Office/Business",
|
|
22
|
+
"Typing :: Typed"
|
|
18
23
|
]
|
|
19
24
|
dynamic = ["dependencies"]
|
|
20
25
|
|
|
21
26
|
[project.urls]
|
|
22
|
-
"Source code" = "https://
|
|
27
|
+
"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='
|
|
8
|
+
version='1.1',
|
|
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.
|
|
18
|
-
'tableio >=
|
|
19
|
-
'config-as-json >= 1.
|
|
20
|
-
'versionreporter >= 0.
|
|
21
|
-
'argcomplete >= 3.
|
|
22
|
-
'pip >= 26.1',
|
|
23
|
-
'setuptools >= 82.0.1',
|
|
24
|
-
'build >= 1.5.0',
|
|
25
|
-
'wheel>=0.47.0'
|
|
17
|
+
'tableio-cfg-json >= 0.8',
|
|
18
|
+
'tableio >= 1.1',
|
|
19
|
+
'config-as-json >= 1.4',
|
|
20
|
+
'versionreporter >= 0.4',
|
|
21
|
+
'argcomplete >= 3.7.0'
|
|
26
22
|
]
|
|
27
23
|
)
|
|
@@ -272,12 +272,11 @@ class ConfigExcelListTransform(Config, Generic[Column]):
|
|
|
272
272
|
factory_function=output_table_factory)
|
|
273
273
|
return {'input_table': input_nesting, 'output_table': output_nesting}
|
|
274
274
|
|
|
275
|
-
|
|
275
|
+
@override
|
|
276
|
+
def _get_read_old_config(self) -> ReadOldConfiguration:
|
|
276
277
|
"""Return old-format migration rules."""
|
|
277
278
|
return ConfigReadOld()
|
|
278
279
|
|
|
279
|
-
_get_read_old_configuration = _read_old_config
|
|
280
|
-
|
|
281
280
|
@override
|
|
282
281
|
def get_validation_plan(self, stderr_file: TextIO) -> ValidationPlan:
|
|
283
282
|
"""Return validation plan for config-as-json."""
|
|
File without changes
|
{excel_list_transform-0.9 → excel_list_transform-1.1}/excel_list_transform.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{excel_list_transform-0.9 → excel_list_transform-1.1}/excel_list_transform.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/commontypes.py
RENAMED
|
File without changes
|
{excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/config_enums.py
RENAMED
|
File without changes
|
{excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/config_match.py
RENAMED
|
File without changes
|
{excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/config_read_old.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/file_extension.py
RENAMED
|
File without changes
|
{excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/file_must_exist.py
RENAMED
|
File without changes
|
{excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/generate_cfg.py
RENAMED
|
File without changes
|
{excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/generate_txt.py
RENAMED
|
File without changes
|
|
File without changes
|
{excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/handle_tableio.py
RENAMED
|
File without changes
|
{excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/migrate_cfg.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/rewrite_value.py
RENAMED
|
File without changes
|
{excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/row_split_merge.py
RENAMED
|
File without changes
|
{excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/str_to_enum.py
RENAMED
|
File without changes
|
{excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/transform_cmd.py
RENAMED
|
File without changes
|
{excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/transform_func.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{excel_list_transform-0.9 → excel_list_transform-1.1}/src/excel_list_transform/transform_func_num.py
RENAMED
|
File without changes
|
|
File without changes
|