nmk-python 1.10.0__py3-none-any.whl → 1.10.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.
@@ -62,8 +62,7 @@ class NmkPythonProjectTemplate(NmkBaseProjectTemplate):
62
62
  "config.venvPkgDeps": "\nDevelopment dependencies (tools)",
63
63
  "config.venvArchiveDeps": "\nDevelopment dependencies (tools, from local files)",
64
64
  "config.pythonPackageRequirements": "\nPython package dependencies",
65
- "config.pythonPackage": "\nPython package name",
66
- "config.pythonProjectFileItems": "\nExtra projects settings",
65
+ "config.pythonProjectFileItems": "\nExtra project settings",
67
66
  }
68
67
 
69
68
  def handle_dependencies(self, packages: list[str]) -> dict[str, NmkConfigType]:
@@ -110,6 +109,10 @@ class NmkPythonProjectTemplate(NmkBaseProjectTemplate):
110
109
 
111
110
  @property
112
111
  def config_items(self) -> dict[str, NmkConfigType]:
113
- return {
114
- "pythonProjectFileItems": {"project": {"description": "Insert here a oneline description of your project"}},
115
- }
112
+ items = dict(super().config_items)
113
+ items.update(
114
+ {
115
+ "pythonProjectFileItems": {"project": {"description": "Insert here a oneline description of your project"}},
116
+ }
117
+ )
118
+ return items
@@ -52,5 +52,5 @@ class UvBuildBackend(PythonBuildBackend):
52
52
  return build_dir / wheel_sub_dir / built_wheel_name
53
53
 
54
54
  def uninstall_wheels(self, wheel_names: list[str]):
55
- # Same as setup
56
- self._env_backend.upgrade(full=False, only_deps=True)
55
+ # Same as setup, just don't print updates (will be done by uninstall builder)
56
+ self._env_backend.upgrade(full=False, only_deps=True, print_updates=False)
nmk_python/build.yml CHANGED
@@ -117,7 +117,7 @@ tasks:
117
117
  - py.project
118
118
  - py.format
119
119
  - py.analyze
120
- appendToDeps: build
120
+ appendToDeps: build.compile
121
121
  if: ${pythonSrcFiles} # Only if python source files are found
122
122
  output:
123
123
  - ${pythonEditableStamp}
@@ -131,7 +131,7 @@ tasks:
131
131
  emoji: ":snake:.:link:"
132
132
  deps:
133
133
  - py.editable
134
- appendToDeps: build
134
+ appendToDeps: build.compile
135
135
  if: ${pythonSrcFiles} # Only if python source files are found
136
136
  output:
137
137
  - ${pythonDepsMetadata}
nmk_python/ruff.yml CHANGED
@@ -1,93 +1,91 @@
1
1
  config:
2
+ # Max line length
3
+ pythonLineLength: 160
2
4
 
3
- # Max line length
4
- pythonLineLength: 160
5
+ # Add project file fragment for ruff config
6
+ pythonProjectFileFragments:
7
+ - ${BASEDIR}/templates/ruff.toml.jinja
5
8
 
6
- # Add project file fragment for ruff config
7
- pythonProjectFileFragments:
8
- - ${BASEDIR}/templates/ruff.toml.jinja
9
+ # Stamp files for ruff execution
10
+ pythonRuffFormatStamp: ${outputDir}/.ruff-format
11
+ pythonRuffFixStamp: ${outputDir}/.ruff-fix
12
+ pythonRuffCheckStamp: ${outputDir}/.ruff-check
9
13
 
10
- # Stamp files for ruff execution
11
- pythonRuffFormatStamp: ${outputDir}/.ruff-format
12
- pythonRuffFixStamp: ${outputDir}/.ruff-fix
13
- pythonRuffCheckStamp: ${outputDir}/.ruff-check
14
+ # Extra arguments for ruff command lines
15
+ pythonRuffCommonExtraArgs: ""
16
+ pythonRuffFormatExtraArgs: ""
17
+ pythonRuffFixExtraArgs: ""
18
+ pythonRuffCheckExtraArgs: ""
14
19
 
15
- # Extra arguments for ruff command lines
16
- pythonRuffCommonExtraArgs: ""
17
- pythonRuffFormatExtraArgs: ""
18
- pythonRuffFixExtraArgs: ""
19
- pythonRuffCheckExtraArgs: ""
20
+ # Auto-fix rules
21
+ pythonAutoFixRules: ["I"] # Default: only fix imports
22
+ pythonAutoFixJoinedRules:
23
+ __resolver__: nmk_python.ruff.JoinedRulesResolver
24
+ params:
25
+ rules:
26
+ - ${pythonAutoFixRules}
20
27
 
