@mnci/nx-python-pip 0.1.2 → 0.1.4

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.
package/README.md CHANGED
@@ -11,7 +11,7 @@ ships only `uv` and Poetry providers, and every alternative found on npm is
11
11
  either the same uv/Poetry architecture or years stale. If your organization
12
12
  standardizes on plain pip (no uv, no Poetry), this plugin fills that gap.
13
13
 
14
- It was built for and is used by [`@mnci/cli`](../cli)'s `mnci2 add python-*`
14
+ It was built for and is used by [`@mnci/cli`](../cli)'s `mnci add python-*`
15
15
  commands, but has no dependency on `@mnci/cli` — any Nx 21+ workspace can
16
16
  install and use it directly.
17
17
 
@@ -26,10 +26,10 @@ are explicit (resolved via `generators.json`/`executors.json`, plain Node
26
26
  module lookup), not inference-based.
27
27
 
28
28
  You will also need the actual Python tools this plugin's executors shell out
29
- to: `python3 -m pip install build twine ruff pytest` (or pin them in your own
30
- `requirements-dev.txt` / `requirements-dev.in`). The plugin has no opinion on
31
- *how* those land on a machine — same way `@nx/js`'s executors assume `node`
32
- is already there.
29
+ to: `python3 -m pip install build twine ruff pytest` (`python -m pip ...` on
30
+ Windows — see below) — or pin them in your own `requirements-dev.txt` /
31
+ `requirements-dev.in`. The plugin has no opinion on *how* those land on a
32
+ machine — same way `@nx/js`'s executors assume `node` is already there.
33
33
 
34
34
  ## Generators
35
35
 
@@ -56,9 +56,13 @@ nx g @mnci/nx-python-pip:function-application my-function-app
56
56
  | `lint` | `python -m ruff check .` |
57
57
  | `publish` | `python -m twine upload --skip-existing dist/*`, reading `TWINE_USERNAME`/`TWINE_PASSWORD`/`TWINE_REPOSITORY_URL` from the environment |
58
58
 
59
- Every command is invoked as `python3 -m <tool>`, never a hard-coded venv
59
+ Every command is invoked as `<python> -m <tool>`, never a hard-coded venv
60
60
  path, so the exact same command works whether or not you've activated a
61
- virtualenv — this plugin never creates or manages one itself.
61
+ virtualenv — this plugin never creates or manages one itself. `<python>` is
62
+ resolved per platform (`pythonCommand` in `src/internal/pythonCommand.ts`):
63
+ `python3` on POSIX, `python` on Windows, since the standard python.org
64
+ Windows installer registers only `python.exe` — a hard-coded `python3` fails
65
+ outright there.
62
66
 
63
67
  `publish` accepts a real, typed `dryRun` option — `nx release publish
64
68
  --dry-run` sets it automatically on every `nx-release-publish` executor, so
@@ -115,6 +119,12 @@ dependencies).
115
119
  wheel — not from a plain `pip install -e .` dev environment, since
116
120
  vendoring happens at `build` time only. A project whose pytest-covered
117
121
  code imports a vendored internal lib needs its own test-isolation
118
- strategy; the `test` executor makes no attempt to solve this.
122
+ strategy; the `test` executor makes no attempt to solve this (it only
123
+ editable-installs the project under test, never what it imports). A
124
+ workspace can solve it at the workspace level instead, by
125
+ editable-installing every Python project (not just the one under test)
126
+ into one shared environment — the pip-world counterpart of `npm install`
127
+ hoisting every workspace package into one root `node_modules`. `@mnci/cli`
128
+ does exactly this as a guarded CI step; see its README.
119
129
  - venv management is left to the user — same spirit as never managing
120
130
  `node_modules` beyond `npm install`.
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/executors/build/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAQjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAoBrD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAA8B,aAAa,CAAE,QAAQ,EAAE,mBAAmB,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAqCnI"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/executors/build/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AASjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAoBrD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAA8B,aAAa,CAAE,QAAQ,EAAE,mBAAmB,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAqCnI"}
@@ -6,6 +6,7 @@ const node_fs_1 = require("node:fs");
6
6
  const node_os_1 = require("node:os");
7
7
  const node_path_1 = require("node:path");
8
8
  const executorContext_1 = require("../../internal/executorContext");
9
+ const pythonCommand_1 = require("../../internal/pythonCommand");
9
10
  const pythonProject_1 = require("../../internal/pythonProject");
10
11
  const vendor_1 = require("../../internal/vendor");
