mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-21 03:50:16 +00:00
add some methods
This commit is contained in:
parent
1b0f29781c
commit
3177406e1d
@ -51,4 +51,4 @@ r'''/*
|
||||
f.write(final_text)
|
||||
|
||||
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
|
||||
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]) + ']'
|
||||
tuple.__repr__ = lambda self: '(' + ', '.join([repr(i) 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;
|
||||
}
|
||||
|
||||
__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
|
||||
PyObjectDump* pkpy_eval(VM* vm, const char* source){
|
||||
_Code code = compile(vm, source, "<eval>", EVAL_MODE);
|
||||
|
Loading…
x
Reference in New Issue
Block a user