From 8cb163bfcaba837519f42dc2797681c32c34b728 Mon Sep 17 00:00:00 2001 From: Henry <henry.korb@geo.uu.se> Date: Thu, 2 Feb 2023 14:43:17 +0100 Subject: [PATCH] some reformatting of type stubs change inclusion of type stubs in setup.py --- pythonbindings/pyfluids-stubs/__init__.pyi | 2 +- .../pyfluids-stubs/bindings/__init__.pyi | 1 + .../pyfluids-stubs/bindings/gpu/__init__.pyi | 113 +++++++++++------- .../bindings/gpu/grid_generator.pyi | 15 ++- .../pyfluids-stubs/bindings/gpu/probes.pyi | 4 +- .../pyfluids-stubs/bindings/logger.pyi | 2 + setup.py | 31 +++-- 7 files changed, 109 insertions(+), 59 deletions(-) diff --git a/pythonbindings/pyfluids-stubs/__init__.pyi b/pythonbindings/pyfluids-stubs/__init__.pyi index a8f52226f..4dc4ea07b 100644 --- a/pythonbindings/pyfluids-stubs/__init__.pyi +++ b/pythonbindings/pyfluids-stubs/__init__.pyi @@ -1 +1 @@ -from . import bindings \ No newline at end of file +from . import bindings as bindings diff --git a/pythonbindings/pyfluids-stubs/bindings/__init__.pyi b/pythonbindings/pyfluids-stubs/bindings/__init__.pyi index b0a9b3c57..337d26e6b 100644 --- a/pythonbindings/pyfluids-stubs/bindings/__init__.pyi +++ b/pythonbindings/pyfluids-stubs/bindings/__init__.pyi @@ -34,6 +34,7 @@ r""" """ 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/gpu/__init__.pyi b/pythonbindings/pyfluids-stubs/bindings/gpu/__init__.pyi index cd93dfe38..12965332f 100644 --- a/pythonbindings/pyfluids-stubs/bindings/gpu/__init__.pyi +++ b/pythonbindings/pyfluids-stubs/bindings/gpu/__init__.pyi @@ -32,77 +32,88 @@ r""" ! \author Henry Korb ======================================================================================= """ -from typing import Any, Callable, ClassVar, List, Optional +from __future__ import annotations +from typing import Callable, ClassVar, List, Optional from typing import overload -import numpy +import numpy as np +import numpy.typing as npt import pyfluids.bindings.basics from . import grid_generator as grid_generator, probes as probes + +class PreCollisionInteractor: + def __init__(self, *args, **kwargs) -> None: ... + + +class FileCollection: + def __init__(self, *args, **kwargs) -> None: ... + + 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: ... def add_turbine(self, posX: float, posY: float, posZ: float, diameter: float, omega: float, azimuth: float, yaw: float, bladeRadii: List[float]) -> None: ... def calc_blade_forces(self) -> None: ... - def get_all_azimuths(self) -> numpy.ndarray[numpy.float32]: ... - def get_all_blade_coords_x(self) -> numpy.ndarray[numpy.float32]: ... + def get_all_azimuths(self) -> npt.NDArray[np.float32]: ... + def get_all_blade_coords_x(self) -> npt.NDArray[np.float32]: ... def get_all_blade_coords_x_device(self) -> int: ... - def get_all_blade_coords_y(self) -> numpy.ndarray[numpy.float32]: ... + def get_all_blade_coords_y(self) -> npt.NDArray[np.float32]: ... def get_all_blade_coords_y_device(self) -> int: ... - def get_all_blade_coords_z(self) -> numpy.ndarray[numpy.float32]: ... + def get_all_blade_coords_z(self) -> npt.NDArray[np.float32]: ... def get_all_blade_coords_z_device(self) -> int: ... - def get_all_blade_forces_x(self) -> numpy.ndarray[numpy.float32]: ... + def get_all_blade_forces_x(self) -> npt.NDArray[np.float32]: ... def get_all_blade_forces_x_device(self) -> int: ... - def get_all_blade_forces_y(self) -> numpy.ndarray[numpy.float32]: ... + def get_all_blade_forces_y(self) -> npt.NDArray[np.float32]: ... def get_all_blade_forces_y_device(self) -> int: ... - def get_all_blade_forces_z(self) -> numpy.ndarray[numpy.float32]: ... + def get_all_blade_forces_z(self) -> npt.NDArray[np.float32]: ... def get_all_blade_forces_z_device(self) -> int: ... - def get_all_blade_radii(self) -> numpy.ndarray[numpy.float32]: ... + def get_all_blade_radii(self) -> npt.NDArray[np.float32]: ... def get_all_blade_radii_device(self) -> int: ... - def get_all_blade_velocities_x(self) -> numpy.ndarray[numpy.float32]: ... + def get_all_blade_velocities_x(self) -> npt.NDArray[np.float32]: ... def get_all_blade_velocities_x_device(self) -> int: ... - def get_all_blade_velocities_y(self) -> numpy.ndarray[numpy.float32]: ... + def get_all_blade_velocities_y(self) -> npt.NDArray[np.float32]: ... def get_all_blade_velocities_y_device(self) -> int: ... - def get_all_blade_velocities_z(self) -> numpy.ndarray[numpy.float32]: ... + def get_all_blade_velocities_z(self) -> npt.NDArray[np.float32]: ... def get_all_blade_velocities_z_device(self) -> int: ... - def get_all_omegas(self) -> numpy.ndarray[numpy.float32]: ... - def get_all_turbine_pos_x(self) -> numpy.ndarray[numpy.float32]: ... - def get_all_turbine_pos_y(self) -> numpy.ndarray[numpy.float32]: ... - def get_all_turbine_pos_z(self) -> numpy.ndarray[numpy.float32]: ... - def get_all_yaws(self) -> numpy.ndarray[numpy.float32]: ... + def get_all_omegas(self) -> npt.NDArray[np.float32]: ... + def get_all_turbine_pos_x(self) -> npt.NDArray[np.float32]: ... + def get_all_turbine_pos_y(self) -> npt.NDArray[np.float32]: ... + def get_all_turbine_pos_z(self) -> npt.NDArray[np.float32]: ... + def get_all_yaws(self) -> npt.NDArray[np.float32]: ... def get_turbine_azimuth(self, turbine: int) -> float: ... - def get_turbine_blade_coords_x(self, turbine: int) -> numpy.ndarray[numpy.float32]: ... + def get_turbine_blade_coords_x(self, turbine: int) -> npt.NDArray[np.float32]: ... def get_turbine_blade_coords_x_device(self, turbine: int) -> int: ... - def get_turbine_blade_coords_y(self, turbine: int) -> numpy.ndarray[numpy.float32]: ... + def get_turbine_blade_coords_y(self, turbine: int) -> npt.NDArray[np.float32]: ... def get_turbine_blade_coords_y_device(self, turbine: int) -> int: ... - def get_turbine_blade_coords_z(self, turbine: int) -> numpy.ndarray[numpy.float32]: ... + def get_turbine_blade_coords_z(self, turbine: int) -> npt.NDArray[np.float32]: ... def get_turbine_blade_coords_z_device(self, turbine: int) -> int: ... - def get_turbine_blade_forces_x(self, turbine: int) -> numpy.ndarray[numpy.float32]: ... + def get_turbine_blade_forces_x(self, turbine: int) -> npt.NDArray[np.float32]: ... def get_turbine_blade_forces_x_device(self, turbine: int) -> int: ... - def get_turbine_blade_forces_y(self, turbine: int) -> numpy.ndarray[numpy.float32]: ... + def get_turbine_blade_forces_y(self, turbine: int) -> npt.NDArray[np.float32]: ... def get_turbine_blade_forces_y_device(self, turbine: int) -> int: ... - def get_turbine_blade_forces_z(self, turbine: int) -> numpy.ndarray[numpy.float32]: ... + def get_turbine_blade_forces_z(self, turbine: int) -> npt.NDArray[np.float32]: ... def get_turbine_blade_forces_z_device(self, turbine: int) -> int: ... - def get_turbine_blade_radii(self, turbine: int) -> numpy.ndarray[numpy.float32]: ... + def get_turbine_blade_radii(self, turbine: int) -> npt.NDArray[np.float32]: ... def get_turbine_blade_radii_device(self, turbine: int) -> int: ... - def get_turbine_blade_velocities_x(self, turbine: int) -> numpy.ndarray[numpy.float32]: ... + def get_turbine_blade_velocities_x(self, turbine: int) -> npt.NDArray[np.float32]: ... def get_turbine_blade_velocities_x_device(self, turbine: int) -> int: ... - def get_turbine_blade_velocities_y(self, turbine: int) -> numpy.ndarray[numpy.float32]: ... + def get_turbine_blade_velocities_y(self, turbine: int) -> npt.NDArray[np.float32]: ... def get_turbine_blade_velocities_y_device(self, turbine: int) -> int: ... - def get_turbine_blade_velocities_z(self, turbine: int) -> numpy.ndarray[numpy.float32]: ... + def get_turbine_blade_velocities_z(self, turbine: int) -> npt.NDArray[np.float32]: ... def get_turbine_blade_velocities_z_device(self, turbine: int) -> int: ... def get_turbine_omega(self, turbine: int) -> float: ... - def get_turbine_pos(self, turbine: int) -> numpy.ndarray[numpy.float32]: ... + def get_turbine_pos(self, turbine: int) -> npt.NDArray[np.float32]: ... def get_turbine_yaw(self, turbine: int) -> float: ... - def set_all_azimuths(self, azimuths: numpy.ndarray[numpy.float32]) -> None: ... - def set_all_blade_coords(self, blade_coords_x: numpy.ndarray[numpy.float32], blade_coords_y: numpy.ndarray[numpy.float32], blade_coords_z: numpy.ndarray[numpy.float32]) -> None: ... - def set_all_blade_forces(self, blade_forces_x: numpy.ndarray[numpy.float32], blade_forces_y: numpy.ndarray[numpy.float32], blade_forces_z: numpy.ndarray[numpy.float32]) -> None: ... - def set_all_blade_velocities(self, blade_velocities_x: numpy.ndarray[numpy.float32], blade_velocities_y: numpy.ndarray[numpy.float32], blade_velocities_z: numpy.ndarray[numpy.float32]) -> None: ... - def set_all_omegas(self, omegas: numpy.ndarray[numpy.float32]) -> None: ... - def set_all_yaws(self, yaws: numpy.ndarray[numpy.float32]) -> None: ... + def set_all_azimuths(self, azimuths: npt.NDArray[np.float32]) -> None: ... + def set_all_blade_coords(self, blade_coords_x: npt.NDArray[np.float32], blade_coords_y: npt.NDArray[np.float32], blade_coords_z: npt.NDArray[np.float32]) -> None: ... + def set_all_blade_forces(self, blade_forces_x: npt.NDArray[np.float32], blade_forces_y: npt.NDArray[np.float32], blade_forces_z: npt.NDArray[np.float32]) -> None: ... + def set_all_blade_velocities(self, blade_velocities_x: npt.NDArray[np.float32], blade_velocities_y: npt.NDArray[np.float32], blade_velocities_z: npt.NDArray[np.float32]) -> None: ... + def set_all_omegas(self, omegas: npt.NDArray[np.float32]) -> None: ... + def set_all_yaws(self, yaws: npt.NDArray[np.float32]) -> None: ... def set_turbine_azimuth(self, turbine: int, azimuth: float) -> None: ... - def set_turbine_blade_coords(self, turbine: int, blade_coords_x: numpy.ndarray[numpy.float32], blade_coords_y: numpy.ndarray[numpy.float32], blade_coords_z: numpy.ndarray[numpy.float32]) -> None: ... - def set_turbine_blade_forces(self, turbine: int, blade_forces_x: numpy.ndarray[numpy.float32], blade_forces_y: numpy.ndarray[numpy.float32], blade_forces_z: numpy.ndarray[numpy.float32]) -> None: ... - def set_turbine_blade_velocities(self, turbine: int, blade_velocities_x: numpy.ndarray[numpy.float32], blade_velocities_y: numpy.ndarray[numpy.float32], blade_velocities_z: numpy.ndarray[numpy.float32]) -> None: ... + def set_turbine_blade_coords(self, turbine: int, blade_coords_x: npt.NDArray[np.float32], blade_coords_y: npt.NDArray[np.float32], blade_coords_z: npt.NDArray[np.float32]) -> None: ... + def set_turbine_blade_forces(self, turbine: int, blade_forces_x: npt.NDArray[np.float32], blade_forces_y: npt.NDArray[np.float32], blade_forces_z: npt.NDArray[np.float32]) -> None: ... + def set_turbine_blade_velocities(self, turbine: int, blade_velocities_x: npt.NDArray[np.float32], blade_velocities_y: npt.NDArray[np.float32], blade_velocities_z: npt.NDArray[np.float32]) -> None: ... def set_turbine_omega(self, turbine: int, omega: float) -> None: ... def set_turbine_yaw(self, turbine: int, yaw: float) -> None: ... @property @@ -122,6 +133,7 @@ class ActuatorFarm(PreCollisionInteractor): @property def number_of_turbines(self) -> int: ... + class BoundaryConditionFactory: def __init__(self) -> None: ... def set_geometry_boundary_condition(self, boundary_condition_type) -> None: ... @@ -132,6 +144,7 @@ class BoundaryConditionFactory: def set_stress_boundary_condition(self, boundary_condition_type) -> None: ... def set_velocity_boundary_condition(self, boundary_condition_type) -> None: ... + class Communicator: def __init__(self, *args, **kwargs) -> None: ... @staticmethod @@ -139,9 +152,11 @@ class Communicator: def get_number_of_process(self) -> int: ... def get_pid(self) -> int: ... + class CudaMemoryManager: def __init__(self, parameter: Parameter) -> None: ... + class FileType: __members__: ClassVar[dict] = ... # read-only VTK: ClassVar[FileType] = ... @@ -157,11 +172,13 @@ class FileType: @property def name(self) -> str: ... + class GridProvider: def __init__(self, *args, **kwargs) -> None: ... @staticmethod def make_grid_generator(builder: grid_generator.GridBuilder, para: Parameter, cuda_memory_manager: CudaMemoryManager, communicator: Communicator) -> GridProvider: ... + class GridScaling: __members__: ClassVar[dict] = ... # read-only NotSpecified: ClassVar[GridScaling] = ... @@ -179,10 +196,12 @@ class GridScaling: @property def name(self) -> str: ... + class GridScalingFactory: def __init__(self) -> None: ... def set_scaling_factory(self, scaling_type) -> None: ... + class NoSlipBC: __members__: ClassVar[dict] = ... # read-only NoSlip3rdMomentsCompressible: ClassVar[NoSlipBC] = ... @@ -202,6 +221,7 @@ class NoSlipBC: @property def name(self) -> str: ... + class OutputVariable: __members__: ClassVar[dict] = ... # read-only Distributions: ClassVar[OutputVariable] = ... @@ -218,6 +238,7 @@ class OutputVariable: @property def name(self) -> str: ... + class Parameter: @overload def __init__(self, number_of_processes: int, my_ID: int, config_data: Optional[pyfluids.bindings.basics.ConfigurationFile]) -> None: ... @@ -245,7 +266,7 @@ class Parameter: def set_diff_on(self, is_diff: bool) -> None: ... def set_forcing(self, forcing_x: float, forcing_y: float, forcing_z: float) -> None: ... def set_has_wall_model_monitor(self, has_wall_monitor: bool) -> None: ... - def set_initial_condition(self, init_func: Callable[[float,float,float],List[float]]) -> None: ... + def set_initial_condition(self, init_func: Callable[[float, float, float], List[float]]) -> None: ... def set_initial_condition_log_law(self, u_star: float, z0: float, velocity_ratio: float) -> None: ... def set_initial_condition_perturbed_log_law(self, u_star: float, z0: float, length_x: float, length_z: float, height: float, velocity_ratio: float) -> None: ... def set_initial_condition_uniform(self, velocity_x: float, velocity_y: float, velocity_z: float) -> None: ... @@ -270,8 +291,6 @@ class Parameter: def set_viscosity_LB(self, viscosity: float) -> None: ... def set_viscosity_ratio(self, viscosity_ratio: float) -> None: ... -class PreCollisionInteractor: - def __init__(self, *args, **kwargs) -> None: ... class PrecursorBC: __members__: ClassVar[dict] = ... # read-only @@ -290,9 +309,11 @@ class PrecursorBC: @property def name(self) -> str: ... + class PrecursorWriter(PreCollisionInteractor): def __init__(self, filename: str, output_path: str, x_pos: float, y_min: float, y_max: float, z_min: float, z_max: float, t_start_out: int, t_save: int, output_variable: OutputVariable, max_timesteps_per_file: int) -> None: ... + class PressureBC: __members__: ClassVar[dict] = ... # read-only NotSpecified: ClassVar[PressureBC] = ... @@ -314,6 +335,7 @@ class PressureBC: @property def name(self) -> str: ... + class SideType: __members__: ClassVar[dict] = ... # read-only GEOMETRY: ClassVar[SideType] = ... @@ -335,6 +357,7 @@ class SideType: @property def name(self) -> str: ... + class Simulation: @overload def __init__(self, parameter: Parameter, memoryManager: CudaMemoryManager, communicator, gridProvider: GridProvider, bcFactory: BoundaryConditionFactory, gridScalingFactory: GridScalingFactory) -> None: ... @@ -346,6 +369,7 @@ class Simulation: def addKineticEnergyAnalyzer(self, t_analyse: int) -> None: ... def run(self) -> None: ... + class SlipBC: __members__: ClassVar[dict] = ... # read-only NotSpecified: ClassVar[SlipBC] = ... @@ -366,6 +390,7 @@ class SlipBC: @property def name(self) -> str: ... + class StressBC: __members__: ClassVar[dict] = ... # read-only NotSpecified: ClassVar[StressBC] = ... @@ -384,6 +409,7 @@ class StressBC: @property def name(self) -> str: ... + class TurbulenceModel: __members__: ClassVar[dict] = ... # read-only AMD: ClassVar[TurbulenceModel] = ... @@ -402,15 +428,18 @@ class TurbulenceModel: @property def name(self) -> str: ... + class TurbulenceModelFactory: def __init__(self, para: Parameter) -> None: ... def read_config_file(self, config_data: pyfluids.bindings.basics.ConfigurationFile) -> None: ... def set_model_constant(self, model_constant: float) -> None: ... def set_turbulence_model(self, turbulence_model: TurbulenceModel) -> None: ... + class VTKFileCollection(FileCollection): def __init__(self, prefix: str) -> None: ... + class VelocityBC: __members__: ClassVar[dict] = ... # read-only NotSpecified: ClassVar[VelocityBC] = ... @@ -430,7 +459,5 @@ class VelocityBC: @property def name(self) -> str: ... -class FileCollection: - def __init__(self, *args, **kwargs) -> None: ... def create_file_collection(prefix: str, type: FileType) -> FileCollection: ... diff --git a/pythonbindings/pyfluids-stubs/bindings/gpu/grid_generator.pyi b/pythonbindings/pyfluids-stubs/bindings/gpu/grid_generator.pyi index ccdfc1b93..44d1357dc 100644 --- a/pythonbindings/pyfluids-stubs/bindings/gpu/grid_generator.pyi +++ b/pythonbindings/pyfluids-stubs/bindings/gpu/grid_generator.pyi @@ -32,7 +32,6 @@ r""" ! \author Henry Korb ======================================================================================= """ - from __future__ import annotations from typing import List @@ -41,12 +40,15 @@ from typing import overload import pyfluids.bindings.basics 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: ... @@ -54,28 +56,33 @@ class Conglomerate(Object): def make_shared() -> Conglomerate: ... def subtract(self, object: Object) -> None: ... + class Cuboid(Object): def __init__(self, min_x1: float, min_x2: float, min_x3: float, max_x1: float, max_x2: float, max_x3: float) -> None: ... + class GridBuilder: def __init__(self, *args, **kwargs) -> None: ... def get_number_of_grid_levels(self) -> int: ... + class GridFactory: def __init__(self, *args, **kwargs) -> None: ... @staticmethod def make() -> GridFactory: ... + class LevelGridBuilder(GridBuilder): def __init__(self, *args, **kwargs) -> None: ... def set_no_slip_boundary_condition(self, side_type: pyfluids.bindings.gpu.SideType) -> None: ... def set_periodic_boundary_condition(self, periodic_x: bool, periodic_y: bool, periodic_z: bool) -> None: ... - def set_precursor_boundary_condition(self, side_type: pyfluids.bindings.gpu.SideType, file_collection: pyfluids.bindings.gpu.VelocityFileCollection, n_t_read: int, velocity_x: float = ..., velocity_y: float = ..., velocity_z: float = ..., file_level_to_grid_level_map: List[int] = ...) -> None: ... + def set_precursor_boundary_condition(self, side_type: pyfluids.bindings.gpu.SideType, file_collection: pyfluids.bindings.gpu.FileCollection, n_t_read: int, velocity_x: float = ..., velocity_y: float = ..., velocity_z: float = ..., file_level_to_grid_level_map: List[int] = ...) -> None: ... def set_pressure_boundary_condition(self, side_type: pyfluids.bindings.gpu.SideType, rho: float) -> None: ... def set_slip_boundary_condition(self, side_type: pyfluids.bindings.gpu.SideType, normal_x: float, normal_y: float, normal_z: float) -> None: ... - def set_stress_boundary_condition(self, side_type: pyfluids.bindings.gpu.SideType, normal_x: float, normal_y: float, normal_z: float, sampling_offset: int, z0: float, dx: float, q: float) -> None: ... + def set_stress_boundary_condition(self, side_type: pyfluids.bindings.gpu.SideType, normal_x: float, normal_y: float, normal_z: float, sampling_offset: int, z0: float, dx: float, q: float = ...) -> None: ... def set_velocity_boundary_condition(self, side_type: pyfluids.bindings.gpu.SideType, vx: float, vy: float, vz: float) -> None: ... + class MultipleGridBuilder(LevelGridBuilder): def __init__(self, *args, **kwargs) -> None: ... def add_coarse_grid(self, start_x: float, start_y: float, start_z: float, end_x: float, end_y: float, end_z: float, delta: float) -> None: ... @@ -92,11 +99,13 @@ class MultipleGridBuilder(LevelGridBuilder): @staticmethod def make_shared(grid_factory: GridFactory) -> MultipleGridBuilder: ... + class Sphere(Object): def __init__(self, *args, **kwargs) -> None: ... @staticmethod def make_shared() -> Sphere: ... + class TriangularMesh(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 702e3fbce..c99aec556 100644 --- a/pythonbindings/pyfluids-stubs/bindings/gpu/probes.pyi +++ b/pythonbindings/pyfluids-stubs/bindings/gpu/probes.pyi @@ -35,7 +35,7 @@ r""" from __future__ import annotations from typing import ClassVar, List -import pyfluids.bindings.gpu +from pyfluids.bindings.gpu import PreCollisionInteractor class Statistic: @@ -64,7 +64,7 @@ class Statistic: def name(self) -> str: ... -class Probe(pyfluids.bindings.gpu.PreCollisionInteractor): +class Probe(PreCollisionInteractor): def __init__(self, *args, **kwargs) -> None: ... def add_all_available_statistics(self) -> None: ... def add_statistic(self, variable: Statistic) -> None: ... diff --git a/pythonbindings/pyfluids-stubs/bindings/logger.pyi b/pythonbindings/pyfluids-stubs/bindings/logger.pyi index ce1afc013..91c1346c2 100644 --- a/pythonbindings/pyfluids-stubs/bindings/logger.pyi +++ b/pythonbindings/pyfluids-stubs/bindings/logger.pyi @@ -34,12 +34,14 @@ r""" """ from __future__ import annotations + class Logger: @staticmethod def change_log_path(path: str) -> None: ... @staticmethod def initialize_logger() -> None: ... + def vf_log_critical(message: str) -> None: ... def vf_log_debug(message: str) -> None: ... def vf_log_info(message: str) -> None: ... diff --git a/setup.py b/setup.py index 12628591a..b9520b150 100644 --- a/setup.py +++ b/setup.py @@ -1,9 +1,3 @@ -import sys -from pathlib import Path - -from setuptools import find_namespace_packages -import skbuild - """ Install python wrapper of Virtual Fluids install via python: @@ -16,15 +10,31 @@ or install via pip: for pip>21: set CMAKE Flags via --config-settings "-DBUILD_VF_GPU=ON" example: pip install . --config-settings="-DBUILD_VF_GPU=ON" - each option has to be passed in individually i.e --config-settings="-DOPT1=ON" --config-settings="-DOPT2=OFF" + each option has to be passed in individually i.e + --config-settings="-DOPT1=ON" --config-settings="-DOPT2=OFF" for pip <21: set CMAKE Flags via --global-option ="-DBUILD_VF_GPU=ON" example: pip install . --global-option="-DBUILD_VF_GPU=ON" """ +import sys +from pathlib import Path + +from setuptools import find_packages +import skbuild package_name = "pyfluids" target = "python_bindings" src_dir = "pythonbindings" +stubs_package = package_name+"-stubs" +stub_dir = Path(src_dir)/stubs_package + + +def find_stub_subpackages(stub_dir: Path): + return [str(d.parent.relative_to(stub_dir.parent)) for d in stub_dir.rglob("__init__.pyi")] + + +def find_stub_files(dir: Path): + return [str(f.relative_to(dir)) for f in dir.rglob("*.pyi")] # hack to get config-args for installation with pip>21 @@ -40,13 +50,14 @@ cmake_args += [ "-DBUILD_VF_UNIT_TESTS:BOOL=OFF", "-DBUILD_WARNINGS_AS_ERRORS=OFF", ] - +print(find_stub_subpackages(stub_dir)) +print(find_packages(where=src_dir)) skbuild.setup( name=package_name, - packages=find_namespace_packages(src_dir), + packages=find_packages()+find_stub_subpackages(stub_dir), package_dir={"": src_dir}, cmake_args=cmake_args, cmake_install_target=target, - package_data={package_name: ["py.typed"]}, + package_data={package_name: ["py.typed"], stubs_package: find_stub_files(stub_dir)}, include_package_data=True, ) -- GitLab