11
12
  /**
@@ -52,7 +53,7 @@ async function buildExecutor(_options, context) {
52
53
  const pyprojectToml = (0, node_fs_1.readFileSync)(pyprojectPath, 'utf8');
53
54
  const vendorNames = (0, vendor_1.parseVendorEntries)(pyprojectToml);
54
55
  if (vendorNames.length === 0) {
55
- const result = (0, node_child_process_1.spawnSync)('python3', ['-m', 'build', '--outdir', outDirectory, absoluteProjectRoot], { stdio: 'inherit' });
56
+ const result = (0, node_child_process_1.spawnSync)((0, pythonCommand_1.pythonCommand)(), ['-m', 'build', '--outdir', outDirectory, absoluteProjectRoot], { stdio: 'inherit' });
56
57
  return { success: result.status === 0 };
57
58
  }
58
59
  const stagingRoot = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'nx-python-pip-build-'));
@@ -71,7 +72,7 @@ async function buildExecutor(_options, context) {
71
72
  }
72
73
  const stagedPyprojectPath = (0, node_path_1.join)(stagingRoot, 'pyproject.toml');
73
74
  (0, node_fs_1.writeFileSync)(stagedPyprojectPath, (0, vendor_1.addPackagesToWheelTarget)((0, node_fs_1.readFileSync)(stagedPyprojectPath, 'utf8'), moduleDirectories));
74
- const result = (0, node_child_process_1.spawnSync)('python3', ['-m', 'build', '--outdir', outDirectory, stagingRoot], { stdio: 'inherit' });
75
+ const result = (0, node_child_process_1.spawnSync)((0, pythonCommand_1.pythonCommand)(), ['-m', 'build', '--outdir', outDirectory, stagingRoot], { stdio: 'inherit' });
75
76
  return { success: result.status === 0 };
76
77
  }
77
78
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/executors/build/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/executors/build/executor.ts"],"names":[],"mappings":";;;AACA,2DAA8C;AAC9C,qCAAkF;AAClF,qCAAgC;AAChC,yCAAgC;AAChC,oEAAgE;AAChE,gEAA4D;AAC5D,gEAAoE;AACpE,kDAAoF;AAGpF;;;;;;;;;;;;;GAaG;AACH,SAAS,mBAAmB,CAAE,IAAY,EAAE,OAAwB;IAClE,OAAO,OAAO,CAAC,sBAAsB,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAA;AAC7D,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACY,KAAK,wBAAyB,QAA6B,EAAE,OAAwB;IAClG,MAAM,WAAW,GAAG,IAAA,iCAAe,EAAC,OAAO,CAAC,CAAA;IAC5C,MAAM,mBAAmB,GAAG,IAAA,gBAAI,EAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAC3D,MAAM,YAAY,GAAG,IAAA,gBAAI,EAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;IACtD,MAAM,aAAa,GAAG,IAAA,gBAAI,EAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAA;IACjE,MAAM,aAAa,GAAG,IAAA,sBAAY,EAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IACzD,MAAM,WAAW,GAAG,IAAA,2BAAkB,EAAC,aAAa,CAAC,CAAA;IAErD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,IAAA,6BAAa,GAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;QAC/H,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAA;IACzC,CAAC;IAED,MAAM,WAAW,GAAG,IAAA,qBAAW,EAAC,IAAA,gBAAI,EAAC,IAAA,gBAAM,GAAE,EAAE,sBAAsB,CAAC,CAAC,CAAA;IACvE,IAAI,CAAC;QACH,IAAA,gBAAM,EAAC,mBAAmB,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAE7D,MAAM,iBAAiB,GAAa,EAAE,CAAA;QACtC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YACvD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,0CAA0C,IAAI,wCAAwC,CAAC,CAAA;gBACrG,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;YAC3B,CAAC;YACD,MAAM,eAAe,GAAG,IAAA,qCAAqB,EAAC,IAAI,CAAC,CAAA;YACnD,IAAA,gBAAM,EAAC,IAAA,gBAAI,EAAC,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,eAAe,CAAC,EAAE,IAAA,gBAAI,EAAC,WAAW,EAAE,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAClH,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACzC,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAA,gBAAI,EAAC,WAAW,EAAE,gBAAgB,CAAC,CAAA;QAC/D,IAAA,uBAAa,EAAC,mBAAmB,EAAE,IAAA,iCAAwB,EAAC,IAAA,sBAAY,EAAC,mBAAmB,EAAE,MAAM,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAA;QAE1H,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,IAAA,6BAAa,GAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;QACvH,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAA;IACzC,CAAC;YAAS,CAAC;QACT,IAAA,gBAAM,EAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACvD,CAAC;AACH,CAAC"}
@@ -1,12 +1,13 @@
1
1
  import type { ExecutorContext } from '@nx/devkit';
2
2
  import type { LintExecutorSchema } from './schema.d';
3
3
  /**
4
- * Runs `python3 -m ruff check .` in the project's own directory.
4
+ * Runs `<python> -m ruff check .` in the project's own directory.
5
5
  *
6
6
  * @remarks
7
- * `python3 -m ruff` (not a bare `ruff`) so it resolves whatever `python3`
8
- * the caller has active — no hard-coded venv path, matching every other
9
- * executor in this package.
7
+ * `-m ruff` (not a bare `ruff`) so it resolves whatever Python the caller
8
+ * has active — no hard-coded venv path, matching every other executor in
9
+ * this package. The Python binary itself is resolved by {@link pythonCommand}
10
+ * (`python3` on POSIX, `python` on Windows), not hard-coded.
10
11
  *
11
12
  * @param _options - Unused (ruff needs no per-project configuration here).
12
13
  * @param context - The Nx executor context.
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/executors/lint/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAIjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpD;;;;;;;;;;;;;GAaG;AACH,wBAA8B,YAAY,CAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAIjI"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/executors/lint/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAKjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpD;;;;;;;;;;;;;;GAcG;AACH,wBAA8B,YAAY,CAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAIjI"}
@@ -4,13 +4,15 @@ exports.default = lintExecutor;
4
4
  const node_child_process_1 = require("node:child_process");
5
5
  const node_path_1 = require("node:path");
6
6
  const executorContext_1 = require("../../internal/executorContext");
7
+ const pythonCommand_1 = require("../../internal/pythonCommand");
7
8
  /**
8
- * Runs `python3 -m ruff check .` in the project's own directory.
9
+ * Runs `<python> -m ruff check .` in the project's own directory.
9
10
  *
10
11
  * @remarks
11
- * `python3 -m ruff` (not a bare `ruff`) so it resolves whatever `python3`
12
- * the caller has active — no hard-coded venv path, matching every other
13
- * executor in this package.
12
+ * `-m ruff` (not a bare `ruff`) so it resolves whatever Python the caller
13
+ * has active — no hard-coded venv path, matching every other executor in
14
+ * this package. The Python binary itself is resolved by {@link pythonCommand}
15
+ * (`python3` on POSIX, `python` on Windows), not hard-coded.
14
16
  *
15
17
  * @param _options - Unused (ruff needs no per-project configuration here).
16
18
  * @param context - The Nx executor context.
@@ -20,7 +22,7 @@ const executorContext_1 = require("../../internal/executorContext");
20
22
  */
