wexample-wex-addon-dev-python 10.2.0__py3-none-any.whl → 11.0.0__py3-none-any.whl

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 (30) hide show
  1. wexample_wex_addon_dev_python/commands/code/check/mypy.py +4 -3
  2. wexample_wex_addon_dev_python/commands/code/check/pylint.py +25 -19
  3. wexample_wex_addon_dev_python/commands/code/check/pyright.py +18 -14
  4. wexample_wex_addon_dev_python/commands/code/check.py +4 -7
  5. wexample_wex_addon_dev_python/commands/code/format/black.py +14 -15
  6. wexample_wex_addon_dev_python/commands/code/format/isort.py +14 -15
  7. wexample_wex_addon_dev_python/commands/code/format.py +8 -5
  8. wexample_wex_addon_dev_python/commands/code/rename.py +134 -0
  9. wexample_wex_addon_dev_python/commands/examples/validate.py +1 -2
  10. wexample_wex_addon_dev_python/common/pypi_registry_gateway.py +5 -3
  11. wexample_wex_addon_dev_python/config_value/python_package_readme_config_value.py +2 -8
  12. wexample_wex_addon_dev_python/file/python_app_iml_file.py +3 -2
  13. wexample_wex_addon_dev_python/file/python_pyproject_toml_file.py +7 -7
  14. wexample_wex_addon_dev_python/helpers/pdm.py +3 -2
  15. wexample_wex_addon_dev_python/middleware/each_python_file_middleware.py +12 -14
  16. wexample_wex_addon_dev_python/refactor/__init__.py +7 -0
  17. wexample_wex_addon_dev_python/refactor/python_package_rename_handler.py +215 -0
  18. wexample_wex_addon_dev_python/refactor/symbol_kind.py +19 -0
  19. wexample_wex_addon_dev_python/selection/abstract_python_code_selection.py +22 -9
  20. wexample_wex_addon_dev_python/selection/python_code_performance_selection.py +8 -9
  21. wexample_wex_addon_dev_python/services/python/commands/service/install.py +7 -10
  22. wexample_wex_addon_dev_python/services/python/commands/service/setup.py +5 -3
  23. wexample_wex_addon_dev_python/workdir/mixin/with_profiling_python_workdir_mixin.py +15 -16
  24. wexample_wex_addon_dev_python/workdir/python_package_workdir.py +9 -7
  25. wexample_wex_addon_dev_python/workdir/python_packages_suite_workdir.py +2 -3
  26. wexample_wex_addon_dev_python/workdir/python_workdir.py +86 -20
  27. {wexample_wex_addon_dev_python-10.2.0.dist-info → wexample_wex_addon_dev_python-11.0.0.dist-info}/METADATA +10 -10
  28. {wexample_wex_addon_dev_python-10.2.0.dist-info → wexample_wex_addon_dev_python-11.0.0.dist-info}/RECORD +30 -26
  29. {wexample_wex_addon_dev_python-10.2.0.dist-info → wexample_wex_addon_dev_python-11.0.0.dist-info}/WHEEL +0 -0
  30. {wexample_wex_addon_dev_python-10.2.0.dist-info → wexample_wex_addon_dev_python-11.0.0.dist-info}/entry_points.txt +0 -0
