From b2fb80c41c877be449a6034adc0c50d3d7f9918f Mon Sep 17 00:00:00 2001 From: Shunsuke Shibayama Date: Fri, 15 Nov 2024 11:25:08 +0900 Subject: [PATCH] feat: add `keyword/queue` type decl --- crates/erg_compiler/lib/pystd/keyword.d.er | 4 +++ crates/erg_compiler/lib/pystd/queue.d.er | 40 ++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 crates/erg_compiler/lib/pystd/keyword.d.er create mode 100644 crates/erg_compiler/lib/pystd/queue.d.er diff --git a/crates/erg_compiler/lib/pystd/keyword.d.er b/crates/erg_compiler/lib/pystd/keyword.d.er new file mode 100644 index 00000000..12b30b7c --- /dev/null +++ b/crates/erg_compiler/lib/pystd/keyword.d.er @@ -0,0 +1,4 @@ +.kwlist: List Str +.softkwlist: List Str +.iskeyword: (s: Str) -> Bool +.issoftkeyword: (s: Str) -> Bool diff --git a/crates/erg_compiler/lib/pystd/queue.d.er b/crates/erg_compiler/lib/pystd/queue.d.er new file mode 100644 index 00000000..1c809174 --- /dev/null +++ b/crates/erg_compiler/lib/pystd/queue.d.er @@ -0,0 +1,40 @@ +.Empty: ClassType +.Empty <: Exception +.Full: ClassType +.Full <: Exception +.Shutdown: ClassType +.Shutdown <: Exception + +.Queue!: ClassType +.Queue!. + __call__: (maxsize := Nat) -> Queue! + qsize: (self: Ref Queue!) -> Nat + empty: (self: Ref Queue!) -> Bool + full: (self: Ref Queue!) -> Bool + put!: (self: RefMut Queue!, item: Obj, block := Bool, timeout := Float) => NoneType + put_nowait!: (self: RefMut Queue!, item: Obj) => NoneType + get!: (self: RefMut Queue!, block := Bool, timeout := Float) => Obj + get_nowait!: (self: RefMut Queue!) => Obj + task_done!: (self: RefMut Queue!) => NoneType + join!: (self: RefMut Queue!) => NoneType + shutdown!: (self: RefMut Queue!, immediate := Bool) => NoneType + +.LifoQueue!: ClassType +.LifoQueue! <: Queue! +.LifoQueue!. + __call__: (maxsize := Nat) -> LifoQueue! + +.PriorityQueue!: ClassType +.PriorityQueue! <: Queue! +.PriorityQueue!. + __call__: (maxsize := Nat) -> PriorityQueue! + +.SimpleQueue!: ClassType +.SimpleQueue!. + __call__: () -> SimpleQueue! + qsize: (self: Ref SimpleQueue!) -> Nat + empty: (self: Ref SimpleQueue!) -> Bool + put!: (self: RefMut SimpleQueue!, item: Obj, block := Bool, timeout := Float) => NoneType + put_nowait!: (self: RefMut SimpleQueue!, item: Obj) => NoneType + get!: (self: RefMut SimpleQueue!, block := Bool, timeout := Float) => Obj + get_nowait!: (self: RefMut SimpleQueue!) => Obj