21
- # Auto-fix rules
22
- pythonAutoFixRules: ["I"] # Default: only fix imports
23
- pythonAutoFixJoinedRules:
24
- __resolver__: nmk_python.ruff.JoinedRulesResolver
25
- params:
26
- rules:
27
- - ${pythonAutoFixRules}
28
+ # Ignored rules
29
+ pythonIgnoredRules:
30
+ - E203 # space before ":"; sometimes formatting with black introduces this kind of space in slice expressions
31
+ - E501 # line length; we're working with lines wider than the recommended 79 length
28
32
 
29
- # Ignored rules
30
- pythonIgnoredRules:
31
- - E203 # space before ":"; sometimes formatting with black introduces this kind of space in slice expressions
32
- - E501 # line length; we're working with lines wider than the recommended 79 length
33
-
34
- # Require VSCode specific extension for ruff analysis
35
- vscodeExtensionsNames:
36
- - charliermarsh.ruff
33
+ # Require VSCode specific extension for ruff analysis
34
+ vscodeExtensionsNames:
35
+ - charliermarsh.ruff
37
36
 
38
37
  tasks:
38
+ # Python source code format with ruff
39
+ py.format:
40
+ description: Format python code
41
+ emoji: ":snake:.:lipstick:"
42
+ deps:
43
+ - out
44
+ - py.project
45
+ appendToDeps: build.preprocess
46
+ if: ${pythonSrcFiles} # Only if python source files are found
47
+ output:
48
+ - ${pythonRuffFormatStamp}
49
+ input:
50
+ - ${pythonProjectFile}
51
+ - ${pythonSrcFiles}
52
+ builder: nmk_python.ruff.RuffBuilder
53
+ params:
54
+ src_folders: ${pythonSrcFolders}
55
+ command: format ${pythonRuffCommonExtraArgs} ${pythonRuffFormatExtraArgs}
39
56
 
40
- # Python source code format with ruff
41
- py.format:
42
- description: Format python code
43
- emoji: ":snake:.:lipstick:"
44
- deps:
45
- - out
46
- - py.project
47
- appendToDeps: build
48
- if: ${pythonSrcFiles} # Only if python source files are found
49
- output:
50
- - ${pythonRuffFormatStamp}
51
- input:
52
- - ${pythonProjectFile}
53
- - ${pythonSrcFiles}
54
- builder: nmk_python.ruff.RuffBuilder
55
- params:
56
- src_folders: ${pythonSrcFolders}
57
- command: format ${pythonRuffCommonExtraArgs} ${pythonRuffFormatExtraArgs}
58
-
59
- # Python source code fix with ruff
60
- py.fix:
61
- description: Fix python code
62
- emoji: ":snake:.:wrench:"
63
- deps:
64
- - py.format
65
- appendToDeps: build
66
- if: ${pythonSrcFiles} # Only if python source files are found
67
- output:
68
- - ${pythonRuffFixStamp}
69
- input:
70
- - ${pythonProjectFile}
71
- - ${pythonSrcFiles}
72
- builder: nmk_python.ruff.RuffBuilder
73
- params:
74
- src_folders: ${pythonSrcFolders}
75
- command: check --fix-only --select ${pythonAutoFixJoinedRules} ${pythonRuffCommonExtraArgs} ${pythonRuffFixExtraArgs}
57
+ # Python source code fix with ruff
58
+ py.fix:
59
+ description: Fix python code
60
+ emoji: ":snake:.:wrench:"
61
+ deps:
62
+ - py.format
63
+ appendToDeps: build.preprocess
64
+ if: ${pythonSrcFiles} # Only if python source files are found
65
+ output:
66
+ - ${pythonRuffFixStamp}
67
+ input:
68
+ - ${pythonProjectFile}
69
+ - ${pythonSrcFiles}
70
+ builder: nmk_python.ruff.RuffBuilder
71
+ params:
72
+ src_folders: ${pythonSrcFolders}
73
+ command: check --fix-only --select ${pythonAutoFixJoinedRules} ${pythonRuffCommonExtraArgs} ${pythonRuffFixExtraArgs}
76
74
 
