luminarycloud 0.22.2__py3-none-any.whl → 0.23.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- luminarycloud/__init__.py +9 -3
- luminarycloud/_client/client.py +1 -1
- luminarycloud/_client/retry_interceptor.py +13 -2
- luminarycloud/_helpers/_code_representation.py +1 -0
- luminarycloud/_helpers/_create_simulation.py +5 -1
- luminarycloud/_helpers/proto_decorator.py +46 -38
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.py +214 -137
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.pyi +152 -0
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.py +103 -0
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.pyi +40 -0
- luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2.py +25 -3
- luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2.pyi +30 -0
- luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2_grpc.py +34 -0
- luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2_grpc.pyi +12 -0
- luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.py +155 -59
- luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.pyi +252 -22
- luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.py +102 -0
- luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.pyi +36 -0
- luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.py +94 -71
- luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.pyi +46 -0
- luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2_grpc.py +35 -0
- luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2_grpc.pyi +16 -0
- luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.py +25 -3
- luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.pyi +32 -0
- luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2_grpc.py +34 -0
- luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2_grpc.pyi +12 -0
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.py +68 -21
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.pyi +119 -0
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2_grpc.py +33 -0
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2_grpc.pyi +10 -0
- luminarycloud/_proto/client/simulation_pb2.py +405 -346
- luminarycloud/_proto/client/simulation_pb2.pyi +175 -21
- luminarycloud/_proto/clusterconfig/clusterconfig_pb2.py +273 -0
- luminarycloud/_proto/clusterconfig/clusterconfig_pb2.pyi +808 -0
- luminarycloud/_proto/geometry/geometry_pb2.pyi +1 -1
- luminarycloud/_proto/lcstatus/details/geometry/geometry_pb2.py +256 -0
- luminarycloud/_proto/lcstatus/details/geometry/geometry_pb2.pyi +472 -0
- luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2.py +2 -2
- luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.py +102 -0
- luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.pyi +36 -0
- luminarycloud/_proto/quantity/quantity_pb2.pyi +1 -1
- luminarycloud/enum/__init__.py +1 -0
- luminarycloud/enum/gpu_type.py +42 -7
- luminarycloud/enum/vis_enums.py +18 -0
- luminarycloud/geometry.py +81 -0
- luminarycloud/geometry_contacts.py +222 -0
- luminarycloud/meshing/mesh_generation_params.py +4 -4
- luminarycloud/meshing/sizing_strategy/__init__.py +0 -1
- luminarycloud/meshing/sizing_strategy/sizing_strategies.py +0 -20
- luminarycloud/params/geometry/shapes.py +137 -31
- luminarycloud/params/outputs/__init__.py +0 -2
- luminarycloud/params/outputs/output.py +17 -5
- luminarycloud/params/simulation/__init__.py +2 -0
- luminarycloud/params/simulation/adaptive_mesh_refinement/active_region_.py +1 -1
- luminarycloud/params/simulation/adaptive_mesh_refinement/boundary_layer_profile_.py +1 -1
- luminarycloud/params/simulation/adaptive_mesh_refinement_.py +1 -1
- luminarycloud/params/simulation/adjoint_.py +8 -5
- luminarycloud/params/simulation/basic/gravity/gravity_off_.py +1 -1
- luminarycloud/params/simulation/basic/gravity/gravity_on_.py +1 -1
- luminarycloud/params/simulation/basic/gravity_.py +1 -1
- luminarycloud/params/simulation/body_frame_.py +1 -1
- luminarycloud/params/simulation/entity_relationships/volume_material_relationship_.py +1 -1
- luminarycloud/params/simulation/entity_relationships/volume_physics_relationship_.py +1 -1
- luminarycloud/params/simulation/entity_relationships_.py +1 -1
- luminarycloud/params/simulation/general_.py +1 -1
- luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_off_.py +1 -1
- luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_on_.py +1 -1
- luminarycloud/params/simulation/material/fluid/boussinesq_approximation_.py +1 -1
- luminarycloud/params/simulation/material/fluid/material_model/__init__.py +2 -0
- luminarycloud/params/simulation/material/fluid/material_model/ideal_gas_.py +1 -1
- luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_.py +1 -1
- luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_with_energy_.py +1 -1
- luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend/__init__.py +2 -0
- luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend/real_gas_coolprop_.py +43 -0
- luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend/real_gas_polynomial_.py +53 -0
- luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend_.py +29 -0
- luminarycloud/params/simulation/material/fluid/material_model_.py +1 -1
- luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_conductivity_.py +1 -1
- luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_prandtl_number_.py +1 -1
- luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/temperature_dependent_conductivity_.py +1 -1
- luminarycloud/params/simulation/material/fluid/thermal_conductivity_model_.py +1 -1
- luminarycloud/params/simulation/material/fluid/viscosity_model/prescribed_viscosity_.py +1 -1
- luminarycloud/params/simulation/material/fluid/viscosity_model/sutherland_.py +1 -1
- luminarycloud/params/simulation/material/fluid/viscosity_model/temperature_dependent_viscosity_.py +1 -1
- luminarycloud/params/simulation/material/fluid/viscosity_model_.py +1 -1
- luminarycloud/params/simulation/material/material_fluid_.py +78 -2
- luminarycloud/params/simulation/material/material_solid_.py +1 -1
- luminarycloud/params/simulation/material_entity_.py +1 -1
- luminarycloud/params/simulation/monitor_plane_.py +1 -1
- luminarycloud/params/simulation/motion_data/frame_transforms/no_transform_.py +1 -1
- luminarycloud/params/simulation/motion_data/frame_transforms/rotational_transform_.py +1 -1
- luminarycloud/params/simulation/motion_data/frame_transforms/translational_transform_.py +1 -1
- luminarycloud/params/simulation/motion_data/frame_transforms_.py +1 -1
- luminarycloud/params/simulation/motion_data/motion_type/constant_angular_motion_.py +1 -1
- luminarycloud/params/simulation/motion_data/motion_type/constant_translation_motion_.py +1 -1
- luminarycloud/params/simulation/motion_data/motion_type_.py +1 -1
- luminarycloud/params/simulation/motion_data_.py +1 -1
- luminarycloud/params/simulation/multi_physics_coupling_options_.py +1 -1
- luminarycloud/params/simulation/nonlinear_control/__init__.py +1 -0
- luminarycloud/params/simulation/nonlinear_control/nonlinear_control_system_.py +48 -0
- luminarycloud/params/simulation/nonlinear_control_.py +61 -0
- luminarycloud/params/simulation/output_.py +1 -1
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_normal_vector_.py +1 -1
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_rotation_angles_.py +1 -1
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection_.py +1 -1
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk_.py +1 -1
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_line_.py +1 -1
- luminarycloud/params/simulation/particle_group/particle_group_type/probe_points_.py +1 -1
- luminarycloud/params/simulation/particle_group/particle_group_type/source_points_.py +1 -1
- luminarycloud/params/simulation/particle_group/particle_group_type_.py +1 -1
- luminarycloud/params/simulation/particle_group_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/adjoint_controls_fluid_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/basic_fluid_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/farfield_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/fan_curve_inlet_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mach_inlet_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mass_flow_inlet_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/total_pressure_inlet_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_components_inlet_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_magnitude_inlet_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/fan_curve_outlet_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_pressure_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_corrected_mass_flow_rate_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_mass_flow_rate_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/symmetry_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/turbulence_boundary_conditions_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_heat_flux_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_temperature_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/no_slip_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/slip_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/wall_model_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_energy_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_momentum_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions_fluid_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/initialization/__init__.py +1 -0
- luminarycloud/params/simulation/physics/fluid/initialization/fluid_existing_solution_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/initialization/fluid_farfield_values_.py +14 -1
- luminarycloud/params/simulation/physics/fluid/initialization/fluid_initialization_per_zone_.py +48 -0
- luminarycloud/params/simulation/physics/fluid/initialization/fluid_prescribed_values_.py +14 -1
- luminarycloud/params/simulation/physics/fluid/initialization/turbulence_initialization_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/initialization_fluid_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/blade_element_airfoil_data_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_blade_element_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_radial_distribution_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_uniform_thrust_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/fan_curve_internal_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model/actuator_line_blade_element_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/blade_element_params_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_acceleration_source_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_mass_source_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/porous_behavior_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_explicit_relaxation_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_auto_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_off_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_on_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/cfl_based_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/fixed_pseudo_time_step_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls_fluid_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ec2_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/fds_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ld2_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/rhie_chow_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/first_order_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/second_order_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization_fluid_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_vtm_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/iddes_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/custom_komega_sst_constants_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/default_komega_sst_constants_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/komega_sst_constants_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/custom_spalart_allmaras_constants_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/default_spalart_allmaras_constants_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/spalart_allmaras_constants_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/amd_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/sigma_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/smagorinsky_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/vreman_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/wale_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence_.py +1 -1
- luminarycloud/params/simulation/physics/fluid_.py +1 -1
- luminarycloud/params/simulation/physics/heat/adjoint_controls_heat_.py +1 -1
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_convection_.py +1 -1
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_heat_flux_.py +1 -1
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_integrated_heat_flux_.py +1 -1
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_symmetry_.py +1 -1
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_temperature_.py +1 -1
- luminarycloud/params/simulation/physics/heat/boundary_conditions_heat_.py +1 -1
- luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_.py +1 -1
- luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_per_unit_of_volume_.py +1 -1
- luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type_.py +1 -1
- luminarycloud/params/simulation/physics/heat/heat_source_.py +1 -1
- luminarycloud/params/simulation/physics/heat/initialization/__init__.py +1 -0
- luminarycloud/params/simulation/physics/heat/initialization/heat_existing_solution_.py +1 -1
- luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values/__init__.py +1 -0
- luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values/heat_initialization_per_zone_.py +40 -0
- luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values_.py +14 -1
- luminarycloud/params/simulation/physics/heat/initialization_heat_.py +1 -1
- luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method/heat_implicit_relaxation_.py +1 -1
- luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method_.py +1 -1
- luminarycloud/params/simulation/physics/heat/solution_controls_heat_.py +1 -1
- luminarycloud/params/simulation/physics/heat/spatial_discretization_heat_.py +1 -1
- luminarycloud/params/simulation/physics/heat_.py +1 -1
- luminarycloud/params/simulation/physics/periodic_pair_.py +5 -1
- luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/gauss_seidel_.py +1 -1
- luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/krylov_amg_.py +1 -1
- luminarycloud/params/simulation/physics/solution_controls/linear_solver_type_.py +1 -1
- luminarycloud/params/simulation/physics_.py +1 -1
- luminarycloud/params/simulation/simulation_param_.py +8 -1
- luminarycloud/params/simulation/sliding_interfaces_.py +1 -1
- luminarycloud/params/simulation/surface_name_.py +1 -1
- luminarycloud/params/simulation/time/compute_statistics/compute_statistics_off_.py +1 -1
- luminarycloud/params/simulation/time/compute_statistics/compute_statistics_on_.py +1 -1
- luminarycloud/params/simulation/time/compute_statistics_.py +1 -1
- luminarycloud/params/simulation/time/time_marching/time_explicit_.py +1 -1
- luminarycloud/params/simulation/time/time_marching/time_implicit_.py +1 -1
- luminarycloud/params/simulation/time/time_marching_.py +1 -1
- luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_off_.py +1 -1
- luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_on_.py +1 -1
- luminarycloud/params/simulation/time/time_step_ramp_.py +1 -1
- luminarycloud/params/simulation/time_.py +1 -1
- luminarycloud/params/simulation/volume_entity_.py +1 -1
- luminarycloud/physics_ai/__init__.py +17 -0
- luminarycloud/physics_ai/architectures.py +130 -18
- luminarycloud/physics_ai/datasets.py +301 -0
- luminarycloud/physics_ai/training_jobs.py +50 -4
- luminarycloud/pipelines/__init__.py +16 -4
- luminarycloud/pipelines/api.py +192 -17
- luminarycloud/pipelines/arguments.py +8 -3
- luminarycloud/pipelines/core.py +296 -45
- luminarycloud/pipelines/flowables.py +138 -0
- luminarycloud/pipelines/stages.py +34 -55
- luminarycloud/pipelines/user_code_validation.py +122 -0
- luminarycloud/project.py +0 -14
- luminarycloud/simulation.py +42 -11
- luminarycloud/simulation_param.py +0 -62
- luminarycloud/simulation_template.py +1 -11
- luminarycloud/types/adfloat.py +48 -4
- luminarycloud/types/matrix3.py +9 -9
- luminarycloud/types/vector3.py +52 -23
- luminarycloud/vis/__init__.py +3 -0
- luminarycloud/vis/visualization.py +88 -0
- luminarycloud/volume_selection.py +29 -17
- {luminarycloud-0.22.2.dist-info → luminarycloud-0.23.0.dist-info}/METADATA +1 -1
- {luminarycloud-0.22.2.dist-info → luminarycloud-0.23.0.dist-info}/RECORD +266 -249
- luminarycloud/params/outputs/residual_output.py +0 -24
- /luminarycloud/params/{simulation/_lib.py → _lib.py} +0 -0
- {luminarycloud-0.22.2.dist-info → luminarycloud-0.23.0.dist-info}/WHEEL +0 -0
luminarycloud/pipelines/api.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
# Copyright 2023-
|
|
2
|
-
from typing import
|
|
1
|
+
# Copyright 2023-2025 Luminary Cloud, Inc. All Rights Reserved.
|
|
2
|
+
from typing import Generic, Iterator, Literal, TypeVar
|
|
3
3
|
from dataclasses import dataclass
|
|
4
4
|
|
|
5
5
|
from datetime import datetime
|
|
@@ -7,13 +7,78 @@ from time import time, sleep
|
|
|
7
7
|
import logging
|
|
8
8
|
|
|
9
9
|
from .arguments import PipelineArgValueType
|
|
10
|
-
from .core import Stage
|
|
11
10
|
from ..pipelines import Pipeline, PipelineArgs
|
|
12
11
|
from .._client import get_default_client
|
|
13
12
|
from .._helpers import parse_iso_datetime
|
|
14
13
|
|
|
15
14
|
logger = logging.getLogger(__name__)
|
|
16
15
|
|
|
16
|
+
T = TypeVar("T")
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class PipelinesPaginationIterator(Generic[T]):
|
|
20
|
+
"""
|
|
21
|
+
Iterator for pipelines API endpoints that use offset-based pagination (skip/limit).
|
|
22
|
+
|
|
23
|
+
This is different from the token-based PaginationIterator in _helpers.pagination.
|
|
24
|
+
Lazily fetches pages as needed and yields individual items.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
def __init__(self, http_client, endpoint: str, model_class, page_size: int = 100):
|
|
28
|
+
"""
|
|
29
|
+
Parameters
|
|
30
|
+
----------
|
|
31
|
+
http_client
|
|
32
|
+
HTTP client to use for requests
|
|
33
|
+
endpoint : str
|
|
34
|
+
API endpoint to fetch from
|
|
35
|
+
model_class
|
|
36
|
+
Class to use for deserializing items (must have from_json classmethod)
|
|
37
|
+
page_size : int
|
|
38
|
+
Number of items to fetch per page (default: 100)
|
|
39
|
+
"""
|
|
40
|
+
self.http_client = http_client
|
|
41
|
+
self.endpoint = endpoint
|
|
42
|
+
self.model_class = model_class
|
|
43
|
+
self.page_size = page_size
|
|
44
|
+
self._skip = 0
|
|
45
|
+
self._current_page: list[T] | None = None
|
|
46
|
+
self._exhausted = False
|
|
47
|
+
|
|
48
|
+
def __iter__(self) -> "PipelinesPaginationIterator[T]":
|
|
49
|
+
return self
|
|
50
|
+
|
|
51
|
+
def __next__(self) -> T:
|
|
52
|
+
if self._current_page is None:
|
|
53
|
+
self._fetch_next_page()
|
|
54
|
+
|
|
55
|
+
# mypy needs this assertion even though _current_page can't be None here
|
|
56
|
+
assert self._current_page is not None
|
|
57
|
+
|
|
58
|
+
if len(self._current_page) == 0:
|
|
59
|
+
if self._exhausted:
|
|
60
|
+
raise StopIteration
|
|
61
|
+
self._fetch_next_page()
|
|
62
|
+
# After fetching, check if we're still empty (means we hit the end)
|
|
63
|
+
if len(self._current_page) == 0:
|
|
64
|
+
raise StopIteration
|
|
65
|
+
|
|
66
|
+
return self._current_page.pop(0)
|
|
67
|
+
|
|
68
|
+
def _fetch_next_page(self) -> None:
|
|
69
|
+
"""Fetch the next page of results from the API."""
|
|
70
|
+
response = self.http_client.get(
|
|
71
|
+
self.endpoint, params={"skip": self._skip, "limit": self.page_size}
|
|
72
|
+
)
|
|
73
|
+
items = response["data"]
|
|
74
|
+
|
|
75
|
+
self._current_page = [self.model_class.from_json(item) for item in items]
|
|
76
|
+
|
|
77
|
+
self._skip += len(items)
|
|
78
|
+
|
|
79
|
+
if len(items) < self.page_size:
|
|
80
|
+
self._exhausted = True
|
|
81
|
+
|
|
17
82
|
|
|
18
83
|
@dataclass
|
|
19
84
|
class LogLine:
|
|
@@ -30,6 +95,50 @@ class LogLine:
|
|
|
30
95
|
)
|
|
31
96
|
|
|
32
97
|
|
|
98
|
+
@dataclass
|
|
99
|
+
class StageDefinition:
|
|
100
|
+
"""
|
|
101
|
+
Represents a stage definition from a pipeline.
|
|
102
|
+
"""
|
|
103
|
+
|
|
104
|
+
id: str
|
|
105
|
+
name: str
|
|
106
|
+
stage_type: str
|
|
107
|
+
|
|
108
|
+
@classmethod
|
|
109
|
+
def from_json(cls, json: dict) -> "StageDefinition":
|
|
110
|
+
return cls(
|
|
111
|
+
id=json["id"],
|
|
112
|
+
name=json["name"],
|
|
113
|
+
stage_type=json["stage_type"],
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
@dataclass
|
|
118
|
+
class PipelineTaskRecord:
|
|
119
|
+
"""
|
|
120
|
+
A PipelineTaskRecord represents a task within a pipeline job run.
|
|
121
|
+
"""
|
|
122
|
+
|
|
123
|
+
status: Literal["pending", "running", "completed", "failed", "upstream_failed", "cancelled"]
|
|
124
|
+
artifacts: dict[str, dict]
|
|
125
|
+
stage: StageDefinition | None
|
|
126
|
+
created_at: datetime
|
|
127
|
+
updated_at: datetime
|
|
128
|
+
error_messages: list[str] | None
|
|
129
|
+
|
|
130
|
+
@classmethod
|
|
131
|
+
def from_json(cls, json: dict) -> "PipelineTaskRecord":
|
|
132
|
+
return cls(
|
|
133
|
+
status=json["status"],
|
|
134
|
+
artifacts=json["artifacts"],
|
|
135
|
+
stage=StageDefinition.from_json(json["stage"]) if json.get("stage") else None,
|
|
136
|
+
created_at=parse_iso_datetime(json["created_at"]),
|
|
137
|
+
updated_at=parse_iso_datetime(json["updated_at"]),
|
|
138
|
+
error_messages=json.get("error_messages"),
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
|
|
33
142
|
@dataclass
|
|
34
143
|
class PipelineRecord:
|
|
35
144
|
"""
|
|
@@ -59,17 +168,36 @@ class PipelineRecord:
|
|
|
59
168
|
updated_at=parse_iso_datetime(json["updated_at"]),
|
|
60
169
|
)
|
|
61
170
|
|
|
62
|
-
def pipeline_jobs(self) -> "
|
|
171
|
+
def pipeline_jobs(self, page_size: int = 100) -> Iterator["PipelineJobRecord"]:
|
|
63
172
|
"""
|
|
64
|
-
Returns
|
|
173
|
+
Returns an iterator of pipeline jobs that were created from this pipeline.
|
|
174
|
+
|
|
175
|
+
The iterator will automatically fetch additional pages as needed.
|
|
176
|
+
|
|
177
|
+
Parameters
|
|
178
|
+
----------
|
|
179
|
+
page_size : int, optional
|
|
180
|
+
Number of pipeline jobs to fetch per page. Defaults to 100, max is 1000.
|
|
65
181
|
|
|
66
182
|
Returns
|
|
67
183
|
-------
|
|
68
|
-
|
|
69
|
-
|
|
184
|
+
Iterator[PipelineJobRecord]
|
|
185
|
+
An iterator of PipelineJobRecord objects.
|
|
186
|
+
|
|
187
|
+
Examples
|
|
188
|
+
--------
|
|
189
|
+
>>> pipeline = pipelines.get_pipeline("pipeline-123")
|
|
190
|
+
>>> for job in pipeline.pipeline_jobs():
|
|
191
|
+
... print(job.name)
|
|
192
|
+
>>> # Or convert to a list if needed:
|
|
193
|
+
>>> all_jobs = list(pipeline.pipeline_jobs())
|
|
70
194
|
"""
|
|
71
|
-
|
|
72
|
-
|
|
195
|
+
return PipelinesPaginationIterator(
|
|
196
|
+
get_default_client().http,
|
|
197
|
+
f"/rest/v0/pipelines/{self.id}/pipeline_jobs",
|
|
198
|
+
PipelineJobRecord,
|
|
199
|
+
page_size,
|
|
200
|
+
)
|
|
73
201
|
|
|
74
202
|
def delete(self) -> None:
|
|
75
203
|
"""
|
|
@@ -358,14 +486,17 @@ class PipelineJobRunRecord:
|
|
|
358
486
|
idx: int
|
|
359
487
|
arguments: list[PipelineArgValueType]
|
|
360
488
|
status: Literal["pending", "running", "completed", "failed", "cancelled"]
|
|
489
|
+
tasks: list[PipelineTaskRecord]
|
|
361
490
|
|
|
362
491
|
@classmethod
|
|
363
492
|
def from_json(cls, json: dict) -> "PipelineJobRunRecord":
|
|
493
|
+
tasks_json = json.get("tasks", [])
|
|
364
494
|
return cls(
|
|
365
495
|
pipeline_job_id=json["pipeline_job_id"],
|
|
366
496
|
idx=json["idx"],
|
|
367
497
|
arguments=json["arguments"],
|
|
368
498
|
status=json["status"],
|
|
499
|
+
tasks=[PipelineTaskRecord.from_json(t) for t in tasks_json],
|
|
369
500
|
)
|
|
370
501
|
|
|
371
502
|
def pipeline_job(self) -> PipelineJobRecord:
|
|
@@ -443,12 +574,34 @@ def create_pipeline(
|
|
|
443
574
|
return PipelineRecord.from_json(res["data"])
|
|
444
575
|
|
|
445
576
|
|
|
446
|
-
def
|
|
577
|
+
def iterate_pipelines(page_size: int = 100) -> Iterator[PipelineRecord]:
|
|
447
578
|
"""
|
|
448
|
-
|
|
579
|
+
Iterate over all pipelines with pagination.
|
|
580
|
+
|
|
581
|
+
Parameters
|
|
582
|
+
----------
|
|
583
|
+
page_size : int, optional
|
|
584
|
+
Number of pipelines to fetch per page. Defaults to 100, max is 1000.
|
|
585
|
+
|
|
586
|
+
Returns
|
|
587
|
+
-------
|
|
588
|
+
Iterator[PipelineRecord]
|
|
589
|
+
An iterator that yields PipelineRecord objects one at a time.
|
|
590
|
+
|
|
591
|
+
Examples
|
|
592
|
+
--------
|
|
593
|
+
Iterate over all pipelines:
|
|
594
|
+
|
|
595
|
+
>>> for pipeline in pipelines.iterate_pipelines():
|
|
596
|
+
... print(pipeline.name)
|
|
597
|
+
|
|
598
|
+
Convert to a list if needed:
|
|
599
|
+
|
|
600
|
+
>>> all_pipelines = list(pipelines.iterate_pipelines())
|
|
449
601
|
"""
|
|
450
|
-
|
|
451
|
-
|
|
602
|
+
return PipelinesPaginationIterator(
|
|
603
|
+
get_default_client().http, "/rest/v0/pipelines", PipelineRecord, page_size
|
|
604
|
+
)
|
|
452
605
|
|
|
453
606
|
|
|
454
607
|
def get_pipeline(id: str) -> PipelineRecord:
|
|
@@ -511,9 +664,31 @@ def get_pipeline_job(id: str) -> PipelineJobRecord:
|
|
|
511
664
|
return PipelineJobRecord.from_json(res["data"])
|
|
512
665
|
|
|
513
666
|
|
|
514
|
-
def
|
|
667
|
+
def iterate_pipeline_jobs(page_size: int = 100) -> Iterator[PipelineJobRecord]:
|
|
515
668
|
"""
|
|
516
|
-
|
|
669
|
+
Iterate over all pipeline jobs with pagination.
|
|
670
|
+
|
|
671
|
+
Parameters
|
|
672
|
+
----------
|
|
673
|
+
page_size : int, optional
|
|
674
|
+
Number of pipeline jobs to fetch per page. Defaults to 100, max is 1000.
|
|
675
|
+
|
|
676
|
+
Returns
|
|
677
|
+
-------
|
|
678
|
+
Iterator[PipelineJobRecord]
|
|
679
|
+
An iterator that yields PipelineJobRecord objects one at a time.
|
|
680
|
+
|
|
681
|
+
Examples
|
|
682
|
+
--------
|
|
683
|
+
Iterate over all pipeline jobs:
|
|
684
|
+
|
|
685
|
+
>>> for job in pipelines.iterate_pipeline_jobs():
|
|
686
|
+
... print(job.name)
|
|
687
|
+
|
|
688
|
+
Convert to a list if needed:
|
|
689
|
+
|
|
690
|
+
>>> all_jobs = list(pipelines.iterate_pipeline_jobs())
|
|
517
691
|
"""
|
|
518
|
-
|
|
519
|
-
|
|
692
|
+
return PipelinesPaginationIterator(
|
|
693
|
+
get_default_client().http, "/rest/v0/pipeline_jobs", PipelineJobRecord, page_size
|
|
694
|
+
)
|
|
@@ -28,10 +28,15 @@ class _NVS(PipelineParameter):
|
|
|
28
28
|
return isinstance(value, str) and value.startswith("namedvarset-")
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
PP_NAMED_VARIABLE_SET_ID = _NVS("$named-variable-set")
|
|
32
32
|
"""
|
|
33
|
-
|
|
34
|
-
There must be zero or one of these in a PipelineArgs params list.
|
|
33
|
+
A constant PipelineParameter that can be used in a PipelineArgs params list to add a Named Variable
|
|
34
|
+
Set ID column to the args table. There must be zero or one of these in a PipelineArgs params list.
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
ArgNamedVariableSet = PP_NAMED_VARIABLE_SET_ID
|
|
38
|
+
"""
|
|
39
|
+
Deprecated alias for PP_NAMED_VARIABLE_SET_ID.
|
|
35
40
|
"""
|
|
36
41
|
|
|
37
42
|
# The types that are allowed as PipelineArgs values. This is a union of all concrete
|