nano-dev-utils 1.4.2__tar.gz → 1.4.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.
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/.idea/workspace.xml +201 -184
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/PKG-INFO +20 -11
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/README.md +19 -10
- nano_dev_utils-1.4.4/benchmark/benchtest.py +53 -0
- nano_dev_utils-1.4.4/benchmark/win_tree_wrapper.py +52 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/pyproject.toml +1 -1
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/src/nano_dev_utils/common.py +4 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/src/nano_dev_utils/file_tree_display.py +8 -14
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/src/nano_dev_utils/timers.py +65 -43
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/tests/test_common.py +12 -5
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/tests/test_file_tree_display.py +37 -36
- nano_dev_utils-1.4.4/tests/test_timers/__init__.py +3 -0
- nano_dev_utils-1.4.4/tests/test_timers/test_duration_formatter.py +158 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/tests/test_timers/test_timer.py +20 -20
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/uv.lock +242 -242
- nano_dev_utils-1.4.2/tests/test_timers/test_duration_formatter.py +0 -152
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/.gitignore +0 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/.idea/.gitignore +0 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/.idea/encodings.xml +0 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/.idea/inspectionProfiles/profiles_settings.xml +0 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/.idea/misc.xml +0 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/.idea/modules.xml +0 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/.idea/nano_dev_utils.iml +0 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/.idea/vcs.xml +0 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/.pre-commit-config.yaml +0 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/LICENSE +0 -0
- {nano_dev_utils-1.4.2/tests → nano_dev_utils-1.4.4/benchmark}/__init__.py +0 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/ruff.toml +0 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/src/nano_dev_utils/__init__.py +0 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/src/nano_dev_utils/dynamic_importer.py +0 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/src/nano_dev_utils/release_ports.py +0 -0
- {nano_dev_utils-1.4.2/tests/test_timers → nano_dev_utils-1.4.4/tests}/__init__.py +0 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/tests/test_dynamic_importer.py +0 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/tests/test_release_ports.py +0 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/tests/test_timers/conftest.py +0 -0
- {nano_dev_utils-1.4.2 → nano_dev_utils-1.4.4}/tests/test_timers/test_timers_async.py +0 -0
|
@@ -4,11 +4,10 @@
|
|
|
4
4
|
<option name="autoReloadType" value="SELECTIVE" />
|
|
5
5
|
</component>
|
|
6
6
|
<component name="ChangeListManager">
|
|
7
|
-
<list default="true" id="1859e23b-7665-4b92-98cc-65e07a208923" name="Changes" comment="
|
|
7
|
+
<list default="true" id="1859e23b-7665-4b92-98cc-65e07a208923" name="Changes" comment="minor update v1.4.3">
|
|
8
|
+
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
|
|
9
|
+
<change beforePath="$PROJECT_DIR$/benchmark/benchtest.py" beforeDir="false" afterPath="$PROJECT_DIR$/benchmark/benchtest.py" afterDir="false" />
|
|
8
10
|
<change beforePath="$PROJECT_DIR$/pyproject.toml" beforeDir="false" afterPath="$PROJECT_DIR$/pyproject.toml" afterDir="false" />
|
|
9
|
-
<change beforePath="$PROJECT_DIR$/src/nano_dev_utils/timers.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/nano_dev_utils/timers.py" afterDir="false" />
|
|
10
|
-
<change beforePath="$PROJECT_DIR$/tests/test_timers/test_duration_formatter.py" beforeDir="false" afterPath="$PROJECT_DIR$/tests/test_timers/test_duration_formatter.py" afterDir="false" />
|
|
11
|
-
<change beforePath="$PROJECT_DIR$/tests/test_timers/test_timer.py" beforeDir="false" afterPath="$PROJECT_DIR$/tests/test_timers/test_timer.py" afterDir="false" />
|
|
12
11
|
<change beforePath="$PROJECT_DIR$/uv.lock" beforeDir="false" afterPath="$PROJECT_DIR$/uv.lock" afterDir="false" />
|
|
13
12
|
</list>
|
|
14
13
|
<option name="SHOW_DIALOG" value="false" />
|
|
@@ -27,7 +26,7 @@
|
|
|
27
26
|
<option name="PUSH_AUTO_UPDATE" value="true" />
|
|
28
27
|
<option name="RECENT_BRANCH_BY_REPOSITORY">
|
|
29
28
|
<map>
|
|
30
|
-
<entry key="$PROJECT_DIR$" value="
|
|
29
|
+
<entry key="$PROJECT_DIR$" value="YD_Benchmarks" />
|
|
31
30
|
</map>
|
|
32
31
|
</option>
|
|
33
32
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
|
@@ -43,45 +42,46 @@
|
|
|
43
42
|
<option name="showLibraryContents" value="true" />
|
|
44
43
|
<option name="showMembers" value="true" />
|
|
45
44
|
</component>
|
|
46
|
-
<component name="PropertiesComponent"
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
45
|
+
<component name="PropertiesComponent"><![CDATA[{
|
|
46
|
+
"keyToString": {
|
|
47
|
+
"Python tests.Python tests in test_dynamic_importer.py.executor": "Run",
|
|
48
|
+
"Python tests.Python tests in test_file_tree_display.py.executor": "Run",
|
|
49
|
+
"Python tests.Python tests in test_release_ports.py.executor": "Run",
|
|
50
|
+
"Python tests.Python tests in test_timer.py.executor": "Run",
|
|
51
|
+
"Python tests.Python tests in test_timers (1).executor": "Run",
|
|
52
|
+
"Python tests.Python tests in test_timers.executor": "Run",
|
|
53
|
+
"Python tests.Python tests in test_timers_async.py.executor": "Run",
|
|
54
|
+
"Python tests.Python tests in testing_duration_formatter.py.executor": "Run",
|
|
55
|
+
"Python tests.Python tests in tests.executor": "Run",
|
|
56
|
+
"Python tests.test_timer prev.executor": "Run",
|
|
57
|
+
"Python.benchtest.executor": "Run",
|
|
58
|
+
"Python.ftd_main.executor": "Run",
|
|
59
|
+
"Python.test_timer.executor": "Run",
|
|
60
|
+
"RunOnceActivity.ShowReadmeOnStart": "true",
|
|
61
|
+
"git-widget-placeholder": "master",
|
|
62
|
+
"ignore.virus.scanning.warn.message": "true",
|
|
63
|
+
"last_opened_file_path": "C:/GitHubWS/nano_dev_utils/benchmark",
|
|
64
|
+
"settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable",
|
|
65
|
+
"two.files.diff.last.used.file": "C:/Workspaces/review1/tools/file_tree_display/tests/test_file_tree_display.py"
|
|
66
66
|
}
|
|
67
|
-
}
|
|
67
|
+
}]]></component>
|
|
68
68
|
<component name="RecentsManager">
|
|
69
69
|
<key name="CopyFile.RECENT_KEYS">
|
|
70
|
+
<recent name="C:\GitHubWS\nano_dev_utils\benchmark" />
|
|
70
71
|
<recent name="C:\GitHubWS\nano_dev_utils\src\nano_dev_utils" />
|
|
71
72
|
<recent name="C:\GitHubWS\nano_dev_utils\tests\test_timers" />
|
|
72
73
|
<recent name="C:\GitHubWS\nano_dev_utils\tests\test_timer" />
|
|
73
74
|
<recent name="C:\GitHubWS\nano_dev_utils\tests" />
|
|
74
|
-
<recent name="C:\GitHubWS\nano_dev_utils" />
|
|
75
75
|
</key>
|
|
76
76
|
<key name="MoveFile.RECENT_KEYS">
|
|
77
|
+
<recent name="C:\GitHubWS\nano_dev_utils" />
|
|
77
78
|
<recent name="C:\GitHubWS\nano_dev_utils\src\nano_dev_utils" />
|
|
78
79
|
<recent name="C:\GitHubWS\nano_dev_utils\tests\test_timers" />
|
|
79
80
|
<recent name="C:\GitHubWS\nano_dev_utils\tests" />
|
|
80
|
-
<recent name="C:\GitHubWS\nano_dev_utils" />
|
|
81
81
|
</key>
|
|
82
82
|
</component>
|
|
83
|
-
<component name="RunManager" selected="Python
|
|
84
|
-
<configuration name="
|
|
83
|
+
<component name="RunManager" selected="Python.benchtest">
|
|
84
|
+
<configuration name="benchtest" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
|
85
85
|
<module name="nano_dev_utils" />
|
|
86
86
|
<option name="ENV_FILES" value="" />
|
|
87
87
|
<option name="INTERPRETER_OPTIONS" value="" />
|
|
@@ -90,11 +90,11 @@
|
|
|
90
90
|
<env name="PYTHONUNBUFFERED" value="1" />
|
|
91
91
|
</envs>
|
|
92
92
|
<option name="SDK_HOME" value="" />
|
|
93
|
-
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/
|
|
93
|
+
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/benchmark" />
|
|
94
94
|
<option name="IS_MODULE_SDK" value="true" />
|
|
95
95
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
|
96
96
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
|
97
|
-
<option name="SCRIPT_NAME" value="
|
|
97
|
+
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/benchmark/benchtest.py" />
|
|
98
98
|
<option name="PARAMETERS" value="" />
|
|
99
99
|
<option name="SHOW_COMMAND_LINE" value="false" />
|
|
100
100
|
<option name="EMULATE_TERMINAL" value="false" />
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
<method v="2" />
|
|
165
165
|
</configuration>
|
|
166
166
|
<list>
|
|
167
|
-
<item itemvalue="Python.
|
|
167
|
+
<item itemvalue="Python.benchtest" />
|
|
168
168
|
<item itemvalue="Python tests.Python tests in test_dynamic_importer.py" />
|
|
169
169
|
<item itemvalue="Python tests.Python tests in test_file_tree_display.py" />
|
|
170
170
|
<item itemvalue="Python tests.Python tests in test_timers" />
|
|
@@ -172,11 +172,11 @@
|
|
|
172
172
|
</list>
|
|
173
173
|
<recent_temporary>
|
|
174
174
|
<list>
|
|
175
|
+
<item itemvalue="Python.benchtest" />
|
|
175
176
|
<item itemvalue="Python tests.Python tests in tests" />
|
|
176
|
-
<item itemvalue="Python tests.Python tests in test_timers" />
|
|
177
177
|
<item itemvalue="Python tests.Python tests in test_file_tree_display.py" />
|
|
178
|
+
<item itemvalue="Python tests.Python tests in test_timers" />
|
|
178
179
|
<item itemvalue="Python tests.Python tests in test_dynamic_importer.py" />
|
|
179
|
-
<item itemvalue="Python.ftd_bench" />
|
|
180
180
|
</list>
|
|
181
181
|
</recent_temporary>
|
|
182
182
|
</component>
|
|
@@ -196,134 +196,6 @@
|
|
|
196
196
|
<option name="presentableId" value="Default" />
|
|
197
197
|
<updated>1746126505743</updated>
|
|
198
198
|
</task>
|
|
199
|
-
<task id="LOCAL-00055" summary="README updates related to exposed instances">
|
|
200
|
-
<option name="closed" value="true" />
|
|
201
|
-
<created>1761700369016</created>
|
|
202
|
-
<option name="number" value="00055" />
|
|
203
|
-
<option name="presentableId" value="LOCAL-00055" />
|
|
204
|
-
<option name="project" value="LOCAL" />
|
|
205
|
-
<updated>1761700369016</updated>
|
|
206
|
-
</task>
|
|
207
|
-
<task id="LOCAL-00056" summary="v1.1.2 dynamic_importer.py: adding update method release_ports.py +flexible init">
|
|
208
|
-
<option name="closed" value="true" />
|
|
209
|
-
<created>1761700719843</created>
|
|
210
|
-
<option name="number" value="00056" />
|
|
211
|
-
<option name="presentableId" value="LOCAL-00056" />
|
|
212
|
-
<option name="project" value="LOCAL" />
|
|
213
|
-
<updated>1761700719843</updated>
|
|
214
|
-
</task>
|
|
215
|
-
<task id="LOCAL-00057" summary="v1.1.2: all object instances exposed additional methods (update and init wrapper) for importer and ports_release">
|
|
216
|
-
<option name="closed" value="true" />
|
|
217
|
-
<created>1761701044755</created>
|
|
218
|
-
<option name="number" value="00057" />
|
|
219
|
-
<option name="presentableId" value="LOCAL-00057" />
|
|
220
|
-
<option name="project" value="LOCAL" />
|
|
221
|
-
<updated>1761701044755</updated>
|
|
222
|
-
</task>
|
|
223
|
-
<task id="LOCAL-00058" summary="Addint imports file_tree_display">
|
|
224
|
-
<option name="closed" value="true" />
|
|
225
|
-
<created>1761702026964</created>
|
|
226
|
-
<option name="number" value="00058" />
|
|
227
|
-
<option name="presentableId" value="LOCAL-00058" />
|
|
228
|
-
<option name="project" value="LOCAL" />
|
|
229
|
-
<updated>1761702026964</updated>
|
|
230
|
-
</task>
|
|
231
|
-
<task id="LOCAL-00059" summary="improving file_tree_display.py implementation removing old consts file">
|
|
232
|
-
<option name="closed" value="true" />
|
|
233
|
-
<created>1761702129430</created>
|
|
234
|
-
<option name="number" value="00059" />
|
|
235
|
-
<option name="presentableId" value="LOCAL-00059" />
|
|
236
|
-
<option name="project" value="LOCAL" />
|
|
237
|
-
<updated>1761702129430</updated>
|
|
238
|
-
</task>
|
|
239
|
-
<task id="LOCAL-00060" summary="file_tree_display.py: +init(self, *args, **kwargs) unit tests code refactor and improvements.">
|
|
240
|
-
<option name="closed" value="true" />
|
|
241
|
-
<created>1761702755192</created>
|
|
242
|
-
<option name="number" value="00060" />
|
|
243
|
-
<option name="presentableId" value="LOCAL-00060" />
|
|
244
|
-
<option name="project" value="LOCAL" />
|
|
245
|
-
<updated>1761702755192</updated>
|
|
246
|
-
</task>
|
|
247
|
-
<task id="LOCAL-00061" summary="ongoing refactor">
|
|
248
|
-
<option name="closed" value="true" />
|
|
249
|
-
<created>1761736405549</created>
|
|
250
|
-
<option name="number" value="00061" />
|
|
251
|
-
<option name="presentableId" value="LOCAL-00061" />
|
|
252
|
-
<option name="project" value="LOCAL" />
|
|
253
|
-
<updated>1761736405549</updated>
|
|
254
|
-
</task>
|
|
255
|
-
<task id="LOCAL-00062" summary="ongoing refactor">
|
|
256
|
-
<option name="closed" value="true" />
|
|
257
|
-
<created>1761737723282</created>
|
|
258
|
-
<option name="number" value="00062" />
|
|
259
|
-
<option name="presentableId" value="LOCAL-00062" />
|
|
260
|
-
<option name="project" value="LOCAL" />
|
|
261
|
-
<updated>1761737723282</updated>
|
|
262
|
-
</task>
|
|
263
|
-
<task id="LOCAL-00063" summary="eliminated the warning raised by async test due to a coroutine leakage">
|
|
264
|
-
<option name="closed" value="true" />
|
|
265
|
-
<created>1761738281462</created>
|
|
266
|
-
<option name="number" value="00063" />
|
|
267
|
-
<option name="presentableId" value="LOCAL-00063" />
|
|
268
|
-
<option name="project" value="LOCAL" />
|
|
269
|
-
<updated>1761738281462</updated>
|
|
270
|
-
</task>
|
|
271
|
-
<task id="LOCAL-00064" summary="timeit: +docstring update: minor typing polish">
|
|
272
|
-
<option name="closed" value="true" />
|
|
273
|
-
<created>1761738809870</created>
|
|
274
|
-
<option name="number" value="00064" />
|
|
275
|
-
<option name="presentableId" value="LOCAL-00064" />
|
|
276
|
-
<option name="project" value="LOCAL" />
|
|
277
|
-
<updated>1761738809870</updated>
|
|
278
|
-
</task>
|
|
279
|
-
<task id="LOCAL-00065" summary=".">
|
|
280
|
-
<option name="closed" value="true" />
|
|
281
|
-
<created>1761739346814</created>
|
|
282
|
-
<option name="number" value="00065" />
|
|
283
|
-
<option name="presentableId" value="LOCAL-00065" />
|
|
284
|
-
<option name="project" value="LOCAL" />
|
|
285
|
-
<updated>1761739346814</updated>
|
|
286
|
-
</task>
|
|
287
|
-
<task id="LOCAL-00066" summary=".">
|
|
288
|
-
<option name="closed" value="true" />
|
|
289
|
-
<created>1761742788639</created>
|
|
290
|
-
<option name="number" value="00066" />
|
|
291
|
-
<option name="presentableId" value="LOCAL-00066" />
|
|
292
|
-
<option name="project" value="LOCAL" />
|
|
293
|
-
<updated>1761742788639</updated>
|
|
294
|
-
</task>
|
|
295
|
-
<task id="LOCAL-00067" summary="improving time unites handler (faster)">
|
|
296
|
-
<option name="closed" value="true" />
|
|
297
|
-
<created>1761746130529</created>
|
|
298
|
-
<option name="number" value="00067" />
|
|
299
|
-
<option name="presentableId" value="LOCAL-00067" />
|
|
300
|
-
<option name="project" value="LOCAL" />
|
|
301
|
-
<updated>1761746130529</updated>
|
|
302
|
-
</task>
|
|
303
|
-
<task id="LOCAL-00068" summary="ruff linter update">
|
|
304
|
-
<option name="closed" value="true" />
|
|
305
|
-
<created>1761746187138</created>
|
|
306
|
-
<option name="number" value="00068" />
|
|
307
|
-
<option name="presentableId" value="LOCAL-00068" />
|
|
308
|
-
<option name="project" value="LOCAL" />
|
|
309
|
-
<updated>1761746187138</updated>
|
|
310
|
-
</task>
|
|
311
|
-
<task id="LOCAL-00069" summary="+fast multi-unit time duration converter and formatter">
|
|
312
|
-
<option name="closed" value="true" />
|
|
313
|
-
<created>1761748339362</created>
|
|
314
|
-
<option name="number" value="00069" />
|
|
315
|
-
<option name="presentableId" value="LOCAL-00069" />
|
|
316
|
-
<option name="project" value="LOCAL" />
|
|
317
|
-
<updated>1761748339362</updated>
|
|
318
|
-
</task>
|
|
319
|
-
<task id="LOCAL-00070" summary="message formatter: using local verbose and changing to static method">
|
|
320
|
-
<option name="closed" value="true" />
|
|
321
|
-
<created>1761748675961</created>
|
|
322
|
-
<option name="number" value="00070" />
|
|
323
|
-
<option name="presentableId" value="LOCAL-00070" />
|
|
324
|
-
<option name="project" value="LOCAL" />
|
|
325
|
-
<updated>1761748675961</updated>
|
|
326
|
-
</task>
|
|
327
199
|
<task id="LOCAL-00071" summary="ongoing updates">
|
|
328
200
|
<option name="closed" value="true" />
|
|
329
201
|
<created>1761749373855</created>
|
|
@@ -588,7 +460,135 @@
|
|
|
588
460
|
<option name="project" value="LOCAL" />
|
|
589
461
|
<updated>1762093698362</updated>
|
|
590
462
|
</task>
|
|
591
|
-
<
|
|
463
|
+
<task id="LOCAL-00104" summary="+blank space before time unit Bumped minor to v1.4.2">
|
|
464
|
+
<option name="closed" value="true" />
|
|
465
|
+
<created>1762096472993</created>
|
|
466
|
+
<option name="number" value="00104" />
|
|
467
|
+
<option name="presentableId" value="LOCAL-00104" />
|
|
468
|
+
<option name="project" value="LOCAL" />
|
|
469
|
+
<updated>1762096472993</updated>
|
|
470
|
+
</task>
|
|
471
|
+
<task id="LOCAL-00105" summary="+link to PYPI package Benchmark data, Tree(a built-in windows utility) vs my FTD">
|
|
472
|
+
<option name="closed" value="true" />
|
|
473
|
+
<created>1762135842965</created>
|
|
474
|
+
<option name="number" value="00105" />
|
|
475
|
+
<option name="presentableId" value="LOCAL-00105" />
|
|
476
|
+
<option name="project" value="LOCAL" />
|
|
477
|
+
<updated>1762135842965</updated>
|
|
478
|
+
</task>
|
|
479
|
+
<task id="LOCAL-00106" summary="applying precision upon request">
|
|
480
|
+
<option name="closed" value="true" />
|
|
481
|
+
<created>1762136721863</created>
|
|
482
|
+
<option name="number" value="00106" />
|
|
483
|
+
<option name="presentableId" value="LOCAL-00106" />
|
|
484
|
+
<option name="project" value="LOCAL" />
|
|
485
|
+
<updated>1762136721863</updated>
|
|
486
|
+
</task>
|
|
487
|
+
<task id="LOCAL-00107" summary="timers refactor">
|
|
488
|
+
<option name="closed" value="true" />
|
|
489
|
+
<created>1762138590329</created>
|
|
490
|
+
<option name="number" value="00107" />
|
|
491
|
+
<option name="presentableId" value="LOCAL-00107" />
|
|
492
|
+
<option name="project" value="LOCAL" />
|
|
493
|
+
<updated>1762138590329</updated>
|
|
494
|
+
</task>
|
|
495
|
+
<task id="LOCAL-00108" summary="renaming + docstring updates">
|
|
496
|
+
<option name="closed" value="true" />
|
|
497
|
+
<created>1762162557303</created>
|
|
498
|
+
<option name="number" value="00108" />
|
|
499
|
+
<option name="presentableId" value="LOCAL-00108" />
|
|
500
|
+
<option name="project" value="LOCAL" />
|
|
501
|
+
<updated>1762162557303</updated>
|
|
502
|
+
</task>
|
|
503
|
+
<task id="LOCAL-00109" summary="docstring rephrase; code linting & formatting">
|
|
504
|
+
<option name="closed" value="true" />
|
|
505
|
+
<created>1762162961435</created>
|
|
506
|
+
<option name="number" value="00109" />
|
|
507
|
+
<option name="presentableId" value="LOCAL-00109" />
|
|
508
|
+
<option name="project" value="LOCAL" />
|
|
509
|
+
<updated>1762162961435</updated>
|
|
510
|
+
</task>
|
|
511
|
+
<task id="LOCAL-00110" summary="removed methods that are now obsolete">
|
|
512
|
+
<option name="closed" value="true" />
|
|
513
|
+
<created>1762163648421</created>
|
|
514
|
+
<option name="number" value="00110" />
|
|
515
|
+
<option name="presentableId" value="LOCAL-00110" />
|
|
516
|
+
<option name="project" value="LOCAL" />
|
|
517
|
+
<updated>1762163648421</updated>
|
|
518
|
+
</task>
|
|
519
|
+
<task id="LOCAL-00111" summary="_check_timeout changed to static; improved formatting">
|
|
520
|
+
<option name="closed" value="true" />
|
|
521
|
+
<created>1762165957757</created>
|
|
522
|
+
<option name="number" value="00111" />
|
|
523
|
+
<option name="presentableId" value="LOCAL-00111" />
|
|
524
|
+
<option name="project" value="LOCAL" />
|
|
525
|
+
<updated>1762165957757</updated>
|
|
526
|
+
</task>
|
|
527
|
+
<task id="LOCAL-00112" summary="duration formatter: improved unit tests">
|
|
528
|
+
<option name="closed" value="true" />
|
|
529
|
+
<created>1762169854461</created>
|
|
530
|
+
<option name="number" value="00112" />
|
|
531
|
+
<option name="presentableId" value="LOCAL-00112" />
|
|
532
|
+
<option name="project" value="LOCAL" />
|
|
533
|
+
<updated>1762169854461</updated>
|
|
534
|
+
</task>
|
|
535
|
+
<task id="LOCAL-00113" summary="reformat">
|
|
536
|
+
<option name="closed" value="true" />
|
|
537
|
+
<created>1762170443081</created>
|
|
538
|
+
<option name="number" value="00113" />
|
|
539
|
+
<option name="presentableId" value="LOCAL-00113" />
|
|
540
|
+
<option name="project" value="LOCAL" />
|
|
541
|
+
<updated>1762170443081</updated>
|
|
542
|
+
</task>
|
|
543
|
+
<task id="LOCAL-00114" summary="+ wrapper for Tree (MS Windows utility that visualizes folder structure)">
|
|
544
|
+
<option name="closed" value="true" />
|
|
545
|
+
<created>1762172657234</created>
|
|
546
|
+
<option name="number" value="00114" />
|
|
547
|
+
<option name="presentableId" value="LOCAL-00114" />
|
|
548
|
+
<option name="project" value="LOCAL" />
|
|
549
|
+
<updated>1762172657234</updated>
|
|
550
|
+
</task>
|
|
551
|
+
<task id="LOCAL-00115" summary="bugfix str2file (create parent if doesn't exist)">
|
|
552
|
+
<option name="closed" value="true" />
|
|
553
|
+
<created>1762176931574</created>
|
|
554
|
+
<option name="number" value="00115" />
|
|
555
|
+
<option name="presentableId" value="LOCAL-00115" />
|
|
556
|
+
<option name="project" value="LOCAL" />
|
|
557
|
+
<updated>1762176931574</updated>
|
|
558
|
+
</task>
|
|
559
|
+
<task id="LOCAL-00116" summary="FTD unit tests refactor, completing coverage for file_tree_display method">
|
|
560
|
+
<option name="closed" value="true" />
|
|
561
|
+
<created>1762180145497</created>
|
|
562
|
+
<option name="number" value="00116" />
|
|
563
|
+
<option name="presentableId" value="LOCAL-00116" />
|
|
564
|
+
<option name="project" value="LOCAL" />
|
|
565
|
+
<updated>1762180145497</updated>
|
|
566
|
+
</task>
|
|
567
|
+
<task id="LOCAL-00117" summary="tiny reformatting and renaming">
|
|
568
|
+
<option name="closed" value="true" />
|
|
569
|
+
<created>1762180180185</created>
|
|
570
|
+
<option name="number" value="00117" />
|
|
571
|
+
<option name="presentableId" value="LOCAL-00117" />
|
|
572
|
+
<option name="project" value="LOCAL" />
|
|
573
|
+
<updated>1762180180185</updated>
|
|
574
|
+
</task>
|
|
575
|
+
<task id="LOCAL-00118" summary="+improved error handling for win_tree_wrapper +benchtest code, comparing my FTD module to MS-Windows Tree (focusing on running time)">
|
|
576
|
+
<option name="closed" value="true" />
|
|
577
|
+
<created>1762180401037</created>
|
|
578
|
+
<option name="number" value="00118" />
|
|
579
|
+
<option name="presentableId" value="LOCAL-00118" />
|
|
580
|
+
<option name="project" value="LOCAL" />
|
|
581
|
+
<updated>1762180401037</updated>
|
|
582
|
+
</task>
|
|
583
|
+
<task id="LOCAL-00119" summary="minor update v1.4.3">
|
|
584
|
+
<option name="closed" value="true" />
|
|
585
|
+
<created>1762181821368</created>
|
|
586
|
+
<option name="number" value="00119" />
|
|
587
|
+
<option name="presentableId" value="LOCAL-00119" />
|
|
588
|
+
<option name="project" value="LOCAL" />
|
|
589
|
+
<updated>1762181821368</updated>
|
|
590
|
+
</task>
|
|
591
|
+
<option name="localTasksCounter" value="120" />
|
|
592
592
|
<servers />
|
|
593
593
|
</component>
|
|
594
594
|
<component name="Vcs.Log.Tabs.Properties">
|
|
@@ -599,7 +599,7 @@
|
|
|
599
599
|
<list>
|
|
600
600
|
<RecentGroup>
|
|
601
601
|
<option name="FILTER_VALUES">
|
|
602
|
-
<option value="origin/
|
|
602
|
+
<option value="origin/YD_Benchmarks" />
|
|
603
603
|
</option>
|
|
604
604
|
</RecentGroup>
|
|
605
605
|
<RecentGroup>
|
|
@@ -607,6 +607,11 @@
|
|
|
607
607
|
<option value="origin/master" />
|
|
608
608
|
</option>
|
|
609
609
|
</RecentGroup>
|
|
610
|
+
<RecentGroup>
|
|
611
|
+
<option name="FILTER_VALUES">
|
|
612
|
+
<option value="origin/FI" />
|
|
613
|
+
</option>
|
|
614
|
+
</RecentGroup>
|
|
610
615
|
</list>
|
|
611
616
|
</value>
|
|
612
617
|
</entry>
|
|
@@ -616,30 +621,25 @@
|
|
|
616
621
|
<map>
|
|
617
622
|
<entry key="MAIN">
|
|
618
623
|
<value>
|
|
619
|
-
<State
|
|
624
|
+
<State>
|
|
625
|
+
<option name="FILTERS">
|
|
626
|
+
<map>
|
|
627
|
+
<entry key="branch">
|
|
628
|
+
<value>
|
|
629
|
+
<list>
|
|
630
|
+
<option value="origin/YD_Benchmarks" />
|
|
631
|
+
</list>
|
|
632
|
+
</value>
|
|
633
|
+
</entry>
|
|
634
|
+
</map>
|
|
635
|
+
</option>
|
|
636
|
+
</State>
|
|
620
637
|
</value>
|
|
621
638
|
</entry>
|
|
622
639
|
</map>
|
|
623
640
|
</option>
|
|
624
641
|
</component>
|
|
625
642
|
<component name="VcsManagerConfiguration">
|
|
626
|
-
<MESSAGE value="timer -> timer_mock" />
|
|
627
|
-
<MESSAGE value="ruff." />
|
|
628
|
-
<MESSAGE value="test_timer unit tests complete" />
|
|
629
|
-
<MESSAGE value="bumped version to 1.2.0" />
|
|
630
|
-
<MESSAGE value="+uv.lock" />
|
|
631
|
-
<MESSAGE value="aysnc_sleep_mocker -> moved to conftest; uv lock sync with v1.2.1" />
|
|
632
|
-
<MESSAGE value="async_sleep_mocker -> moved to conftest; uv lock sync with v1.2.1" />
|
|
633
|
-
<MESSAGE value="async_sleep_mocker -> moved to conftest; uv lock sync with v1.2.1" />
|
|
634
|
-
<MESSAGE value="async_sleep_mocker -> conftest; uv lock sync with v1.2.1" />
|
|
635
|
-
<MESSAGE value="+str2file function (instead of buffer2file method) + unit tests." />
|
|
636
|
-
<MESSAGE value="minor update" />
|
|
637
|
-
<MESSAGE value="test_common refactor; minor update" />
|
|
638
|
-
<MESSAGE value="file_tree_display.py additional features: Style control Flexible sorting Improved recursive DFS method build_tree" />
|
|
639
|
-
<MESSAGE value="bumped to v1.3.0; synced uv.lock" />
|
|
640
|
-
<MESSAGE value="typo correction" />
|
|
641
|
-
<MESSAGE value="+PredicateBuilder: creates predicate functions" />
|
|
642
|
-
<MESSAGE value="README updates IAW recends mods" />
|
|
643
643
|
<MESSAGE value="bumped to v1.4.0" />
|
|
644
644
|
<MESSAGE value="+build" />
|
|
645
645
|
<MESSAGE value="Readme updates" />
|
|
@@ -648,6 +648,23 @@
|
|
|
648
648
|
<MESSAGE value="+printout testing (WIP)" />
|
|
649
649
|
<MESSAGE value="Pyright corrections; Timer unit tests - improved code" />
|
|
650
650
|
<MESSAGE value="Allow an optional printout to console in addition to logger. README updates in this regard. Bumped minor to v1.4.1" />
|
|
651
|
-
<
|
|
651
|
+
<MESSAGE value="+blank space before time unit Bumped minor to v1.4.2" />
|
|
652
|
+
<MESSAGE value="+link to PYPI package Benchmark data, Tree(a built-in windows utility) vs my FTD" />
|
|
653
|
+
<MESSAGE value="applying precision upon request" />
|
|
654
|
+
<MESSAGE value="timers refactor" />
|
|
655
|
+
<MESSAGE value="renaming + docstring updates" />
|
|
656
|
+
<MESSAGE value="docstring rephrase; code linting & formatting" />
|
|
657
|
+
<MESSAGE value="removed methods that are now obsolete" />
|
|
658
|
+
<MESSAGE value="_check_timeout changed to static; improved formatting" />
|
|
659
|
+
<MESSAGE value="duration formatter: improved unit tests" />
|
|
660
|
+
<MESSAGE value="reformat" />
|
|
661
|
+
<MESSAGE value="+ wrapper for Tree (MS Windows utility that visualizes folder structure)" />
|
|
662
|
+
<MESSAGE value="bugfix str2file (create parent if doesn't exist)" />
|
|
663
|
+
<MESSAGE value="FTD unit tests refactor, completing coverage for file_tree_display method" />
|
|
664
|
+
<MESSAGE value="tiny reformatting and renaming" />
|
|
665
|
+
<MESSAGE value="+improved error handling for win_tree_wrapper +benchtest code, comparing my FTD module to MS-Windows Tree (focusing on running time) +updating bench results (FTD is very stable twice as fast)" />
|
|
666
|
+
<MESSAGE value="+improved error handling for win_tree_wrapper +benchtest code, comparing my FTD module to MS-Windows Tree (focusing on running time)" />
|
|
667
|
+
<MESSAGE value="minor update v1.4.3" />
|
|
668
|
+
<option name="LAST_COMMIT_MESSAGE" value="minor update v1.4.3" />
|
|
652
669
|
</component>
|
|
653
670
|
</project>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nano_dev_utils
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.4
|
|
4
4
|
Summary: A collection of small Python utilities for developers.
|
|
5
5
|
Project-URL: Homepage, https://github.com/yaronday/nano_utils
|
|
6
6
|
Project-URL: Issues, https://github.com/yaronday/nano_utils/issues
|
|
@@ -17,6 +17,7 @@ Description-Content-Type: text/markdown
|
|
|
17
17
|
# nano_dev_utils
|
|
18
18
|
|
|
19
19
|
A collection of small Python utilities for developers.
|
|
20
|
+
[PYPI package: nano-dev-utils](https://pypi.org/project/nano-dev-utils)
|
|
20
21
|
|
|
21
22
|
## Modules
|
|
22
23
|
|
|
@@ -58,7 +59,7 @@ import time
|
|
|
58
59
|
import logging
|
|
59
60
|
from nano_dev_utils import timer
|
|
60
61
|
|
|
61
|
-
#
|
|
62
|
+
# if printout is not enabled, a logger must be configured in order to see timing results
|
|
62
63
|
logging.basicConfig(filename='timer example.log',
|
|
63
64
|
level=logging.INFO, # DEBUG, WARNING, ERROR, CRITICAL
|
|
64
65
|
format='%(asctime)s - %(levelname)s: %(message)s',
|
|
@@ -156,8 +157,7 @@ It supports Windows, Linux, and macOS.
|
|
|
156
157
|
import logging
|
|
157
158
|
from nano_dev_utils import ports_release, PortsRelease
|
|
158
159
|
|
|
159
|
-
|
|
160
|
-
# configure the logger
|
|
160
|
+
|
|
161
161
|
logging.basicConfig(filename='port release.log',
|
|
162
162
|
level=logging.INFO, # DEBUG, WARNING, ERROR, CRITICAL
|
|
163
163
|
format='%(asctime)s - %(levelname)s: %(message)s',
|
|
@@ -196,20 +196,29 @@ Output can be displayed in the console or saved to a file.
|
|
|
196
196
|
|
|
197
197
|
## Benchmarks
|
|
198
198
|
|
|
199
|
-
|
|
200
|
-
Avg. time was measured over
|
|
199
|
+
A measurement on an unfiltered, high-depth dataset of 10553 files, 1235 folders (ca. 16 GB) using Python 3.10 on SSD.
|
|
200
|
+
Avg. time was measured over 20 runs per configuration, using `timeit` decorator I've implemented in this package.
|
|
201
|
+
|
|
202
|
+
Comparing FileTreeDisplay (FTD) with
|
|
203
|
+
[win_tree_wrapper](https://github.com/yaronday/nano_dev_utils/blob/master/benchmark/win_tree_wrapper.py)
|
|
204
|
+
(Windows [Tree](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/tree)
|
|
205
|
+
wrapper which I've implemented for this purpose):
|
|
206
|
+
|
|
207
|
+
03-11-2025 17:10:06 - INFO: ftd_run took 182.155 ms (avg. over 20 runs)
|
|
208
|
+
03-11-2025 17:10:14 - INFO: win_tree_cmd took 406.849 ms (avg. over 20 runs)
|
|
201
209
|
|
|
202
|
-
| Tool
|
|
203
|
-
|
|
204
|
-
|
|
|
205
|
-
|
|
|
210
|
+
| Tool | Time (s) |
|
|
211
|
+
|--------|----------|
|
|
212
|
+
| FTD | 0.182 |
|
|
213
|
+
| Tree | 0.407 |
|
|
206
214
|
|
|
215
|
+
[Benchtest code](https://github.com/yaronday/nano_dev_utils/blob/master/benchmark/benchtest.py)
|
|
207
216
|
|
|
208
217
|
|
|
209
218
|
#### Class Overview
|
|
210
219
|
|
|
211
220
|
**`FileTreeDisplay`**
|
|
212
|
-
Constructs and manages the visual representation of a
|
|
221
|
+
Constructs and manages the visual representation of a folder structure of a path or of a disk drive.
|
|
213
222
|
|
|
214
223
|
**Initialization Parameters**
|
|
215
224
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# nano_dev_utils
|
|
2
2
|
|
|
3
3
|
A collection of small Python utilities for developers.
|
|
4
|
+
[PYPI package: nano-dev-utils](https://pypi.org/project/nano-dev-utils)
|
|
4
5
|
|
|
5
6
|
## Modules
|
|
6
7
|
|
|
@@ -42,7 +43,7 @@ import time
|
|
|
42
43
|
import logging
|
|
43
44
|
from nano_dev_utils import timer
|
|
44
45
|
|
|
45
|
-
#
|
|
46
|
+
# if printout is not enabled, a logger must be configured in order to see timing results
|
|
46
47
|
logging.basicConfig(filename='timer example.log',
|
|
47
48
|
level=logging.INFO, # DEBUG, WARNING, ERROR, CRITICAL
|
|
48
49
|
format='%(asctime)s - %(levelname)s: %(message)s',
|
|
@@ -140,8 +141,7 @@ It supports Windows, Linux, and macOS.
|
|
|
140
141
|
import logging
|
|
141
142
|
from nano_dev_utils import ports_release, PortsRelease
|
|
142
143
|
|
|
143
|
-
|
|
144
|
-
# configure the logger
|
|
144
|
+
|
|
145
145
|
logging.basicConfig(filename='port release.log',
|
|
146
146
|
level=logging.INFO, # DEBUG, WARNING, ERROR, CRITICAL
|
|
147
147
|
format='%(asctime)s - %(levelname)s: %(message)s',
|
|
@@ -180,20 +180,29 @@ Output can be displayed in the console or saved to a file.
|
|
|
180
180
|
|
|
181
181
|
## Benchmarks
|
|
182
182
|
|
|
183
|
-
|
|
184
|
-
Avg. time was measured over
|
|
183
|
+
A measurement on an unfiltered, high-depth dataset of 10553 files, 1235 folders (ca. 16 GB) using Python 3.10 on SSD.
|
|
184
|
+
Avg. time was measured over 20 runs per configuration, using `timeit` decorator I've implemented in this package.
|
|
185
|
+
|
|
186
|
+
Comparing FileTreeDisplay (FTD) with
|
|
187
|
+
[win_tree_wrapper](https://github.com/yaronday/nano_dev_utils/blob/master/benchmark/win_tree_wrapper.py)
|
|
188
|
+
(Windows [Tree](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/tree)
|
|
189
|
+
wrapper which I've implemented for this purpose):
|
|
190
|
+
|
|
191
|
+
03-11-2025 17:10:06 - INFO: ftd_run took 182.155 ms (avg. over 20 runs)
|
|
192
|
+
03-11-2025 17:10:14 - INFO: win_tree_cmd took 406.849 ms (avg. over 20 runs)
|
|
185
193
|
|
|
186
|
-
| Tool
|
|
187
|
-
|
|
188
|
-
|
|
|
189
|
-
|
|
|
194
|
+
| Tool | Time (s) |
|
|
195
|
+
|--------|----------|
|
|
196
|
+
| FTD | 0.182 |
|
|
197
|
+
| Tree | 0.407 |
|
|
190
198
|
|
|
199
|
+
[Benchtest code](https://github.com/yaronday/nano_dev_utils/blob/master/benchmark/benchtest.py)
|
|
191
200
|
|
|
192
201
|
|
|
193
202
|
#### Class Overview
|
|
194
203
|
|
|
195
204
|
**`FileTreeDisplay`**
|
|
196
|
-
Constructs and manages the visual representation of a
|
|
205
|
+
Constructs and manages the visual representation of a folder structure of a path or of a disk drive.
|
|
197
206
|
|
|
198
207
|
**Initialization Parameters**
|
|
199
208
|
|