77
- # Python source code analysis with ruff
78
- py.analyze:
79
- description: Analyze python code
80
- emoji: ":snake:.:eye: "
81
- deps:
82
- - py.fix
83
- appendToDeps: build
84
- if: ${pythonSrcFiles} # Only if python source files are found
85
- output:
86
- - ${pythonRuffCheckStamp}
87
- input:
88
- - ${pythonProjectFile}
89
- - ${pythonSrcFiles}
90
- builder: nmk_python.ruff.RuffBuilder
91
- params:
92
- src_folders: ${pythonSrcFolders}
93
- command: check ${pythonRuffCommonExtraArgs} ${pythonRuffCheckExtraArgs}
75
+ # Python source code analysis with ruff
76
+ py.analyze:
77
+ description: Analyze python code
78
+ emoji: ":snake:.:eye: "
79
+ deps:
80
+ - py.fix
81
+ appendToDeps: build.preprocess
82
+ if: ${pythonSrcFiles} # Only if python source files are found
83
+ output:
84
+ - ${pythonRuffCheckStamp}
85
+ input:
86
+ - ${pythonProjectFile}
87
+ - ${pythonSrcFiles}
88
+ builder: nmk_python.ruff.RuffBuilder
89
+ params:
90
+ src_folders: ${pythonSrcFolders}
91
+ command: check ${pythonRuffCommonExtraArgs} ${pythonRuffCheckExtraArgs}
@@ -6,12 +6,10 @@
6
6
  "editor.defaultFormatter": "charliermarsh.ruff",
7
7
  "editor.formatOnSave": true
8
8
  },
9
- "python.defaultInterpreterPath": "{{ venvName }}/bin/python",
10
9
  "python.autoComplete.extraPaths": [{% for folder in pythonSrcFolders %}{% if loop.index > 1 %},{% endif %}
11
10
  "{{folder}}"{% endfor %}
12
11
  ],