21
23
  async function lintExecutor(_options, context) {
22
24
  const cwd = (0, node_path_1.join)(context.root, (0, executorContext_1.projectRootFrom)(context));
23
- const result = (0, node_child_process_1.spawnSync)('python3', ['-m', 'ruff', 'check', '.'], { cwd, stdio: 'inherit' });
25
+ const result = (0, node_child_process_1.spawnSync)((0, pythonCommand_1.pythonCommand)(), ['-m', 'ruff', 'check', '.'], { cwd, stdio: 'inherit' });
24
26
  return { success: result.status === 0 };
25
27
  }
26
28
  //# sourceMappingURL=executor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/executors/lint/executor.ts"],"names":[],"mappings":";;;AACA,2DAA8C;AAC9C,yCAAgC;AAChC,oEAAgE;AAGhE;;;;;;;;;;;;;GAaG;AACY,KAAK,uBAAwB,QAA4B,EAAE,OAAwB;IAChG,MAAM,GAAG,GAAG,IAAA,gBAAI,EAAC,OAAO,CAAC,IAAI,EAAE,IAAA,iCAAe,EAAC,OAAO,CAAC,CAAC,CAAA;IACxD,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAC5F,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAA;AACzC,CAAC"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/executors/lint/executor.ts"],"names":[],"mappings":";;;AACA,2DAA8C;AAC9C,yCAAgC;AAChC,oEAAgE;AAChE,gEAA4D;AAG5D;;;;;;;;;;;;;;GAcG;AACY,KAAK,uBAAwB,QAA4B,EAAE,OAAwB;IAChG,MAAM,GAAG,GAAG,IAAA,gBAAI,EAAC,OAAO,CAAC,IAAI,EAAE,IAAA,iCAAe,EAAC,OAAO,CAAC,CAAC,CAAA;IACxD,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,IAAA,6BAAa,GAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAClG,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAA;AACzC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/executors/publish/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAIjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAEvD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAA8B,eAAe,CAAE,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAWtI"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/executors/publish/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAKjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAEvD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAA8B,eAAe,CAAE,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAWtI"}
