From 23d5062633a41479d15403d7285fcfbd72d3c6c7 Mon Sep 17 00:00:00 2001 From: Thomas Glamsch Date: Thu, 1 Nov 2018 20:27:13 +0100 Subject: [PATCH] Add type stubs for all distributed modules. --- .gitignore | 1 + __init__.pyi | 8 +++++++ _perlin.pyi | 23 ++++++++++++++++++++ _simplex.pyi | 17 +++++++++++++++ perlin.pyi | 20 ++++++++++++++++++ py.typed | 0 setup.py | 3 +++ shader.pyi | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ shader_noise.pyi | 11 ++++++++++ test.pyi | 20 ++++++++++++++++++ 10 files changed, 158 insertions(+) create mode 100644 __init__.pyi create mode 100644 _perlin.pyi create mode 100644 _simplex.pyi create mode 100644 perlin.pyi create mode 100644 py.typed create mode 100644 shader.pyi create mode 100644 shader_noise.pyi create mode 100644 test.pyi diff --git a/.gitignore b/.gitignore index 4deb427..57918fa 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ env *.egg *.egg-info .coverage +.mypy_cache/ diff --git a/__init__.pyi b/__init__.pyi new file mode 100644 index 0000000..185f27d --- /dev/null +++ b/__init__.pyi @@ -0,0 +1,8 @@ +from . import _perlin, _simplex + +snoise2 = _simplex.noise2 +snoise3 = _simplex.noise3 +snoise4 = _simplex.noise4 +pnoise1 = _perlin.noise1 +pnoise2 = _perlin.noise2 +pnoise3 = _perlin.noise3 diff --git a/_perlin.pyi b/_perlin.pyi new file mode 100644 index 0000000..e147f24 --- /dev/null +++ b/_perlin.pyi @@ -0,0 +1,23 @@ +def noise1(x: float, + octaves: int = ..., + persistence: float = ..., + lacunarity: float = ..., + repeat: int = ..., + base: int = ...) -> float: ... + +def noise2(x: float, y: float, + octaves: int = ..., + persistence: float = ..., + lacunarity: float = ..., + repeatx: float = ..., + repeaty: float = ..., + base: int = ...) -> float: ... + +def noise3(x: float, y: float, z: float, + octaves: int = ..., + persistence: float = ..., + lacunarity: float = ..., + repeatx: int = ..., + repeaty: int = ..., + repeatz: int = ..., + base: int = ...) -> float: ... diff --git a/_simplex.pyi b/_simplex.pyi new file mode 100644 index 0000000..e79ce03 --- /dev/null +++ b/_simplex.pyi @@ -0,0 +1,17 @@ +def noise2(x: float, y: float, + octaves: int = ..., + persistence: float = ..., + lacunarity: float = ..., + repeatx: float = ..., + repeaty: float = ..., + base: float = ...) -> float: ... + +def noise3(x: float, y: float, z: float, + octaves: int = ..., + persistence: float = ..., + lacunarity: float = ...) -> float: ... + +def noise4(x: float, y: float, z: float, w: float, + octaves: int = ..., + persistence: float = ..., + lacunarity: float = ...) -> float: ... diff --git a/perlin.pyi b/perlin.pyi new file mode 100644 index 0000000..eb2060e --- /dev/null +++ b/perlin.pyi @@ -0,0 +1,20 @@ +from typing import Callable, Collection, Optional, Tuple + +class BaseNoise: + permutation: Tuple[int, ...] = ... + period: int = ... + randint_function: Callable[[int, int], int] = ... + def __init__(self, period: Optional[int] = ..., permutation_table: Optional[Collection[int]] = ..., + randint_function: Optional[Callable[[int, int], int]] = ...) -> None: ... + def randomize(self, period: Optional[int] = ...) -> None: ... + +class SimplexNoise(BaseNoise): + def noise2(self, x: float, y: float) -> float: ... + def noise3(self, x: float, y: float, z: float) -> float: ... + +def lerp(t: float, a: float, b: float) -> float: ... + +def grad3(hash: int, x: float, y: float, z: float) -> float: ... + +class TileableNoise(BaseNoise): + def noise3(self, x: float, y: float, z: float, repeat: float, base: float = ...) -> float: ... diff --git a/py.typed b/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/setup.py b/setup.py index 74d08c2..f2f1e22 100644 --- a/setup.py +++ b/setup.py @@ -55,6 +55,9 @@ ], package_dir={'noise': ''}, + package_data={'noise': ['py.typed', '__init__.pyi', '_simplex.pyi', + '_perlin.pyi', 'perlin.pyi', 'shader.pyi', + 'shader_noise.pyi', 'test.pyi']}, packages=['noise'], ext_modules=[ Extension('noise._simplex', ['_simplex.c'], diff --git a/shader.pyi b/shader.pyi new file mode 100644 index 0000000..eda0ce2 --- /dev/null +++ b/shader.pyi @@ -0,0 +1,55 @@ +from ctypes import * +from pyglet.gl import * +from typing import Any, Optional, List +from typing import Union as Union_ + +class GLSLException(Exception): ... + +class Shader: + s_tag: int = ... + name: str = ... + prog: str = ... + shader: int = ... + compiling: bool = ... + tag: int = ... + dependencies: List[Shader] = ... + def __init__(self, name: str, prog: str) -> None: ... + def __del__(self) -> None: ... + def addDependency(self, shader: Shader) -> Shader: ... + def destroy(self) -> None: ... + def shaderType(self) -> int: ... + def isCompiled(self) -> bool: ... + def attachTo(self, program: int) -> None: ... + def attachFlat(self, program: int) -> None: ... + def compileFlat(self) -> None: ... + def compile(self) -> None: ... + +class VertexShader(Shader): + def shaderType(self) -> int: ... + +class FragmentShader(Shader): + def shaderType(self) -> int: ... + +class ShaderProgram: + vertex_shader: Optional[VertexShader] = ... + fragment_shader: Optional[FragmentShader] = ... + program: int = ... + def __init__(self, + vertex_shader: Optional[VertexShader] = ..., + fragment_shader: Optional[FragmentShader] = ...) -> None: ... + def __del__(self) -> None: ... + def destroy(self) -> None: ... + def setShader(self, shader: Union_[VertexShader, FragmentShader]) -> None: ... + def link(self) -> int: ... + def prog(self) -> int: ... + def install(self) -> None: ... + def uninstall(self) -> None: ... + def uniformLoc(self, var: str) -> int: ... + def uset1F(self, var: str, x: float) -> None: ... + def uset2F(self, var: str, x: float, y: float) -> None: ... + def uset3F(self, var: str, x: float, y: float, z: float) -> None: ... + def uset4F(self, var: str, x: float, y: float, z: float, w: float) -> None: ... + def uset1I(self, var: str, x: int) -> None: ... + def uset3I(self, var: str, x: int, y: int, z: int) -> None: ... + def usetM4F(self, var: str, m: Any) -> None: ... + def usetTex(self, var: str, u: int, v: Any) -> None: ... diff --git a/shader_noise.pyi b/shader_noise.pyi new file mode 100644 index 0000000..a21f9ff --- /dev/null +++ b/shader_noise.pyi @@ -0,0 +1,11 @@ +from typing import Sequence + +class ShaderNoiseTexture: + freq: int = ... + width: int = ... + data: Sequence[int] = ... + def __init__(self, freq: int = ..., width: int = ...) -> None: ... + def load(self) -> None: ... + def enable(self) -> None: ... + +shader_noise_glsl: str diff --git a/test.pyi b/test.pyi new file mode 100644 index 0000000..8f4986d --- /dev/null +++ b/test.pyi @@ -0,0 +1,20 @@ +import unittest + +class PerlinTestCase(unittest.TestCase): + def test_perlin_1d_range(self) -> None: ... + def test_perlin_1d_octaves_range(self) -> None: ... + def test_perlin_1d_base(self) -> None: ... + def test_perlin_2d_range(self) -> None: ... + def test_perlin_2d_octaves_range(self) -> None: ... + def test_perlin_2d_base(self) -> None: ... + def test_perlin_3d_range(self) -> None: ... + def test_perlin_3d_octaves_range(self) -> None: ... + def test_perlin_3d_base(self) -> None: ... + +class SimplexTestCase(unittest.TestCase): + def test_simplex_2d_range(self) -> None: ... + def test_simplex_2d_octaves_range(self) -> None: ... + def test_simplex_3d_range(self) -> None: ... + def test_simplex_3d_octaves_range(self) -> None: ... + def test_simplex_4d_range(self) -> None: ... + def test_simplex_4d_octaves_range(self) -> None: ...