@opensip-cli/lang-python 0.1.10 → 0.1.12
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 +4 -2
- package/dist/enclosing.d.ts.map +1 -1
- package/dist/enclosing.js +2 -1
- package/dist/enclosing.js.map +1 -1
- package/dist/predicates.d.ts.map +1 -1
- package/dist/predicates.js +0 -1
- package/dist/predicates.js.map +1 -1
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +0 -1
- package/dist/query.js.map +1 -1
- package/dist/shared-tree.d.ts.map +1 -1
- package/dist/shared-tree.js +0 -1
- package/dist/shared-tree.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -10,6 +10,8 @@ This is an **internal library** of the opensip-cli toolkit. It is published so t
|
|
|
10
10
|
|
|
11
11
|
Part of [**opensip-cli**](https://github.com/opensip-ai/opensip-cli) — an open-source codebase intelligence CLI: fitness checks (`fit`), static call-graph analysis (`graph`), and simulation (`sim`).
|
|
12
12
|
|
|
13
|
+
**Distribution model:** the published `opensip-cli` npm package is a full-stack bundle of first-party tools, check packs, and language adapters. Third-party tools install separately via the `opensipTools` manifest and host allowlist; a slim install without bundled tools is not a current goal.
|
|
14
|
+
|
|
13
15
|
## Install
|
|
14
16
|
|
|
15
17
|
Most users install the CLI, which bundles the first-party tools:
|
|
@@ -23,8 +25,8 @@ This package is published for the CLI and advanced plugin authors; most users sh
|
|
|
23
25
|
## Documentation
|
|
24
26
|
|
|
25
27
|
- 📚 Project docs: https://opensip.ai/docs/opensip-cli/
|
|
26
|
-
- 🧭 Package catalog (what every package does): https://github.com/opensip-ai/opensip-cli/blob/v0.1.
|
|
27
|
-
- 📦 Source: https://github.com/opensip-ai/opensip-cli/tree/v0.1.
|
|
28
|
+
- 🧭 Package catalog (what every package does): https://github.com/opensip-ai/opensip-cli/blob/v0.1.12/docs/public/70-reference/02-package-catalog.md
|
|
29
|
+
- 📦 Source: https://github.com/opensip-ai/opensip-cli/tree/v0.1.12/packages/languages/lang-python
|
|
28
30
|
|
|
29
31
|
## License
|
|
30
32
|
|
package/dist/enclosing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enclosing.d.ts","sourceRoot":"","sources":["../src/enclosing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"enclosing.d.ts","sourceRoot":"","sources":["../src/enclosing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAyB,KAAK,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAI5E,wEAAwE;AAExE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAE7D;AAED,0DAA0D;AAE1D,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAGlE"}
|
package/dist/enclosing.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @fitness-ignore-file duplicate-utility-functions -- ADR-0010: the per-language tree-sitter vocabulary intentionally shares helper names across lang-* with grammar-specific implementations; consolidating would defeat the substrate design.
|
|
2
1
|
/**
|
|
3
2
|
* Composed enclosing-scope helpers for Python (ADR-0010) — the per-language
|
|
4
3
|
* layer over the generic `findEnclosing`/`nameOf` from
|
|
@@ -9,10 +8,12 @@
|
|
|
9
8
|
import { findEnclosing, nameOf } from '@opensip-cli/tree-sitter';
|
|
10
9
|
import { isFunction } from './predicates.js';
|
|
11
10
|
/** The nearest enclosing `def` of `node`, or `null` at module scope. */
|
|
11
|
+
// @yagni-ignore-next-line duplicate-body-candidate -- per-language adapter helper intentionally mirrors tree-sitter composition while keeping language packages independent.
|
|
12
12
|
export function findEnclosingFunction(node) {
|
|
13
13
|
return findEnclosing(node, isFunction);
|
|
14
14
|
}
|
|
15
15
|
/** The name of the nearest enclosing `def`, or `null`. */
|
|
16
|
+
// @yagni-ignore-next-line duplicate-body-candidate -- per-language adapter helper intentionally mirrors tree-sitter composition while keeping language packages independent.
|
|
16
17
|
export function getEnclosingFunctionName(node) {
|
|
17
18
|
const fn = findEnclosingFunction(node);
|
|
18
19
|
return fn ? nameOf(fn) : null;
|
package/dist/enclosing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enclosing.js","sourceRoot":"","sources":["../src/enclosing.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"enclosing.js","sourceRoot":"","sources":["../src/enclosing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,EAAa,MAAM,0BAA0B,CAAC;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,wEAAwE;AACxE,6KAA6K;AAC7K,MAAM,UAAU,qBAAqB,CAAC,IAAU;IAC9C,OAAO,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACzC,CAAC;AAED,0DAA0D;AAC1D,6KAA6K;AAC7K,MAAM,UAAU,wBAAwB,CAAC,IAAU;IACjD,MAAM,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,CAAC"}
|
package/dist/predicates.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"predicates.d.ts","sourceRoot":"","sources":["../src/predicates.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"predicates.d.ts","sourceRoot":"","sources":["../src/predicates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAiB,KAAK,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEpE,gFAAgF;AAChF,eAAO,MAAM,UAAU,GAAI,MAAM,IAAI,KAAG,OAA8C,CAAC;AAEvF,6BAA6B;AAC7B,eAAO,MAAM,OAAO,GAAI,MAAM,IAAI,KAAG,OAA2C,CAAC;AAEjF,qBAAqB;AACrB,eAAO,MAAM,SAAS,GAAI,MAAM,IAAI,KAAG,OAAkC,CAAC;AAE1E,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,GAAI,MAAM,IAAI,KAAG,OAAiC,CAAC;AAExE,+DAA+D;AAC/D,eAAO,MAAM,QAAQ,GAAI,MAAM,IAAI,KAAG,OAAwC,CAAC;AAE/E,yBAAyB;AACzB,eAAO,MAAM,aAAa,GAAI,MAAM,IAAI,KAAG,OAAuC,CAAC;AAEnF,+BAA+B;AAC/B,eAAO,MAAM,MAAM,GAAI,MAAM,IAAI,KAAG,OAC8B,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,IAAI,KAAG,OAIrC,CAAC"}
|
package/dist/predicates.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @fitness-ignore-file duplicate-utility-functions -- ADR-0010: the per-language tree-sitter vocabulary intentionally shares helper names across lang-* with grammar-specific implementations; consolidating would defeat the substrate design.
|
|
2
1
|
/**
|
|
3
2
|
* v1 per-language node-kind predicates for Python (ADR-0010). The generic
|
|
4
3
|
* traversal/position helpers live in `@opensip-cli/tree-sitter`; only the
|
package/dist/predicates.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"predicates.js","sourceRoot":"","sources":["../src/predicates.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"predicates.js","sourceRoot":"","sources":["../src/predicates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAa,MAAM,0BAA0B,CAAC;AAEpE,gFAAgF;AAChF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,CAAC;AAEvF,6BAA6B;AAC7B,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC;AAEjF,qBAAqB;AACrB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;AAE1E,+EAA+E;AAC/E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;AAExE,+DAA+D;AAC/D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC;AAE/E,yBAAyB;AACzB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAU,EAAW,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC;AAEnF,+BAA+B;AAC/B,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAU,EAAW,EAAE,CAC5C,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAU,EAAW,EAAE;IAC9C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,OAAO,SAAS,KAAK,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC,CAAC"}
|
package/dist/query.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,IAAI,EACT,KAAK,UAAU,EAChB,MAAM,0BAA0B,CAAC;AA6FlC,eAAO,MAAM,WAAW,EAAE,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAKzD,CAAC"}
|
package/dist/query.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @fitness-ignore-file duplicate-utility-functions -- ADR-0010/M10: the per-language tree-sitter query config intentionally shares helper names (callee/import/string extractors) across lang-* with grammar-specific implementations; consolidating would defeat the substrate design.
|
|
2
1
|
/**
|
|
3
2
|
* Python {@link LanguageQueryAPI} (ADR-0010, M10) — the grammar config for the
|
|
4
3
|
* shared `createTreeSitterQuery` factory. Node types are from tree-sitter-python;
|
package/dist/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-tree.d.ts","sourceRoot":"","sources":["../src/shared-tree.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shared-tree.d.ts","sourceRoot":"","sources":["../src/shared-tree.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,8FAA8F;AAC9F,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAElF"}
|
package/dist/shared-tree.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @fitness-ignore-file duplicate-utility-functions -- ADR-0010: the per-language tree-sitter vocabulary intentionally shares helper names across lang-* with grammar-specific implementations; consolidating would defeat the substrate design.
|
|
2
1
|
/**
|
|
3
2
|
* Cached Python parse entry point — the analog of `lang-typescript`'s
|
|
4
3
|
* `getSharedSourceFile`. Routes through `core`'s active `LanguageParseCache`
|
package/dist/shared-tree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-tree.js","sourceRoot":"","sources":["../src/shared-tree.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"shared-tree.js","sourceRoot":"","sources":["../src/shared-tree.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,8FAA8F;AAC9F,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,OAAe;IAC7D,OAAO,YAAY,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opensip-cli/lang-python",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.12",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "Python language adapter for opensip-cli",
|
|
6
6
|
"keywords": [
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"NOTICE"
|
|
35
35
|
],
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@opensip-cli/core": "0.1.
|
|
38
|
-
"@opensip-cli/tree-sitter": "0.1.
|
|
37
|
+
"@opensip-cli/core": "0.1.12",
|
|
38
|
+
"@opensip-cli/tree-sitter": "0.1.12"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/node": "^24.13.2",
|