@@ -4,6 +4,7 @@ exports.default = publishExecutor;
4
4
  const node_child_process_1 = require("node:child_process");
5
5
  const node_path_1 = require("node:path");
6
6
  const executorContext_1 = require("../../internal/executorContext");
7
+ const pythonCommand_1 = require("../../internal/pythonCommand");
7
8
  /**
8
9
  * Runs `python -m twine upload --skip-existing dist/*`.
9
10
  *
@@ -30,13 +31,13 @@ const executorContext_1 = require("../../internal/executorContext");
30
31
  */
31
32
  async function publishExecutor(options, context) {
32
33
  if (options.dryRun) {
33
- console.log('[dry-run] would run: python3 -m twine upload --skip-existing dist/*');
34
+ console.log(`[dry-run] would run: ${(0, pythonCommand_1.pythonCommand)()} -m twine upload --skip-existing dist/*`);
34
35
  return { success: true };
35
36
  }
36
37
  const cwd = (0, node_path_1.join)(context.root, (0, executorContext_1.projectRootFrom)(context));
37
38
  // No shell: true needed for the dist/* glob — twine globs its own path
38
39
  // arguments internally, so this stays free of a shell-injection surface.
39
- const result = (0, node_child_process_1.spawnSync)('python3', ['-m', 'twine', 'upload', '--skip-existing', 'dist/*'], { cwd, stdio: 'inherit' });
40
+ const result = (0, node_child_process_1.spawnSync)((0, pythonCommand_1.pythonCommand)(), ['-m', 'twine', 'upload', '--skip-existing', 'dist/*'], { cwd, stdio: 'inherit' });
40
41
  return { success: result.status === 0 };
41
42
  }
42
43
  //# sourceMappingURL=executor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/executors/publish/executor.ts"],"names":[],"mappings":";;;AACA,2DAA8C;AAC9C,yCAAgC;AAChC,oEAAgE;AAGhE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACY,KAAK,0BAA2B,OAA8B,EAAE,OAAwB;IACrG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAA;QAClF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,gBAAI,EAAC,OAAO,CAAC,IAAI,EAAE,IAAA,iCAAe,EAAC,OAAO,CAAC,CAAC,CAAA;IACxD,uEAAuE;IACvE,yEAAyE;IACzE,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IACtH,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAA;AACzC,CAAC"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/executors/publish/executor.ts"],"names":[],"mappings":";;;AACA,2DAA8C;AAC9C,yCAAgC;AAChC,oEAAgE;AAChE,gEAA4D;AAG5D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACY,KAAK,0BAA2B,OAA8B,EAAE,OAAwB;IACrG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAA,6BAAa,GAAE,yCAAyC,CAAC,CAAA;QAC7F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,gBAAI,EAAC,OAAO,CAAC,IAAI,EAAE,IAAA,iCAAe,EAAC,OAAO,CAAC,CAAC,CAAA;IACxD,uEAAuE;IACvE,yEAAyE;IACzE,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,IAAA,6BAAa,GAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAC5H,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAA;AACzC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/executors/test/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAIjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAA8B,YAAY,CAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAYhI"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/executors/test/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAKjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAA8B,YAAY,CAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAYhI"}
@@ -4,6 +4,7 @@ exports.default = testExecutor;
4
4
  const node_child_process_1 = require("node:child_process");
5
5
  const node_path_1 = require("node:path");
6
6
  const executorContext_1 = require("../../internal/executorContext");
