luminarycloud 0.11.0__py3-none-any.whl → 0.13.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 +1 -0
- luminarycloud/_client/client.py +13 -1
- luminarycloud/_client/retry_interceptor.py +1 -1
- luminarycloud/_client/rpc_error.py +1 -1
- luminarycloud/_client/tracing.py +10 -2
- luminarycloud/_helpers/__init__.py +23 -23
- luminarycloud/_helpers/{create_geometry.py → _create_geometry.py} +28 -4
- luminarycloud/_helpers/{create_simulation.py → _create_simulation.py} +2 -2
- luminarycloud/_helpers/_get_project_id.py +29 -0
- luminarycloud/_helpers/{simulation_params_from_json.py → _simulation_params_from_json.py} +1 -1
- luminarycloud/_helpers/_upload_mesh.py +7 -7
- luminarycloud/_helpers/_upload_table.py +2 -2
- luminarycloud/_helpers/{wait_for_simulation.py → _wait_for_simulation.py} +1 -1
- luminarycloud/_helpers/cond.py +2 -0
- luminarycloud/_helpers/defaults.py +8 -9
- luminarycloud/_helpers/proto_decorator.py +3 -1
- luminarycloud/_helpers/upload.py +2 -2
- luminarycloud/_helpers/util.py +8 -8
- luminarycloud/_helpers/warnings/deprecated.py +2 -0
- luminarycloud/_helpers/warnings/experimental.py +2 -0
- luminarycloud/_patch.py +3 -0
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.py +139 -102
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.pyi +73 -2
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.py +103 -0
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.pyi +37 -0
- luminarycloud/_proto/api/v0/luminarycloud/mesh/mesh_pb2.py +64 -64
- luminarycloud/_proto/api/v0/luminarycloud/mesh/mesh_pb2.pyi +5 -1
- luminarycloud/_proto/api/v0/luminarycloud/output_definition/output_definition_pb2.py +140 -0
- luminarycloud/_proto/api/v0/luminarycloud/output_definition/output_definition_pb2.pyi +196 -0
- luminarycloud/_proto/api/v0/luminarycloud/output_definition/output_definition_pb2_grpc.py +206 -0
- luminarycloud/_proto/api/v0/luminarycloud/output_definition/output_definition_pb2_grpc.pyi +78 -0
- luminarycloud/_proto/api/v0/luminarycloud/output_node/output_node_pb2.py +131 -0
- luminarycloud/_proto/api/v0/luminarycloud/output_node/output_node_pb2.pyi +186 -0
- luminarycloud/_proto/api/v0/luminarycloud/output_node/output_node_pb2_grpc.py +207 -0
- luminarycloud/_proto/api/v0/luminarycloud/output_node/output_node_pb2_grpc.pyi +79 -0
- luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.py +8 -7
- luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.pyi +10 -0
- luminarycloud/_proto/api/v0/luminarycloud/stopping_condition/stopping_condition_pb2.py +189 -0
- luminarycloud/_proto/api/v0/luminarycloud/stopping_condition/stopping_condition_pb2.pyi +342 -0
- luminarycloud/_proto/api/v0/luminarycloud/stopping_condition/stopping_condition_pb2_grpc.py +246 -0
- luminarycloud/_proto/api/v0/luminarycloud/stopping_condition/stopping_condition_pb2_grpc.pyi +104 -0
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.py +462 -158
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.pyi +882 -189
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2_grpc.py +131 -65
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2_grpc.pyi +50 -30
- luminarycloud/_proto/assistant/assistant_pb2.py +160 -0
- luminarycloud/_proto/assistant/assistant_pb2.pyi +286 -0
- luminarycloud/_proto/assistant/assistant_pb2_grpc.py +236 -0
- luminarycloud/_proto/assistant/assistant_pb2_grpc.pyi +82 -0
- luminarycloud/_proto/base/base_pb2.py +29 -19
- luminarycloud/_proto/base/base_pb2.pyi +24 -3
- luminarycloud/_proto/client/simulation_pb2.py +266 -253
- luminarycloud/_proto/client/simulation_pb2.pyi +28 -2
- luminarycloud/_proto/frontend/output/output_pb2.py +266 -0
- luminarycloud/_proto/frontend/output/output_pb2.pyi +607 -0
- luminarycloud/_proto/geometry/geometry_pb2.py +56 -55
- luminarycloud/_proto/geometry/geometry_pb2.pyi +7 -1
- luminarycloud/_proto/parametricworker/parametricworker_pb2.py +150 -0
- luminarycloud/_proto/parametricworker/parametricworker_pb2.pyi +201 -0
- luminarycloud/_proto/parametricworker/parametricworker_pb2_grpc.py +203 -0
- luminarycloud/_proto/parametricworker/parametricworker_pb2_grpc.pyi +74 -0
- luminarycloud/_proto/quantity/quantity_pb2.py +13 -13
- luminarycloud/_wrapper.py +0 -2
- luminarycloud/enum/__init__.py +12 -6
- luminarycloud/enum/calculation_type.py +6 -1
- luminarycloud/enum/force_direction_type.py +20 -0
- luminarycloud/enum/output_definition_includes.py +30 -0
- luminarycloud/enum/output_node_includes.py +29 -0
- luminarycloud/enum/quantity_type.py +37 -3
- luminarycloud/enum/residual_type.py +23 -0
- luminarycloud/enum/space_averaging_type.py +21 -0
- luminarycloud/enum/vis_enums.py +53 -20
- luminarycloud/enum/volume_reduction_type.py +21 -0
- luminarycloud/exceptions.py +5 -13
- luminarycloud/geometry.py +213 -16
- luminarycloud/geometry_version.py +6 -1
- luminarycloud/mesh.py +17 -3
- luminarycloud/meshing/mesh_generation_params.py +26 -14
- luminarycloud/outputs/__init__.py +29 -0
- luminarycloud/outputs/output_definitions.py +716 -0
- luminarycloud/outputs/stopping_conditions.py +218 -0
- luminarycloud/params/__init__.py +0 -1
- luminarycloud/params/geometry/shapes.py +3 -4
- luminarycloud/params/outputs/output.py +3 -5
- luminarycloud/params/outputs/residual_output.py +1 -1
- luminarycloud/params/param_wrappers/_lib.py +71 -3
- luminarycloud/params/param_wrappers/simulation_param/adaptive_mesh_refinement/boundary_layer_profile_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/adaptive_mesh_refinement_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/adjoint_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/basic/gravity/gravity_off_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/basic/gravity/gravity_on_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/basic/gravity_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/body_frame_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/entity_relationships/volume_material_relationship_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/entity_relationships/volume_physics_relationship_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/entity_relationships_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/general_.py +4 -4
- luminarycloud/params/param_wrappers/simulation_param/material/fluid/boussinesq_approximation/boussinesq_off_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/material/fluid/boussinesq_approximation/boussinesq_on_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/material/fluid/boussinesq_approximation_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/material/fluid/material_model/ideal_gas_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/material/fluid/material_model/incompressible_fluid_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/material/fluid/material_model/incompressible_fluid_with_energy_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/material/fluid/material_model_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/material/fluid/thermal_conductivity_model/prescribed_conductivity_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/material/fluid/thermal_conductivity_model/prescribed_prandtl_number_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/material/fluid/thermal_conductivity_model/temperature_dependent_conductivity_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/material/fluid/thermal_conductivity_model_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/material/fluid/viscosity_model/prescribed_viscosity_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/material/fluid/viscosity_model/sutherland_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/material/fluid/viscosity_model/temperature_dependent_viscosity_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/material/fluid/viscosity_model_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/material/material_fluid_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/material/material_solid_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/material_entity_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/monitor_plane_.py +4 -6
- luminarycloud/params/param_wrappers/simulation_param/motion_data/frame_transforms/no_transform_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/motion_data/frame_transforms/rotational_transform_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/motion_data/frame_transforms/translational_transform_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/motion_data/frame_transforms_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/motion_data/motion_type/constant_angular_motion_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/motion_data/motion_type/constant_translation_motion_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/motion_data/motion_type_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/motion_data_.py +4 -4
- luminarycloud/params/param_wrappers/simulation_param/multi_physics_coupling_options_.py +5 -3
- luminarycloud/params/param_wrappers/simulation_param/output_.py +6 -2
- luminarycloud/params/param_wrappers/simulation_param/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_normal_vector_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_rotation_angles_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/particle_group/particle_group_type/actuator_disk_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/particle_group/particle_group_type/actuator_line_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/particle_group/particle_group_type/probe_points_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/particle_group/particle_group_type/source_points_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/particle_group/particle_group_type_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/particle_group_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/adjoint_controls_fluid_.py +5 -7
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/basic_fluid_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/farfield_.py +5 -5
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/inlet/fan_curve_inlet_.py +4 -4
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/inlet/mass_flow_inlet_.py +4 -4
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/inlet/total_pressure_inlet_.py +4 -4
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/inlet/velocity_components_inlet_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/inlet/velocity_magnitude_inlet_.py +4 -4
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/inlet_.py +6 -7
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/outlet/outlet_strategy/fan_curve_outlet_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_pressure_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_corrected_mass_flow_rate_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_mass_flow_rate_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/outlet/outlet_strategy_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/outlet_.py +4 -4
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/symmetry_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega/bc_komega_variables_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega/bc_turbulent_viscosity_and_intensity_komega_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega/bc_turbulent_viscosity_ratio_and_intensity_komega_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega_boundary_conditions_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras/bc_sa_variable_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras/bc_turbulent_viscosity_ratio_sa_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras/bc_turbulent_viscosity_sa_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras_boundary_conditions_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence_boundary_conditions_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/wall/energy/prescribed_heat_flux_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/wall/energy/prescribed_temperature_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/wall/momentum/no_slip_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/wall/momentum/slip_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/wall/momentum/wall_model_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/wall/wall_energy_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/wall/wall_momentum_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/wall_.py +5 -7
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions_fluid_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/fluid_existing_solution_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/fluid_farfield_values_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/fluid_prescribed_values_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega/init_farfield_values_komega_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega/init_turbulent_viscosity_and_intensity_komega_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega/init_turbulent_viscosity_ratio_and_intensity_komega_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega_initialization_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_farfield_values_sa_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_sa_variable_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_turbulent_viscosity_ratio_sa_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_turbulent_viscosity_sa_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras_initialization_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence_initialization_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization_fluid_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/blade_element_airfoil_data_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_blade_element_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_radial_distribution_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_uniform_thrust_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/fan_curve_internal_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model/actuator_line_blade_element_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/blade_element_params_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_acceleration_source_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_mass_source_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior_.py +4 -4
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/porous_behavior_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls/fluid_relaxation_method/fluid_explicit_relaxation_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_off_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_on_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls/fluid_relaxation_method_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls/pseudo_time_step_method/cfl_based_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls/pseudo_time_step_method/fixed_pseudo_time_step_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls/pseudo_time_step_method_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls_fluid_.py +10 -8
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/spatial_discretization/convective_scheme/ec2_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/spatial_discretization/convective_scheme/fds_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/spatial_discretization/convective_scheme/ld2_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/spatial_discretization/convective_scheme/rhie_chow_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/spatial_discretization/convective_scheme_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/spatial_discretization/convective_scheme_order/first_order_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/spatial_discretization/convective_scheme_order/second_order_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/spatial_discretization/convective_scheme_order_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/spatial_discretization_fluid_.py +17 -11
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/des_formulation/ddes_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/des_formulation/ddes_vtm_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/des_formulation/iddes_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/des_formulation_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/komega_sst/constants/custom_komega_sst_constants_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/komega_sst/constants/default_komega_sst_constants_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/komega_sst/komega_sst_constants_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/komega_sst_.py +5 -6
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/spalart_allmaras/constants/custom_spalart_allmaras_constants_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/spalart_allmaras/constants/default_spalart_allmaras_constants_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/spalart_allmaras/spalart_allmaras_constants_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/spalart_allmaras_.py +5 -5
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/sub_grid_scale_model/amd_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/sub_grid_scale_model/sigma_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/sub_grid_scale_model/smagorinsky_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/sub_grid_scale_model/vreman_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/sub_grid_scale_model/wale_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/sub_grid_scale_model_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence_.py +4 -4
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid_.py +22 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/heat/adjoint_controls_heat_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/physics/heat/boundary_conditions/heat_bc_convection_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/physics/heat/boundary_conditions/heat_bc_heat_flux_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/physics/heat/boundary_conditions/heat_bc_integrated_heat_flux_.py +4 -3
- luminarycloud/params/param_wrappers/simulation_param/physics/heat/boundary_conditions/heat_bc_symmetry_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/physics/heat/boundary_conditions/heat_bc_temperature_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/physics/heat/boundary_conditions_heat_.py +4 -5
- luminarycloud/params/param_wrappers/simulation_param/physics/heat/heat_source/heat_source_type/heat_source_type_power_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/heat/heat_source/heat_source_type/heat_source_type_power_per_unit_of_volume_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/heat/heat_source/heat_source_type_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/heat/heat_source_.py +4 -5
- luminarycloud/params/param_wrappers/simulation_param/physics/heat/initialization/heat_existing_solution_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/physics/heat/initialization/heat_prescribed_values_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/physics/heat/initialization_heat_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/heat/solution_controls/heat_relaxation_method/heat_implicit_relaxation_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/heat/solution_controls/heat_relaxation_method_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/heat/solution_controls_heat_.py +8 -6
- luminarycloud/params/param_wrappers/simulation_param/physics/heat/spatial_discretization_heat_.py +5 -5
- luminarycloud/params/param_wrappers/simulation_param/physics/heat_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/periodic_pair/periodicity_type/rotational_periodicity_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/periodic_pair/periodicity_type/translational_periodicity_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/periodic_pair/periodicity_type_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/periodic_pair_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics/solution_controls/linear_solver_type/gauss_seidel_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/solution_controls/linear_solver_type/krylov_amg_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/physics/solution_controls/linear_solver_type_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/physics_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/sliding_interfaces_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/surface_name_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/time/compute_statistics/compute_statistics_off_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/time/compute_statistics/compute_statistics_on_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/time/compute_statistics_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/time/time_marching/time_explicit_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/time/time_marching/time_implicit_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/time/time_marching_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/time/time_step_ramp/time_step_ramp_off_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/time/time_step_ramp/time_step_ramp_on_.py +1 -1
- luminarycloud/params/param_wrappers/simulation_param/time/time_step_ramp_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param/time_.py +3 -3
- luminarycloud/params/param_wrappers/simulation_param/volume_entity_.py +2 -2
- luminarycloud/params/param_wrappers/simulation_param_.py +2 -2
- luminarycloud/project.py +52 -25
- luminarycloud/reference_values.py +3 -1
- luminarycloud/simulation.py +2 -2
- luminarycloud/simulation_param.py +88 -39
- luminarycloud/simulation_template.py +291 -6
- luminarycloud/solution.py +10 -1
- luminarycloud/tables.py +10 -8
- luminarycloud/types/__init__.py +1 -0
- luminarycloud/types/adfloat.py +33 -25
- luminarycloud/types/ids.py +1 -0
- luminarycloud/types/vector3.py +10 -1
- luminarycloud/vis/__init__.py +15 -4
- luminarycloud/vis/display.py +18 -7
- luminarycloud/vis/filters.py +292 -61
- luminarycloud/vis/interactive_scene.py +85 -0
- luminarycloud/vis/visualization.py +362 -140
- luminarycloud/volume_selection.py +46 -18
- {luminarycloud-0.11.0.dist-info → luminarycloud-0.13.0.dist-info}/METADATA +19 -14
- {luminarycloud-0.11.0.dist-info → luminarycloud-0.13.0.dist-info}/RECORD +300 -271
- {luminarycloud-0.11.0.dist-info → luminarycloud-0.13.0.dist-info}/WHEEL +1 -2
- luminarycloud/params/convergence_criteria/__init__.py +0 -3
- luminarycloud/params/convergence_criteria/convergence_criteria.py +0 -92
- luminarycloud/params/convergence_criteria/stopping_condition.py +0 -32
- luminarycloud-0.11.0.dist-info/top_level.txt +0 -1
- /luminarycloud/_helpers/{timestamp_to_datetime.py → _timestamp_to_datetime.py} +0 -0
- /luminarycloud/_helpers/{wait_for_mesh.py → _wait_for_mesh.py} +0 -0
luminarycloud/__init__.py
CHANGED
luminarycloud/_client/client.py
CHANGED
|
@@ -11,6 +11,13 @@ import grpc
|
|
|
11
11
|
from .._auth import Auth0Client
|
|
12
12
|
from .._proto.api.v0.luminarycloud.geometry.geometry_pb2_grpc import GeometryServiceStub
|
|
13
13
|
from .._proto.api.v0.luminarycloud.mesh.mesh_pb2_grpc import MeshServiceStub
|
|
14
|
+
from .._proto.api.v0.luminarycloud.output_node.output_node_pb2_grpc import OutputNodeServiceStub
|
|
15
|
+
from .._proto.api.v0.luminarycloud.output_definition.output_definition_pb2_grpc import (
|
|
16
|
+
OutputDefinitionServiceStub,
|
|
17
|
+
)
|
|
18
|
+
from .._proto.api.v0.luminarycloud.stopping_condition.stopping_condition_pb2_grpc import (
|
|
19
|
+
StoppingConditionServiceStub,
|
|
20
|
+
)
|
|
14
21
|
from .._proto.api.v0.luminarycloud.project.project_pb2_grpc import ProjectServiceStub
|
|
15
22
|
from .._proto.api.v0.luminarycloud.simulation.simulation_pb2_grpc import (
|
|
16
23
|
SimulationServiceStub,
|
|
@@ -40,6 +47,9 @@ class Client(
|
|
|
40
47
|
SolutionServiceStub,
|
|
41
48
|
UploadServiceStub,
|
|
42
49
|
VisAPIServiceStub,
|
|
50
|
+
OutputNodeServiceStub,
|
|
51
|
+
OutputDefinitionServiceStub,
|
|
52
|
+
StoppingConditionServiceStub,
|
|
43
53
|
):
|
|
44
54
|
"""
|
|
45
55
|
Creates a Luminary API client.
|
|
@@ -180,7 +190,9 @@ class Client(
|
|
|
180
190
|
SolutionServiceStub.__init__(self, self._channel)
|
|
181
191
|
SimulationTemplateServiceStub.__init__(self, self._channel)
|
|
182
192
|
VisAPIServiceStub.__init__(self, self._channel)
|
|
183
|
-
|
|
193
|
+
OutputNodeServiceStub.__init__(self, self._channel)
|
|
194
|
+
OutputDefinitionServiceStub.__init__(self, self._channel)
|
|
195
|
+
StoppingConditionServiceStub.__init__(self, self._channel)
|
|
184
196
|
for name, value in self.__dict__.items():
|
|
185
197
|
if isinstance(value, grpc.UnaryUnaryMultiCallable):
|
|
186
198
|
setattr(self, name, rpc_error(value))
|
|
@@ -52,6 +52,6 @@ class RetryInterceptor(UnaryUnaryClientInterceptor):
|
|
|
52
52
|
call.result()
|
|
53
53
|
except grpc.RpcError as e:
|
|
54
54
|
if e.code() == grpc.StatusCode.UNAUTHENTICATED:
|
|
55
|
-
raise AuthenticationError() from None
|
|
55
|
+
raise AuthenticationError(e.details(), e.code()) from None
|
|
56
56
|
raise
|
|
57
57
|
return call
|
|
@@ -27,7 +27,7 @@ def rpc_error(func: Callable[..., Any]) -> Callable[..., Any]:
|
|
|
27
27
|
for code, exception in _CODE_TO_EXCEPTION.items():
|
|
28
28
|
if e.code() == code:
|
|
29
29
|
logger.debug(f"RPC failed: {e.code().name}", exc_info=True)
|
|
30
|
-
raise exception(e.details()) from None
|
|
30
|
+
raise exception(e.details(), code) from None
|
|
31
31
|
raise e
|
|
32
32
|
|
|
33
33
|
return wrapper
|
luminarycloud/_client/tracing.py
CHANGED
|
@@ -64,7 +64,11 @@ class Auth0SpanExporter(OTLPSpanExporter):
|
|
|
64
64
|
"authorization": "Bearer " + token,
|
|
65
65
|
}
|
|
66
66
|
self._session.headers.update(headers)
|
|
67
|
-
|
|
67
|
+
try:
|
|
68
|
+
return OTLPSpanExporter.export(self, spans)
|
|
69
|
+
except Exception as e:
|
|
70
|
+
logger.debug(f"Failed to export traces: {e}")
|
|
71
|
+
return SpanExportResult.FAILURE
|
|
68
72
|
|
|
69
73
|
|
|
70
74
|
class ApiKeySpanExporter(OTLPSpanExporter):
|
|
@@ -88,7 +92,11 @@ class ApiKeySpanExporter(OTLPSpanExporter):
|
|
|
88
92
|
"x-api-key": self.api_key,
|
|
89
93
|
}
|
|
90
94
|
self._session.headers.update(headers)
|
|
91
|
-
|
|
95
|
+
try:
|
|
96
|
+
return OTLPSpanExporter.export(self, spans)
|
|
97
|
+
except Exception as e:
|
|
98
|
+
logger.debug(f"Failed to export traces: {e}")
|
|
99
|
+
return SpanExportResult.FAILURE
|
|
92
100
|
|
|
93
101
|
|
|
94
102
|
def _get_collector_endpoint(primary_domain: str) -> str:
|
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
# Copyright 2023-2024 Luminary Cloud, Inc. All Rights Reserved.
|
|
2
|
-
from .
|
|
3
|
-
create_geometry,
|
|
2
|
+
from ._create_geometry import (
|
|
3
|
+
create_geometry as create_geometry,
|
|
4
4
|
)
|
|
5
|
-
from .
|
|
6
|
-
create_simulation,
|
|
5
|
+
from ._create_simulation import (
|
|
6
|
+
create_simulation as create_simulation,
|
|
7
7
|
)
|
|
8
8
|
from .download import (
|
|
9
|
-
download_surface_solution,
|
|
10
|
-
download_volume_solution,
|
|
11
|
-
download_surface_deformation_template,
|
|
12
|
-
download_surface_sensitivity_data,
|
|
13
|
-
save_file,
|
|
9
|
+
download_surface_solution as download_surface_solution,
|
|
10
|
+
download_volume_solution as download_volume_solution,
|
|
11
|
+
download_surface_deformation_template as download_surface_deformation_template,
|
|
12
|
+
download_surface_sensitivity_data as download_surface_sensitivity_data,
|
|
13
|
+
save_file as save_file,
|
|
14
14
|
)
|
|
15
15
|
from .file_chunk_stream import (
|
|
16
|
-
FileChunkStream,
|
|
16
|
+
FileChunkStream as FileChunkStream,
|
|
17
17
|
)
|
|
18
|
-
from .
|
|
19
|
-
simulation_params_from_json,
|
|
20
|
-
simulation_params_from_json_path,
|
|
18
|
+
from ._simulation_params_from_json import (
|
|
19
|
+
simulation_params_from_json as simulation_params_from_json,
|
|
20
|
+
simulation_params_from_json_path as simulation_params_from_json_path,
|
|
21
21
|
)
|
|
22
|
-
from .
|
|
23
|
-
timestamp_to_datetime,
|
|
22
|
+
from ._timestamp_to_datetime import (
|
|
23
|
+
timestamp_to_datetime as timestamp_to_datetime,
|
|
24
24
|
)
|
|
25
25
|
from .upload import (
|
|
26
|
-
upload_file,
|
|
26
|
+
upload_file as upload_file,
|
|
27
27
|
)
|
|
28
28
|
from ._upload_mesh import (
|
|
29
|
-
upload_mesh,
|
|
30
|
-
upload_mesh_from_local_file,
|
|
31
|
-
upload_mesh_from_url,
|
|
29
|
+
upload_mesh as upload_mesh,
|
|
30
|
+
upload_mesh_from_local_file as upload_mesh_from_local_file,
|
|
31
|
+
upload_mesh_from_url as upload_mesh_from_url,
|
|
32
32
|
)
|
|
33
33
|
from ._upload_table import (
|
|
34
|
-
upload_table_as_json,
|
|
35
|
-
upload_c81_as_json,
|
|
34
|
+
upload_table_as_json as upload_table_as_json,
|
|
35
|
+
upload_c81_as_json as upload_c81_as_json,
|
|
36
36
|
)
|
|
37
|
-
from .
|
|
38
|
-
wait_for_simulation,
|
|
37
|
+
from ._wait_for_simulation import (
|
|
38
|
+
wait_for_simulation as wait_for_simulation,
|
|
39
39
|
)
|
|
@@ -4,8 +4,11 @@ from luminarycloud._proto.upload import upload_pb2 as uploadpb
|
|
|
4
4
|
from os import PathLike
|
|
5
5
|
from .._client import Client
|
|
6
6
|
from .upload import upload_file
|
|
7
|
-
from typing import
|
|
7
|
+
from typing import Optional
|
|
8
8
|
from luminarycloud._helpers import util
|
|
9
|
+
import uuid
|
|
10
|
+
import random
|
|
11
|
+
import time
|
|
9
12
|
|
|
10
13
|
import logging
|
|
11
14
|
|
|
@@ -14,18 +17,19 @@ logger = logging.getLogger(__name__)
|
|
|
14
17
|
|
|
15
18
|
def create_geometry(
|
|
16
19
|
client: Client,
|
|
17
|
-
cad_file_path: PathLike,
|
|
20
|
+
cad_file_path: PathLike | str,
|
|
18
21
|
project_id: str,
|
|
19
22
|
*,
|
|
20
23
|
name: Optional[str] = None,
|
|
21
24
|
scaling: Optional[float] = None,
|
|
22
25
|
wait: bool = False,
|
|
26
|
+
convert_to_discrete: bool = False,
|
|
23
27
|
) -> geometrypb.Geometry:
|
|
24
28
|
|
|
25
29
|
cad_file_meta = util.get_file_metadata(cad_file_path)
|
|
26
30
|
logger.info(
|
|
27
31
|
f"creating geometry in {project_id} by uploading file: {cad_file_meta.name}.{cad_file_meta.ext}, "
|
|
28
|
-
+ f"size: {cad_file_meta.size} bytes, sha256: {cad_file_meta.sha256_checksum}, "
|
|
32
|
+
+ f"size: {cad_file_meta.size} bytes, sha256: {str(cad_file_meta.sha256_checksum)}, "
|
|
29
33
|
+ f"crc32c: {cad_file_meta.crc32c_checksum}"
|
|
30
34
|
)
|
|
31
35
|
|
|
@@ -43,11 +47,31 @@ def create_geometry(
|
|
|
43
47
|
if scaling is None:
|
|
44
48
|
# default to no scaling
|
|
45
49
|
scaling = 1.0
|
|
50
|
+
|
|
46
51
|
create_geo_res: geometrypb.CreateGeometryResponse = client.CreateGeometry(
|
|
47
52
|
geometrypb.CreateGeometryRequest(
|
|
48
|
-
project_id=project_id,
|
|
53
|
+
project_id=project_id,
|
|
54
|
+
name=name,
|
|
55
|
+
url=finish_res.url,
|
|
56
|
+
scaling=scaling,
|
|
57
|
+
wait=False,
|
|
58
|
+
request_id=str(uuid.uuid4()),
|
|
59
|
+
force_discrete=convert_to_discrete,
|
|
49
60
|
)
|
|
50
61
|
)
|
|
51
62
|
geo = create_geo_res.geometry
|
|
63
|
+
|
|
64
|
+
# Prefer polling on the client than waiting on the server (although waiting on the server
|
|
65
|
+
# notifies the clients potentially faster).
|
|
66
|
+
if wait:
|
|
67
|
+
last_version_id = ""
|
|
68
|
+
while not last_version_id:
|
|
69
|
+
jitter = random.uniform(0.5, 1.5)
|
|
70
|
+
time.sleep(2 + jitter)
|
|
71
|
+
req = geometrypb.GetGeometryRequest(geometry_id=create_geo_res.geometry.id)
|
|
72
|
+
res_geo: geometrypb.GetGeometryResponse = client.GetGeometry(req)
|
|
73
|
+
geo = res_geo.geometry
|
|
74
|
+
last_version_id = geo.last_version_id
|
|
75
|
+
|
|
52
76
|
logger.info(f"created geometry {geo.name} ({geo.id})")
|
|
53
77
|
return geo
|
|
@@ -36,8 +36,8 @@ def create_simulation(
|
|
|
36
36
|
description=description,
|
|
37
37
|
simulation_options=SimulationOptions(
|
|
38
38
|
batch_processing=batch_processing,
|
|
39
|
-
gpu_type=gpu_type,
|
|
40
|
-
gpu_count=gpu_count,
|
|
39
|
+
gpu_type=gpu_type.value if gpu_type is not None else GPUType.UNSPECIFIED.value,
|
|
40
|
+
gpu_count=gpu_count or 0,
|
|
41
41
|
),
|
|
42
42
|
)
|
|
43
43
|
)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
from ..simulation import get_simulation
|
|
2
|
+
from ..geometry import Geometry
|
|
3
|
+
from ..solution import Solution
|
|
4
|
+
from ..mesh import Mesh
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def _get_project_id(entity: Geometry | Solution | Mesh) -> str | None:
|
|
8
|
+
"""
|
|
9
|
+
A helper function to get the project id from various entities.
|
|
10
|
+
Returns the project id or None if the entity type is unknown.
|
|
11
|
+
|
|
12
|
+
Parameters
|
|
13
|
+
----------
|
|
14
|
+
entiry: Geometry | Solution | Mesh
|
|
15
|
+
The entity to get the project id from.
|
|
16
|
+
"""
|
|
17
|
+
if isinstance(entity, Solution):
|
|
18
|
+
solution: Solution = entity
|
|
19
|
+
sim = get_simulation(solution.simulation_id)
|
|
20
|
+
return sim.project_id
|
|
21
|
+
elif isinstance(entity, Mesh):
|
|
22
|
+
mesh: Mesh = entity
|
|
23
|
+
return mesh.project_id
|
|
24
|
+
elif isinstance(entity, Geometry):
|
|
25
|
+
geometry: Geometry = entity
|
|
26
|
+
project = geometry.project()
|
|
27
|
+
return project.id
|
|
28
|
+
else:
|
|
29
|
+
return None
|
|
@@ -11,7 +11,7 @@ def simulation_params_from_json(text: Union[str, bytes]) -> SimulationParam:
|
|
|
11
11
|
return Parse(text, SimulationParam(), ignore_unknown_fields=True)
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
def simulation_params_from_json_path(json_path: PathLike) -> SimulationParam:
|
|
14
|
+
def simulation_params_from_json_path(json_path: PathLike | str) -> SimulationParam:
|
|
15
15
|
with open(json_path, "rb") as fp:
|
|
16
16
|
json_bytes = fp.read()
|
|
17
17
|
return simulation_params_from_json(json_bytes)
|
|
@@ -55,7 +55,7 @@ def _upload_mesh_from_path(
|
|
|
55
55
|
project_id: str,
|
|
56
56
|
filepath: Union[os.PathLike, str],
|
|
57
57
|
size: int,
|
|
58
|
-
sha256_checksum:
|
|
58
|
+
sha256_checksum: bytes,
|
|
59
59
|
crc32c_checksum: bytes,
|
|
60
60
|
mesh_type: MeshType,
|
|
61
61
|
*,
|
|
@@ -79,9 +79,9 @@ def _upload_mesh_from_path(
|
|
|
79
79
|
appropriate filename extension.
|
|
80
80
|
size: int
|
|
81
81
|
The size of the stream to be read
|
|
82
|
-
sha256checksum:
|
|
82
|
+
sha256checksum: bytes
|
|
83
83
|
The SHA256 digest of the mesh file to upload
|
|
84
|
-
crc32c_checksum:
|
|
84
|
+
crc32c_checksum: bytes
|
|
85
85
|
The CRC32C digest of the mesh file to upload
|
|
86
86
|
mesh_type : MeshType
|
|
87
87
|
The file format of the mesh file.
|
|
@@ -110,7 +110,7 @@ def _upload_mesh_from_path(
|
|
|
110
110
|
ext=file_ext, # note: this must be the extension without the dot
|
|
111
111
|
size=size,
|
|
112
112
|
sha256_checksum=sha256_checksum,
|
|
113
|
-
crc32c_checksum=crc32c_checksum,
|
|
113
|
+
crc32c_checksum=crc32c_checksum.decode(),
|
|
114
114
|
)
|
|
115
115
|
create_upload_res: uploadpb.CreateUploadReply = client.CreateUpload(
|
|
116
116
|
uploadpb.CreateUploadRequest(
|
|
@@ -118,10 +118,10 @@ def _upload_mesh_from_path(
|
|
|
118
118
|
file_meta=file_metadata,
|
|
119
119
|
resource_params=uploadpb.ResourceParams(
|
|
120
120
|
mesh_params=uploadpb.MeshParams(
|
|
121
|
-
mesh_name=name,
|
|
121
|
+
mesh_name=name or file_name_without_ext,
|
|
122
122
|
scaling=scaling if scaling is not None else 1.0,
|
|
123
|
-
mesh_type=mesh_type,
|
|
124
|
-
do_not_read_zones_openfoam=do_not_read_zones_openfoam,
|
|
123
|
+
mesh_type=mesh_type.value,
|
|
124
|
+
do_not_read_zones_openfoam=do_not_read_zones_openfoam or False,
|
|
125
125
|
# We force disconnect to True here because we are not exposing this parameter.
|
|
126
126
|
disconnect=True,
|
|
127
127
|
)
|
|
@@ -63,7 +63,7 @@ def upload_table_as_json(
|
|
|
63
63
|
def upload_c81_as_json(
|
|
64
64
|
client: Client,
|
|
65
65
|
project_id: str,
|
|
66
|
-
c81: PathLike,
|
|
66
|
+
c81: PathLike | str,
|
|
67
67
|
) -> str:
|
|
68
68
|
"""
|
|
69
69
|
Uploads a c81 table and converts it to RectilinearTable json.
|
|
@@ -74,7 +74,7 @@ def upload_c81_as_json(
|
|
|
74
74
|
A LuminaryCloud Client (see client.py)
|
|
75
75
|
project_id: str
|
|
76
76
|
The ID of the project to upload the table under
|
|
77
|
-
c81: PathLike
|
|
77
|
+
c81: PathLike or str
|
|
78
78
|
Path to c81 file to upload
|
|
79
79
|
|
|
80
80
|
Returns
|
|
@@ -75,7 +75,7 @@ def _print_residuals(client: Client, simulation_id: str, last_printed_iter: int)
|
|
|
75
75
|
residuals: GetSimulationGlobalResidualsResponse = client.GetSimulationGlobalResiduals(
|
|
76
76
|
GetSimulationGlobalResidualsRequest(id=simulation_id)
|
|
77
77
|
)
|
|
78
|
-
with io.StringIO(residuals.csv_file.
|
|
78
|
+
with io.StringIO(residuals.csv_file.full_contents.decode()) as stream:
|
|
79
79
|
if last_printed_iter < 0: # we haven't printed the header yet
|
|
80
80
|
first_line = stream.readline().strip().split(",")
|
|
81
81
|
header = "\t".join("{:>18}".format(s) for s in first_line)
|
luminarycloud/_helpers/cond.py
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
# Copyright 2024 Luminary Cloud, Inc. All Rights Reserved.
|
|
2
|
-
from typing import Any
|
|
3
|
-
|
|
4
2
|
from google.protobuf.any_pb2 import Any as AnyPB
|
|
5
3
|
from google.protobuf.descriptor import FieldDescriptor
|
|
6
4
|
|
|
7
5
|
import luminarycloud._proto.base.base_pb2 as basepb
|
|
8
6
|
import luminarycloud._proto.options.options_pb2 as optionspb
|
|
7
|
+
from luminarycloud.types.vector3 import _to_vector3_proto
|
|
9
8
|
|
|
10
9
|
|
|
11
|
-
def _reset_defaults(params):
|
|
10
|
+
def _reset_defaults(params: AnyPB) -> None:
|
|
12
11
|
for field in params.DESCRIPTOR.fields:
|
|
13
12
|
if field.label == FieldDescriptor.LABEL_REPEATED:
|
|
14
13
|
for nested in getattr(params, field.name):
|
|
@@ -19,7 +18,7 @@ def _reset_defaults(params):
|
|
|
19
18
|
_reset_defaults(getattr(params, field.name))
|
|
20
19
|
|
|
21
20
|
|
|
22
|
-
def _set_default(params: AnyPB, name: str) ->
|
|
21
|
+
def _set_default(params: AnyPB, name: str) -> None:
|
|
23
22
|
field = params.DESCRIPTOR.fields_by_name[name]
|
|
24
23
|
dfl: optionspb.Value = field.GetOptions().Extensions[optionspb.default_value]
|
|
25
24
|
type = dfl.WhichOneof("typ")
|
|
@@ -30,12 +29,12 @@ def _set_default(params: AnyPB, name: str) -> Any:
|
|
|
30
29
|
elif type == "strval":
|
|
31
30
|
setattr(params, name, dfl.strval)
|
|
32
31
|
elif type == "intval":
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
int_param: basepb.Int = getattr(params, name)
|
|
33
|
+
int_param.value = dfl.intval
|
|
35
34
|
elif type == "real":
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
real_param: basepb.AdFloatType = getattr(params, name)
|
|
36
|
+
real_param.CopyFrom(dfl.real)
|
|
38
37
|
elif type == "vector3":
|
|
39
|
-
param: basepb.
|
|
38
|
+
param: basepb.AdVector3 = getattr(params, name)
|
|
40
39
|
param.CopyFrom(dfl.vector3)
|
|
41
40
|
return None
|
|
@@ -21,6 +21,8 @@ class proto_decorator(Generic[P]):
|
|
|
21
21
|
NOTE: only works for primitive and basepb.Vector3 fields right now.
|
|
22
22
|
"""
|
|
23
23
|
|
|
24
|
+
proto_type: type[P]
|
|
25
|
+
|
|
24
26
|
def __init__(decorator, proto_type: type[P]):
|
|
25
27
|
decorator.proto_type = proto_type
|
|
26
28
|
|
|
@@ -28,7 +30,7 @@ class proto_decorator(Generic[P]):
|
|
|
28
30
|
type_hints = get_type_hints(cls)
|
|
29
31
|
fields = decorator.proto_type.DESCRIPTOR.fields
|
|
30
32
|
|
|
31
|
-
def _to_proto(self) ->
|
|
33
|
+
def _to_proto(self: type[C]) -> P:
|
|
32
34
|
proto = decorator.proto_type()
|
|
33
35
|
for field in fields:
|
|
34
36
|
_type = type_hints.get(field.name, None)
|
luminarycloud/_helpers/upload.py
CHANGED
|
@@ -14,7 +14,7 @@ logger = logging.getLogger(__name__)
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
def gcs_resumable_upload(
|
|
17
|
-
filepath: PathLike, signed_url: str, http_headers: Mapping[str, str]
|
|
17
|
+
filepath: PathLike | str, signed_url: str, http_headers: Mapping[str, str]
|
|
18
18
|
) -> None:
|
|
19
19
|
"""
|
|
20
20
|
Performs a resumable upload to a GCS signed url.
|
|
@@ -70,7 +70,7 @@ def upload_file(
|
|
|
70
70
|
client: Client,
|
|
71
71
|
project_id: str,
|
|
72
72
|
resource_params: uploadpb.ResourceParams,
|
|
73
|
-
file_path: PathLike,
|
|
73
|
+
file_path: PathLike | str,
|
|
74
74
|
) -> tuple[str, uploadpb.FinishUploadReply]:
|
|
75
75
|
file_metadata = util.get_file_metadata(pathlib.Path(file_path))
|
|
76
76
|
|
luminarycloud/_helpers/util.py
CHANGED
|
@@ -5,7 +5,7 @@ import io
|
|
|
5
5
|
import logging
|
|
6
6
|
import os
|
|
7
7
|
from os import PathLike
|
|
8
|
-
from typing import Iterator, Tuple
|
|
8
|
+
from typing import Iterator, Tuple
|
|
9
9
|
|
|
10
10
|
import google_crc32c as crc32c
|
|
11
11
|
|
|
@@ -18,7 +18,7 @@ DEFAULT_CHUNK_SIZE_BYTES = 1024 * 1024
|
|
|
18
18
|
|
|
19
19
|
def _chunker(
|
|
20
20
|
stream: io.BufferedIOBase,
|
|
21
|
-
chunk_size: int = None,
|
|
21
|
+
chunk_size: int | None = None,
|
|
22
22
|
) -> Iterator[Tuple[int, bytes]]:
|
|
23
23
|
"""
|
|
24
24
|
Generator which breaks the stream into chunks.
|
|
@@ -51,9 +51,9 @@ def _chunker(
|
|
|
51
51
|
|
|
52
52
|
|
|
53
53
|
def digest_sha256(
|
|
54
|
-
path:
|
|
54
|
+
path: PathLike | str,
|
|
55
55
|
*,
|
|
56
|
-
chunk_size: int = None,
|
|
56
|
+
chunk_size: int | None = None,
|
|
57
57
|
) -> bytes:
|
|
58
58
|
"""
|
|
59
59
|
Computes the sha256 digest of the file at the given path.
|
|
@@ -79,9 +79,9 @@ def digest_sha256(
|
|
|
79
79
|
|
|
80
80
|
|
|
81
81
|
def digest_crc32c(
|
|
82
|
-
path:
|
|
82
|
+
path: PathLike | str,
|
|
83
83
|
*,
|
|
84
|
-
chunk_size: int = None,
|
|
84
|
+
chunk_size: int | None = None,
|
|
85
85
|
) -> bytes:
|
|
86
86
|
"""
|
|
87
87
|
Computes the crc32c digest of the file at the given path and returns it as
|
|
@@ -109,7 +109,7 @@ def digest_crc32c(
|
|
|
109
109
|
|
|
110
110
|
|
|
111
111
|
def get_file_metadata(
|
|
112
|
-
file_path: PathLike,
|
|
112
|
+
file_path: PathLike | str,
|
|
113
113
|
) -> filepb.FileMetadata:
|
|
114
114
|
|
|
115
115
|
if not os.path.exists(file_path):
|
|
@@ -131,5 +131,5 @@ def get_file_metadata(
|
|
|
131
131
|
ext=file_ext,
|
|
132
132
|
size=os.path.getsize(file_path),
|
|
133
133
|
sha256_checksum=digest_sha256(file_path),
|
|
134
|
-
crc32c_checksum=digest_crc32c(file_path),
|
|
134
|
+
crc32c_checksum=digest_crc32c(file_path).decode(),
|
|
135
135
|
)
|