13
12
  "cSpell.words": [
14
- "isort",
15
13
  "noqa",
16
14
  "pycache",
17
15
  "pylint",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nmk-python
3
- Version: 1.10.0
3
+ Version: 1.10.2
4
4
  Summary: Python plugin for nmk build system
5
5
  Author: The dynod project
6
6
  Maintainer: The dynod project
@@ -16,7 +16,8 @@ Classifier: Programming Language :: Python :: 3.14
16
16
  Requires-Python: >=3.10
17
17
  Description-Content-Type: text/markdown
18
18
  License-File: LICENSE
19
- Requires-Dist: nmk-base>=1.0.1
19
+ Requires-Dist: nmk-base>=1.5.0
20
+ Requires-Dist: nmk>=1.5.1
20
21
  Requires-Dist: Jinja2
21
22
  Requires-Dist: tomlkit
22
23
  Requires-Dist: setuptools
@@ -1,38 +1,38 @@
1
1
  nmk_python/__init__.py,sha256=EouCWXbAeObby1vOCx0Vx_WaGC2fEEFDMCen3JZt4TU,446
2
2
  nmk_python/badges.yml,sha256=LzElZecCXKxdF-oPkvIwfnbQlOcAM_zUj6MelClmAug,749
3
3
  nmk_python/build.py,sha256=K-ZPBSN0YgWQqS4Nz2tRg-y2zTFvcutDiNR7Ii1NrMY,12979
4
- nmk_python/build.yml,sha256=bl1ttXjW7av5JfI8daBLF0jfUHbA4S1cy4Ym90BQ2T8,5942
4
+ nmk_python/build.yml,sha256=kkaJV535tgcfDV65Pjxfh4HMexCS3muQ5oazFtqgYXI,5958
5
5
  nmk_python/doc.yml,sha256=12amAlYylH7JAHaqBIOoEZ_LrXY_bPNKuHrrwUkIj8w,932
6
6
  nmk_python/files.py,sha256=K6Y-XKXuf8jh4x333Qgj6G1MyB-BgZ5Kd2-XCZhsfR4,2000
7
7
  nmk_python/files.yml,sha256=jlp87gW9rTASUnsy7id7VWanaMUMN_py82bMa2adniM,813
8
8
  nmk_python/plugin.yml,sha256=hi7osXyIwpHgJAsww5mhOA6emxhzgitDF8cOsvyY29Y,1068
9
9
  nmk_python/project.yml,sha256=wBnB6KOglRvIpw1UHuXTYmuE_2BYGBzGWwIEbA5NDv8,985
10
10
  nmk_python/ruff.py,sha256=TBmn5nFflcFRvjj36JtJGJ-GYHOK6XfhK9Jp-2dO5_E,1557
11
- nmk_python/ruff.yml,sha256=FNmYjbv2l5vlqFXinY87LfgzpZ3PSiduB_xUiYw8aMw,3019
11
+ nmk_python/ruff.yml,sha256=L3vSTLGI3ZP46D64VxenhF9Gz3lo5-J9cRwgKBrVl48,2732
12
12
  nmk_python/tests.py,sha256=DLUqTYhMbRupD5iK-nMnEM0GbfPPYgOp1wKHa_OCL7I,1391
13
13
  nmk_python/tests.yml,sha256=by_Ml1JXjgt1-J96AMp-6gwhISVFVylRZowUvaMkfpk,1636
14
14
  nmk_python/version.py,sha256=fLpOWdujYwlJB7XhWaOGCTeg3gQaClk2YHoRkkW64dE,3109
15
15
  nmk_python/version.yml,sha256=WpZyQ2mChmvA_6eVb_Yp6ZaFIkX6oINxWBhKgb8h4GE,833
16
16
  nmk_python/_buildenv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- nmk_python/_buildenv/template.py,sha256=CXMCAPX9DXyxkm8yt9upIKOBSODsn20lgDWrqF_iGng,4529
17
+ nmk_python/_buildenv/template.py,sha256=avDeQuMSYHTiTwAgLbrpTPZ6bSaEqjCZDkcpzFxNt88,4568
18
18
  nmk_python/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  nmk_python/backends/build_backend.py,sha256=WO0wZaxGdPna4K2yK7pNLtZX3cKf6atLLa00931N43Y,1400
20
20
  nmk_python/backends/factory.py,sha256=NMYByORffwSSIjeNMLkOnwh6x1xhJQVhoV-0rSooq6Q,953
21
21
  nmk_python/backends/pip_build_backend.py,sha256=4MGYghBeMjZhUlKTwE0svSHArYwOAaK1I6_gmeNnwaI,1698
22
- nmk_python/backends/uv_build_backend.py,sha256=QpN5nMm_QhnKzoHQcX4769OOQG6NqOD2ctYXyH2MI7A,1880
22
+ nmk_python/backends/uv_build_backend.py,sha256=cIQwKVsYWHlVQCmHWjjoC-3aRmWiHK55VSGexQbn_vw,1963
23
23
  nmk_python/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
24
  nmk_python/templates/build.toml.jinja,sha256=6F1Kdb32JVBWEitxLC7AsUdhx2VTyQEyWhhSb7n3oBs,1770
25
25
  nmk_python/templates/pytest.toml.jinja,sha256=zQ3SRWnF23Omxm7zInE54j0l3OyjXSOn5pQ5Pak8Boo,641
26
- nmk_python/templates/python-settings.json.jinja,sha256=jYXSy96cX9X9GIHoF7XiZDzd4P2GOlMisAVWW626WF4,749
26
+ nmk_python/templates/python-settings.json.jinja,sha256=v-GlXJSGdtfaEZIinSC_aT54rlKArFe1RZ-BgPdbANM,666
27
27
  nmk_python/templates/python-test-debug-launch.json.jinja,sha256=J_xju2EpHNXvgvqBxlf99p7g-ZMh3xE-_2r7o_57gpU,364
28
28
  nmk_python/templates/ruff.toml.jinja,sha256=DTHe1ixK1SBY8d2xBCfkGz89HzjAoMO7Ogs12AY1i4Y,346
29
29
  nmk_python/templates/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
30
  nmk_python/templates/src/__init__.py.jinja,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
31
  nmk_python/templates/src/sample.py.jinja,sha256=OOTps7EjviwYFCIb5GpMHcidxhBY5NLQVlcFLqxuxNU,227
32
32
  nmk_python/templates/src/test_sample.py.jinja,sha256=u-ShBoKDF3se9KvgQ1SzO4NwymjqNowwURF4Q1oR3wo,221
33
- nmk_python-1.10.0.dist-info/licenses/LICENSE,sha256=PROo9EW7wP6jmSr_90OluItAsIB411b_CAqEBioMKpI,1074
34
- nmk_python-1.10.0.dist-info/METADATA,sha256=-uq2daLzdIP1YC1TsbwiK-cDducWEZqIiaNCSY3j-Mo,3149
35
- nmk_python-1.10.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
36
- nmk_python-1.10.0.dist-info/entry_points.txt,sha256=QLXIIXl6wODHDnVkh7KuiLv_XzfFtNfdWwpxyB675ak,88
37
- nmk_python-1.10.0.dist-info/top_level.txt,sha256=MCb5w_hoOZ0kk3Dajxrd9Pz6lZ3pyuS6TQCRA3vddTo,11
38
- nmk_python-1.10.0.dist-info/RECORD,,
33
+ nmk_python-1.10.2.dist-info/licenses/LICENSE,sha256=PROo9EW7wP6jmSr_90OluItAsIB411b_CAqEBioMKpI,1074
34
+ nmk_python-1.10.2.dist-info/METADATA,sha256=ffLkcNgM9V72qI9CW0LBWu2Qlt0mpQ9w0TRtIl_YgwQ,3175
35
+ nmk_python-1.10.2.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
36
+ nmk_python-1.10.2.dist-info/entry_points.txt,sha256=QLXIIXl6wODHDnVkh7KuiLv_XzfFtNfdWwpxyB675ak,88
37
+ nmk_python-1.10.2.dist-info/top_level.txt,sha256=MCb5w_hoOZ0kk3Dajxrd9Pz6lZ3pyuS6TQCRA3vddTo,11
38
+ nmk_python-1.10.2.dist-info/RECORD,,