7
+ const pythonCommand_1 = require("../../internal/pythonCommand");
7
8
  /**
8
9
  * Runs pytest for a Python project, optionally installing it in editable
9
10
  * mode first so its own declared dependencies are importable.
@@ -27,12 +28,12 @@ const executorContext_1 = require("../../internal/executorContext");
27
28
  async function testExecutor(options, context) {
28
29
  const cwd = (0, node_path_1.join)(context.root, (0, executorContext_1.projectRootFrom)(context));
29
30
  if (options.installEditable !== false) {
30
- const install = (0, node_child_process_1.spawnSync)('python3', ['-m', 'pip', 'install', '--quiet', '-e', '.'], { cwd, stdio: 'inherit' });
31
+ const install = (0, node_child_process_1.spawnSync)((0, pythonCommand_1.pythonCommand)(), ['-m', 'pip', 'install', '--quiet', '-e', '.'], { cwd, stdio: 'inherit' });
31
32
  if (install.status !== 0) {
32
33
  return { success: false };
33
34
  }
34
35
  }
35
- const result = (0, node_child_process_1.spawnSync)('python3', ['-m', 'pytest'], { cwd, stdio: 'inherit' });
36
+ const result = (0, node_child_process_1.spawnSync)((0, pythonCommand_1.pythonCommand)(), ['-m', 'pytest'], { cwd, stdio: 'inherit' });
36
37
  return { success: result.status === 0 };
37
38
  }
38
39
  //# sourceMappingURL=executor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/executors/test/executor.ts"],"names":[],"mappings":";;;AACA,2DAA8C;AAC9C,yCAAgC;AAChC,oEAAgE;AAGhE;;;;;;;;;;;;;;;;;;;GAmBG;AACY,KAAK,uBAAwB,OAA2B,EAAE,OAAwB;IAC/F,MAAM,GAAG,GAAG,IAAA,gBAAI,EAAC,OAAO,CAAC,IAAI,EAAE,IAAA,iCAAe,EAAC,OAAO,CAAC,CAAC,CAAA;IAExD,IAAI,OAAO,CAAC,eAAe,KAAK,KAAK,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,IAAA,8BAAS,EAAC,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;QAC/G,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,SAAS,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAChF,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAA;AACzC,CAAC"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/executors/test/executor.ts"],"names":[],"mappings":";;;AACA,2DAA8C;AAC9C,yCAAgC;AAChC,oEAAgE;AAChE,gEAA4D;AAG5D;;;;;;;;;;;;;;;;;;;GAmBG;AACY,KAAK,uBAAwB,OAA2B,EAAE,OAAwB;IAC/F,MAAM,GAAG,GAAG,IAAA,gBAAI,EAAC,OAAO,CAAC,IAAI,EAAE,IAAA,iCAAe,EAAC,OAAO,CAAC,CAAC,CAAA;IAExD,IAAI,OAAO,CAAC,eAAe,KAAK,KAAK,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,IAAA,8BAAS,EAAC,IAAA,6BAAa,GAAE,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;QACrH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,IAAA,6BAAa,GAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IACtF,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAA;AACzC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Resolves the Python executable name for the current platform.
3
+ *
4
+ * @remarks
5
+ * Shared by every executor and {@link versionActions} in this package, so
6
+ * they all invoke the same binary a given machine actually has. POSIX
7
+ * systems (Linux/macOS — the assumed default) register `python3`; the
8
+ * standard python.org Windows installer registers only `python.exe`, not
9
+ * `python3.exe`, so a hard-coded `python3` fails outright there with
10
+ * "'python3' is not recognized as an internal or external command." This is
11
+ * a static, zero-cost platform check (`process.platform`), not a subprocess
12
+ * probe — every executor call site would otherwise need its own probing
13
+ * logic, or silently assume POSIX.
14
+ *
15
+ * @param None - this function takes no parameters.
16
+ * @returns `'python'` on `win32`, `'python3'` everywhere else.
17
+ * @throws Never - pure platform check.
18
+ * @typeParam None - this function has no generic type parameters.
19
+ */
20
+ export declare function pythonCommand(): string;
21
+ //# sourceMappingURL=pythonCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pythonCommand.d.ts","sourceRoot":"","sources":["../../src/internal/pythonCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,IAAK,MAAM,CAEvC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pythonCommand = pythonCommand;
4
+ /**
5
+ * Resolves the Python executable name for the current platform.
6
+ *
7
+ * @remarks
8
+ * Shared by every executor and {@link versionActions} in this package, so
9
+ * they all invoke the same binary a given machine actually has. POSIX
10
+ * systems (Linux/macOS — the assumed default) register `python3`; the
11
+ * standard python.org Windows installer registers only `python.exe`, not
12
+ * `python3.exe`, so a hard-coded `python3` fails outright there with
13
+ * "'python3' is not recognized as an internal or external command." This is
14
+ * a static, zero-cost platform check (`process.platform`), not a subprocess
15
+ * probe — every executor call site would otherwise need its own probing
16
+ * logic, or silently assume POSIX.
17
+ *
18
+ * @param None - this function takes no parameters.
19
+ * @returns `'python'` on `win32`, `'python3'` everywhere else.
20
+ * @throws Never - pure platform check.
21
+ * @typeParam None - this function has no generic type parameters.
22
+ */
23
+ function pythonCommand() {
24
+ return process.platform === 'win32' ? 'python' : 'python3';
25
+ }
26
+ //# sourceMappingURL=pythonCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pythonCommand.js","sourceRoot":"","sources":["../../src/internal/pythonCommand.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH;IACE,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;AAC5D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"versionActions.d.ts","sourceRoot":"","sources":["../../src/release/versionActions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEpD,QAAA,MAAQ,cAAc,4CAAyD,CAAA;AAI/E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,cAAc;IAC9D,sBAAsB,WAAqB;IAE3C;;;;;;;;OAQG;IACG,oCAAoC,CAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAWxH;IAED;;;;;;;;;;;;;;;;OAgBG;IACG,8BAA8B,CAClC,KAAK,EAAE,IAAI,EACX,+BAA+B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACnE,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CASpE;IAED;;;;;;;;;;;;;;;OAeG;IACG,8BAA8B,CAClC,KAAK,EAAE,IAAI,EACX,aAAa,EAAE,YAAY,EAC3B,sBAAsB,EAAE,MAAM,GAC7B,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAEjF;IAED;;;;;;;;;OASG;IACG,oBAAoB,CAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAK7E;IAED;;;;;;;;;;;;;OAaG;IACG,yBAAyB,CAC7B,KAAK,EAAE,IAAI,EACX,aAAa,EAAE,YAAY,EAC3B,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5C,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnB;CACF"}
1
+ {"version":3,"file":"versionActions.d.ts","sourceRoot":"","sources":["../../src/release/versionActions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAGpD,QAAA,MAAQ,cAAc,4CAAyD,CAAA;AAI/E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,cAAc;IAC9D,sBAAsB,WAAqB;IAE3C;;;;;;;;OAQG;IACG,oCAAoC,CAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAWxH;IAED;;;;;;;;;;;;;;;;OAgBG;IACG,8BAA8B,CAClC,KAAK,EAAE,IAAI,EACX,+BAA+B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACnE,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CASpE;IAED;;;;;;;;;;;;;;;OAeG;IACG,8BAA8B,CAClC,KAAK,EAAE,IAAI,EACX,aAAa,EAAE,YAAY,EAC3B,sBAAsB,EAAE,MAAM,GAC7B,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAEjF;IAED;;;;;;;;;OASG;IACG,oBAAoB,CAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAK7E;IAED;;;;;;;;;;;;;OAaG;IACG,yBAAyB,CAC7B,KAAK,EAAE,IAAI,EACX,aAAa,EAAE,YAAY,EAC3B,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5C,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnB;CACF"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const node_child_process_1 = require("node:child_process");
4
4
  const node_path_1 = require("node:path");
5
+ const pythonCommand_1 = require("../internal/pythonCommand");
5
6
  // eslint-disable-next-line @typescript-eslint/no-require-imports -- nx/release is CJS; no ESM entry to `import` from.
6
7
  const { VersionActions } = require('nx/release');
7
8
  const VERSION_LINE = /^version\s*=\s*"([^"]+)"/m;
@@ -71,7 +72,7 @@ class PythonVersionActions extends VersionActions {
71
72
  async readCurrentVersionFromRegistry(_tree, _currentVersionResolverMetadata) {
72
73
  const name = this.projectGraphNode.name;
73
74
  try {
74
- const output = (0, node_child_process_1.execFileSync)('python3', ['-m', 'pip', 'index', 'versions', name], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] });
75
+ const output = (0, node_child_process_1.execFileSync)((0, pythonCommand_1.pythonCommand)(), ['-m', 'pip', 'index', 'versions', name], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] });
75
76
  const match = /Available versions:\s*([^\s,]+)/.exec(output);
76
77
  return { currentVersion: match ? match[1] : null, logText: 'from pip index versions' };
77
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"versionActions.js","sourceRoot":"","sources":["../../src/release/versionActions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"versionActions.js","sourceRoot":"","sources":["../../src/release/versionActions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mnci/nx-python-pip",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "An Nx plugin for pip-native Python projects (Ruff + pytest + the standard PyPA build/twine tools) — no uv, no Poetry, no lock file.",
5
5
  "publishConfig": {
6
6
  "access": "public"