diff --git a/crates/erg_compiler/lib/external/certifi.d/__init__.d.er b/crates/erg_compiler/lib/external/certifi.d/__init__.d.er new file mode 100644 index 00000000..868837c5 --- /dev/null +++ b/crates/erg_compiler/lib/external/certifi.d/__init__.d.er @@ -0,0 +1,3 @@ +.core = pyimport "./core" + +{.contents!; .where!} = .core diff --git a/crates/erg_compiler/lib/external/certifi.d/core.d.er b/crates/erg_compiler/lib/external/certifi.d/core.d.er new file mode 100644 index 00000000..e0921f98 --- /dev/null +++ b/crates/erg_compiler/lib/external/certifi.d/core.d.er @@ -0,0 +1,2 @@ +.contents!: () => Str +.where!: () => Str diff --git a/crates/erg_compiler/lib/external/certifi.d/package.er b/crates/erg_compiler/lib/external/certifi.d/package.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/erg_compiler.d/__init__.d.er b/crates/erg_compiler/lib/external/erg_compiler.d/__init__.d.er new file mode 100644 index 00000000..506cc476 --- /dev/null +++ b/crates/erg_compiler/lib/external/erg_compiler.d/__init__.d.er @@ -0,0 +1,8 @@ +.erg_parser = pyimport "erg_parser" + +.compile: (code: Str, mode: Str) -> Code +.compile_ast: (ast: .erg_parser.ast.AST, mode: Str) -> Code +.compile_file: (path: Str) -> Code +.exec: (code: Str) -> Module +.exec_ast: (ast: .erg_parser.ast.AST) -> Module +.__import__: (name: Str) -> Module diff --git a/crates/erg_compiler/lib/external/erg_compiler.d/erg_parser.d/__init__.d.er b/crates/erg_compiler/lib/external/erg_compiler.d/erg_parser.d/__init__.d.er new file mode 100644 index 00000000..f01d88a9 --- /dev/null +++ b/crates/erg_compiler/lib/external/erg_compiler.d/erg_parser.d/__init__.d.er @@ -0,0 +1,4 @@ +.ast = pyimport "./ast" +.expr = pyimport "./expr" + +.parse: (code: Str) -> .ast.Module diff --git a/crates/erg_compiler/lib/external/erg_compiler.d/erg_parser.d/ast.d.er b/crates/erg_compiler/lib/external/erg_compiler.d/erg_parser.d/ast.d.er new file mode 100644 index 00000000..847f6135 --- /dev/null +++ b/crates/erg_compiler/lib/external/erg_compiler.d/erg_parser.d/ast.d.er @@ -0,0 +1,38 @@ +.Token: ClassType +.TokenKind: ClassType + +.Literal: ClassType +.VarName: ClassType +.Identifier: ClassType +.Attribute: ClassType +.TupleAttribute: ClassType +.Subscript: ClassType +.TypeApp: ClassType +.NormalArray: ClassType +.NormalTuple: ClassType +.NormalDict: ClassType +.NormalSet: ClassType +.NormalRecord: ClassType +.BinOp: ClassType +.UnaryOp: ClassType +.Call: ClassType +.Args: ClassType +.Block: ClassType +.DataPack: ClassType +.Lambda: ClassType +.TypeAscription: ClassType +.VarSignature: ClassType +.SubrSignature: ClassType +.Def: ClassType +.Methods: ClassType +.ClassDef: ClassType +.PatchDef: ClassType +.ReDef: ClassType +.Compound: ClassType +.InlineModule: ClassType +.Dummy: ClassType +.Module: ClassType + +.AST: ClassType +.AST. + new: (name: Str, mod: .Module) -> .AST diff --git a/crates/erg_compiler/lib/external/erg_compiler.d/erg_parser.d/expr.d.er b/crates/erg_compiler/lib/external/erg_compiler.d/erg_parser.d/expr.d.er new file mode 100644 index 00000000..7ce9abdf --- /dev/null +++ b/crates/erg_compiler/lib/external/erg_compiler.d/erg_parser.d/expr.d.er @@ -0,0 +1,20 @@ +.Literal: ClassType +.NormalArray: ClassType +.NormalTuple: ClassType +.NormalDict: ClassType +.NormalSet: ClassType +.NormalRecord: ClassType +.BinOp: ClassType +.UnaryOp: ClassType +.Call: ClassType +.DataPack: ClassType +.Lambda: ClassType +.TypeAscription: ClassType +.Def: ClassType +.Methods: ClassType +.ClassDef: ClassType +.PatchDef: ClassType +.ReDef: ClassType +.Compound: ClassType +.InlineModule: ClassType +.Dummy: ClassType diff --git a/crates/erg_compiler/lib/external/erg_compiler.d/package.er b/crates/erg_compiler/lib/external/erg_compiler.d/package.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/idna.d/__init__.d.er b/crates/erg_compiler/lib/external/idna.d/__init__.d.er new file mode 100644 index 00000000..23f1a656 --- /dev/null +++ b/crates/erg_compiler/lib/external/idna.d/__init__.d.er @@ -0,0 +1,18 @@ +.core = pyimport "./core" + +{ + .alabel; + .check_bidi; + .check_hyphen_ok; + .check_initial_combiner; + .check_label; + .check_nfc; + .decode; + .encode; + .ulabel; + .uts46_remap; + .valid_contextj; + .valid_contexto; + .valid_label_length; + .valid_string_length; +} = .core diff --git a/crates/erg_compiler/lib/external/idna.d/core.d.er b/crates/erg_compiler/lib/external/idna.d/core.d.er new file mode 100644 index 00000000..3d7ac0bf --- /dev/null +++ b/crates/erg_compiler/lib/external/idna.d/core.d.er @@ -0,0 +1,33 @@ +.IDNAError: ClassType +.IDNABidiError: ClassType +.IDNABidiError <: .IDNAError +.InvalidCodepoint: ClassType +.InvalidCodepoint <: .IDNAError +.InvalidCodepointContext: ClassType +.InvalidCodepointContext <: .IDNAError + +.valid_label_length: (label: Str or Bytes) -> Bool +.valid_string_length: (label: Str or Bytes, trailing_dot: Bool) -> Bool +.check_bidi: (label: Str, check_ltr := Bool) -> Bool +.check_initial_combiner: (label: Str) -> Bool +.check_hyphen_ok: (label: Str) -> Bool +.check_nfc: (label: Str) -> Bool +.valid_contextj: (label: Str, pos: Int) -> Bool +.valid_contexto: (label: Str, pos: Int, exception := Bool) -> Bool +.check_label: (label: Str or Bytes) -> NoneType +.alabel: (label: Str) -> Bytes +.ulabel: (label: Str or Bytes) -> Str +.uts46_remap: (domain: Str or Bytes, std3_rules := Bool, transitional := Bool) -> Str +.encode: ( + s: Str or Bytes, + strict:= Bool, + uts46:= Bool, + std3_rules:= Bool, + transitional:= Bool, +) -> Bytes +.decode: ( + s: Str or Bytes, + strict:= Bool, + uts46:= Bool, + std3_rules:= Bool, +) -> Str diff --git a/crates/erg_compiler/lib/external/idna.d/package.er b/crates/erg_compiler/lib/external/idna.d/package.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/jinja2.d/__init__.d.er b/crates/erg_compiler/lib/external/jinja2.d/__init__.d.er new file mode 100644 index 00000000..a2f8509c --- /dev/null +++ b/crates/erg_compiler/lib/external/jinja2.d/__init__.d.er @@ -0,0 +1,26 @@ +.BaseLoader: ClassType + +.PackageLoader: ClassType +.PackageLoader <: .BaseLoader +.PackageLoader. + __call__: (package_name: Str, package_path: Str) -> .PackageLoader + +.FileSystemLoader: ClassType +.FileSystemLoader <: .BaseLoader +.FileSystemLoader. + __call__: (path: Str) -> .FileSystemLoader + +.DictLoader: ClassType +.DictLoader <: .BaseLoader +.DictLoader. + __call__: (mapping: {Str: Str}) -> .DictLoader + +.Template: ClassType +.Template. + __call__: (source: Str, autoescape := Bool, enable_async := Bool) -> .Template + render: (self: Ref(.Template), **kwargs: Obj) -> Str + +.Enviroment: ClassType +.Enviroment. + __call__: (loader := .BaseLoader, trim_blocks := Bool) -> .Enviroment + get_template: (self: Ref(.Enviroment), name := Str) -> .Template diff --git a/crates/erg_compiler/lib/external/matplotlib.d/__init__.d.er b/crates/erg_compiler/lib/external/matplotlib.d/__init__.d.er new file mode 100644 index 00000000..9f76a154 --- /dev/null +++ b/crates/erg_compiler/lib/external/matplotlib.d/__init__.d.er @@ -0,0 +1,4 @@ +.pyplot = pyimport "./pyplot" +.scale = pyimport "./scale" + +.use!: Str => NoneType diff --git a/crates/erg_compiler/lib/external/matplotlib.d/axes.d/__init__.d.er b/crates/erg_compiler/lib/external/matplotlib.d/axes.d/__init__.d.er new file mode 100644 index 00000000..248d4124 --- /dev/null +++ b/crates/erg_compiler/lib/external/matplotlib.d/axes.d/__init__.d.er @@ -0,0 +1,3 @@ +._axes = pyimport "./_axes" + +.Axes! = ._axes.Axes! diff --git a/crates/erg_compiler/lib/external/matplotlib.d/axes.d/_axes.d.er b/crates/erg_compiler/lib/external/matplotlib.d/axes.d/_axes.d.er new file mode 100644 index 00000000..d2a8cdb1 --- /dev/null +++ b/crates/erg_compiler/lib/external/matplotlib.d/axes.d/_axes.d.er @@ -0,0 +1,21 @@ +.Axes!: ClassType +.Axes!. + scatter!: ( + self: RefMut(.Axes!), + x: Num, # TODO: Float | ArrayLike + y: Num, + s := Num, + c := Iterable(Int), + vmin := Float, + vmax := Float, + ) => NoneType + set!: ( + self: RefMut(.Axes!), + xlabel := Str, + xlim := (Float, Float), + xticks := Iterable(Obj), + ylabel := Str, + ylim := (Float, Float), + yticks := Iterable(Obj), + title := Str + ) => NoneType diff --git a/crates/erg_compiler/lib/external/matplotlib.d/figure.d.er b/crates/erg_compiler/lib/external/matplotlib.d/figure.d.er new file mode 100644 index 00000000..38f0ccaf --- /dev/null +++ b/crates/erg_compiler/lib/external/matplotlib.d/figure.d.er @@ -0,0 +1,5 @@ +axes = pyimport "./axes" + +.Figure!: ClassType +.Figure!. + add_axes!: (self: RefMut(.Figure!), rect: [Nat; 4], projection := Str or NoneType, polar := Bool, label := Str) => axes.Axes! diff --git a/crates/erg_compiler/lib/external/matplotlib.d/image.d.er b/crates/erg_compiler/lib/external/matplotlib.d/image.d.er new file mode 100644 index 00000000..4ff9ee29 --- /dev/null +++ b/crates/erg_compiler/lib/external/matplotlib.d/image.d.er @@ -0,0 +1,4 @@ +_ImageBase: ClassType + +.AxesImage!: ClassType +.AxesImage! <: _ImageBase diff --git a/crates/erg_compiler/lib/external/matplotlib.d/legend.d.er b/crates/erg_compiler/lib/external/matplotlib.d/legend.d.er new file mode 100644 index 00000000..f79972cd --- /dev/null +++ b/crates/erg_compiler/lib/external/matplotlib.d/legend.d.er @@ -0,0 +1 @@ +.Legend: ClassType diff --git a/crates/erg_compiler/lib/external/matplotlib.d/lines.d.er b/crates/erg_compiler/lib/external/matplotlib.d/lines.d.er new file mode 100644 index 00000000..85960617 --- /dev/null +++ b/crates/erg_compiler/lib/external/matplotlib.d/lines.d.er @@ -0,0 +1,2 @@ +.Line2D: ClassType +.Line3D: ClassType diff --git a/crates/erg_compiler/lib/external/matplotlib.d/package.er b/crates/erg_compiler/lib/external/matplotlib.d/package.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/matplotlib.d/path.d.er b/crates/erg_compiler/lib/external/matplotlib.d/path.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/matplotlib.d/pyplot.d/__init__.d.er b/crates/erg_compiler/lib/external/matplotlib.d/pyplot.d/__init__.d.er new file mode 100644 index 00000000..de5ed384 --- /dev/null +++ b/crates/erg_compiler/lib/external/matplotlib.d/pyplot.d/__init__.d.er @@ -0,0 +1,30 @@ +contextlib = pyimport "contextlib" + +# lines = pyimport "../lines" +text = pyimport "../text" +legend = pyimport "../legend" +.style = pyimport "../style" +figure = pyimport "../figure" +axes = pyimport "../axes" +image = pyimport "../image" + +.plot!: (*args: Obj, scaleX := Bool, scaleY := Bool) => [Obj; _] +.imshow!: (X: Obj, cmap := Str, interpolation := Str) => image.AxesImage! +.show!: () => NoneType +.text!: (x: Float, y: Float, s: Str, fontdict := {Str: Obj}, fontsize := Nat) => text.Text +.title!: (title: Str) => text.Text +.xlabel!: (label: Str) => text.Text +.ylabel!: (label: Str) => text.Text +.xlim!: (left := Float, right := Float) => (Float, Float) \ + and ((left_right: (Float, Float)) => (Float, Float)) +.ylim!: (bottom := Float, top := Float) => (Float, Float) \ + and ((bottom_top: (Float, Float)) => (Float, Float)) +.legend!: (labels := [Str; _]) => legend.Legend +.savefig!: (fname: Str, dpi := Float or Str, format := Str) => NoneType +.subplots!: (() => (figure.Figure!, axes.Axes!)) \ + and ((nrows: {1}, ncols: {1}) => (figure.Figure!, axes.Axes!)) \ + and ((nrows: {1}, ncols: Nat) => (figure.Figure!, [axes.Axes!; _])) \ + and ((nrows: Nat, ncols: {1}) => (figure.Figure!, [axes.Axes!; _])) \ + and ((nrows: Nat, ncols: Nat) => (figure.Figure!, [[axes.Axes!; _]; _])) +.figure!: (num := Int or Str, figsize := [Float; _], dpi := Float) => figure.Figure! +.xkcd!: (scale := Float, length := Float, randomness := Float) => contextlib.ExitStack! diff --git a/crates/erg_compiler/lib/external/matplotlib.d/scale.d.er b/crates/erg_compiler/lib/external/matplotlib.d/scale.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/matplotlib.d/style.d/__init__.d.er b/crates/erg_compiler/lib/external/matplotlib.d/style.d/__init__.d.er new file mode 100644 index 00000000..1cd37327 --- /dev/null +++ b/crates/erg_compiler/lib/external/matplotlib.d/style.d/__init__.d.er @@ -0,0 +1 @@ +.use!: Str => NoneType diff --git a/crates/erg_compiler/lib/external/matplotlib.d/testing.d/__init__.d.er b/crates/erg_compiler/lib/external/matplotlib.d/testing.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/matplotlib.d/text.d.er b/crates/erg_compiler/lib/external/matplotlib.d/text.d.er new file mode 100644 index 00000000..50ea975f --- /dev/null +++ b/crates/erg_compiler/lib/external/matplotlib.d/text.d.er @@ -0,0 +1 @@ +.Text: ClassType diff --git a/crates/erg_compiler/lib/external/numpy.d/__init__.d.er b/crates/erg_compiler/lib/external/numpy.d/__init__.d.er new file mode 100644 index 00000000..4a33c739 --- /dev/null +++ b/crates/erg_compiler/lib/external/numpy.d/__init__.d.er @@ -0,0 +1,89 @@ +.Complex64 = 'complex64': ClassType +.Complex128 = 'complex128': ClassType + +.Float16 = 'float16': ClassType +.Float32 = 'float32': ClassType +.Float64 = 'float64': ClassType + +.Int8 = 'int8': ClassType +.Int16 = 'int16': ClassType +.Int32 = 'int32': ClassType +.Int64 = 'int64': ClassType + +.UInt8 = 'uint8': ClassType +.UInt16 = 'uint16': ClassType +.UInt32 = 'uint32': ClassType +.UInt64 = 'uint64': ClassType + +.Bool_ = 'bool_': ClassType +.Str_ = 'str_': ClassType + +.NDArray = 'ndarray': (T: Type, Shape: [Nat; _]) -> ClassType +.NDArray(T, _) <: Output T +.NDArray(_, _) <: Num +.NDArray(T, S)|<: Add .NDArray(T, S)|. + Output: {.NDArray(T, S)} + __add__: (self: .NDArray(T, S), other: .NDArray(T, S)) -> .NDArray(T, S) +.NDArray(T, S)|<: Add T|. + Output: {.NDArray(T, S)} + __add__: (self: .NDArray(T, S), other: T) -> .NDArray(T, S) +.NDArray(T, S)|<: Sub .NDArray(T, S)|. + Output: {.NDArray(T, S)} + __sub__: (self: .NDArray(T, S), other: .NDArray(T, S)) -> .NDArray(T, S) +.NDArray(T, S)|<: Sub T|. + Output: {.NDArray(T, S)} + __sub__: (self: .NDArray(T, S), other: T) -> .NDArray(T, S) +.NDArray(T, S)|<: Mul .NDArray(T, S)|. + Output: {.NDArray(T, S)} + __mul__: (self: .NDArray(T, S), other: .NDArray(T, S)) -> .NDArray(T, S) +.NDArray(T, S)|<: Mul T|. + Output: {.NDArray(T, S)} + __mul__: (self: .NDArray(T, S), other: T) -> .NDArray(T, S) +.NDArray(T, S)|<: Div .NDArray(T, S)|. + Output: {.NDArray(T, S)} + __div__: (self: .NDArray(T, S), other: .NDArray(T, S)) -> .NDArray(T, S) +.NDArray(T, S)|<: Div T|. + Output: {.NDArray(T, S)} + __div__: (self: .NDArray(T, S), other: T) -> .NDArray(T, S) +.NDArray. + shape: [Nat; _] + ndim: Nat + dtype: Type + size: Nat + copy: |T, S: [Nat; _]|(self: .NDArray(T, S),) -> .NDArray(T, S) + reshape: |T, Old: [Nat; _], S: {A: [Nat; _] | A.prod() == Old.prod()}|( + self: .NDArray(T, Old), + shape: {S}, + ) -> .NDArray(T, S) + sum: |T <: Num|(self: .NDArray(T, _),) -> T + take: (|T|(self: .NDArray(T, _), indice: Nat) -> T) \ + and (|T|(self: .NDArray(T, _), indices: .NDArray(Nat) or [Nat; _]) -> .NDArray(T, _)) + tobytes: |T|(self: .NDArray(T, _),) -> Bytes + tolist: |T|(self: .NDArray(T, _),) -> [T; _] + +.nan: Float +.Nan: Float + +.abs: |T, S: [Nat; _]|(object: .NDArray(T, S),) -> .NDArray(T, S) +.add: |T, S: [Nat; _]|(object: .NDArray(T, S), other: .NDArray(T, S)) -> .NDArray(T, S) +.all: |T <: Num|(object: .NDArray(T),) -> Bool +.any: |T <: Num|(object: .NDArray(T),) -> Bool +.arange: |T <: Num|(start: T, stop := T, step := T) -> .NDArray(T) +.array: |T, S: [Nat; _]|(object: HasScalarType(T) and HasShape(S),) -> .NDArray(T, S) +.linspace: |T <: Num|(start: T, stop: T, num := Nat, endpoint := Bool, retstep := Bool, dtype := Type, axis := Nat) -> .NDArray(T) +.max: |T <: Num|(object: .NDArray(T),) -> T +.mean: |T <: Num|(object: .NDArray(T),) -> T +.min: |T <: Num|(object: .NDArray(T),) -> T +.ones: |T|(shape: Nat or [Nat; _], dtype := Type) -> .NDArray(T) +.reshapce: |T|(object: .NDArray(T), shape: [Nat; _]) -> .NDArray(T) +.std: |T <: Num|(object: .NDArray(T),) -> T +.sum: |T|(object: .NDArray(T),) -> T +.sqrt: |T|(object: .NDArray(T),) -> .NDArray(T) +.transpose: |T|(object: .NDArray(T), axes := [Nat; _]) -> .NDArray(T) +.zeros: (|N: Nat|(shape: {N}, dtype := Type) -> .NDArray(Nat, [N])) \ + and (|S: [Nat; _]|(shape: {S}, dtype := Type) -> .NDArray(Nat, S)) +.empty: (|N: Nat|(shape: {N}, dtype := Type) -> .NDArray(Nat, [N])) \ + and (|S: [Nat; _]|(shape: {S}, dtype := Type) -> .NDArray(Nat, S)) +.dot: (|T, I: Nat, J: Nat, K: Nat|(l: .NDArray(T, [I, J]), r: .NDArray(T, [J, K])) -> .NDArray(T, [I, K])) \ + and (|T, I: Nat, J: Nat|(l: .NDArray(T, [I]), r: .NDArray(T, [I, J])) -> .NDArray(T, [J])) \ + and (|T, I: Nat|(l: .NDArray(T, [I]), r: .NDArray(T, [I])) -> T) diff --git a/crates/erg_compiler/lib/external/numpy.d/fft.d/__init__.d.er b/crates/erg_compiler/lib/external/numpy.d/fft.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/numpy.d/lib.d/__init__.d.er b/crates/erg_compiler/lib/external/numpy.d/lib.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/numpy.d/linalg.d/__init__.d.er b/crates/erg_compiler/lib/external/numpy.d/linalg.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/numpy.d/package.er b/crates/erg_compiler/lib/external/numpy.d/package.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/numpy.d/polynomial.d/__init__.d.er b/crates/erg_compiler/lib/external/numpy.d/polynomial.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/numpy.d/random.d/__init__.d.er b/crates/erg_compiler/lib/external/numpy.d/random.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/packaging.d/__init__.d.er b/crates/erg_compiler/lib/external/packaging.d/__init__.d.er new file mode 100644 index 00000000..cd8dd60d --- /dev/null +++ b/crates/erg_compiler/lib/external/packaging.d/__init__.d.er @@ -0,0 +1 @@ +.version = pyimport "./version" diff --git a/crates/erg_compiler/lib/external/packaging.d/package.er b/crates/erg_compiler/lib/external/packaging.d/package.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/packaging.d/version.d.er b/crates/erg_compiler/lib/external/packaging.d/version.d.er new file mode 100644 index 00000000..e7138c3e --- /dev/null +++ b/crates/erg_compiler/lib/external/packaging.d/version.d.er @@ -0,0 +1,23 @@ +.Version: ClassType +.Version <: Eq +.Version <: Ord +.Version. + epoch: Nat + release: (Nat, Nat, Nat) + pre: (Str, Nat) or NoneType + post: Nat or NoneType + dev: Nat or NoneType + local: Str or NoneType + public: Str + base_version: Str + is_prerelease: Bool + is_postrelease: Bool + is_devrelease: Bool + major: Nat + minor: Nat + micro: Nat + __call__: (ver: Str) -> .Version + +.InvalidVersion: ClassType + +.parse: (ver: Str) -> .Version diff --git a/crates/erg_compiler/lib/external/pandas.d/__init__.d.er b/crates/erg_compiler/lib/external/pandas.d/__init__.d.er new file mode 100644 index 00000000..26b0275f --- /dev/null +++ b/crates/erg_compiler/lib/external/pandas.d/__init__.d.er @@ -0,0 +1,17 @@ +.core = pyimport "core" +.io = pyimport "io" +.plotting = pyimport "plotting" +.util = pyimport "util" + +{ + .DataFrame!; + .Series!; + .Index; +} = pyimport "core/api" + +{ + .read_csv!; +} = pyimport "io/parsers" +{ + .read_json!; +} = pyimport "io/json" diff --git a/crates/erg_compiler/lib/external/pandas.d/core.d/__init__.d.er b/crates/erg_compiler/lib/external/pandas.d/core.d/__init__.d.er new file mode 100644 index 00000000..148c5f09 --- /dev/null +++ b/crates/erg_compiler/lib/external/pandas.d/core.d/__init__.d.er @@ -0,0 +1,5 @@ +.algorithms = pyimport "algorithms" +.api = pyimport "api" +.frame = pyimport "frame" +.indexes = pyimport "indexes" +.series = pyimport "series" diff --git a/crates/erg_compiler/lib/external/pandas.d/core.d/algorithms.d.er b/crates/erg_compiler/lib/external/pandas.d/core.d/algorithms.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/pandas.d/core.d/api.d.er b/crates/erg_compiler/lib/external/pandas.d/core.d/api.d.er new file mode 100644 index 00000000..12a21038 --- /dev/null +++ b/crates/erg_compiler/lib/external/pandas.d/core.d/api.d.er @@ -0,0 +1,3 @@ +{.DataFrame!;} = pyimport "./frame" +{.Series!;} = pyimport "./series" +{.Index;} = pyimport "./indexes/api" diff --git a/crates/erg_compiler/lib/external/pandas.d/core.d/frame.d.er b/crates/erg_compiler/lib/external/pandas.d/core.d/frame.d.er new file mode 100644 index 00000000..916e8475 --- /dev/null +++ b/crates/erg_compiler/lib/external/pandas.d/core.d/frame.d.er @@ -0,0 +1,14 @@ +{.Index;} = pyimport "./indexes/api" + +# I := Nat, V := Obj +.DataFrame!: (C: Type, I: Type, V: Type) -> ClassType +.DataFrame!(C, I, V) <: Input(C) +.DataFrame!(C, I, V) <: Input(I) +.DataFrame!(C, I, V) <: Output(V) +.DataFrame!. + __call__: |K, V, I|(dic: {K: [V; _]} or Iterable(Iterable(V)), index: [I; _] := [Nat; _]) -> .DataFrame!(K, I, V) + shape: (Nat, Nat) + index: .Index(_) # TODO + head: |C, I, V|(self: .DataFrame!(C, I, V), tail: Nat := {5}) -> .DataFrame!(C, I, V) + tail: |C, I, V|(self: .DataFrame!(C, I, V), tail: Nat := {5}) -> .DataFrame!(C, I, V) + info!: (self: .DataFrame!(_, _, _)) => NoneType diff --git a/crates/erg_compiler/lib/external/pandas.d/core.d/indexes.d/__init__.d.er b/crates/erg_compiler/lib/external/pandas.d/core.d/indexes.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/pandas.d/core.d/indexes.d/api.d.er b/crates/erg_compiler/lib/external/pandas.d/core.d/indexes.d/api.d.er new file mode 100644 index 00000000..8d9b2d3f --- /dev/null +++ b/crates/erg_compiler/lib/external/pandas.d/core.d/indexes.d/api.d.er @@ -0,0 +1 @@ +{.Index;} = pyimport "./base" diff --git a/crates/erg_compiler/lib/external/pandas.d/core.d/indexes.d/base.d.er b/crates/erg_compiler/lib/external/pandas.d/core.d/indexes.d/base.d.er new file mode 100644 index 00000000..18772ade --- /dev/null +++ b/crates/erg_compiler/lib/external/pandas.d/core.d/indexes.d/base.d.er @@ -0,0 +1,2 @@ +.Index: (T: Type) -> ClassType +.Index(T) <: Output(T) diff --git a/crates/erg_compiler/lib/external/pandas.d/core.d/series.d.er b/crates/erg_compiler/lib/external/pandas.d/core.d/series.d.er new file mode 100644 index 00000000..8466314e --- /dev/null +++ b/crates/erg_compiler/lib/external/pandas.d/core.d/series.d.er @@ -0,0 +1,8 @@ +{.Index;} = pyimport "./indexes/api" + +# K := Nat, V := Obj +.Series!: (K: Type, V: Type) -> ClassType +.Series!(K, V) <: Input(K) +.Series!(K, V) <: Output(V) +.Series!. + __call__: |K, V|(iterable: Iterable(V), index: [K; _] or .Index(K) := [Nat; _]) -> .Series! K, V diff --git a/crates/erg_compiler/lib/external/pandas.d/io.d/__init__.d.er b/crates/erg_compiler/lib/external/pandas.d/io.d/__init__.d.er new file mode 100644 index 00000000..70a55393 --- /dev/null +++ b/crates/erg_compiler/lib/external/pandas.d/io.d/__init__.d.er @@ -0,0 +1,7 @@ +.api = pyimport "api" +.clipboads = pyimport "clipboards" +.common = pyimport "common" +.excel = pyimport "excel" +.html = pyimport "html" +.json = pyimport "json" +.parsers = pyimport "parsers" diff --git a/crates/erg_compiler/lib/external/pandas.d/io.d/api.d.er b/crates/erg_compiler/lib/external/pandas.d/io.d/api.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/pandas.d/io.d/clipboards.d.er b/crates/erg_compiler/lib/external/pandas.d/io.d/clipboards.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/pandas.d/io.d/common.d.er b/crates/erg_compiler/lib/external/pandas.d/io.d/common.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/pandas.d/io.d/excel.d/__init__.d.er b/crates/erg_compiler/lib/external/pandas.d/io.d/excel.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/pandas.d/io.d/html.d.er b/crates/erg_compiler/lib/external/pandas.d/io.d/html.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/pandas.d/io.d/json.d/__init__.d.er b/crates/erg_compiler/lib/external/pandas.d/io.d/json.d/__init__.d.er new file mode 100644 index 00000000..6dfb3249 --- /dev/null +++ b/crates/erg_compiler/lib/external/pandas.d/io.d/json.d/__init__.d.er @@ -0,0 +1,3 @@ +{DataFrame!;} = pyimport "../../core/frame" + +.read_json!: (path: PathLike) => DataFrame! diff --git a/crates/erg_compiler/lib/external/pandas.d/io.d/parsers.d/__init__.d.er b/crates/erg_compiler/lib/external/pandas.d/io.d/parsers.d/__init__.d.er new file mode 100644 index 00000000..d6b73420 --- /dev/null +++ b/crates/erg_compiler/lib/external/pandas.d/io.d/parsers.d/__init__.d.er @@ -0,0 +1,3 @@ +{DataFrame!;} = pyimport "../../core/frame" + +.read_csv!: (path: PathLike) => DataFrame! diff --git a/crates/erg_compiler/lib/external/pandas.d/package.er b/crates/erg_compiler/lib/external/pandas.d/package.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/pandas.d/plotting.d/__init__.d.er b/crates/erg_compiler/lib/external/pandas.d/plotting.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/pandas.d/util.d/__init__.d.er b/crates/erg_compiler/lib/external/pandas.d/util.d/__init__.d.er new file mode 100644 index 00000000..3de8d778 --- /dev/null +++ b/crates/erg_compiler/lib/external/pandas.d/util.d/__init__.d.er @@ -0,0 +1 @@ +.version = pyimport "version" diff --git a/crates/erg_compiler/lib/external/pandas.d/util.d/version.d/__init__.d.er b/crates/erg_compiler/lib/external/pandas.d/util.d/version.d/__init__.d.er new file mode 100644 index 00000000..61d5bf11 --- /dev/null +++ b/crates/erg_compiler/lib/external/pandas.d/util.d/version.d/__init__.d.er @@ -0,0 +1 @@ +.Version: ClassType diff --git a/crates/erg_compiler/lib/external/requests.d/__init__.d.er b/crates/erg_compiler/lib/external/requests.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/requests.d/package.er b/crates/erg_compiler/lib/external/requests.d/package.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/scipy.d/__init__.d.er b/crates/erg_compiler/lib/external/scipy.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/scipy.d/cluster.d/__init__.d.er b/crates/erg_compiler/lib/external/scipy.d/cluster.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/scipy.d/constants.d/__init__.d.er b/crates/erg_compiler/lib/external/scipy.d/constants.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/scipy.d/fftpack.d/__init__.d.er b/crates/erg_compiler/lib/external/scipy.d/fftpack.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/scipy.d/integrate.d/__init__.d.er b/crates/erg_compiler/lib/external/scipy.d/integrate.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/scipy.d/interpolate.d/__init__.d.er b/crates/erg_compiler/lib/external/scipy.d/interpolate.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/scipy.d/io.d/__init__.d.er b/crates/erg_compiler/lib/external/scipy.d/io.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/scipy.d/linalg.d/__init__.d.er b/crates/erg_compiler/lib/external/scipy.d/linalg.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/scipy.d/ndimage.d/__init__.d.er b/crates/erg_compiler/lib/external/scipy.d/ndimage.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/scipy.d/odr.d/__init__.d.er b/crates/erg_compiler/lib/external/scipy.d/odr.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/scipy.d/optimize.d/__init__.d.er b/crates/erg_compiler/lib/external/scipy.d/optimize.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/scipy.d/package.er b/crates/erg_compiler/lib/external/scipy.d/package.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/scipy.d/signal.d/__init__.d.er b/crates/erg_compiler/lib/external/scipy.d/signal.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/scipy.d/sparse.d/__init__.d.er b/crates/erg_compiler/lib/external/scipy.d/sparse.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/scipy.d/special.d/__init__.d.er b/crates/erg_compiler/lib/external/scipy.d/special.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/scipy.d/stats.d/__init__.d.er b/crates/erg_compiler/lib/external/scipy.d/stats.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/setuptools.d/__init__.d.er b/crates/erg_compiler/lib/external/setuptools.d/__init__.d.er new file mode 100644 index 00000000..c9611432 --- /dev/null +++ b/crates/erg_compiler/lib/external/setuptools.d/__init__.d.er @@ -0,0 +1 @@ +.setup!: (*Obj,) => NoneType diff --git a/crates/erg_compiler/lib/external/setuptools.d/command.d/develop.d.er b/crates/erg_compiler/lib/external/setuptools.d/command.d/develop.d.er new file mode 100644 index 00000000..05902313 --- /dev/null +++ b/crates/erg_compiler/lib/external/setuptools.d/command.d/develop.d.er @@ -0,0 +1,3 @@ +.Develop = 'develop': ClassType +.Develop. + run!: (self: .Develop) => NoneType diff --git a/crates/erg_compiler/lib/external/setuptools.d/command.d/install.d.er b/crates/erg_compiler/lib/external/setuptools.d/command.d/install.d.er new file mode 100644 index 00000000..d8294f5b --- /dev/null +++ b/crates/erg_compiler/lib/external/setuptools.d/command.d/install.d.er @@ -0,0 +1,3 @@ +.Install = 'install': ClassType +.Install. + run!: (self: .Install) => NoneType diff --git a/crates/erg_compiler/lib/external/setuptools.d/package.er b/crates/erg_compiler/lib/external/setuptools.d/package.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/six.d/__init__.d.er b/crates/erg_compiler/lib/external/six.d/__init__.d.er new file mode 100644 index 00000000..9034c3b3 --- /dev/null +++ b/crates/erg_compiler/lib/external/six.d/__init__.d.er @@ -0,0 +1,13 @@ +.PY2: Bool +.PY3: Bool + +.class_types: [Type; _] +.intger_types: [Type; _] +.string_types: [Type; _] +.float_types: [Type; _] +.text_type: Type +.binary_type: Type +.MAXSIZE: Nat + +.exec_!: (code: Str, globals := {Str: Obj}, locals := {Str: Obj}) => Obj +.print_!: (*objs: [Obj; _], end := Str, sep := Str) => NoneType diff --git a/crates/erg_compiler/lib/external/six.d/package.er b/crates/erg_compiler/lib/external/six.d/package.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/torch.d/__init__.d.er b/crates/erg_compiler/lib/external/torch.d/__init__.d.er new file mode 100644 index 00000000..7d651819 --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/__init__.d.er @@ -0,0 +1,87 @@ +np = pyimport "numpy" + +.backends = pyimport "./backends" +.cuda = pyimport "./cuda" +.nn = pyimport "./nn" +.optim = pyimport "./optim" +.serialization = pyimport "./serialization" +.utils = pyimport "./utils" + +{.load!; .save!;} = pyimport "./serialization" +{.manual_seed!;} = pyimport "./random" +{.no_grad;} = pyimport "./autograd" + +.Device = 'device': ClassType +.device: (type: Str) => .Device + +.DType = 'dtype': ClassType +.dtype: (type: Str) => .DType + +.UInt8 = 'uint8': ClassType +.Int8 = 'int8': ClassType +.Int16 = 'int16': ClassType +.Int32 = 'int32': ClassType +.Int64 = 'int64': ClassType +.Float16 = 'float16': ClassType +.Float32 = 'float32': ClassType +.Float64 = 'float64': ClassType +.Complex32 = 'complex32': ClassType +.Complex64 = 'complex64': ClassType +.Complex128 = 'complex128': ClassType + +.Size: (S: [Nat; _]) -> ClassType +.Size(S). + __call__: (size: {S}) -> .Size(S) +.Size(S)|<: Eq|. + __eq__: (self: .Size(S), other: .Size(S)) -> Bool +.Tensor!: (T: Type, Shape: [Nat; _]) -> ClassType +.Tensor!(T, _) <: Output T +.Tensor!(T, S)|<: IrregularEq|. + Output: {Tensor!(Bool, S)} + __eq__: (self: .Tensor!(T, S), other: .Tensor!(T, S)) -> .Tensor!(Bool, S) +.Tensor!(T, S)|<: Indexable(Nat, .Tensor!(T, _))|. + __getitem__: (self: .Tensor!(T, S), index: Nat or [Nat; _]) -> .Tensor!(T, _) +.Tensor!(T, S). + data: .Tensor!(T, S) + shape: .Size(S) +.Tensor!(_, _). + dtype: .DType + clone: |T, S: [Nat; _]|(self: .Tensor!(T, S)) -> .Tensor!(T, S) + cpu: |T, S: [Nat; _]|(self: .Tensor!(T, S)) -> .Tensor!(T, S) + detach: |T, S: [Nat; _]|(self: .Tensor!(T, S)) -> .Tensor!(T, S) + numpy: |T, S: [Nat; _]|(self: .Tensor!(T, S)) -> np.NDArray(T, S) + view: (|T, Old: [Nat; _], S: {A: [Nat; _] | A.prod() == Old.prod()}|( + self: .Tensor!(T, Old), + shape: {S}, + ) -> .Tensor!(T, S)) \ + and (|T|(self: .Tensor!(T, _), shape: [Int; _]) -> .Tensor!(T, _)) + backward!: |T, S: [Nat; _]|( + self: RefMut(.Tensor!(T, S)), + gradient := .Tensor!(T, S), + retain_graph := Bool, + create_graph := Bool, + ) => NoneType + # TODO: S bound + item: |T|(self: Ref .Tensor!(T, _)) -> T + to: (|T, S: [Nat; _]|( + self: .Tensor!(T, S), + other: .DType or .Device, + non_blocking := Bool, + copy := Bool, + ) -> .Tensor!(T, S)) + size: (|T, S: [Nat; _]|(self: .Tensor!(T, S), dim: Nat) -> Nat) \ + and (|T, S: [Nat; _]|(self: .Tensor!(T, S)) -> .Size) + sum: |T, S: [Nat; _]|(self: .Tensor!(T, S)) -> .Tensor!(T, []) + squeeze: (|T, S: [Nat; _]|(self: .Tensor!(T, S)) -> .Tensor!(T, S.remove_all(1))) \ + and (|T|(self: .Tensor!(T, _)) -> .Tensor!(T, _)) + unsqueeze: (|T, S: [Nat; _], Dim: Nat|(self: .Tensor!(T, S), dim: {Dim}) -> .Tensor!(T, S.insert(Dim, 1))) \ + and (|T|(self: .Tensor!(T, _), dim: Nat) -> .Tensor!(T, _)) + +.relu: |T, S: [Nat; _]|(x: .Tensor!(T, S)) -> .Tensor!(T, S) +.softmax: |T, S: [Nat; _]|(x: .Tensor!(T, S), dim: Nat) -> .Tensor!(T, S) +.max: (|T|(input: .Tensor!(T, _), dim: Nat, keepdim := Bool) -> (.Tensor!(T, _)), .Tensor!(T, _)) \ + and (|T|(input: .Tensor!(T, _)) -> .Tensor!(T, _)) +.min: (|T|(input: .Tensor!(T, _), dim: Nat, keepdim := Bool) -> (.Tensor!(T, _)), .Tensor!(T, _)) \ + and (|T|(input: .Tensor!(T, _)) -> .Tensor!(T, _)) +.tensor: (|T, S: [Nat; _]|(data: HasScalarType(T) and HasShape(S), dtype := .DType, device := .Device) -> .Tensor!(T, S)) \ + and (|T|(data: [T; _], dtype := .DType, device := .Device) -> .Tensor!(T, _)) diff --git a/crates/erg_compiler/lib/external/torch.d/autograd.d/__init__.d.er b/crates/erg_compiler/lib/external/torch.d/autograd.d/__init__.d.er new file mode 100644 index 00000000..d199091f --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/autograd.d/__init__.d.er @@ -0,0 +1 @@ +{.no_grad;} = import "./grad_mode" diff --git a/crates/erg_compiler/lib/external/torch.d/autograd.d/grad_mode.d.er b/crates/erg_compiler/lib/external/torch.d/autograd.d/grad_mode.d.er new file mode 100644 index 00000000..94019a0d --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/autograd.d/grad_mode.d.er @@ -0,0 +1,3 @@ +.NoGrad = 'no_grad': ClassType +.NoGrad <: ContextManager +.no_grad: () -> .NoGrad diff --git a/crates/erg_compiler/lib/external/torch.d/backends.d/__init__.d.er b/crates/erg_compiler/lib/external/torch.d/backends.d/__init__.d.er new file mode 100644 index 00000000..93d960ec --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/backends.d/__init__.d.er @@ -0,0 +1 @@ +.mps = pyimport "./mps" diff --git a/crates/erg_compiler/lib/external/torch.d/backends.d/mps.d/__init__.d.er b/crates/erg_compiler/lib/external/torch.d/backends.d/mps.d/__init__.d.er new file mode 100644 index 00000000..ce367723 --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/backends.d/mps.d/__init__.d.er @@ -0,0 +1 @@ +.is_available!: () => Bool diff --git a/crates/erg_compiler/lib/external/torch.d/cuda.d/__init__.d.er b/crates/erg_compiler/lib/external/torch.d/cuda.d/__init__.d.er new file mode 100644 index 00000000..ce367723 --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/cuda.d/__init__.d.er @@ -0,0 +1 @@ +.is_available!: () => Bool diff --git a/crates/erg_compiler/lib/external/torch.d/nn.d/__init__.d.er b/crates/erg_compiler/lib/external/torch.d/nn.d/__init__.d.er new file mode 100644 index 00000000..21f8d8bc --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/nn.d/__init__.d.er @@ -0,0 +1,17 @@ +.modules = pyimport "./modules" +.parameter = pyimport "./parameter" + +{ + .Conv1d; + .Conv2d; + .Conv3d; + .CrossEntropyLoss; + .Flatten; + .Linear; + .MaxPool1d; + .MaxPool2d; + .MaxPool3d; + .Module; + .ReLU; +} = .modules +{.Parameter;} = .parameter diff --git a/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/__init__.d.er b/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/__init__.d.er new file mode 100644 index 00000000..ac605c73 --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/__init__.d.er @@ -0,0 +1,17 @@ +.activation = pyimport "./activation" +.container = pyimport "./container" +.conv = pyimport "./conv" +.flatten = pyimport "./flatten" +.linear = pyimport "./linear" +.loss = pyimport "./loss" +.module = pyimport "./module" +.pooling = pyimport "./pooling" + +{.ReLU;} = .activation +{.Sequential;} = .container +{.Conv1d; .Conv2d; .Conv3d;} = .conv +{.Flatten;} = .flatten +{.Linear;} = .linear +{.CrossEntropyLoss;} = .loss +{.Module;} = .module +{.MaxPool1d; .MaxPool2d; .MaxPool3d;} = .pooling diff --git a/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/activation.d.er b/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/activation.d.er new file mode 100644 index 00000000..27ea8ecc --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/activation.d.er @@ -0,0 +1,10 @@ +{Tensor!;} = pyimport "torch" + +.ReLU: ClassType +.ReLU. + __call__: () -> .ReLU +.ReLU|<: GenericCallable|. + __call__: |T, S: [Nat; _]|( + self: .ReLU, + input: Tensor!(T, S), + ) -> Tensor!(T, S) diff --git a/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/container.d.er b/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/container.d.er new file mode 100644 index 00000000..48001090 --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/container.d.er @@ -0,0 +1,11 @@ +{Tensor!;} = pyimport "torch" +{Module;} = pyimport "torch/nn" + +.Sequential: ClassType +.Sequential. + __call__: (*args: Module) -> .Sequential +.Sequential|<: GenericCallable|. + __call__: |T, S: [Nat; _]|( + self: .Sequential, + input: Tensor!(T, S), + ) -> Tensor!(T, S) diff --git a/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/conv.d.er b/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/conv.d.er new file mode 100644 index 00000000..813d73ad --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/conv.d.er @@ -0,0 +1,71 @@ +{Device; DType; Tensor!;} = pyimport "torch" +{Module;} = pyimport "torch/nn" + +_ConvNd: ClassType +_ConvNd <: Module + +.Conv1d: ClassType +.Conv1d <: _ConvNd +.Conv1d. + __call__: ( + in_channels: Nat, + out_channels: Nat, + kernel_size: Nat or [Nat; 1] or (Nat,), + stride := Nat or [Nat; 1] or (Nat,), + padding := Str or Nat or [Nat; 1] or (Nat,), + dilation := Nat or [Nat; 1] or (Nat,), + groups := Nat, + bias := Bool, + padding_mode := Str, + device := Device or Str or Nat, + dtype := DType or Str, + ) -> .Conv1d +.Conv1d|<: GenericCallable|. + __call__: |T, S: [Nat; _]|( + self: .Conv1d, + input: Tensor!(T, S), + ) -> Tensor!(T, S) + +.Conv2d: ClassType +.Conv2d <: _ConvNd +.Conv2d. + __call__: ( + in_channels: Nat, + out_channels: Nat, + kernel_size: Nat or [Nat; 2] or (Nat, Nat), + stride := Nat or [Nat; 2] or (Nat, Nat), + padding := Str or Nat or [Nat; 2] or (Nat, Nat), + dilation := Nat or [Nat; 2] or (Nat, Nat), + groups := Nat, + bias := Bool, + padding_mode := Str, + device := Device or Str or Nat, + dtype := DType or Str, + ) -> .Conv2d +.Conv2d|<: GenericCallable|. + __call__: |T, S: [Nat; _]|( + self: .Conv2d, + input: Tensor!(T, S), + ) -> Tensor!(T, S) + +.Conv3d: ClassType +.Conv3d <: _ConvNd +.Conv3d. + __call__: ( + in_channels: Nat, + out_channels: Nat, + kernel_size: Nat or [Nat; 3] or (Nat, Nat, Nat), + stride := Nat or [Nat; 3] or (Nat, Nat, Nat), + padding := Str or Nat or [Nat; 3] or (Nat, Nat, Nat), + dilation := Nat or [Nat; 3] or (Nat, Nat, Nat), + groups := Nat, + bias := Bool, + padding_mode := Str, + device := Device or Str or Nat, + dtype := DType or Str, + ) -> .Conv3d +.Conv3d|<: GenericCallable|. + __call__: |T, S: [Nat; _]|( + self: .Conv3d, + input: Tensor!(T, S), + ) -> Tensor!(T, S) diff --git a/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/flatten.d.er b/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/flatten.d.er new file mode 100644 index 00000000..ce76673c --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/flatten.d.er @@ -0,0 +1,10 @@ +{Tensor!;} = pyimport "torch" + +.Flatten: ClassType +.Flatten. + __call__: (start_dim: Nat, end_dim: Int) -> .Flatten +.Flatten|<: GenericCallable|. + __call__: |T, S: [Nat; _]|( + self: .Flatten, + input: Tensor!(T, S), + ) -> Tensor!(T, S) diff --git a/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/linear.d.er b/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/linear.d.er new file mode 100644 index 00000000..fd022bfc --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/linear.d.er @@ -0,0 +1,18 @@ +{Module;} = pyimport "torch/nn" +{Device; DType; Tensor!;} = pyimport "torch" + +.Linear: ClassType +.Linear <: Module +.Linear. + __call__: ( + in_features: Nat, + out_features: Nat, + bias := Bool, + device := Device or Str or Nat, + dtype := DType or Str, + ) -> .Linear +.Linear|<: GenericCallable|. + __call__: |T, S: [Nat; _]|( + self: .Linear, + input: Tensor!(T, S), + ) -> Tensor!(T, S) diff --git a/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/loss.d.er b/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/loss.d.er new file mode 100644 index 00000000..1348a308 --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/loss.d.er @@ -0,0 +1,27 @@ +{Tensor!;} = pyimport "torch" +{Module;} = pyimport "torch/nn" + +_Loss: ClassType +_Loss <: Module +_Loss. + reduction: Str + +_WeightedLoss: ClassType +_WeightedLoss <: _Loss + +.CrossEntropyLoss: ClassType +.CrossEntropyLoss <: _WeightedLoss +.CrossEntropyLoss. + __call__: () -> .CrossEntropyLoss +.CrossEntropyLoss|<: GenericCallable|. + __call__: |T|( + self: .CrossEntropyLoss, + input: Tensor!(T, _), + target: Tensor!(T, _), + ) -> Tensor!(T, []) +.CrossEntropyLoss. + forward: |T|( + self: .CrossEntropyLoss, + input: Tensor!(T, _), + target: Tensor!(T, _), + ) -> Tensor!(T, []) diff --git a/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/module.d.er b/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/module.d.er new file mode 100644 index 00000000..49b0ef6c --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/module.d.er @@ -0,0 +1,43 @@ +{Tensor!;} = pyimport "torch" +{Parameter;} = pyimport "torch/nn/parameter" + +.Module: ClassType +.Module <: InheritableType +.Module|<: GenericCallable|. + __call__: |T|( + self: .Module, + input: Tensor!(T, _), + ) -> Tensor!(T, _) +.Module. + __init__: (self: RefMut(.Module)) => NoneType + parameters: (self: Ref(.Module), recurse := Bool) -> Iterator Parameter + named_parameters: (self: Ref(.Module), prefix := Str, recurse := Bool, remove_duplicate := Bool) -> Iterator((Str, Parameter)) + # buffers: (self: Ref(.Module), recurse := Bool) -> Iterator .Tensor! + # named_buffers: (self: Ref(.Module), prefix := Str, recurse := Bool, remove_duplicate := Bool) -> Iterator((Str, .Tensor!)) + children: (self: Ref(.Module)) -> Iterator .Module + named_children: (self: Ref(.Module), prefix := Str) -> Iterator((Str, .Module)) + modules: (self: Ref(.Module)) -> Iterator .Module + named_modules: (self: Ref(.Module), memo := {.Module; _}, prefix := Str, remove_duplicate := Bool) -> Iterator((Str, .Module)) + train: |T <: .Module|(self: Ref(T), mode := Bool) -> T + eval: |T <: .Module|(self: Ref(T)) -> T + zero_grad!: (self: RefMut(.Module), set_to_none := Bool) => NoneType + compile: (self: Ref(.Module), *args: Obj, **kwargs: Obj) -> .Module + # register_buffer!: (self: RefMut(.Module), name: Str, tensor := Tensor!, persistent := Bool) => NoneType + register_parameter!: (self: RefMut(.Module), name: Str, param := Parameter) => NoneType + add_module!: (self: RefMut(.Module), name: Str, module := .Module) => NoneType + register_module!: (self: RefMut(.Module), name: Str, module := .Module) => NoneType + get_submodule: (self: Ref(.Module), name: Str) -> .Module + get_parameter: (self: Ref(.Module), name: Str) -> Parameter + # get_buffer: (self: Ref(.Module), name: Str) -> .Tensor! + get_extra_state: (self: Ref(.Module)) -> Obj + set_extra_state!: (self: RefMut(.Module), state: Obj) => NoneType + apply!: |T <: .Module|(self: T, fn: (module: RefMut(T)) => NoneType) => T + cuda!: |T <: .Module|(self: T, device := Int) => T + ipu!: |T <: .Module|(self: T, device := Int) => T + xpu!: |T <: .Module|(self: T, device := Int) => T + cpu!: |T <: .Module|(self: T) => T + float: |T <: .Module|(self: T) -> T + double: |T <: .Module|(self: T) -> T + half: |T <: .Module|(self: T) -> T + bfloat16: |T <: .Module|(self: T) -> T + to: |T <: .Module|(self: T, *args: Obj, **kwargs: Obj) -> T diff --git a/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/pooling.d.er b/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/pooling.d.er new file mode 100644 index 00000000..5296db7d --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/nn.d/modules.d/pooling.d.er @@ -0,0 +1,57 @@ +{Tensor!;} = pyimport "torch" +{Module;} = pyimport "torch/nn" + +_MaxPoolNd: ClassType +_MaxPoolNd <: Module + +.MaxPool1d: ClassType +.MaxPool1d <: _MaxPoolNd +.MaxPool1d <: GenericCallable +.MaxPool1d. + __call__: ( + kernel_size: Nat or [Nat; 1] or (Nat,), + stride := Nat or [Nat; 1] or (Nat,), + padding := Str or Nat or [Nat; 1] or (Nat,), + dilation := Nat or [Nat; 1] or (Nat,), + return_indices := Bool, + ceil_mode := Bool, + ) -> .MaxPool1d +.MaxPool1d|<: GenericCallable|. + __call__: |T, S: [Nat; _]|( + self: .MaxPool1d, + input: Tensor!(T, S), + ) -> Tensor!(T, S) + +.MaxPool2d: ClassType +.MaxPool2d <: _MaxPoolNd +.MaxPool2d. + __call__: ( + kernel_size: Nat or [Nat; 2] or (Nat, Nat), + stride := Nat or [Nat; 2] or (Nat, Nat), + padding := Str or Nat or [Nat; 2] or (Nat, Nat), + dilation := Nat or [Nat; 2] or (Nat, Nat), + return_indices := Bool, + ceil_mode := Bool, + ) -> .MaxPool2d +.MaxPool2d|<: GenericCallable|. + __call__: |T, S: [Nat; _]|( + self: .MaxPool2d, + input: Tensor!(T, S), + ) -> Tensor!(T, S) + +.MaxPool3d: ClassType +.MaxPool3d <: _MaxPoolNd +.MaxPool3d. + __call__: ( + kernel_size: Nat or [Nat; 3] or (Nat, Nat, Nat), + stride := Nat or [Nat; 3] or (Nat, Nat, Nat), + padding := Str or Nat or [Nat; 3] or (Nat, Nat, Nat), + dilation := Nat or [Nat; 3] or (Nat, Nat, Nat), + return_indices := Bool, + ceil_mode := Bool, + ) -> .MaxPool3d +.MaxPool3d|<: GenericCallable|. + __call__: |T, S: [Nat; _]|( + self: .MaxPool3d, + input: Tensor!(T, S), + ) -> Tensor!(T, S) diff --git a/crates/erg_compiler/lib/external/torch.d/nn.d/parameter.d.er b/crates/erg_compiler/lib/external/torch.d/nn.d/parameter.d.er new file mode 100644 index 00000000..44a746a5 --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/nn.d/parameter.d.er @@ -0,0 +1 @@ +.Parameter: ClassType diff --git a/crates/erg_compiler/lib/external/torch.d/optim.d/__init__.d.er b/crates/erg_compiler/lib/external/torch.d/optim.d/__init__.d.er new file mode 100644 index 00000000..7f17ee7d --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/optim.d/__init__.d.er @@ -0,0 +1,47 @@ +{Parameter;} = pyimport "torch/nn/parameter" + +.Optimizer!: ClassType +.Optimizer! <: InheritableType +.Optimizer!. + __call__: (params: Iterable(Parameter)) -> .Optimizer! + zero_grad!: (self: RefMut .Optimizer!) => NoneType + step!: (self: RefMut .Optimizer!) => NoneType + +.ASGD!: ClassType +.ASGD! <: .Optimizer! +.Adadelta!: ClassType +.Adadelta! <: .Optimizer! +.Adagrad!: ClassType +.Adagrad! <: .Optimizer! +.Adam!: ClassType +.Adam! <: .Optimizer! +.Adam!. + __call__: ( + params: Iterable(Parameter), + lr := Float, + betas := (Float, Float), + eps := Float, + weight_decay := Float, + amsgrad := Bool, + foreach := Bool, + maximize := Bool, + ) -> .Adam! + +.AdamW!: ClassType +.AdamW! <: .Optimizer! +.Adamax!: ClassType +.Adamax! <: .Optimizer! +.LBFGS!: ClassType +.LBFGS! <: .Optimizer! +.NAdam!: ClassType +.NAdam! <: .Optimizer! +.RAdam!: ClassType +.RAdam! <: .Optimizer! +.RMSprop!: ClassType +.RMSprop! <: .Optimizer! +.Rprop!: ClassType +.Rprop! <: .Optimizer! +.SGD!: ClassType +.SGD! <: .Optimizer! +.SparseAdam!: ClassType +.SparseAdam! <: .Optimizer! diff --git a/crates/erg_compiler/lib/external/torch.d/package.er b/crates/erg_compiler/lib/external/torch.d/package.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/torch.d/random.d.er b/crates/erg_compiler/lib/external/torch.d/random.d.er new file mode 100644 index 00000000..a14eee54 --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/random.d.er @@ -0,0 +1 @@ +.manual_seed!: (seed: Int) => Obj diff --git a/crates/erg_compiler/lib/external/torch.d/serialization.d.er b/crates/erg_compiler/lib/external/torch.d/serialization.d.er new file mode 100644 index 00000000..e93871d0 --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/serialization.d.er @@ -0,0 +1,2 @@ +.load!: (f: PathLike) => NoneType +.save!: (obj: Obj, f: PathLike) => NoneType diff --git a/crates/erg_compiler/lib/external/torch.d/utils.d/__init__.d.er b/crates/erg_compiler/lib/external/torch.d/utils.d/__init__.d.er new file mode 100644 index 00000000..e794c7cc --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/utils.d/__init__.d.er @@ -0,0 +1 @@ +.data = pyimport "./data" diff --git a/crates/erg_compiler/lib/external/torch.d/utils.d/data.d/__init__.d.er b/crates/erg_compiler/lib/external/torch.d/utils.d/data.d/__init__.d.er new file mode 100644 index 00000000..19dba52c --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/utils.d/data.d/__init__.d.er @@ -0,0 +1,9 @@ +{.DataLoader;} = pyimport "./dataloader" +{.Dataset;} = pyimport "./dataset" +{ + .Sampler; + .SequentialSampler; + .RandomSampler; + .SubsetRandomSampler; + .WeightedRandomSampler; +} = pyimport "./sampler" diff --git a/crates/erg_compiler/lib/external/torch.d/utils.d/data.d/dataloader.d.er b/crates/erg_compiler/lib/external/torch.d/utils.d/data.d/dataloader.d.er new file mode 100644 index 00000000..f1ebf2a3 --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/utils.d/data.d/dataloader.d.er @@ -0,0 +1,25 @@ +torch = pyimport "torch" +dataset = pyimport "./dataset" +{Sampler;} = pyimport "./sampler" + +.DataLoader: ClassType +.DataLoader <: Iterable((torch.Tensor!(_, _), torch.Tensor!(_, _))) +.DataLoader. + __call__: ( + dataset: dataset.Dataset, + batch_size := Nat, + shuffle := Bool, + sampler := Sampler, + batch_sampler := Sampler, + num_workers := Nat, + collate_fn := Obj, + pin_memory := Bool, + drop_last := Bool, + timeout := Float, + worker_init_fn := Obj, + multiprocessing_context := Obj, + generator := Obj, + prefetch_factor := Nat, + persistent_workers := Bool, + pin_memory_device := Str, + ) -> .DataLoader diff --git a/crates/erg_compiler/lib/external/torch.d/utils.d/data.d/dataset.d.er b/crates/erg_compiler/lib/external/torch.d/utils.d/data.d/dataset.d.er new file mode 100644 index 00000000..a7c90009 --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/utils.d/data.d/dataset.d.er @@ -0,0 +1 @@ +.Dataset: ClassType diff --git a/crates/erg_compiler/lib/external/torch.d/utils.d/data.d/sampler.d.er b/crates/erg_compiler/lib/external/torch.d/utils.d/data.d/sampler.d.er new file mode 100644 index 00000000..d3d23665 --- /dev/null +++ b/crates/erg_compiler/lib/external/torch.d/utils.d/data.d/sampler.d.er @@ -0,0 +1,13 @@ +.Sampler: ClassType + +.RandomSampler: ClassType +.RandomSampler <: .Sampler + +.SequentialSampler: ClassType +.SequentialSampler <: .Sampler + +.SubsetRandomSampler: ClassType +.SubsetRandomSampler <: .Sampler + +.WeightedRandomSampler: ClassType +.WeightedRandomSampler <: .Sampler diff --git a/crates/erg_compiler/lib/external/torchvision.d/__init__.d.er b/crates/erg_compiler/lib/external/torchvision.d/__init__.d.er new file mode 100644 index 00000000..e08f18c0 --- /dev/null +++ b/crates/erg_compiler/lib/external/torchvision.d/__init__.d.er @@ -0,0 +1,2 @@ +.datasets = pyimport "./datasets" +.transforms = pyimport "./transforms" diff --git a/crates/erg_compiler/lib/external/torchvision.d/datasets.d/__init__.d.er b/crates/erg_compiler/lib/external/torchvision.d/datasets.d/__init__.d.er new file mode 100644 index 00000000..2f310273 --- /dev/null +++ b/crates/erg_compiler/lib/external/torchvision.d/datasets.d/__init__.d.er @@ -0,0 +1,7 @@ +.cifar = pyimport "./cifar" +.mnist = pyimport "./mnist" +.utils = pyimport "./utils" +.vision = pyimport "./vision" + +{.CIFAR10; .CIFAR100;} = .cifar +{.MNIST; .FashionMNIST;} = .mnist diff --git a/crates/erg_compiler/lib/external/torchvision.d/datasets.d/cifar.d.er b/crates/erg_compiler/lib/external/torchvision.d/datasets.d/cifar.d.er new file mode 100644 index 00000000..97e10002 --- /dev/null +++ b/crates/erg_compiler/lib/external/torchvision.d/datasets.d/cifar.d.er @@ -0,0 +1,23 @@ +vision = pyimport "./vision" + +.CIFAR10: ClassType +.CIFAR10 <: vision.VisionDataset +.CIFAR10. + __call__: ( + root: Str, + train := Bool, + download := Bool, + transform := GenericCallable, + target_transform := GenericCallable, + ) -> .CIFAR10 + +.CIFAR100: ClassType +.CIFAR100 <: .CIFAR10 +.CIFAR100. + __call__: ( + root: Str, + train := Bool, + download := Bool, + transform := GenericCallable, + target_transform := GenericCallable, + ) -> .CIFAR100 diff --git a/crates/erg_compiler/lib/external/torchvision.d/datasets.d/mnist.d.er b/crates/erg_compiler/lib/external/torchvision.d/datasets.d/mnist.d.er new file mode 100644 index 00000000..1f75d71d --- /dev/null +++ b/crates/erg_compiler/lib/external/torchvision.d/datasets.d/mnist.d.er @@ -0,0 +1,23 @@ +vision = pyimport "./vision" + +.MNIST: ClassType +.MNIST <: vision.VisionDataset +.MNIST. + __call__: ( + root: Str, + train := Bool, + download := Bool, + transform := GenericCallable, + target_transform := GenericCallable, + ) -> .MNIST + +.FashionMNIST: ClassType +.FashionMNIST <: .MNIST +.FashionMNIST. + __call__: ( + root: Str, + train := Bool, + download := Bool, + transform := GenericCallable, + target_transform := GenericCallable, + ) -> .FashionMNIST diff --git a/crates/erg_compiler/lib/external/torchvision.d/datasets.d/utils.d.er b/crates/erg_compiler/lib/external/torchvision.d/datasets.d/utils.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/torchvision.d/datasets.d/vision.d.er b/crates/erg_compiler/lib/external/torchvision.d/datasets.d/vision.d.er new file mode 100644 index 00000000..d1e4e76a --- /dev/null +++ b/crates/erg_compiler/lib/external/torchvision.d/datasets.d/vision.d.er @@ -0,0 +1,15 @@ +dataset = pyimport "torch/utils/data/dataset" +{Tensor!;} = pyimport "torch" + +.VisionDataset: ClassType +.VisionDataset <: dataset.Dataset +.VisionDataset|<: Indexable(Nat, (Tensor!(Float, _), Tensor!(Float, _)))|. + __getitem__: (index: Nat) -> (Tensor!(Float, _), Tensor!(Float, _)) +.VisionDataset. + __call__: ( + root: Str, + train := Bool, + download := Bool, + transform := GenericCallable, + target_transform := GenericCallable, + ) -> .VisionDataset diff --git a/crates/erg_compiler/lib/external/torchvision.d/models.d/__init__.d.er b/crates/erg_compiler/lib/external/torchvision.d/models.d/__init__.d.er new file mode 100644 index 00000000..2260d412 --- /dev/null +++ b/crates/erg_compiler/lib/external/torchvision.d/models.d/__init__.d.er @@ -0,0 +1,3 @@ +.resnet = pyimport "./resnet" + +{.ResNet; .resnet18;} = .resnet diff --git a/crates/erg_compiler/lib/external/torchvision.d/models.d/resnet.d.er b/crates/erg_compiler/lib/external/torchvision.d/models.d/resnet.d.er new file mode 100644 index 00000000..344a51bf --- /dev/null +++ b/crates/erg_compiler/lib/external/torchvision.d/models.d/resnet.d.er @@ -0,0 +1,6 @@ +{.Module;} = pyimport "torch/nn" + +.ResNet: ClassType +.ResNet <: .Module + +.resnet18: () -> .ResNet diff --git a/crates/erg_compiler/lib/external/torchvision.d/package.er b/crates/erg_compiler/lib/external/torchvision.d/package.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/torchvision.d/transforms.d/__init__.d.er b/crates/erg_compiler/lib/external/torchvision.d/transforms.d/__init__.d.er new file mode 100644 index 00000000..6c12772d --- /dev/null +++ b/crates/erg_compiler/lib/external/torchvision.d/transforms.d/__init__.d.er @@ -0,0 +1,11 @@ +{ + .Compose; + .CenterCrop; + .GrayScale; + .Normalize; + .RandomCrop; + .RandomHorizontalFlip; + .RandomResizedCrop; + .Resize; + .ToTensor; +} = pyimport "./transforms" diff --git a/crates/erg_compiler/lib/external/torchvision.d/transforms.d/transforms.d.er b/crates/erg_compiler/lib/external/torchvision.d/transforms.d/transforms.d.er new file mode 100644 index 00000000..d14edd62 --- /dev/null +++ b/crates/erg_compiler/lib/external/torchvision.d/transforms.d/transforms.d.er @@ -0,0 +1,69 @@ +Transform: ClassType + +.Compose: ClassType +.Compose <: GenericCallable +.Compose. + __call__: (transforms: [Transform; _]) -> .Compose + +.CenterCrop: ClassType +.CenterCrop <: Transform +.CenterCrop <: GenericCallable +.CenterCrop. + __call__: (size: Nat or (Nat, Nat) or [Nat; 2]) -> .CenterCrop + +.GrayScale: ClassType +.GrayScale <: Transform +.GrayScale <: GenericCallable +.GrayScale. + __call__: () -> .GrayScale + +.Normalize: ClassType +.Normalize <: Transform +.Normalize <: GenericCallable +.Normalize. + __call__: ( + mean: [Float; _], + std: [Float; _], + inplace := Bool, + ) -> .Normalize + +.RandomCrop: ClassType +.RandomCrop <: Transform +.RandomCrop <: GenericCallable +.RandomCrop. + __call__: ( + size: Nat or (Nat, Nat) or [Nat; 2], + padding := Nat or (Nat, Nat) or (Nat, Nat, Nat, Nat), + pad_if_needed:=Bool, + fill := Nat or (Nat, Nat, Nat), + padding_mode := Str, + ) -> .RandomCrop + +.RandomHorizontalFlip: ClassType +.RandomHorizontalFlip <: Transform +.RandomHorizontalFlip <: GenericCallable +.RandomHorizontalFlip. + __call__: () -> .RandomHorizontalFlip + +.RandomResizedCrop: ClassType +.RandomResizedCrop <: Transform +.RandomResizedCrop <: GenericCallable +.RandomResizedCrop. + __call__: (size: Nat or (Nat, Nat) or [Nat; 2]) -> .RandomResizedCrop + +.Resize: ClassType +.Resize <: Transform +.Resize <: GenericCallable +.Resize. + __call__: ( + size: Nat or (Nat, Nat) or [Nat; 2], + interpolation := Str, + max_size := Nat, + antialias := Bool, + ) -> .Resize + +.ToTensor: ClassType +.ToTensor <: Transform +.ToTensor <: GenericCallable +.ToTensor. + __call__: () -> .ToTensor diff --git a/crates/erg_compiler/lib/external/tqdm.d/__init__.d.er b/crates/erg_compiler/lib/external/tqdm.d/__init__.d.er new file mode 100644 index 00000000..b0d81d37 --- /dev/null +++ b/crates/erg_compiler/lib/external/tqdm.d/__init__.d.er @@ -0,0 +1,31 @@ +.Tqdm! = 'tqdm': (T: Type) -> ClassType +.Tqdm!(T) <: Iterable T + +.tqdm: |T|( + iterable: Iterable(T), + desc := Str, + total := Int or Float, + leave := Bool, + file := File!, + ncols := Int, + mininterval := Float, + maxinterval := Float, + miniters := Int or Float, + ascii := Bool or Str, + disable := Bool, + unit := Str, + unit_scale := Bool or Int or Float, + dynamic_ncols := Bool, + smoothing := Float, + bar_format := Str, + initial := Int or Float, + position := Int, + postfix := {Str: Obj}, + unit_divisor := Float, + write_bytes := Bool, + lock_args := [Obj; _], + nrows := Int, + colour := Str, + delay := Float, + gui := Bool, +) -> .Tqdm!(T) diff --git a/crates/erg_compiler/lib/external/tqdm.d/package.er b/crates/erg_compiler/lib/external/tqdm.d/package.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/urllib3.d/__init__.d.er b/crates/erg_compiler/lib/external/urllib3.d/__init__.d.er new file mode 100644 index 00000000..e69de29b diff --git a/crates/erg_compiler/lib/external/urllib3.d/package.er b/crates/erg_compiler/lib/external/urllib3.d/package.er new file mode 100644 index 00000000..e69de29b