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.
Files changed (304) hide show
  1. luminarycloud/__init__.py +1 -0
  2. luminarycloud/_client/client.py +13 -1
  3. luminarycloud/_client/retry_interceptor.py +1 -1
  4. luminarycloud/_client/rpc_error.py +1 -1
  5. luminarycloud/_client/tracing.py +10 -2
  6. luminarycloud/_helpers/__init__.py +23 -23
  7. luminarycloud/_helpers/{create_geometry.py → _create_geometry.py} +28 -4
  8. luminarycloud/_helpers/{create_simulation.py → _create_simulation.py} +2 -2
  9. luminarycloud/_helpers/_get_project_id.py +29 -0
  10. luminarycloud/_helpers/{simulation_params_from_json.py → _simulation_params_from_json.py} +1 -1
  11. luminarycloud/_helpers/_upload_mesh.py +7 -7
  12. luminarycloud/_helpers/_upload_table.py +2 -2
  13. luminarycloud/_helpers/{wait_for_simulation.py → _wait_for_simulation.py} +1 -1
  14. luminarycloud/_helpers/cond.py +2 -0
  15. luminarycloud/_helpers/defaults.py +8 -9
  16. luminarycloud/_helpers/proto_decorator.py +3 -1
  17. luminarycloud/_helpers/upload.py +2 -2
  18. luminarycloud/_helpers/util.py +8 -8
  19. luminarycloud/_helpers/warnings/deprecated.py +2 -0
  20. luminarycloud/_helpers/warnings/experimental.py +2 -0
  21. luminarycloud/_patch.py +3 -0
  22. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.py +139 -102
  23. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.pyi +73 -2
  24. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.py +103 -0
  25. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.pyi +37 -0
  26. luminarycloud/_proto/api/v0/luminarycloud/mesh/mesh_pb2.py +64 -64
  27. luminarycloud/_proto/api/v0/luminarycloud/mesh/mesh_pb2.pyi +5 -1
  28. luminarycloud/_proto/api/v0/luminarycloud/output_definition/output_definition_pb2.py +140 -0
  29. luminarycloud/_proto/api/v0/luminarycloud/output_definition/output_definition_pb2.pyi +196 -0
  30. luminarycloud/_proto/api/v0/luminarycloud/output_definition/output_definition_pb2_grpc.py +206 -0
  31. luminarycloud/_proto/api/v0/luminarycloud/output_definition/output_definition_pb2_grpc.pyi +78 -0
  32. luminarycloud/_proto/api/v0/luminarycloud/output_node/output_node_pb2.py +131 -0
  33. luminarycloud/_proto/api/v0/luminarycloud/output_node/output_node_pb2.pyi +186 -0
  34. luminarycloud/_proto/api/v0/luminarycloud/output_node/output_node_pb2_grpc.py +207 -0
  35. luminarycloud/_proto/api/v0/luminarycloud/output_node/output_node_pb2_grpc.pyi +79 -0
  36. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.py +8 -7
  37. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.pyi +10 -0
  38. luminarycloud/_proto/api/v0/luminarycloud/stopping_condition/stopping_condition_pb2.py +189 -0
  39. luminarycloud/_proto/api/v0/luminarycloud/stopping_condition/stopping_condition_pb2.pyi +342 -0
  40. luminarycloud/_proto/api/v0/luminarycloud/stopping_condition/stopping_condition_pb2_grpc.py +246 -0
  41. luminarycloud/_proto/api/v0/luminarycloud/stopping_condition/stopping_condition_pb2_grpc.pyi +104 -0
  42. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.py +462 -158
  43. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.pyi +882 -189
  44. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2_grpc.py +131 -65
  45. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2_grpc.pyi +50 -30
  46. luminarycloud/_proto/assistant/assistant_pb2.py +160 -0
  47. luminarycloud/_proto/assistant/assistant_pb2.pyi +286 -0
  48. luminarycloud/_proto/assistant/assistant_pb2_grpc.py +236 -0
  49. luminarycloud/_proto/assistant/assistant_pb2_grpc.pyi +82 -0
  50. luminarycloud/_proto/base/base_pb2.py +29 -19
  51. luminarycloud/_proto/base/base_pb2.pyi +24 -3
  52. luminarycloud/_proto/client/simulation_pb2.py +266 -253
  53. luminarycloud/_proto/client/simulation_pb2.pyi +28 -2
  54. luminarycloud/_proto/frontend/output/output_pb2.py +266 -0
  55. luminarycloud/_proto/frontend/output/output_pb2.pyi +607 -0
  56. luminarycloud/_proto/geometry/geometry_pb2.py +56 -55
  57. luminarycloud/_proto/geometry/geometry_pb2.pyi +7 -1
  58. luminarycloud/_proto/parametricworker/parametricworker_pb2.py +150 -0
  59. luminarycloud/_proto/parametricworker/parametricworker_pb2.pyi +201 -0
  60. luminarycloud/_proto/parametricworker/parametricworker_pb2_grpc.py +203 -0
  61. luminarycloud/_proto/parametricworker/parametricworker_pb2_grpc.pyi +74 -0
  62. luminarycloud/_proto/quantity/quantity_pb2.py +13 -13
  63. luminarycloud/_wrapper.py +0 -2
  64. luminarycloud/enum/__init__.py +12 -6
  65. luminarycloud/enum/calculation_type.py +6 -1
  66. luminarycloud/enum/force_direction_type.py +20 -0
  67. luminarycloud/enum/output_definition_includes.py +30 -0
  68. luminarycloud/enum/output_node_includes.py +29 -0
  69. luminarycloud/enum/quantity_type.py +37 -3
  70. luminarycloud/enum/residual_type.py +23 -0
  71. luminarycloud/enum/space_averaging_type.py +21 -0
  72. luminarycloud/enum/vis_enums.py +53 -20
  73. luminarycloud/enum/volume_reduction_type.py +21 -0
  74. luminarycloud/exceptions.py +5 -13
  75. luminarycloud/geometry.py +213 -16
  76. luminarycloud/geometry_version.py +6 -1
  77. luminarycloud/mesh.py +17 -3
  78. luminarycloud/meshing/mesh_generation_params.py +26 -14
  79. luminarycloud/outputs/__init__.py +29 -0
  80. luminarycloud/outputs/output_definitions.py +716 -0
  81. luminarycloud/outputs/stopping_conditions.py +218 -0
  82. luminarycloud/params/__init__.py +0 -1
  83. luminarycloud/params/geometry/shapes.py +3 -4
  84. luminarycloud/params/outputs/output.py +3 -5
  85. luminarycloud/params/outputs/residual_output.py +1 -1
  86. luminarycloud/params/param_wrappers/_lib.py +71 -3
  87. luminarycloud/params/param_wrappers/simulation_param/adaptive_mesh_refinement/boundary_layer_profile_.py +2 -2
  88. luminarycloud/params/param_wrappers/simulation_param/adaptive_mesh_refinement_.py +3 -3
  89. luminarycloud/params/param_wrappers/simulation_param/adjoint_.py +2 -2
  90. luminarycloud/params/param_wrappers/simulation_param/basic/gravity/gravity_off_.py +1 -1
  91. luminarycloud/params/param_wrappers/simulation_param/basic/gravity/gravity_on_.py +1 -1
  92. luminarycloud/params/param_wrappers/simulation_param/basic/gravity_.py +2 -2
  93. luminarycloud/params/param_wrappers/simulation_param/body_frame_.py +2 -2
  94. luminarycloud/params/param_wrappers/simulation_param/entity_relationships/volume_material_relationship_.py +2 -2
  95. luminarycloud/params/param_wrappers/simulation_param/entity_relationships/volume_physics_relationship_.py +2 -2
  96. luminarycloud/params/param_wrappers/simulation_param/entity_relationships_.py +2 -2
  97. luminarycloud/params/param_wrappers/simulation_param/general_.py +4 -4
  98. luminarycloud/params/param_wrappers/simulation_param/material/fluid/boussinesq_approximation/boussinesq_off_.py +1 -1
  99. luminarycloud/params/param_wrappers/simulation_param/material/fluid/boussinesq_approximation/boussinesq_on_.py +1 -1
  100. luminarycloud/params/param_wrappers/simulation_param/material/fluid/boussinesq_approximation_.py +2 -2
  101. luminarycloud/params/param_wrappers/simulation_param/material/fluid/material_model/ideal_gas_.py +1 -1
  102. luminarycloud/params/param_wrappers/simulation_param/material/fluid/material_model/incompressible_fluid_.py +1 -1
  103. luminarycloud/params/param_wrappers/simulation_param/material/fluid/material_model/incompressible_fluid_with_energy_.py +1 -1
  104. luminarycloud/params/param_wrappers/simulation_param/material/fluid/material_model_.py +2 -2
  105. luminarycloud/params/param_wrappers/simulation_param/material/fluid/thermal_conductivity_model/prescribed_conductivity_.py +1 -1
  106. luminarycloud/params/param_wrappers/simulation_param/material/fluid/thermal_conductivity_model/prescribed_prandtl_number_.py +1 -1
  107. luminarycloud/params/param_wrappers/simulation_param/material/fluid/thermal_conductivity_model/temperature_dependent_conductivity_.py +1 -1
  108. luminarycloud/params/param_wrappers/simulation_param/material/fluid/thermal_conductivity_model_.py +2 -2
  109. luminarycloud/params/param_wrappers/simulation_param/material/fluid/viscosity_model/prescribed_viscosity_.py +1 -1
  110. luminarycloud/params/param_wrappers/simulation_param/material/fluid/viscosity_model/sutherland_.py +1 -1
  111. luminarycloud/params/param_wrappers/simulation_param/material/fluid/viscosity_model/temperature_dependent_viscosity_.py +1 -1
  112. luminarycloud/params/param_wrappers/simulation_param/material/fluid/viscosity_model_.py +2 -2
  113. luminarycloud/params/param_wrappers/simulation_param/material/material_fluid_.py +3 -3
  114. luminarycloud/params/param_wrappers/simulation_param/material/material_solid_.py +3 -3
  115. luminarycloud/params/param_wrappers/simulation_param/material_entity_.py +2 -2
  116. luminarycloud/params/param_wrappers/simulation_param/monitor_plane_.py +4 -6
  117. luminarycloud/params/param_wrappers/simulation_param/motion_data/frame_transforms/no_transform_.py +3 -3
  118. luminarycloud/params/param_wrappers/simulation_param/motion_data/frame_transforms/rotational_transform_.py +3 -3
  119. luminarycloud/params/param_wrappers/simulation_param/motion_data/frame_transforms/translational_transform_.py +3 -3
  120. luminarycloud/params/param_wrappers/simulation_param/motion_data/frame_transforms_.py +2 -2
  121. luminarycloud/params/param_wrappers/simulation_param/motion_data/motion_type/constant_angular_motion_.py +1 -1
  122. luminarycloud/params/param_wrappers/simulation_param/motion_data/motion_type/constant_translation_motion_.py +1 -1
  123. luminarycloud/params/param_wrappers/simulation_param/motion_data/motion_type_.py +2 -2
  124. luminarycloud/params/param_wrappers/simulation_param/motion_data_.py +4 -4
  125. luminarycloud/params/param_wrappers/simulation_param/multi_physics_coupling_options_.py +5 -3
  126. luminarycloud/params/param_wrappers/simulation_param/output_.py +6 -2
  127. 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
  128. 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
  129. luminarycloud/params/param_wrappers/simulation_param/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection_.py +2 -2
  130. luminarycloud/params/param_wrappers/simulation_param/particle_group/particle_group_type/actuator_disk_.py +1 -1
  131. luminarycloud/params/param_wrappers/simulation_param/particle_group/particle_group_type/actuator_line_.py +1 -1
  132. luminarycloud/params/param_wrappers/simulation_param/particle_group/particle_group_type/probe_points_.py +1 -1
  133. luminarycloud/params/param_wrappers/simulation_param/particle_group/particle_group_type/source_points_.py +1 -1
  134. luminarycloud/params/param_wrappers/simulation_param/particle_group/particle_group_type_.py +2 -2
  135. luminarycloud/params/param_wrappers/simulation_param/particle_group_.py +2 -2
  136. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/adjoint_controls_fluid_.py +5 -7
  137. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/basic_fluid_.py +3 -3
  138. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/farfield_.py +5 -5
  139. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/inlet/fan_curve_inlet_.py +4 -4
  140. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/inlet/mass_flow_inlet_.py +4 -4
  141. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/inlet/total_pressure_inlet_.py +4 -4
  142. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/inlet/velocity_components_inlet_.py +3 -3
  143. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/inlet/velocity_magnitude_inlet_.py +4 -4
  144. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/inlet_.py +6 -7
  145. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/outlet/outlet_strategy/fan_curve_outlet_.py +1 -1
  146. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_pressure_.py +1 -1
  147. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_corrected_mass_flow_rate_.py +1 -1
  148. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_mass_flow_rate_.py +1 -1
  149. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/outlet/outlet_strategy_.py +2 -2
  150. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/outlet_.py +4 -4
  151. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/symmetry_.py +3 -3
  152. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega/bc_komega_variables_.py +1 -1
  153. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega/bc_turbulent_viscosity_and_intensity_komega_.py +1 -1
  154. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega/bc_turbulent_viscosity_ratio_and_intensity_komega_.py +1 -1
  155. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega_boundary_conditions_.py +2 -2
  156. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras/bc_sa_variable_.py +1 -1
  157. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras/bc_turbulent_viscosity_ratio_sa_.py +1 -1
  158. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras/bc_turbulent_viscosity_sa_.py +1 -1
  159. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras_boundary_conditions_.py +2 -2
  160. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence_boundary_conditions_.py +2 -2
  161. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/wall/energy/prescribed_heat_flux_.py +1 -1
  162. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/wall/energy/prescribed_temperature_.py +1 -1
  163. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/wall/momentum/no_slip_.py +1 -1
  164. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/wall/momentum/slip_.py +1 -1
  165. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/wall/momentum/wall_model_.py +1 -1
  166. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/wall/wall_energy_.py +2 -2
  167. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/wall/wall_momentum_.py +2 -2
  168. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/wall_.py +5 -7
  169. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions_fluid_.py +2 -2
  170. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/fluid_existing_solution_.py +3 -3
  171. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/fluid_farfield_values_.py +3 -3
  172. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/fluid_prescribed_values_.py +3 -3
  173. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega/init_farfield_values_komega_.py +1 -1
  174. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega/init_turbulent_viscosity_and_intensity_komega_.py +1 -1
  175. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega/init_turbulent_viscosity_ratio_and_intensity_komega_.py +1 -1
  176. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega_initialization_.py +2 -2
  177. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_farfield_values_sa_.py +1 -1
  178. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_sa_variable_.py +1 -1
  179. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_turbulent_viscosity_ratio_sa_.py +1 -1
  180. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_turbulent_viscosity_sa_.py +1 -1
  181. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras_initialization_.py +2 -2
  182. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence_initialization_.py +2 -2
  183. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization_fluid_.py +2 -2
  184. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/blade_element_airfoil_data_.py +2 -2
  185. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_blade_element_.py +1 -1
  186. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_radial_distribution_.py +1 -1
  187. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_uniform_thrust_.py +1 -1
  188. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/fan_curve_internal_.py +1 -1
  189. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model_.py +1 -1
  190. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model/actuator_line_blade_element_.py +1 -1
  191. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model_.py +1 -1
  192. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/blade_element_params_.py +2 -2
  193. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_acceleration_source_.py +1 -1
  194. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_mass_source_.py +1 -1
  195. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model_.py +1 -1
  196. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior/physical_behavior_model_.py +2 -2
  197. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/physical_behavior_.py +4 -4
  198. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/porous_behavior_.py +3 -3
  199. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls/fluid_relaxation_method/fluid_explicit_relaxation_.py +1 -1
  200. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_off_.py +1 -1
  201. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_on_.py +1 -1
  202. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup_.py +2 -2
  203. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation_.py +1 -1
  204. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls/fluid_relaxation_method_.py +2 -2
  205. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls/pseudo_time_step_method/cfl_based_.py +1 -1
  206. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls/pseudo_time_step_method/fixed_pseudo_time_step_.py +1 -1
  207. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls/pseudo_time_step_method_.py +2 -2
  208. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/solution_controls_fluid_.py +10 -8
  209. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/spatial_discretization/convective_scheme/ec2_.py +1 -1
  210. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/spatial_discretization/convective_scheme/fds_.py +1 -1
  211. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/spatial_discretization/convective_scheme/ld2_.py +1 -1
  212. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/spatial_discretization/convective_scheme/rhie_chow_.py +1 -1
  213. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/spatial_discretization/convective_scheme_.py +2 -2
  214. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/spatial_discretization/convective_scheme_order/first_order_.py +1 -1
  215. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/spatial_discretization/convective_scheme_order/second_order_.py +1 -1
  216. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/spatial_discretization/convective_scheme_order_.py +2 -2
  217. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/spatial_discretization_fluid_.py +17 -11
  218. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/des_formulation/ddes_.py +1 -1
  219. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/des_formulation/ddes_vtm_.py +1 -1
  220. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/des_formulation/iddes_.py +1 -1
  221. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/des_formulation_.py +2 -2
  222. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/komega_sst/constants/custom_komega_sst_constants_.py +1 -1
  223. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/komega_sst/constants/default_komega_sst_constants_.py +1 -1
  224. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/komega_sst/komega_sst_constants_.py +2 -2
  225. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/komega_sst_.py +5 -6
  226. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/spalart_allmaras/constants/custom_spalart_allmaras_constants_.py +1 -1
  227. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/spalart_allmaras/constants/default_spalart_allmaras_constants_.py +1 -1
  228. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/spalart_allmaras/spalart_allmaras_constants_.py +2 -2
  229. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/spalart_allmaras_.py +5 -5
  230. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/sub_grid_scale_model/amd_.py +1 -1
  231. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/sub_grid_scale_model/sigma_.py +1 -1
  232. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/sub_grid_scale_model/smagorinsky_.py +1 -1
  233. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/sub_grid_scale_model/vreman_.py +1 -1
  234. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/sub_grid_scale_model/wale_.py +1 -1
  235. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence/sub_grid_scale_model_.py +2 -2
  236. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/turbulence_.py +4 -4
  237. luminarycloud/params/param_wrappers/simulation_param/physics/fluid_.py +22 -2
  238. luminarycloud/params/param_wrappers/simulation_param/physics/heat/adjoint_controls_heat_.py +3 -3
  239. luminarycloud/params/param_wrappers/simulation_param/physics/heat/boundary_conditions/heat_bc_convection_.py +3 -3
  240. luminarycloud/params/param_wrappers/simulation_param/physics/heat/boundary_conditions/heat_bc_heat_flux_.py +3 -3
  241. luminarycloud/params/param_wrappers/simulation_param/physics/heat/boundary_conditions/heat_bc_integrated_heat_flux_.py +4 -3
  242. luminarycloud/params/param_wrappers/simulation_param/physics/heat/boundary_conditions/heat_bc_symmetry_.py +3 -3
  243. luminarycloud/params/param_wrappers/simulation_param/physics/heat/boundary_conditions/heat_bc_temperature_.py +3 -3
  244. luminarycloud/params/param_wrappers/simulation_param/physics/heat/boundary_conditions_heat_.py +4 -5
  245. luminarycloud/params/param_wrappers/simulation_param/physics/heat/heat_source/heat_source_type/heat_source_type_power_.py +1 -1
  246. luminarycloud/params/param_wrappers/simulation_param/physics/heat/heat_source/heat_source_type/heat_source_type_power_per_unit_of_volume_.py +1 -1
  247. luminarycloud/params/param_wrappers/simulation_param/physics/heat/heat_source/heat_source_type_.py +2 -2
  248. luminarycloud/params/param_wrappers/simulation_param/physics/heat/heat_source_.py +4 -5
  249. luminarycloud/params/param_wrappers/simulation_param/physics/heat/initialization/heat_existing_solution_.py +3 -3
  250. luminarycloud/params/param_wrappers/simulation_param/physics/heat/initialization/heat_prescribed_values_.py +3 -3
  251. luminarycloud/params/param_wrappers/simulation_param/physics/heat/initialization_heat_.py +2 -2
  252. luminarycloud/params/param_wrappers/simulation_param/physics/heat/solution_controls/heat_relaxation_method/heat_implicit_relaxation_.py +1 -1
  253. luminarycloud/params/param_wrappers/simulation_param/physics/heat/solution_controls/heat_relaxation_method_.py +2 -2
  254. luminarycloud/params/param_wrappers/simulation_param/physics/heat/solution_controls_heat_.py +8 -6
  255. luminarycloud/params/param_wrappers/simulation_param/physics/heat/spatial_discretization_heat_.py +5 -5
  256. luminarycloud/params/param_wrappers/simulation_param/physics/heat_.py +2 -2
  257. luminarycloud/params/param_wrappers/simulation_param/physics/periodic_pair/periodicity_type/rotational_periodicity_.py +1 -1
  258. luminarycloud/params/param_wrappers/simulation_param/physics/periodic_pair/periodicity_type/translational_periodicity_.py +1 -1
  259. luminarycloud/params/param_wrappers/simulation_param/physics/periodic_pair/periodicity_type_.py +2 -2
  260. luminarycloud/params/param_wrappers/simulation_param/physics/periodic_pair_.py +2 -2
  261. luminarycloud/params/param_wrappers/simulation_param/physics/solution_controls/linear_solver_type/gauss_seidel_.py +1 -1
  262. luminarycloud/params/param_wrappers/simulation_param/physics/solution_controls/linear_solver_type/krylov_amg_.py +1 -1
  263. luminarycloud/params/param_wrappers/simulation_param/physics/solution_controls/linear_solver_type_.py +2 -2
  264. luminarycloud/params/param_wrappers/simulation_param/physics_.py +2 -2
  265. luminarycloud/params/param_wrappers/simulation_param/sliding_interfaces_.py +3 -3
  266. luminarycloud/params/param_wrappers/simulation_param/surface_name_.py +2 -2
  267. luminarycloud/params/param_wrappers/simulation_param/time/compute_statistics/compute_statistics_off_.py +1 -1
  268. luminarycloud/params/param_wrappers/simulation_param/time/compute_statistics/compute_statistics_on_.py +1 -1
  269. luminarycloud/params/param_wrappers/simulation_param/time/compute_statistics_.py +2 -2
  270. luminarycloud/params/param_wrappers/simulation_param/time/time_marching/time_explicit_.py +1 -1
  271. luminarycloud/params/param_wrappers/simulation_param/time/time_marching/time_implicit_.py +1 -1
  272. luminarycloud/params/param_wrappers/simulation_param/time/time_marching_.py +2 -2
  273. luminarycloud/params/param_wrappers/simulation_param/time/time_step_ramp/time_step_ramp_off_.py +1 -1
  274. luminarycloud/params/param_wrappers/simulation_param/time/time_step_ramp/time_step_ramp_on_.py +1 -1
  275. luminarycloud/params/param_wrappers/simulation_param/time/time_step_ramp_.py +2 -2
  276. luminarycloud/params/param_wrappers/simulation_param/time_.py +3 -3
  277. luminarycloud/params/param_wrappers/simulation_param/volume_entity_.py +2 -2
  278. luminarycloud/params/param_wrappers/simulation_param_.py +2 -2
  279. luminarycloud/project.py +52 -25
  280. luminarycloud/reference_values.py +3 -1
  281. luminarycloud/simulation.py +2 -2
  282. luminarycloud/simulation_param.py +88 -39
  283. luminarycloud/simulation_template.py +291 -6
  284. luminarycloud/solution.py +10 -1
  285. luminarycloud/tables.py +10 -8
  286. luminarycloud/types/__init__.py +1 -0
  287. luminarycloud/types/adfloat.py +33 -25
  288. luminarycloud/types/ids.py +1 -0
  289. luminarycloud/types/vector3.py +10 -1
  290. luminarycloud/vis/__init__.py +15 -4
  291. luminarycloud/vis/display.py +18 -7
  292. luminarycloud/vis/filters.py +292 -61
  293. luminarycloud/vis/interactive_scene.py +85 -0
  294. luminarycloud/vis/visualization.py +362 -140
  295. luminarycloud/volume_selection.py +46 -18
  296. {luminarycloud-0.11.0.dist-info → luminarycloud-0.13.0.dist-info}/METADATA +19 -14
  297. {luminarycloud-0.11.0.dist-info → luminarycloud-0.13.0.dist-info}/RECORD +300 -271
  298. {luminarycloud-0.11.0.dist-info → luminarycloud-0.13.0.dist-info}/WHEEL +1 -2
  299. luminarycloud/params/convergence_criteria/__init__.py +0 -3
  300. luminarycloud/params/convergence_criteria/convergence_criteria.py +0 -92
  301. luminarycloud/params/convergence_criteria/stopping_condition.py +0 -32
  302. luminarycloud-0.11.0.dist-info/top_level.txt +0 -1
  303. /luminarycloud/_helpers/{timestamp_to_datetime.py → _timestamp_to_datetime.py} +0 -0
  304. /luminarycloud/_helpers/{wait_for_mesh.py → _wait_for_mesh.py} +0 -0
