wexample-wex-addon-dev-python 15.7.0__py3-none-any.whl → 15.7.2__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.
@@ -6,14 +6,16 @@ if TYPE_CHECKING:
6
6
  from wexample_cli.context.execution_context import ExecutionContext
7
7
 
8
8
  # Pre-computed once at import time; avoids list allocation + join on every call.
9
- _PYLINT_DISABLE_FLAG = "--disable=" + ",".join([
10
- "missing-module-docstring",
11
- "import-outside-toplevel",
12
- "no-name-in-module",
13
- "broad-exception-caught",
14
- "c-extension-no-member",
15
- "line-too-long",
16
- ])
9
+ _PYLINT_DISABLE_FLAG = "--disable=" + ",".join(
10
+ [
11
+ "missing-module-docstring",
12
+ "import-outside-toplevel",
13
+ "no-name-in-module",
14
+ "broad-exception-caught",
15
+ "c-extension-no-member",
16
+ "line-too-long",
17
+ ]
18
+ )
17
19
 
18
20
 
19
21
  def _code_check_pylint(context: ExecutionContext, file_path: str) -> bool:
@@ -137,9 +137,7 @@ def python__code__rename(
137
137
  spinner.stop()
138
138
 
139
139
  mode = "APPLIED" if not dry_run else "DRY-RUN"
140
- context.io.log(
141
- f"[{mode}] {report.source_path} → {report.target_path}"
142
- )
140
+ context.io.log(f"[{mode}] {report.source_path} → {report.target_path}")
143
141
  context.io.log(
144
142
  f"[{mode}] scope={len(scope_roots)} root(s) "
145
143
  f"scanned={report.files_scanned} changed={len(report.files_changed)}"
@@ -81,9 +81,7 @@ class AbstractPythonPathRenameHandler(AbstractPythonRenameHandler):
81
81
  merge into an existing target (`PythonPackageRenameHandler`)."""
82
82
  plan.path_renames.append((source_path, target_path))
83
83
 
84
- def _plan_target_parent_creation(
85
- self, plan: RenamePlan, target_path: Path
86
- ) -> None:
84
+ def _plan_target_parent_creation(self, plan: RenamePlan, target_path: Path) -> None:
87
85
  """Walk up from `target_path.parent` and queue every missing ancestor
88
86
  directory plus an empty `__init__.py` so the move can land inside a
89
87
  valid Python package even when the user renames across parents."""
@@ -27,6 +27,7 @@ class AbstractPythonRenameHandler(BaseClass):
27
27
  layout, init validation, three-phase orchestration — lives here so every
28
28
  flavour of rename stays strictly consistent.
29
29
  """
30
+
30
31
  dry_run: bool = public_field(
31
32
  default=True,
32
33
  description="When True, return the plan/report without touching the "
@@ -73,9 +73,7 @@ class AbstractPythonSymbolRenameHandler(AbstractPythonRenameHandler):
73
73
 
74
74
  return plan
75
75
 
76
- def _add_unique(
77
- self, results: list[Path], seen: set[str], path: Path
78
- ) -> None:
76
+ def _add_unique(self, results: list[Path], seen: set[str], path: Path) -> None:
79
77
  key = str(path.resolve())
80
78
  if key in seen:
81
79
  return
@@ -114,18 +112,15 @@ class AbstractPythonSymbolRenameHandler(AbstractPythonRenameHandler):
114
112
  # Case A: this package directory IS the parent module.
115
113
  if (
116
114
  len(pkg_dir.parts) >= len(parent_parts)
117
- and pkg_dir.parts[-len(parent_parts):] == parent_parts
115
+ and pkg_dir.parts[-len(parent_parts) :] == parent_parts
118
116
  ):
119
117
  self._add_unique(results, seen, init_file)
120
118
 
121
119
  # Case B: the parent module is `<pkg_dir>/<leaf>.py` and the
122
120
  # package's dotted tail equals `outer_parts`.
123
- if (
124
- n_outer == 0
125
- or (
126
- len(pkg_dir.parts) >= n_outer
127
- and pkg_dir.parts[-n_outer:] == outer_parts
128
- )
121
+ if n_outer == 0 or (
122
+ len(pkg_dir.parts) >= n_outer
123
+ and pkg_dir.parts[-n_outer:] == outer_parts
129
124
  ):
130
125
  candidate = pkg_dir / f"{leaf}.py"
131
126
  if candidate.is_file():
@@ -151,10 +146,7 @@ class AbstractPythonSymbolRenameHandler(AbstractPythonRenameHandler):
151
146
  module = cst.parse_module(candidate.read_text(encoding="utf-8"))
152
147
  except (cst.ParserSyntaxError, OSError):
153
148
  continue
154
- if any(
155
- self._is_definition_node(stmt, old_name)
156
- for stmt in module.body
157
- ):
149
+ if any(self._is_definition_node(stmt, old_name) for stmt in module.body):
158
150
  matches.append(candidate)
159
151
 
160
152
  unique = list({str(m): m for m in matches}.values())
@@ -172,9 +164,7 @@ class AbstractPythonSymbolRenameHandler(AbstractPythonRenameHandler):
172
164
  return unique[0]
173
165
 
174
166
  @abstract_method
175
- def _is_definition_node(
176
- self, node: cst.CSTNode, name: str
177
- ) -> bool:
167
+ def _is_definition_node(self, node: cst.CSTNode, name: str) -> bool:
178
168
  """Return True if `node` is a top-level definition of `name` of this
179
169
  handler's kind (class / function / constant)."""
180
170
 
@@ -17,12 +17,12 @@ class RenameApplier(ABC):
17
17
 
18
18
  def apply(self, plan: RenamePlan) -> None:
19
19
  """Default sequencing:
20
- 1. create new directories (so subsequent steps land on existing parents)
21
- 2. write file contents (rewrites, fresh `__init__.py`)
22
- 3. rename paths (files or directories moved on disk)
23
- 4. delete leftover files (drop merge-duplicates)
24
- 5. purge build artefact directories (recursive rmtree)
25
- 6. remove empty directories (clean up after merges)
20
+ 1. create new directories (so subsequent steps land on existing parents)
21
+ 2. write file contents (rewrites, fresh `__init__.py`)
22
+ 3. rename paths (files or directories moved on disk)
23
+ 4. delete leftover files (drop merge-duplicates)
24
+ 5. purge build artefact directories (recursive rmtree)
25
+ 6. remove empty directories (clean up after merges)
26
26
  """
27
27
  for directory in plan.directories_to_create:
28
28
  self.create_directory(directory)
@@ -7,20 +7,22 @@ from pathlib import Path
7
7
  import libcst as cst
8
8
 
9
9
  # Directories never scanned for source files (build/venv artefacts, VCS).
10
- SKIP_DIR_NAMES: frozenset[str] = frozenset({
11
- "__pycache__",
12
- ".venv",
13
- "venv",
14
- "env",
15
- ".git",
16
- "node_modules",
17
- ".pytest_cache",
18
- ".mypy_cache",
19
- ".ruff_cache",
20
- ".pdm-build",
21
- "dist",
22
- "build",
23
- })
10
+ SKIP_DIR_NAMES: frozenset[str] = frozenset(
11
+ {
12
+ "__pycache__",
13
+ ".venv",
14
+ "venv",
15
+ "env",
16
+ ".git",
17
+ "node_modules",
18
+ ".pytest_cache",
19
+ ".mypy_cache",
20
+ ".ruff_cache",
21
+ ".pdm-build",
22
+ "dist",
23
+ "build",
24
+ }
25
+ )
24
26
 
25
27
 
26
28
  def dotted_to_parts(node) -> tuple[str, ...] | None:
@@ -210,7 +212,7 @@ class _ImportRenameTransformer(cst.CSTTransformer):
210
212
  if parts is None or not self._starts_with(parts):
211
213
  new_names.append(alias)
212
214
  continue
213
- new_parts = self.new_parts + parts[self._n:]
215
+ new_parts = self.new_parts + parts[self._n :]
214
216
  new_names.append(alias.with_changes(name=parts_to_dotted(new_parts)))
215
217
  touched = True
216
218
  if not touched:
@@ -242,8 +244,8 @@ class _ImportRenameTransformer(cst.CSTTransformer):
242
244
 
243
245
  # Case A/C — the module side IS the renamed entity (or below it).
244
246
  if self._starts_with(absolute_module):
245
- new_absolute = self.new_parts + absolute_module[self._n:]
246
- new_module_parts = new_absolute[len(resolved_pkg or ()):]
247
+ new_absolute = self.new_parts + absolute_module[self._n :]
248
+ new_module_parts = new_absolute[len(resolved_pkg or ()) :]
247
249
  self.changed = True
248
250
  new_module_node = (
249
251
  parts_to_dotted(new_module_parts) if new_module_parts else None
@@ -262,10 +264,7 @@ class _ImportRenameTransformer(cst.CSTTransformer):
262
264
  new_names = []
263
265
  touched = False
264
266
  for alias in updated_node.names:
265
- if (
266
- isinstance(alias.name, cst.Name)
267
- and alias.name.value == old_last
268
- ):
267
+ if isinstance(alias.name, cst.Name) and alias.name.value == old_last:
269
268
  new_names.append(alias.with_changes(name=cst.Name(new_last)))
270
269
  touched = True
271
270
  else:
@@ -276,9 +275,7 @@ class _ImportRenameTransformer(cst.CSTTransformer):
276
275
 
277
276
  return updated_node
278
277
 
279
- def _resolve_relative_prefix(
280
- self, rel_count: int
281
- ) -> tuple[str, ...] | None:
278
+ def _resolve_relative_prefix(self, rel_count: int) -> tuple[str, ...] | None:
282
279
  """Convert a relative-import dot count into the absolute package
283
280
  prefix it resolves to. Returns `()` for an absolute (non-relative)
284
281
  import, the resolved prefix for a relative one, or None when
@@ -385,10 +382,7 @@ class _SymbolRenameTransformer(cst.CSTTransformer):
385
382
  new_names: list[cst.ImportAlias] = []
386
383
  touched = False
387
384
  for alias in updated_node.names:
388
- if (
389
- isinstance(alias.name, cst.Name)
390
- and alias.name.value == self.old_name
391
- ):
385
+ if isinstance(alias.name, cst.Name) and alias.name.value == self.old_name:
392
386
  new_names.append(alias.with_changes(name=cst.Name(self.new_name)))
393
387
  touched = True
394
388
  else:
@@ -95,9 +95,7 @@ class PythonPackageRenameHandler(AbstractPythonPathRenameHandler):
95
95
  src_content = entry.read_text(encoding="utf-8")
96
96
  tgt_content = target_entry.read_text(encoding="utf-8")
97
97
  except OSError as e:
98
- raise RuntimeError(
99
- f"Cannot read content while planning merge: {e}"
100
- )
98
+ raise RuntimeError(f"Cannot read content while planning merge: {e}")
101
99
 
102
100
  if src_content == tgt_content or src_content == "":
103
101
  plan.files_to_delete.append(entry)
@@ -42,15 +42,14 @@ class AbstractPythonCodeSelection(AbstractCodeFromDirectorySelection):
42
42
  try:
43
43
  return self._excl_path_frags # type: ignore[attr-defined]
44
44
  except AttributeError:
45
- self._excl_path_frags: tuple[str, ...] = (
46
- super().get_excluded_path_fragments()
47
- + (
48
- "__pycache__",
49
- "/tests/",
50
- "/build/",
51
- "/dist/",
52
- "/.venv/",
53
- "/.pdm-build/",
54
- )
45
+ self._excl_path_frags: tuple[
46
+ str, ...
47
+ ] = super().get_excluded_path_fragments() + (
48
+ "__pycache__",
49
+ "/tests/",
50
+ "/build/",
51
+ "/dist/",
52
+ "/.venv/",
53
+ "/.pdm-build/",
55
54
  )
56
55
  return self._excl_path_frags
@@ -138,7 +138,9 @@ class PythonWorkdir(
138
138
 
139
139
  # global.name may be written in any case: an import name has to be a
140
140
  # valid Python identifier, matching the generated src/ directory.
141
- return f"{self.get_vendor_name()}_{string_to_snake_case(self.get_project_name())}"
141
+ return (
142
+ f"{self.get_vendor_name()}_{string_to_snake_case(self.get_project_name())}"
143
+ )
142
144
 
143
145
  def get_package_name(self) -> str:
144
146
  from wexample_helpers.helper.string import string_to_kebab_case
@@ -652,9 +654,7 @@ class PythonWorkdir(
652
654
  # relationship — the static dict identity is what `SidecarOfOption`
653
655
  # resolves on).
654
656
  def _entry_filter(entry):
655
- return not any(
656
- segment in exclude_dirs for segment in entry.parent.parts
657
- )
657
+ return not any(segment in exclude_dirs for segment in entry.parent.parts)
658
658
 
659
659
  return ChildrenFilterOption(
660
660
  pattern={
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: wexample-wex-addon-dev-python
3
- Version: 15.7.0
3
+ Version: 15.7.2
4
4
  Summary: Extends wex with commands to format, lint, and rename Python symbols, plus workdir types for Python packages and suites
5
5
  Author-Email: weeger <contact@wexample.com>
6
6
  License: MIT
@@ -18,9 +18,9 @@ Requires-Dist: networkx
18
18
  Requires-Dist: pylint
19
19
  Requires-Dist: pyright
20
20
  Requires-Dist: wexample-api>=6.8.0
21
- Requires-Dist: wexample-filestate-python>=9.2.0
21
+ Requires-Dist: wexample-filestate-python>=9.3.0
22
22
  Requires-Dist: wexample-wex-addon-ai>=19.1.0
23
- Requires-Dist: wexample-wex-addon-app>=34.16.0
23
+ Requires-Dist: wexample-wex-addon-app>=35.0.0
24
24
  Provides-Extra: dev
25
25
  Requires-Dist: pytest; extra == "dev"
26
26
  Requires-Dist: pytest-cov; extra == "dev"
@@ -28,7 +28,7 @@ Description-Content-Type: text/markdown
28
28
 
29
29
  # wex_addon_dev_python
30
30
 
31
- Version: 15.7.0
31
+ Version: 15.7.2
32
32
 
33
33
  Extends wex with commands to format, lint, and rename Python symbols, plus workdir types for Python packages and suites
34
34
 
@@ -1,19 +1,19 @@
1
- wexample_wex_addon_dev_python-15.7.0.dist-info/METADATA,sha256=T8XsAvqyAS8wX1L5Axg5frJxwF0PckEg_UXZLQ-yVu4,3509
2
- wexample_wex_addon_dev_python-15.7.0.dist-info/WHEEL,sha256=IuIk3wbaEnFH1cx75iM2R1CmliRI3dFLXTbRakgvgFQ,90
3
- wexample_wex_addon_dev_python-15.7.0.dist-info/entry_points.txt,sha256=4WCjdYUa09eJPSM1ahhnId0BTg7ncgmLgeKtfKjuUy4,127
1
+ wexample_wex_addon_dev_python-15.7.2.dist-info/METADATA,sha256=RHxinfzIuuRGzKeLduAN2xjqOjCvIHOrP1086h4z6wM,3508
2
+ wexample_wex_addon_dev_python-15.7.2.dist-info/WHEEL,sha256=IuIk3wbaEnFH1cx75iM2R1CmliRI3dFLXTbRakgvgFQ,90
3
+ wexample_wex_addon_dev_python-15.7.2.dist-info/entry_points.txt,sha256=4WCjdYUa09eJPSM1ahhnId0BTg7ncgmLgeKtfKjuUy4,127
4
4
  wexample_wex_addon_dev_python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  wexample_wex_addon_dev_python/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  wexample_wex_addon_dev_python/commands/code/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  wexample_wex_addon_dev_python/commands/code/check.py,sha256=TN2gsIjcte11cOCVq4hq4-8cJPemft7iIffYqsTqyus,3662
8
8
  wexample_wex_addon_dev_python/commands/code/check/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  wexample_wex_addon_dev_python/commands/code/check/mypy.py,sha256=lT1U196BxFkroVgXGUPHBuJp3U0GcB9CsZI2q6LKWaU,1413
10
- wexample_wex_addon_dev_python/commands/code/check/pylint.py,sha256=N_HJB_eZnKI0yzyDfSsjZFySaKDqIuCQYtg5GMMVIfI,3476
10
+ wexample_wex_addon_dev_python/commands/code/check/pylint.py,sha256=zZ41JrffbMI52PXVXXxMs9rSztCC3uxa6r9Boke2G1M,3510
11
11
  wexample_wex_addon_dev_python/commands/code/check/pyright.py,sha256=Yh15jyKCH81oKCrEDaM_SxTj8Myr9_R1tYTJmexiRsQ,3692
12
12
  wexample_wex_addon_dev_python/commands/code/format.py,sha256=AmvvbY1vPMOYafI19wliOnryF34d3wKOTTUDNh_SF6w,2883
13
13
  wexample_wex_addon_dev_python/commands/code/format/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
14
14
  wexample_wex_addon_dev_python/commands/code/format/black.py,sha256=hYSr0-vqzwdHzg1qSZHOoLY09nyTCEgzds73smG-lSw,1404
15
15
  wexample_wex_addon_dev_python/commands/code/format/isort.py,sha256=sj3Ucc78koiWEJXTZW8X9v8g7ODRQmQazQ_kiwzV2sE,1469
16
- wexample_wex_addon_dev_python/commands/code/rename.py,sha256=EkBDzsRuK3ILEO05p0oe0_uRT4TJXhkxFq06spiXXOg,5586
16
+ wexample_wex_addon_dev_python/commands/code/rename.py,sha256=lTKsmtPyTSon2zjfzgVa9rmL9g-9gv_3CUqkGBqMztQ,5572
17
17
  wexample_wex_addon_dev_python/commands/examples/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
18
  wexample_wex_addon_dev_python/commands/examples/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  wexample_wex_addon_dev_python/commands/examples/utils/some_example_type.py,sha256=zusGlLOLkt2EpPFk38FIRA6d_5Q92Y7-TLj8ofHhQk0,121
@@ -39,16 +39,16 @@ wexample_wex_addon_dev_python/middleware/each_python_file_middleware.py,sha256=0
39
39
  wexample_wex_addon_dev_python/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
40
  wexample_wex_addon_dev_python/python_addon_manager.py,sha256=0ayvkqn9uJYyK7IXqHKcWRP9w8WmRJwcJDWjef-Nh94,2725
41
41
  wexample_wex_addon_dev_python/refactor/__init__.py,sha256=CYw_GXE-1VXdKYV1092XWh-YLRci02uJ-FtzW38wUWQ,209
42
- wexample_wex_addon_dev_python/refactor/abstract_python_path_rename_handler.py,sha256=5ySBfqkyCww5ZOllEi8_I2Md07kL3GHxpbNIjOgq2Oc,4077
43
- wexample_wex_addon_dev_python/refactor/abstract_python_rename_handler.py,sha256=iTEblyjbV-CO58Aoa-0Xe5rqXZjWvuvv5FU8PVU-sb0,3353
44
- wexample_wex_addon_dev_python/refactor/abstract_python_symbol_rename_handler.py,sha256=dP0jRoAqjHsGU5xQdDumGS2C0a3kB8PqYhRQ9NorXtI,6949
45
- wexample_wex_addon_dev_python/refactor/applier.py,sha256=BFpgYn5Kva6IRfz7z4EZ_uafSSD_ehpt0yNagMeLf_8,3175
42
+ wexample_wex_addon_dev_python/refactor/abstract_python_path_rename_handler.py,sha256=umZtX-TEcWU7aSiv_yc2nsrXcLFfmYNXJgor4BmLJ48,4063
43
+ wexample_wex_addon_dev_python/refactor/abstract_python_rename_handler.py,sha256=R8aqksvg_qPj357LRF6idADZpAT35NKMA4cN5f8p1UI,3354
44
+ wexample_wex_addon_dev_python/refactor/abstract_python_symbol_rename_handler.py,sha256=Qyuph5WgKX8DjJhkaFx7XplSHwK_imY9vy-q8YuAEwc,6804
45
+ wexample_wex_addon_dev_python/refactor/applier.py,sha256=sepw9lvLTA1ikknOalKPQaenGOJ7ywjkO6ThMpv6N6w,3163
46
46
  wexample_wex_addon_dev_python/refactor/python_class_rename_handler.py,sha256=DdG0E337tekTPi740BmkdUbZ3oXBwQRHBoE0PjACbIM,617
47
- wexample_wex_addon_dev_python/refactor/python_common.py,sha256=kNP_bQEc33JDIEWoEDs9FiB_pwyNnWxECxMx0SeSKGk,15039
47
+ wexample_wex_addon_dev_python/refactor/python_common.py,sha256=fRpXTKuw2b42hEaOBwAAMnkJ8XbP6TC9r7eAp3vMaYY,14978
48
48
  wexample_wex_addon_dev_python/refactor/python_constant_rename_handler.py,sha256=Pp7xKh3nTbSq90-2S8OY5fO_biX2As38uu1V6yuMey4,1434
49
49
  wexample_wex_addon_dev_python/refactor/python_function_rename_handler.py,sha256=nx2ImKkJetCpMykGmi2Nw6_i6JscK4rRIFrz7P3r5kM,752
50
50
  wexample_wex_addon_dev_python/refactor/python_module_rename_handler.py,sha256=zkJ3obd9PTgu5MOf0A00NcQPmxLysFR3ef0hONy2m2o,3163
51
- wexample_wex_addon_dev_python/refactor/python_package_rename_handler.py,sha256=ZSQnjAAVbJXQOIlBn7aLgKoMmNIbff_-V3qrmIxqZFs,5350
51
+ wexample_wex_addon_dev_python/refactor/python_package_rename_handler.py,sha256=KPfUBSeQyHefPzmBPbg04KfBi0R-OJpqQNnpnpMIbQY,5312
52
52
  wexample_wex_addon_dev_python/refactor/rename_plan.py,sha256=RcT3IZhszV451nerU0lKSeysOafRh6vpoC6X1thCozg,3590
53
53
  wexample_wex_addon_dev_python/refactor/symbol_kind.py,sha256=FeWi_o0Dx9LPWyUlFJQfeKUYrPkbk9BQfuu73_g8yic,1496
54
54
  wexample_wex_addon_dev_python/resources/.wex.yml,sha256=JdIF6nGkFcfi76yZYGlXxeWfOK4eAUSV_gAn6i3hk2w,32
@@ -62,7 +62,7 @@ wexample_wex_addon_dev_python/resources/readme_templates/install.md.j2,sha256=PD
62
62
  wexample_wex_addon_dev_python/resources/readme_templates/tests.md.j2,sha256=tKLcDwx7jhQkryXIxWr12AK-hKEaP6Rusu2MrluiABs,1289
63
63
  wexample_wex_addon_dev_python/resources/writing_rules/python_code.md,sha256=wjApoJK2w31kBX1OpLVqcQJ4DtoOYtpTNPi5T8uRDog,2998
64
64
  wexample_wex_addon_dev_python/selection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
- wexample_wex_addon_dev_python/selection/abstract_python_code_selection.py,sha256=nExPnFg6nfDhydTgjtq_rkoWMEwz6hjBOzZbbwPXLgM,2192
65
+ wexample_wex_addon_dev_python/selection/abstract_python_code_selection.py,sha256=ZA4HffR6tHIaB_nj3KPALUOxhPsGW3IWjkKY8kvV6hc,2146
66
66
  wexample_wex_addon_dev_python/selection/package_description_missing_selection.py,sha256=AP_QI-wA-9CmIIwAvobutJJyPTWwmPeS-j2idD7xsBw,1457
67
67
  wexample_wex_addon_dev_python/selection/python_code_performance_selection.py,sha256=Boel7HjvVZUeeArd48tbXqCnyRWQfCimkOT5Kqye-aE,7906
68
68
  wexample_wex_addon_dev_python/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -87,5 +87,5 @@ wexample_wex_addon_dev_python/workdir/mixin/__init__.py,sha256=47DEQpj8HBSa-_TIm
87
87
  wexample_wex_addon_dev_python/workdir/mixin/with_profiling_python_workdir_mixin.py,sha256=PA_kqwe2kF5t1nKakX5Q-6fant2R18aEnZfkjr6iJ6k,3097
88
88
  wexample_wex_addon_dev_python/workdir/python_package_workdir.py,sha256=0HI72do6NoFMJSDbSZDKvWVtdVHlFjkRlUWfmfTpMgI,24974
89
89
  wexample_wex_addon_dev_python/workdir/python_packages_suite_workdir.py,sha256=7Jb5mKGNV2RjFtrFhUm6jbkiTfLDmy7sA97UGHITVdw,2902
90
- wexample_wex_addon_dev_python/workdir/python_workdir.py,sha256=1t4k3GX-3aNaV4aUb-NSstlDNtwPvmeGolPs9g3laI8,32833
91
- wexample_wex_addon_dev_python-15.7.0.dist-info/RECORD,,
90
+ wexample_wex_addon_dev_python/workdir/python_workdir.py,sha256=RW5PVFuxP4xVvVGuSEc3FATwZsnFUr0qMjv2nMRc57U,32827
91
+ wexample_wex_addon_dev_python-15.7.2.dist-info/RECORD,,