nmk-python 1.8.0__py3-none-any.whl → 1.8.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,7 +6,7 @@ from abc import ABC, abstractmethod
6
6
  from pathlib import Path
7
7
  from typing import cast
8
8
 
9
- from nmk._internal.envbackend_legacy import EnvBackend # For type hinting
9
+ from nmk.envbackend import EnvBackend
10
10
  from nmk.model.model import NmkModel
11
11
 
12
12
 
nmk_python/build.py CHANGED
@@ -10,7 +10,7 @@ from itertools import product
10
10
  from pathlib import Path
11
11
  from typing import cast
12
12
 
13
- from nmk._internal.envbackend_legacy import EnvBackend # For type hinting
13
+ from nmk.envbackend import EnvBackend
14
14
  from nmk.logs import NmkLogWrapper
15
15
  from nmk.model.builder import NmkTaskBuilder
16
16
  from nmk.model.model import NmkModel
@@ -243,6 +243,11 @@ class PythonArchiveDepsResolver(NmkDictConfigResolver):
243
243
  return out
244
244
 
245
245
 
246
+ # Internal/external dependencies keys
247
+ _INTERNAL_DEPS_KEY = "internal"
248
+ _EXTERNAL_DEPS_KEY = "external"
249
+
250
+
246
251
  class DepsMetadataBuilder(NmkTaskBuilder):