luminarycloud/__init__.py CHANGED
@@ -7,6 +7,7 @@ from . import (
7
7
  _patch as _patch,
8
8
  exceptions as exceptions,
9
9
  meshing as meshing,
10
+ outputs as outputs,
10
11
  params as params,
11
12
  types as types,
12
13
  vis as vis,
@@ -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 # type: ignore[type-arg]
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
@@ -64,7 +64,11 @@ class Auth0SpanExporter(OTLPSpanExporter):
64
64
  "authorization": "Bearer " + token,
65
65
  }
66
66
  self._session.headers.update(headers)
67
- return OTLPSpanExporter.export(self, spans)
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
- return OTLPSpanExporter.export(self, spans)
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 .create_geometry import (
3
- create_geometry,
2
+ from ._create_geometry import (
3
+ create_geometry as create_geometry,
4
4
  )
5
- from .create_simulation import (
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 .simulation_params_from_json import (
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 .timestamp_to_datetime import (
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 .wait_for_simulation import (
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 Any, Optional
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, name=name, url=finish_res.url, scaling=scaling, wait=wait
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: str,
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: str
82
+ sha256checksum: bytes
83
83
  The SHA256 digest of the mesh file to upload
84
- crc32c_checksum: str
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.data.decode()) as stream:
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)
@@ -1,4 +1,6 @@
1
1
  # Copyright 2024 Luminary Cloud, Inc. All Rights Reserved.
2
+ # type: ignore
3
+
2
4
  import json
3
5
  from contextlib import contextmanager
4
6
  from dataclasses import dataclass
@@ -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) -> Any:
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
- param: basepb.Int = getattr(params, name)
34
- param.value = dfl.intval
32
+ int_param: basepb.Int = getattr(params, name)
33
+ int_param.value = dfl.intval
35
34
  elif type == "real":
36
- param: basepb.AdFloatType = getattr(params, name)
37
- param.CopyFrom(dfl.real)
35
+ real_param: basepb.AdFloatType = getattr(params, name)
36
+ real_param.CopyFrom(dfl.real)
38
37
  elif type == "vector3":
39
- param: basepb.Vector3 = getattr(params, name)
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) -> decorator.proto_type:
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)
@@ -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
 
@@ -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, Union
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: Union[os.PathLike, str],
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: Union[os.PathLike, str],
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
  )
@@ -1,3 +1,5 @@
1
+ # mypy: ignore-errors
2
+
1
3
  import warnings
2
4
  from functools import wraps
3
5
  from typing import Callable, TypeVar
@@ -1,3 +1,5 @@
1
+ # mypy: ignore-errors
2
+
1
3
  import warnings
2
4
  from functools import wraps
3
5
  from typing import Callable, TypeVar
luminarycloud/_patch.py CHANGED
@@ -1,3 +1,6 @@
1
+ # Copyright 2024 Luminary Cloud, Inc. All Rights Reserved.
2
+ # type: ignore
3
+
1
4
  from functools import wraps
2
5
  from typing import TypeVar
3
6