mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-21 20:10:17 +00:00
add some methods
This commit is contained in:
parent
1b0f29781c
commit
3177406e1d
@ -51,4 +51,4 @@ r'''/*
|
|||||||
f.write(final_text)
|
f.write(final_text)
|
||||||
|
|
||||||
shutil.copy("src/main.cpp", "amalgamated/main.cpp")
|
shutil.copy("src/main.cpp", "amalgamated/main.cpp")
|
||||||
os.system("g++ -o pocketpy amalgamated/main.cpp --std=c++17 -O1")
|
os.system("g++ -o pocketpy amalgamated/main.cpp --std=c++17 -O1 -pthread")
|
@ -23,6 +23,14 @@ def __str4split(self, sep):
|
|||||||
str.split = __str4split
|
str.split = __str4split
|
||||||
del __str4split
|
del __str4split
|
||||||
|
|
||||||
|
def __str4index(self, sub):
|
||||||
|
for i in range(len(self) - len(sub) + 1):
|
||||||
|
if self[i:i+len(sub)] == sub:
|
||||||
|
return i
|
||||||
|
return -1
|
||||||
|
str.index = __str4index
|
||||||
|
del __str4index
|
||||||
|
|
||||||
list.__repr__ = lambda self: '[' + ', '.join([repr(i) for i in self]) + ']'
|
list.__repr__ = lambda self: '[' + ', '.join([repr(i) for i in self]) + ']'
|
||||||
tuple.__repr__ = lambda self: '(' + ', '.join([repr(i) for i in self]) + ')'
|
tuple.__repr__ = lambda self: '(' + ', '.join([repr(i) for i in self]) + ')'
|
||||||
list.__json__ = lambda self: '[' + ', '.join([i.__json__() for i in self]) + ']'
|
list.__json__ = lambda self: '[' + ', '.join([i.__json__() for i in self]) + ']'
|
||||||
|
@ -605,6 +605,36 @@ extern "C" {
|
|||||||
return vm->exec(code) != nullptr;
|
return vm->exec(code) != nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__EXPORT
|
||||||
|
PyObjectDump* pkpy_get_global(VM* vm, const char* name){
|
||||||
|
auto it = vm->_main->attribs.find(name);
|
||||||
|
if(it == vm->_main->attribs.end()) return nullptr;
|
||||||
|
return new PyObjectDump(
|
||||||
|
it->second->getTypeName().c_str(),
|
||||||
|
vm->PyStr_AS_C(vm->asJson(it->second)).c_str()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
__EXPORT
|
||||||
|
void pkpy_set_global_int(VM* vm, const char* name, _Int value){
|
||||||
|
vm->setAttr(vm->_main, name, vm->PyInt(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
__EXPORT
|
||||||
|
void pkpy_set_global_float(VM* vm, const char* name, _Float value){
|
||||||
|
vm->setAttr(vm->_main, name, vm->PyFloat(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
__EXPORT
|
||||||
|
void pkpy_set_global_str(VM* vm, const char* name, const char* value){
|
||||||
|
vm->setAttr(vm->_main, name, vm->PyStr(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
__EXPORT
|
||||||
|
void pkpy_set_global_bool(VM* vm, const char* name, bool value){
|
||||||
|
vm->setAttr(vm->_main, name, vm->PyBool(value));
|
||||||
|
}
|
||||||
|
|
||||||
__EXPORT
|
__EXPORT
|
||||||
PyObjectDump* pkpy_eval(VM* vm, const char* source){
|
PyObjectDump* pkpy_eval(VM* vm, const char* source){
|
||||||
_Code code = compile(vm, source, "<eval>", EVAL_MODE);
|
_Code code = compile(vm, source, "<eval>", EVAL_MODE);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user