8000 Several improvements (#3) · tjosepo/deno_python@11d836d · GitHub
[go: up one dir, main page]

Skip to content

Commit 11d836d

Browse files
authored
Several improvements (denosaurs#3)
- fix: type of `PythonConvertible`. Now it's array, map, set, etc. types reference to itself instead of only primitives. - feat: support Sets - feat: support accessing/setting list indexes using JS `list[index]` - feat: support setting attributes - feat: support `in` operator by implementing `has` proxy accessor - feat: support accessing/setting dict items using JS `dict[key]` - feat: support importing module from code string - feat: add `isInstance` on `PyObject` - feat: support Named Arguments in function calls - feat: support Tuples - feat: support accessing tuple indexes using JS `tuple[index]` - docs: explain many things
1 parent 4b0bb9a commit 11d836d

File tree

4 files changed

+418
-27
lines changed

4 files changed

+418
-27
lines changed

src/ffi.ts

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { findlib } from "./util.ts";
1+
import { findLib } from "./util.ts";
22

3-
const lib = Deno.env.get("DENO_PYTHON_PATH") ?? await findlib();
3+
const lib = Deno.env.get("DENO_PYTHON_PATH") ?? await findLib();
44

55
try {
66
// deno-lint-ignore no-inner-declarations no-var
@@ -105,6 +105,11 @@ try {
105105
result: "i32",
106106
},
107107

108+
PyObject_HasAttrString: {
109+
parameters: ["pointer", "pointer"],
110+
result: "i32",
111+
},
112+
108113
PySlice_New: {
109114
parameters: ["pointer", "pointer", "pointer"],
110115
result: "pointer",
@@ -334,6 +339,41 @@ try {
334339
parameters: ["pointer", "pointer"],
335340
result: "pointer",
336341
},
342+
343+
PySet_New: {
344+
parameters: ["pointer"],
345+
result: "pointer",
346+
},
347+
348+
PySet_Add: {
349+
parameters: ["pointer", "pointer"],
350+
result: "i32",
351+
},
352+
353+
PyImport_ExecCodeModule: {
354+
parameters: ["pointer", "pointer"],
355+
result: "pointer",
356+
},
357+
358+
PyObject_IsInstance: {
359+
parameters: ["pointer", "pointer"],
360+
result: "i32",
361+
},
362+
363+
PyDict_GetItemString: {
364+
parameters: ["pointer", "pointer"],
365+
result: "pointer",
366+
},
367+
368+
PyTuple_Size: {
369+
parameters: ["pointer"],
370+
result: "i32",
371+
},
372+
373+
PyTuple_GetItem: {
374+
parameters: ["pointer", "i32"],
375+
result: "pointer",
376+
},
337377
}).symbols;
338378
} catch (e) {
339379
throw new Error(`Python library not found: ${(e as Error).message}`);

0 commit comments

Comments
 (0)
0