diff --git a/pythonbindings/pyfluids-stubs/__init__.pyi b/pythonbindings/pyfluids-stubs/__init__.pyi index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..a8f52226fb55cd1d53281820a62b58315df56c41 100644 --- a/pythonbindings/pyfluids-stubs/__init__.pyi +++ b/pythonbindings/pyfluids-stubs/__init__.pyi @@ -0,0 +1 @@ +from . import bindings \ No newline at end of file diff --git a/pythonbindings/pyfluids-stubs/bindings/__init__.pyi b/pythonbindings/pyfluids-stubs/bindings/__init__.pyi index 4e7f353eab97cc536f8f18e72319af1cd7a1916a..b0a9b3c57375576f06793a4f1d1911a72d5f0570 100644 --- a/pythonbindings/pyfluids-stubs/bindings/__init__.pyi +++ b/pythonbindings/pyfluids-stubs/bindings/__init__.pyi @@ -32,6 +32,8 @@ r""" ! \author Henry Korb ======================================================================================= """ +from . import basics as basics, gpu as gpu, lbm as lbm, logger as logger + class ostream_redirect: def __init__(self, stdout: bool = ..., stderr: bool = ...) -> None: ... def __enter__(self) -> None: ... diff --git a/pythonbindings/pyfluids-stubs/bindings/basics/__init__.pyi b/pythonbindings/pyfluids-stubs/bindings/basics/__init__.pyi index a41b7934ca706dc0db5bd6188fee3150456e0cd9..2a1de0b47e39562a8120472ee53300fc57514ee4 100644 --- a/pythonbindings/pyfluids-stubs/bindings/basics/__init__.pyi +++ b/pythonbindings/pyfluids-stubs/bindings/basics/__init__.pyi @@ -32,9 +32,11 @@ r""" ! \author Henry Korb ======================================================================================= """ -from typing import ClassVar +from __future__ import annotations -from typing import overload +from typing import ClassVar, overload + +from . import logger as logger class ConfigurationFile: def __init__(self) -> None: ... diff --git a/pythonbindings/pyfluids-stubs/bindings/basics/logger.pyi b/pythonbindings/pyfluids-stubs/bindings/basics/logger.pyi index 43938ff7646efd3c596ae29971cce39fed865fa6..876c7037b74f5d467ad6686db89b8d6529068609 100644 --- a/pythonbindings/pyfluids-stubs/bindings/basics/logger.pyi +++ b/pythonbindings/pyfluids-stubs/bindings/basics/logger.pyi @@ -32,7 +32,9 @@ r""" ! \author Henry Korb ======================================================================================= """ -from typing import Any, ClassVar +from __future__ import annotations + +from typing import ClassVar log: None @@ -62,7 +64,7 @@ class Logger: @staticmethod def enable_printed_rank_numbers(print: bool) -> None: ... @staticmethod - def set_debug_level(level: int) -> None: ... + def set_debug_level(level: Level) -> None: ... @staticmethod def time_stamp(time_stemp: TimeStamp) -> None: ... diff --git a/pythonbindings/pyfluids-stubs/bindings/gpu/__init__.pyi b/pythonbindings/pyfluids-stubs/bindings/gpu/__init__.pyi index 36c2fea76713e980bb95eb6726d778de8c9a6583..cd93dfe38d4a2e36aca96b95344959a5fea9e452 100644 --- a/pythonbindings/pyfluids-stubs/bindings/gpu/__init__.pyi +++ b/pythonbindings/pyfluids-stubs/bindings/gpu/__init__.pyi @@ -37,7 +37,7 @@ from typing import Any, Callable, ClassVar, List, Optional from typing import overload import numpy import pyfluids.bindings.basics -import pyfluids.bindings.gpu.grid_generator as grid_generator +from . import grid_generator as grid_generator, probes as probes class ActuatorFarm(PreCollisionInteractor): def __init__(self, number_of_blades_per_turbine: int, density: float, number_of_nodes_per_blade: int, epsilon: float, level: int, delta_t: float, delta_x: float, use_host_arrays: bool) -> None: ... diff --git a/pythonbindings/pyfluids-stubs/bindings/gpu/grid_generator.pyi b/pythonbindings/pyfluids-stubs/bindings/gpu/grid_generator.pyi index 514dc5053e9574b452d80f61eb3d4e1ebb0f4396..ccdfc1b936e81086b86591b0c3039253b7db1a65 100644 --- a/pythonbindings/pyfluids-stubs/bindings/gpu/grid_generator.pyi +++ b/pythonbindings/pyfluids-stubs/bindings/gpu/grid_generator.pyi @@ -32,7 +32,10 @@ r""" ! \author Henry Korb ======================================================================================= """ -from typing import Any, List + +from __future__ import annotations + +from typing import List from typing import overload import pyfluids.bindings.basics @@ -41,6 +44,9 @@ import pyfluids.bindings.gpu class BoundingBox: def __init__(self, min_x: float, max_x: float, min_y: float, max_y: float, min_z: float, max_z: float) -> None: ... +class Object: + def __init__(self, *args, **kwargs) -> None: ... + class Conglomerate(Object): def __init__(self, *args, **kwargs) -> None: ... def add(self, object: Object) -> None: ... @@ -86,9 +92,6 @@ class MultipleGridBuilder(LevelGridBuilder): @staticmethod def make_shared(grid_factory: GridFactory) -> MultipleGridBuilder: ... -class Object: - def __init__(self, *args, **kwargs) -> None: ... - class Sphere(Object): def __init__(self, *args, **kwargs) -> None: ... @staticmethod diff --git a/pythonbindings/pyfluids-stubs/bindings/gpu/probes.pyi b/pythonbindings/pyfluids-stubs/bindings/gpu/probes.pyi index 1454ed53832fbbe3051f77c84526b5df7999c76d..702e3fbce25a77d6238e31907477aa5f239196c1 100644 --- a/pythonbindings/pyfluids-stubs/bindings/gpu/probes.pyi +++ b/pythonbindings/pyfluids-stubs/bindings/gpu/probes.pyi @@ -32,28 +32,11 @@ r""" ! \author Henry Korb ======================================================================================= """ +from __future__ import annotations from typing import ClassVar, List import pyfluids.bindings.gpu -class PlanarAverageProbe(Probe): - def __init__(self, probe_name: str, output_path: str, t_start_avg: int, t_start_tmp_avg: int, t_avg: int, t_start_out: int, t_out: int, plane_normal: str) -> None: ... - -class PlaneProbe(Probe): - def __init__(self, probe_name: str, output_path: str, t_start_avg: int, t_avg: int, t_start_out: int, t_out: int) -> None: ... - def set_probe_plane(self, pos_x: float, pos_y: float, pos_z: float, delta_x: float, delta_y: float, delta_z: float) -> None: ... - -class PointProbe(Probe): - def __init__(self, probe_name: str, output_path: str, t_start_avg: int, t_avg: int, t_start_out: int, t_out: int, output_timeseries: bool) -> None: ... - def add_probe_point(self, point_coord_x: float, point_coord_y: float, point_coord_z: float) -> None: ... - def add_probe_points_from_list(self, point_coords_x: List[float], point_coords_y: List[float], point_coords_z: List[float]) -> None: ... - def add_probe_points_from_x_normal_plane(self, pos_x: float, pos0_y: float, pos0_z: float, pos1_y: float, pos1_z: float, n_y: int, n_z: int) -> None: ... - -class Probe(pyfluids.bindings.gpu.PreCollisionInteractor): - def __init__(self, *args, **kwargs) -> None: ... - def add_all_available_statistics(self) -> None: ... - def add_statistic(self, variable: Statistic) -> None: ... - def set_file_name_to_n_out(self) -> None: ... class Statistic: __members__: ClassVar[dict] = ... # read-only @@ -80,6 +63,30 @@ class Statistic: @property def name(self) -> str: ... + +class Probe(pyfluids.bindings.gpu.PreCollisionInteractor): + def __init__(self, *args, **kwargs) -> None: ... + def add_all_available_statistics(self) -> None: ... + def add_statistic(self, variable: Statistic) -> None: ... + def set_file_name_to_n_out(self) -> None: ... + + +class PlanarAverageProbe(Probe): + def __init__(self, probe_name: str, output_path: str, t_start_avg: int, t_start_tmp_avg: int, t_avg: int, t_start_out: int, t_out: int, plane_normal: str) -> None: ... + + +class PlaneProbe(Probe): + def __init__(self, probe_name: str, output_path: str, t_start_avg: int, t_avg: int, t_start_out: int, t_out: int) -> None: ... + def set_probe_plane(self, pos_x: float, pos_y: float, pos_z: float, delta_x: float, delta_y: float, delta_z: float) -> None: ... + + +class PointProbe(Probe): + def __init__(self, probe_name: str, output_path: str, t_start_avg: int, t_avg: int, t_start_out: int, t_out: int, output_timeseries: bool) -> None: ... + def add_probe_point(self, point_coord_x: float, point_coord_y: float, point_coord_z: float) -> None: ... + def add_probe_points_from_list(self, point_coords_x: List[float], point_coords_y: List[float], point_coords_z: List[float]) -> None: ... + def add_probe_points_from_x_normal_plane(self, pos_x: float, pos0_y: float, pos0_z: float, pos1_y: float, pos1_z: float, n_y: int, n_z: int) -> None: ... + + class WallModelProbe(Probe): def __init__(self, probe_name: str, output_path: str, t_start_avg: int, t_start_tmp_avg: int, t_avg: int, t_start_out: int, t_out: int) -> None: ... def set_evaluate_pressure_gradient(self, eval_press_grad: bool) -> None: ... diff --git a/pythonbindings/pyfluids-stubs/bindings/logger.pyi b/pythonbindings/pyfluids-stubs/bindings/logger.pyi index fe84eeb18f3245ef72ed023b2de9db7b9131d144..ce1afc013ebac5b24fb3690b2aaa405cef466a42 100644 --- a/pythonbindings/pyfluids-stubs/bindings/logger.pyi +++ b/pythonbindings/pyfluids-stubs/bindings/logger.pyi @@ -32,6 +32,8 @@ r""" ! \author Henry Korb ======================================================================================= """ +from __future__ import annotations + class Logger: @staticmethod def change_log_path(path: str) -> None: ... diff --git a/setup.py b/setup.py index 530431b3775970b5222bc87d32bfb407363f95d6..12628591a06b3700aac79d70c4e604bea37396bf 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ import sys from pathlib import Path -from typing import List +from setuptools import find_namespace_packages import skbuild """ @@ -25,26 +25,7 @@ or install via pip: package_name = "pyfluids" target = "python_bindings" src_dir = "pythonbindings" -stub_package = package_name+"-stubs" -stub_dir = Path(src_dir)/stub_package - - -def add_subfiles(dir_path: Path, suffix: str, root_dir: Path) -> List[str]: - files = [] - for f in dir_path.iterdir(): - if f.is_dir(): - files.extend(add_subfiles(f, suffix, root_dir)) - if f.is_file(): - if f.suffix != suffix: - continue - files.append(str(f.relative_to(root_dir))) - return files - -def add_directory(dir_path: Path, suffix: str): - return add_subfiles(dir_path, suffix, dir_path) - -stub_files = add_directory(stub_dir, ".pyi") # hack to get config-args for installation with pip>21 cmake_args = [] @@ -62,11 +43,10 @@ cmake_args += [ skbuild.setup( name=package_name, - packages=[package_name, "pymuparser", "pyfluids-stubs"], + packages=find_namespace_packages(src_dir), package_dir={"": src_dir}, cmake_args=cmake_args, cmake_install_target=target, - package_data={ "pyfluids": ["py.typed"], - "pyfluids-stubs": stub_files}, + package_data={package_name: ["py.typed"]}, include_package_data=True, )