blueloveTH 1 year ago
parent
commit
3fbbd9fb67
2 changed files with 10 additions and 4 deletions
  1. 0 0
      src/common/_generated.c
  2. 10 4
      src/public/py_object.c

File diff suppressed because it is too large
+ 0 - 0
src/common/_generated.c


+ 10 - 4
src/public/py_object.c

@@ -46,9 +46,9 @@ static bool object__repr__(int argc, py_Ref argv) {
 
 
 static bool object__dict__getter(int argc, py_Ref argv) {
 static bool object__dict__getter(int argc, py_Ref argv) {
     PY_CHECK_ARGC(1);
     PY_CHECK_ARGC(1);
-    if(argv->is_ptr && argv->_obj->slots == -1){
+    if(argv->is_ptr && argv->_obj->slots == -1) {
         pk_mappingproxy__namedict(py_retval(), argv);
         pk_mappingproxy__namedict(py_retval(), argv);
-    }else{
+    } else {
         py_newnone(py_retval());
         py_newnone(py_retval());
     }
     }
     return true;
     return true;
@@ -74,9 +74,9 @@ static bool type__base__getter(int argc, py_Ref argv) {
     PY_CHECK_ARGC(1);
     PY_CHECK_ARGC(1);
     py_Type type = py_totype(argv);
     py_Type type = py_totype(argv);
     py_TypeInfo* ti = c11__at(py_TypeInfo, &pk_current_vm->types, type);
     py_TypeInfo* ti = c11__at(py_TypeInfo, &pk_current_vm->types, type);
-    if(ti->base){
+    if(ti->base) {
         py_assign(py_retval(), py_tpobject(ti->base));
         py_assign(py_retval(), py_tpobject(ti->base));
-    }else{
+    } else {
         py_newnone(py_retval());
         py_newnone(py_retval());
     }
     }
     return true;
     return true;
@@ -90,6 +90,11 @@ static bool type__name__getter(int argc, py_Ref argv) {
     return true;
     return true;
 }
 }
 
 
+static bool type__getitem__(int argc, py_Ref argv) {
+    py_assign(py_retval(), argv);
+    return true;
+}
+
 void pk_object__register() {
 void pk_object__register() {
     // TODO: use staticmethod
     // TODO: use staticmethod
     py_bindmagic(tp_object, __new__, object__new__);
     py_bindmagic(tp_object, __new__, object__new__);
@@ -102,6 +107,7 @@ void pk_object__register() {
 
 
     py_bindmagic(tp_type, __repr__, type__repr__);
     py_bindmagic(tp_type, __repr__, type__repr__);
     py_bindmagic(tp_type, __new__, type__new__);
     py_bindmagic(tp_type, __new__, type__new__);
+    py_bindmagic(tp_type, __getitem__, type__getitem__);
 
 
     py_bindproperty(tp_type, "__base__", type__base__getter, NULL);
     py_bindproperty(tp_type, "__base__", type__base__getter, NULL);
     py_bindproperty(tp_type, "__name__", type__name__getter, NULL);
     py_bindproperty(tp_type, "__name__", type__name__getter, NULL);

Some files were not shown because too many files changed in this diff