@@ -89,13 +89,10 @@ class PythonWorkdir(
89
89
  if not tests_path.is_dir():
90
90
  return 0
91
91
 
92
+ pattern = re.compile(r"^\s*(?:async )?def test_", re.MULTILINE)
92
93
  count = 0
93
94
  for file in tests_path.rglob("test_*.py"):
94
- count += len(
95
- re.findall(
96
- r"^\s*(?:async )?def test_", file.read_text(), flags=re.MULTILINE
97
- )
98
- )
95
+ count += len(pattern.findall(file.read_text()))
99
96
  return count
100
97
 
101
98
  def get_app_config_file(self, reload: bool = True) -> PythonPyprojectTomlFile:
@@ -121,11 +118,7 @@ class PythonWorkdir(
121
118
 
122
119
  options = super().get_options_providers()
123
120
 
124
- options.extend(
125
- [
126
- PythonOptionsProvider,
127
- ]
128
- )
121
+ options.append(PythonOptionsProvider)
129
122
 
130
123
  return options
131
124
 
@@ -183,6 +176,12 @@ class PythonWorkdir(
183
176
  from wexample_filestate.option.children_filter_option import (
184
177
  ChildrenFilterOption,
185
178
  )
179
+ from wexample_filestate.option.sidecar_of_option import (
180
+ SidecarOfOption,
181
+ )
182
+ from wexample_filestate_python.file.python_test_stub_file import (
183
+ PythonTestStubFile,
184
+ )
186
185
 
187
186
  from wexample_wex_addon_dev_python.file.python_pyproject_toml_file import (
188
187
  PythonPyprojectTomlFile,
@@ -202,6 +201,22 @@ class PythonWorkdir(
202
201
  section="Python",
203
202
  )
204
203
 
204
+ # `helpers/` is declared statically (rather than discovered by the
205
+ # recursive python filter) so the dict identity can be used as the
206
+ # primary of a sidecar relationship for `tests/unit/helpers/`.
207
+ # NOTE: no `should_exist` here — we MUST NOT delete the directory
208
+ # for packages that ship a helpers/ folder, and we MUST NOT force
209
+ # its creation on packages that don't. Omitting the option makes
210
+ # ShouldExistOption a no-op (see should_exist_option.py:55).
211
+ src_helpers_dir = {
212
+ "name": "helpers",
213
+ "type": DiskItemType.DIRECTORY,
214
+ "children": [
215
+ self._create_init_children_factory(),
216
+ self._create_python_file_children_filter(),
217
+ ],
218
+ }
219
+
205
220
  children.extend(
206
221
  [
207
222
  {
@@ -210,7 +225,46 @@ class PythonWorkdir(
210
225
  "should_exist": True,
211
226
  "children": [
212
227
  self._create_init_children_factory(),
213
- self._create_python_file_children_filter(),
228
+ self._create_python_file_children_filter(
229
+ exclude_dirs=("unit",),
230
+ ),
231
+ # NOTE: tests/unit/ and tests/unit/helpers/ omit
232
+ # `should_exist` — we don't want filestate to delete
233
+ # them when sidecars haven't been generated yet (no
234
+ # src/helpers/ yet on a package), and we don't need
235
+ # to force their creation either: when a sidecar
236
+ # file is created, `local_file.touch(parents=True)`
237
+ # materializes the intermediate dirs as a side
238
+ # effect. Same rationale as `src_helpers_dir` above.
239
+ {
240
+ "name": "unit",
241
+ "type": DiskItemType.DIRECTORY,
242
+ "children": [
243
+ self._create_init_children_factory(),
244
+ {
245
+ "name": "helpers",
246
+ "type": DiskItemType.DIRECTORY,
247
+ "children": [
248
+ self._create_init_children_factory(),
249
+ SidecarOfOption(
250
+ primary=src_helpers_dir,
251
+ filename="test_{name}",
252
+ cls=PythonTestStubFile,
253
+ # Skip dunder modules: __init__.py
254
+ # is re-export glue, __main__.py is
255
+ # the package entrypoint — neither
256
+ # warrants a test stub. Conviction
257
+ # lives at the call site (Python
258
+ # domain), not in the generic
259
+ # SidecarOfOption.
260
+ filter=lambda p: not p.name.startswith(
261
+ "__"
262
+ ),
263
+ ),
264
+ ],
265
+ },
266
+ ],
267
+ },
214
268
  ],
215
269
  },
216
270
  {
@@ -251,12 +305,15 @@ class PythonWorkdir(
251
305
  "should_exist": True,
252
306
  "children": [
253
307
  self._create_init_children_factory(),
254
- self._create_python_file_children_filter(),
308
+ self._create_python_file_children_filter(
309
+ exclude_dirs=("helpers",),
310
+ ),
255
311
  {
256
312
  "name": "py.typed",
257
313
  "type": DiskItemType.FILE,
258
314
  "should_exist": True,
259
315
  },
316
+ src_helpers_dir,
260
317
  ],
261
318
  }
262
319
  ],
@@ -422,8 +479,6 @@ class PythonWorkdir(
422
479
  )
423
480
 
424
481
  def _create_package_name_snake(self, option: ItemTreeConfigOptionMixin) -> str:
425
- import os
426
-
427
482
  from wexample_helpers.helpers.string import string_to_snake_case
428
483
 
429
484
  vendor_prefix = self.get_vendor_name()
@@ -431,15 +486,13 @@ class PythonWorkdir(
431
486
  vendor_prefix
432
487
  + "_"
433
488
  + string_to_snake_case(
434
- os.path.basename(
435
- os.path.dirname(
436
- os.path.realpath(option.get_parent_item().get_path())
437
- )
438
- )
489
+ Path(option.get_parent_item().get_path()).resolve().parent.name
439
490
  )
440
491
  )
441
492
 
442
- def _create_python_file_children_filter(self) -> ChildrenFileFactoryOption:
493
+ def _create_python_file_children_filter(
494
+ self, exclude_dirs: tuple[str, ...] = ()
495
+ ) -> ChildrenFileFactoryOption:
443
496
  from wexample_filestate.const.disk import DiskItemType
444
497
  from wexample_filestate.option.children_filter_option import (
445
498
  ChildrenFilterOption,
@@ -507,6 +560,18 @@ class PythonWorkdir(
507
560
  UnquoteAnnotationsOption,
508
561
  )
509
562
 
563
+ # Filter callback: exclude entries whose parent path contains any of
564
+ # the `exclude_dirs` segments. Used to carve out subtrees that are
565
+ # declared statically elsewhere (typically to anchor a sidecar
566
+ # relationship — the static dict identity is what `SidecarOfOption`
567
+ # resolves on).
568
+ def _entry_filter(entry):
569
+ if not exclude_dirs:
570
+ return True
571
+ return not any(
572
+ segment in exclude_dirs for segment in entry.parent.parts
573
+ )
574
+
510
575
  return ChildrenFilterOption(
511
576
  pattern={
512
577
  "class": PythonFile,
@@ -538,6 +603,7 @@ class PythonWorkdir(
538
603
  },
539
604
  name_pattern=r"^.*\.py$",
540
605
  recursive=True,
606
+ filter=_entry_filter if exclude_dirs else None,
541
607
  )
542
608
 
543
609
  def _get_iml_file_class(self) -> type[ImlFile]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: wexample-wex-addon-dev-python
3
- Version: 10.2.0
3
+ Version: 11.0.0
4
4
  Summary: Python dev addon for wex
5
5
  Author-Email: weeger <contact@wexample.com>
6
6
  License: MIT
@@ -15,10 +15,10 @@ Requires-Dist: griffe>=2.0.2
15
15
  Requires-Dist: networkx
16
16
  Requires-Dist: pylint
17
17
  Requires-Dist: pyright
18
- Requires-Dist: wexample-api>=6.5.0
19
- Requires-Dist: wexample-filestate-python>=8.0.0
20
- Requires-Dist: wexample-wex-addon-ai>=11.0.0
21
- Requires-Dist: wexample-wex-addon-app>=25.3.0
18
+ Requires-Dist: wexample-api>=6.6.0
19
+ Requires-Dist: wexample-filestate-python>=8.1.0
20
+ Requires-Dist: wexample-wex-addon-ai>=11.1.0
21
+ Requires-Dist: wexample-wex-addon-app>=25.4.0
22
22
  Provides-Extra: dev
23
23
  Requires-Dist: pytest; extra == "dev"
24
24
  Requires-Dist: pytest-cov; extra == "dev"
@@ -26,7 +26,7 @@ Description-Content-Type: text/markdown
26
26
 
27
27
  # wex_addon_dev_python
28
28
 
29
- Version: 10.2.0
29
+ Version: 11.0.0
30
30
 
31
31
  Python dev addon for wex
32
32
 
@@ -112,10 +112,10 @@ Visit the [Wexample Suite documentation](https://docs.wexample.com) for the comp
112
112
  - networkx:
113
113
  - pylint:
114
114
  - pyright:
115
- - wexample-api: >=6.5.0
116
- - wexample-filestate-python: >=8.0.0
117
- - wexample-wex-addon-ai: >=11.0.0
118
- - wexample-wex-addon-app: >=25.3.0
115
+ - wexample-api: >=6.6.0
116
+ - wexample-filestate-python: >=8.1.0
117
+ - wexample-wex-addon-ai: >=11.1.0
118
+ - wexample-wex-addon-app: >=25.4.0
119
119
 
120
120
  ## Versioning & Compatibility Policy
121
121
 
@@ -1,29 +1,30 @@
1
- wexample_wex_addon_dev_python-10.2.0.dist-info/METADATA,sha256=kutjvq8NpFEhFq3fIVFhtWhEc8qQSUo5ao2YI1BeVvw,17390
2
- wexample_wex_addon_dev_python-10.2.0.dist-info/WHEEL,sha256=VP-D4TPS230sME9Z3vb3INXvo1yt0924YRm5AOsk_dE,90
3
- wexample_wex_addon_dev_python-10.2.0.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
1
+ wexample_wex_addon_dev_python-11.0.0.dist-info/METADATA,sha256=uvZnqYPseIXCpP65OTwvufCwQNV82BmyVBUMCyMONCc,17390
2
+ wexample_wex_addon_dev_python-11.0.0.dist-info/WHEEL,sha256=VP-D4TPS230sME9Z3vb3INXvo1yt0924YRm5AOsk_dE,90
3
+ wexample_wex_addon_dev_python-11.0.0.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
4
4
  wexample_wex_addon_dev_python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  wexample_wex_addon_dev_python/__pycache__/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  wexample_wex_addon_dev_python/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  wexample_wex_addon_dev_python/commands/code/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- wexample_wex_addon_dev_python/commands/code/check.py,sha256=qaxFt8dcbBl4_vtx82CKaT_tzcDl4e8zMxF29cePXrY,3695
8
+ wexample_wex_addon_dev_python/commands/code/check.py,sha256=TN2gsIjcte11cOCVq4hq4-8cJPemft7iIffYqsTqyus,3662
9
9
  wexample_wex_addon_dev_python/commands/code/check/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- wexample_wex_addon_dev_python/commands/code/check/mypy.py,sha256=hZ1taOAofaFgqhtbHLXA14-4cFkVcw6QUi9PmpbEKuk,1401
11
- wexample_wex_addon_dev_python/commands/code/check/pylint.py,sha256=tmtpKWjn3h4auNybYVtiloHjHGlS0BiYjUo9GZTogpE,3323
12
- wexample_wex_addon_dev_python/commands/code/check/pyright.py,sha256=jCKZxQ5Ln2Vh1QlhKqz3i0djnQwWbNHzDcttu41jhsI,3619
13
- wexample_wex_addon_dev_python/commands/code/format.py,sha256=NrrqZ5LhdDj41pB0xyxhK85-oGT0KN3FjpBaRdCr3c0,2841
10
+ wexample_wex_addon_dev_python/commands/code/check/mypy.py,sha256=lT1U196BxFkroVgXGUPHBuJp3U0GcB9CsZI2q6LKWaU,1413
11
+ wexample_wex_addon_dev_python/commands/code/check/pylint.py,sha256=N_HJB_eZnKI0yzyDfSsjZFySaKDqIuCQYtg5GMMVIfI,3476
12
+ wexample_wex_addon_dev_python/commands/code/check/pyright.py,sha256=Yh15jyKCH81oKCrEDaM_SxTj8Myr9_R1tYTJmexiRsQ,3692
13
+ wexample_wex_addon_dev_python/commands/code/format.py,sha256=AmvvbY1vPMOYafI19wliOnryF34d3wKOTTUDNh_SF6w,2883
14
14
  wexample_wex_addon_dev_python/commands/code/format/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
15
- wexample_wex_addon_dev_python/commands/code/format/black.py,sha256=wo3BEODFD6BUrmnfheESMyLppLPwtvcgkOVfvHWdAZs,1462
16
- wexample_wex_addon_dev_python/commands/code/format/isort.py,sha256=pRYYPZWFza6e_HgKYpYplzV5hwJvbM3NNJ_-A3x1yV8,1540
15
+ wexample_wex_addon_dev_python/commands/code/format/black.py,sha256=hYSr0-vqzwdHzg1qSZHOoLY09nyTCEgzds73smG-lSw,1404
16
+ wexample_wex_addon_dev_python/commands/code/format/isort.py,sha256=sj3Ucc78koiWEJXTZW8X9v8g7ODRQmQazQ_kiwzV2sE,1469
17
+ wexample_wex_addon_dev_python/commands/code/rename.py,sha256=Ctl0PT6xDWtg0m-GO7zIWs_uK3bQrUBgfwUZfzbUC5w,4085
17
18
  wexample_wex_addon_dev_python/commands/examples/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
19
  wexample_wex_addon_dev_python/commands/examples/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
20
  wexample_wex_addon_dev_python/commands/examples/utils/some_example_type.py,sha256=zusGlLOLkt2EpPFk38FIRA6d_5Q92Y7-TLj8ofHhQk0,121
20
- wexample_wex_addon_dev_python/commands/examples/validate.py,sha256=ijU0bVifkZGPilirJZDdDJsOuRUwhRcA7DqGzw2Zcwg,951
21
+ wexample_wex_addon_dev_python/commands/examples/validate.py,sha256=Ab_rIX2XElVSLLGypNPsuxRX6100vsfffaUaPgRV_wc,917
21
22
  wexample_wex_addon_dev_python/commands/release/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
23
  wexample_wex_addon_dev_python/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
- wexample_wex_addon_dev_python/common/pypi_registry_gateway.py,sha256=esFDYTL4k0KfQVnWEuyrS5mdM362n8bgWkt-uB5rfQs,1934
24
+ wexample_wex_addon_dev_python/common/pypi_registry_gateway.py,sha256=uGsbQcVACsYur673HXvMVqUOjDFyBJK2X4twfkrVaoM,1994
24
25
  wexample_wex_addon_dev_python/config_value/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
26
  wexample_wex_addon_dev_python/config_value/__pycache__/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
- wexample_wex_addon_dev_python/config_value/python_package_readme_config_value.py,sha256=9L67C6oGwebd8tMSqECmSSpah7nsDTkjEQMNMCWAyp0,1722
27
+ wexample_wex_addon_dev_python/config_value/python_package_readme_config_value.py,sha256=qHYX9o9X18r17zBP0HpOARIAnSZuTvBX2GJwbOqMRdI,1649
27
28
  wexample_wex_addon_dev_python/const/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
29
  wexample_wex_addon_dev_python/const/__pycache__/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
30
  wexample_wex_addon_dev_python/const/package.py,sha256=oRCPhaazJp5TujxF-35rrIYA4FJsqMqCns8lOFKOLeA,451
@@ -31,29 +32,32 @@ wexample_wex_addon_dev_python/const/python.py,sha256=jxdPt5CnD0dcp4SmobEc_c7XcCk
31
32
  wexample_wex_addon_dev_python/const/tags.py,sha256=isvxhaBbendC6k_rluiJkQ2-yO7OwCEw9wse4wgEOIo,338
32
33
  wexample_wex_addon_dev_python/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
34
  wexample_wex_addon_dev_python/file/__pycache__/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
- wexample_wex_addon_dev_python/file/python_app_iml_file.py,sha256=l6YHEILxSGFjOvYWY20zIyAODjOIfuyHsuCfSMw0jVE,1201
35
- wexample_wex_addon_dev_python/file/python_pyproject_toml_file.py,sha256=kXFnAcLfkj0dgNUCAnano_1N-z_uvgHYRiUdewn7JCY,15950
35
+ wexample_wex_addon_dev_python/file/python_app_iml_file.py,sha256=O6OpMjB_Zn4Mt1sIi9AaGvQP4jM1I2_L_6O6S5-syJM,1206
36
+ wexample_wex_addon_dev_python/file/python_pyproject_toml_file.py,sha256=zIC7a0fB8TWEoqBbv-ZQFF6Vpwas2Bk7KEfSzBj0hSI,15928
36
37
  wexample_wex_addon_dev_python/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
- wexample_wex_addon_dev_python/helpers/pdm.py,sha256=s2j7qs7S2OBKjRuXM5URfPrzqksqKZceKgUR2kHmMCk,479
38
+ wexample_wex_addon_dev_python/helpers/pdm.py,sha256=Q75RgR4xnJCQaGSY24Y4O3Y7qLSyUl0iUyYIbBtXUho,473
38
39
  wexample_wex_addon_dev_python/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
40
  wexample_wex_addon_dev_python/middleware/__pycache__/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
- wexample_wex_addon_dev_python/middleware/each_python_file_middleware.py,sha256=UzNEpedCYf31aNONFl0SuSJnoXRzhJhgEiTCaPark6E,2311
41
+ wexample_wex_addon_dev_python/middleware/each_python_file_middleware.py,sha256=0BmUS1BlL8NY_imwBtykWxf4dnabA3nTrpVHhl9qjLE,2314
41
42
  wexample_wex_addon_dev_python/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
43
  wexample_wex_addon_dev_python/python_addon_manager.py,sha256=I-jPwEkeZtEi7Y3V6r0wRidkL8zwF3YpvJt1-R5b7DQ,1566
44
+ wexample_wex_addon_dev_python/refactor/__init__.py,sha256=CYw_GXE-1VXdKYV1092XWh-YLRci02uJ-FtzW38wUWQ,209
45
+ wexample_wex_addon_dev_python/refactor/python_package_rename_handler.py,sha256=w-f_p3dMrXYuwa0wGOXK8i_1c99KmvV4YYm4DmvdQBk,7512
46
+ wexample_wex_addon_dev_python/refactor/symbol_kind.py,sha256=H4yAOXvzaaSE3k1V29i8bNXmb9Xm3RQ768v3tFMXkhQ,469
43
47
  wexample_wex_addon_dev_python/resources/.wex.yml,sha256=JdIF6nGkFcfi76yZYGlXxeWfOK4eAUSV_gAn6i3hk2w,32
44
48
  wexample_wex_addon_dev_python/resources/docker/Dockerfile.python-profiling,sha256=5ujzXfWNN2nv8qQzCLel6dlOwLQ1XhIGZuqplCNB_vQ,290
45
49
  wexample_wex_addon_dev_python/resources/package_publish_gitlab.yml,sha256=WVMj-DeFedQak5s5FraEnM1Rx1-ut4KgPodvAVv25ZM,304
46
50
  wexample_wex_addon_dev_python/resources/readme_templates/tests.md.j2,sha256=tKLcDwx7jhQkryXIxWr12AK-hKEaP6Rusu2MrluiABs,1289
47
51
  wexample_wex_addon_dev_python/selection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
- wexample_wex_addon_dev_python/selection/abstract_python_code_selection.py,sha256=hnD0bpLl6ivIKh9Ks1ORt3G1Z6hseRrH-zspECPPR6E,1746
49
- wexample_wex_addon_dev_python/selection/python_code_performance_selection.py,sha256=R-ij_LSwoH1d0WHvcGPtr7N-w8MAM2mIjQWFd98ay5s,6571
52
+ wexample_wex_addon_dev_python/selection/abstract_python_code_selection.py,sha256=TX18Iid7XLDryAmTKXOxD5pvzhNcHcDcZViZ6vWjlA4,2270
53
+ wexample_wex_addon_dev_python/selection/python_code_performance_selection.py,sha256=qdM_0ipUDNFLzKuMZwNXPKA0-qPER73lv4l8taEgNN4,6608
50
54
  wexample_wex_addon_dev_python/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
55
  wexample_wex_addon_dev_python/services/python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
56
  wexample_wex_addon_dev_python/services/python/app_service.py,sha256=OeM7f-IHm7lfS2graCBVAjjqxK_lEiQRmfl9mSEqoP0,2272
53
57
  wexample_wex_addon_dev_python/services/python/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
58
  wexample_wex_addon_dev_python/services/python/commands/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
- wexample_wex_addon_dev_python/services/python/commands/service/install.py,sha256=a50XFDUJGX2pCUJ_M4qruDUH7bHUxl5k9FIBlhky1eM,1896
56
- wexample_wex_addon_dev_python/services/python/commands/service/setup.py,sha256=JAt8N39_BQu8ZpYHHqNLZK3NFYFKzXvqjlPLTHOM3Y4,2293
59
+ wexample_wex_addon_dev_python/services/python/commands/service/install.py,sha256=DUH1NNImQhhAJo_w0gF0yb0vrfrmPHgXR2KKHaUAd38,1836
60
+ wexample_wex_addon_dev_python/services/python/commands/service/setup.py,sha256=kBF-aYEZKl1YFD-fSwhi6C92yoScWtLcIdgAdqOW2u0,2362
57
61
  wexample_wex_addon_dev_python/services/python/docker/.wex.yml,sha256=JdIF6nGkFcfi76yZYGlXxeWfOK4eAUSV_gAn6i3hk2w,32
58
62
  wexample_wex_addon_dev_python/services/python/docker/docker-compose.yml,sha256=W7uricaPSfkiWIczbzunFb2ooa409XH3dEkhb18uCLk,491
59
63
  wexample_wex_addon_dev_python/services/python/samples/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -67,8 +71,8 @@ wexample_wex_addon_dev_python/services/python/service.yml,sha256=28gvNQIzZ0T0PBw
67
71
  wexample_wex_addon_dev_python/workdir/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
72
  wexample_wex_addon_dev_python/workdir/__pycache__/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
73
  wexample_wex_addon_dev_python/workdir/mixin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
- wexample_wex_addon_dev_python/workdir/mixin/with_profiling_python_workdir_mixin.py,sha256=yPj84DyNJ_cFSawcOUDMBzKBlEohy2NQdt3FM5Nmw4o,3115
71
- wexample_wex_addon_dev_python/workdir/python_package_workdir.py,sha256=d_M2Fnl0i1R-b-Am3OXwwJhim_0Lf9UooZh7sc833C0,18032
72
- wexample_wex_addon_dev_python/workdir/python_packages_suite_workdir.py,sha256=_meFBFBxUyxjgeGJHx06o7cynEoUHifVn5eJbwqK3mw,2947
73
- wexample_wex_addon_dev_python/workdir/python_workdir.py,sha256=sLGlqr7-zLTsFSW3ZMuHSQ3k9871AfOjFzLgYLhIVHc,22504
74
- wexample_wex_addon_dev_python-10.2.0.dist-info/RECORD,,
74
+ wexample_wex_addon_dev_python/workdir/mixin/with_profiling_python_workdir_mixin.py,sha256=PA_kqwe2kF5t1nKakX5Q-6fant2R18aEnZfkjr6iJ6k,3097
75
+ wexample_wex_addon_dev_python/workdir/python_package_workdir.py,sha256=M-5jOhLCIIfOc4zmBatD2ytBWTkWLTZ3an75ERQ8vSM,18036
76
+ wexample_wex_addon_dev_python/workdir/python_packages_suite_workdir.py,sha256=7Jb5mKGNV2RjFtrFhUm6jbkiTfLDmy7sA97UGHITVdw,2902
77
+ wexample_wex_addon_dev_python/workdir/python_workdir.py,sha256=m4ODbPkSiDUjbqLFxrFTutkeoGFbSdJe4Cemx4B1u50,26436
78
+ wexample_wex_addon_dev_python-11.0.0.dist-info/RECORD,,