Skip to content

Commit

Permalink
mypy and ruff fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Vardan2009 committed May 28, 2024
1 parent 2fbcdfd commit 62ac78a
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 8 deletions.
17 changes: 11 additions & 6 deletions core/builtin_funcs.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,15 +97,20 @@ def execute_print(self, exec_ctx: Context) -> RTResult[Value]:
@args(["value"])
def execute_print_ret(self, exec_ctx: Context) -> RTResult[Value]:
return RTResult[Value]().success(String(str(exec_ctx.symbol_table.get("value"))))

@args(["value"])
def execute_len(self,exec_ctx: Context) -> RTResult[Value]:
def execute_len(self, exec_ctx: Context) -> RTResult[Value]:
val = exec_ctx.symbol_table.get("value")
try:
ret = int(len(val))
return RTResult[Value]().success(Number(ret))
if val is not None and not val.__class__ is Value:
if hasattr(val, "__len__"):
ret = int(val.__len__())
else:
raise TypeError()
return RTResult[Value]().success(Number(ret))
raise TypeError()
except TypeError:
return RTResult[Value]().failure(Error(self.pos_start,self.pos_end,"TypeError","Object has no len()"))
return RTResult[Value]().failure(Error(self.pos_start, self.pos_end, "TypeError", "Object has no len()"))

@args(["value"])
def execute_input(self, exec_ctx: Context) -> RTResult[Value]:
Expand Down Expand Up @@ -561,7 +566,7 @@ def create_global_symbol_table() -> SymbolTable:
ret.set("cls", BuiltInFunction("clear"))
ret.set("require", BuiltInFunction("require"))
ret.set("exit", BuiltInFunction("exit"))
ret.set("len",BuiltInFunction("len"))
ret.set("len", BuiltInFunction("len"))
# Datatype validator methods
ret.set("is_num", BuiltInFunction("is_num"))
ret.set("is_int", BuiltInFunction("is_int"))
Expand Down
5 changes: 3 additions & 2 deletions core/datatypes.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,9 @@ class Iterator(Value):
def __init__(self, generator: Generator[RTResult[Value], None, None]) -> None:
super().__init__()
self.it = generator

def __len__(self): return len(self.it)

def __len__(self):
return len(self.it)

def iter(self) -> Iterator:
return self
Expand Down

0 comments on commit 62ac78a

Please sign in to comment.