247
252
  """
248
253
  Generate python dependencies metadata file
@@ -263,18 +268,22 @@ class DepsMetadataBuilder(NmkTaskBuilder):
263
268
  # Prepare distributions map
264
269
  distributions = {normalize(d.name): d for d in importlib.metadata.distributions()}
265
270
  assert root_name in distributions, f"Root package '{root_name}' not found in installed distributions"
266
- output_data: dict[str, str] = {}
271
+ output_data: dict[str, dict[str, str]] = {_INTERNAL_DEPS_KEY: {}, _EXTERNAL_DEPS_KEY: {}}
267
272
 
268
273
  # Visitor implementation
269
274
  def visit(name: str):
270
275
  # Already visited or unknown?
271
- if (name in output_data) or (name not in distributions):
276
+ if (name in output_data[_INTERNAL_DEPS_KEY]) or (name in output_data[_EXTERNAL_DEPS_KEY]) or (name not in distributions):
272
277
  return
273
278
 
274
- # If this is a local project, don't add metadata
275
- if (name != root_name) and not any(fnmatch(name, pattern) for pattern in local_deps):
276
- # Keep versions
277
- output_data[name] = distributions[name].version
279
+ # Check for internal/external dependency
280
+ if name != root_name:
281
+ if any(fnmatch(name, pattern) for pattern in local_deps):
282
+ # Internal dependency
283
+ output_data[_INTERNAL_DEPS_KEY][name] = distributions[name].version
284
+ else:
285
+ # External dependency
286
+ output_data[_EXTERNAL_DEPS_KEY][name] = distributions[name].version
278
287
 
279
288
  # Visit dependencies
280
289
  for dep in distributions[name].requires or []:
@@ -292,4 +301,12 @@ class DepsMetadataBuilder(NmkTaskBuilder):
292
301
  visit(root_name)
293
302
 
294
303
  # Write output metadata file
295
- self.main_output.write_text(json.dumps({k: output_data[k] for k in sorted(output_data)}, indent=4))
304
+ self.main_output.write_text(
305
+ json.dumps(
306
+ {
307
+ _EXTERNAL_DEPS_KEY: {k: output_data[_EXTERNAL_DEPS_KEY][k] for k in sorted(output_data[_EXTERNAL_DEPS_KEY])},
308
+ _INTERNAL_DEPS_KEY: {k: output_data[_INTERNAL_DEPS_KEY][k] for k in sorted(output_data[_INTERNAL_DEPS_KEY])},
309
+ },
310
+ indent=4,
311
+ )
312
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nmk-python
3
- Version: 1.8.0
3
+ Version: 1.8.2
4
4
  Summary: Python plugin for nmk build system
5
5
  Author: The dynod project
6
6
  Maintainer: The dynod project
@@ -1,6 +1,6 @@
1
1
  nmk_python/__init__.py,sha256=EouCWXbAeObby1vOCx0Vx_WaGC2fEEFDMCen3JZt4TU,446
2
2
  nmk_python/badges.yml,sha256=LzElZecCXKxdF-oPkvIwfnbQlOcAM_zUj6MelClmAug,749
3
- nmk_python/build.py,sha256=bzpS1lUotsgdwBJH6Jgl2guAva1M0XDlKzwfj_lfZ1Y,11368
3
+ nmk_python/build.py,sha256=xtgcD1_9mPnqVCR9jubM0S_trWV1GsPL4DQrDIKdIvI,12045
4
4
  nmk_python/build.yml,sha256=8CWVacVv3r3pbvuRkaLQbH1aTO-oK4U0hAO9SgDTfFA,5726
5
5
  nmk_python/doc.yml,sha256=12amAlYylH7JAHaqBIOoEZ_LrXY_bPNKuHrrwUkIj8w,932
6
6
  nmk_python/files.py,sha256=K6Y-XKXuf8jh4x333Qgj6G1MyB-BgZ5Kd2-XCZhsfR4,2000
@@ -14,7 +14,7 @@ nmk_python/tests.yml,sha256=Sg6ZezkBVuvOzh-4QbJmZQymCOzXfenc0EpMdMZsEBc,1687
14
14
  nmk_python/version.py,sha256=fLpOWdujYwlJB7XhWaOGCTeg3gQaClk2YHoRkkW64dE,3109
15
15
  nmk_python/version.yml,sha256=WpZyQ2mChmvA_6eVb_Yp6ZaFIkX6oINxWBhKgb8h4GE,833
16
16
  nmk_python/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- nmk_python/backends/build_backend.py,sha256=NOAXMa6jmAIfUvA690ht-x_DwsGtvBvttPZLfFcX_b0,1437
17
+ nmk_python/backends/build_backend.py,sha256=WO0wZaxGdPna4K2yK7pNLtZX3cKf6atLLa00931N43Y,1400
18
18
  nmk_python/backends/factory.py,sha256=NMYByORffwSSIjeNMLkOnwh6x1xhJQVhoV-0rSooq6Q,953
19
19
  nmk_python/backends/pip_build_backend.py,sha256=4MGYghBeMjZhUlKTwE0svSHArYwOAaK1I6_gmeNnwaI,1698
20
20
  nmk_python/backends/uv_build_backend.py,sha256=QpN5nMm_QhnKzoHQcX4769OOQG6NqOD2ctYXyH2MI7A,1880
@@ -24,8 +24,8 @@ nmk_python/templates/pytest.toml.jinja,sha256=zQ3SRWnF23Omxm7zInE54j0l3OyjXSOn5p
24
24
  nmk_python/templates/python-settings.json.jinja,sha256=jYXSy96cX9X9GIHoF7XiZDzd4P2GOlMisAVWW626WF4,749
25
25
  nmk_python/templates/python-test-debug-launch.json.jinja,sha256=J_xju2EpHNXvgvqBxlf99p7g-ZMh3xE-_2r7o_57gpU,364
26
26
  nmk_python/templates/ruff.toml.jinja,sha256=DTHe1ixK1SBY8d2xBCfkGz89HzjAoMO7Ogs12AY1i4Y,346
27
- nmk_python-1.8.0.dist-info/licenses/LICENSE,sha256=PROo9EW7wP6jmSr_90OluItAsIB411b_CAqEBioMKpI,1074
28
- nmk_python-1.8.0.dist-info/METADATA,sha256=wW1y07Ek_meONzj-P7sZd9h_8d1tEsKMKN7xm-DD2pQ,3148
29
- nmk_python-1.8.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
30
- nmk_python-1.8.0.dist-info/top_level.txt,sha256=MCb5w_hoOZ0kk3Dajxrd9Pz6lZ3pyuS6TQCRA3vddTo,11
31
- nmk_python-1.8.0.dist-info/RECORD,,
27
+ nmk_python-1.8.2.dist-info/licenses/LICENSE,sha256=PROo9EW7wP6jmSr_90OluItAsIB411b_CAqEBioMKpI,1074
28
+ nmk_python-1.8.2.dist-info/METADATA,sha256=jOPufl401DVU08YM7Mp9QUeqKF-3NESvd5OFpQ2ciOo,3148
29
+ nmk_python-1.8.2.dist-info/WHEEL,sha256=YLJXdYXQ2FQ0Uqn2J-6iEIC-3iOey8lH3xCtvFLkd8Q,91
30
+ nmk_python-1.8.2.dist-info/top_level.txt,sha256=MCb5w_hoOZ0kk3Dajxrd9Pz6lZ3pyuS6TQCRA3vddTo,11
31
+ nmk_python-1.8.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (81.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5