luminarycloud 0.21.2__tar.gz → 0.22.1__tar.gz

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 (544) hide show
  1. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/PKG-INFO +1 -1
  2. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/__init__.py +3 -1
  3. luminarycloud-0.22.1/luminarycloud/_client/authentication_plugin.py +89 -0
  4. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_client/client.py +38 -8
  5. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_client/http_client.py +1 -1
  6. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_client/retry_interceptor.py +64 -2
  7. luminarycloud-0.22.1/luminarycloud/_feature_flag.py +22 -0
  8. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/_create_simulation.py +7 -2
  9. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/download.py +11 -0
  10. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/proto_decorator.py +13 -5
  11. luminarycloud-0.22.1/luminarycloud/_proto/api/v0/luminarycloud/feature_flag/feature_flag_pb2.py +55 -0
  12. luminarycloud-0.22.1/luminarycloud/_proto/api/v0/luminarycloud/feature_flag/feature_flag_pb2.pyi +52 -0
  13. luminarycloud-0.22.1/luminarycloud/_proto/api/v0/luminarycloud/feature_flag/feature_flag_pb2_grpc.py +72 -0
  14. luminarycloud-0.22.1/luminarycloud/_proto/api/v0/luminarycloud/feature_flag/feature_flag_pb2_grpc.pyi +35 -0
  15. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.py +132 -132
  16. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.pyi +36 -8
  17. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/mesh/mesh_pb2.py +74 -73
  18. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/mesh/mesh_pb2.pyi +8 -1
  19. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.py +53 -23
  20. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.pyi +54 -1
  21. luminarycloud-0.22.1/luminarycloud/_proto/api/v0/luminarycloud/physicsaiinference/physicsaiinference_pb2.py +195 -0
  22. luminarycloud-0.22.1/luminarycloud/_proto/api/v0/luminarycloud/physicsaiinference/physicsaiinference_pb2.pyi +361 -0
  23. luminarycloud-0.22.1/luminarycloud/_proto/api/v0/luminarycloud/physicsaiinference/physicsaiinference_pb2_grpc.py +172 -0
  24. luminarycloud-0.22.1/luminarycloud/_proto/api/v0/luminarycloud/physicsaiinference/physicsaiinference_pb2_grpc.pyi +66 -0
  25. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.py +97 -61
  26. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.pyi +68 -3
  27. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2_grpc.py +34 -0
  28. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2_grpc.pyi +12 -0
  29. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.py +33 -31
  30. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.pyi +23 -2
  31. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2.py +88 -65
  32. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2.pyi +42 -0
  33. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2_grpc.py +34 -0
  34. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2_grpc.pyi +12 -0
  35. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/base/base_pb2.py +7 -6
  36. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/base/base_pb2.pyi +4 -0
  37. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/cad/shape_pb2.py +39 -19
  38. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/cad/shape_pb2.pyi +86 -34
  39. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/client/simulation_pb2.py +3 -3
  40. luminarycloud-0.22.1/luminarycloud/_proto/geometry/geometry_pb2.py +343 -0
  41. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/geometry/geometry_pb2.pyi +42 -3
  42. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/hexmesh/hexmesh_pb2.py +22 -18
  43. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/hexmesh/hexmesh_pb2.pyi +18 -2
  44. luminarycloud-0.22.1/luminarycloud/_proto/physicsaiinferenceservice/physicsaiinferenceservice_pb2.py +30 -0
  45. luminarycloud-0.22.1/luminarycloud/_proto/physicsaiinferenceservice/physicsaiinferenceservice_pb2.pyi +7 -0
  46. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2.py +2 -2
  47. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.py +34 -0
  48. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.pyi +12 -0
  49. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/vis_enums.py +6 -0
  50. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/feature_modification.py +32 -1
  51. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/geometry.py +67 -7
  52. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/geometry_version.py +4 -0
  53. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/mesh.py +4 -0
  54. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/meshing/mesh_generation_params.py +13 -14
  55. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/meshing/sizing_strategy/sizing_strategies.py +1 -2
  56. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/physics_ai/solution.py +4 -0
  57. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/pipelines/api.py +99 -8
  58. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/pipelines/core.py +12 -2
  59. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/pipelines/stages.py +22 -9
  60. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/project.py +5 -8
  61. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/simulation.py +57 -0
  62. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/types/vector3.py +1 -2
  63. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/vis/data_extraction.py +7 -7
  64. luminarycloud-0.22.1/luminarycloud/vis/interactive_report.py +266 -0
  65. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/vis/report.py +113 -1
  66. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/volume_selection.py +71 -7
  67. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/pyproject.toml +1 -1
  68. luminarycloud-0.21.2/luminarycloud/_client/authentication_plugin.py +0 -40
  69. luminarycloud-0.21.2/luminarycloud/_proto/geometry/geometry_pb2.py +0 -329
  70. luminarycloud-0.21.2/luminarycloud/pipeline_util/dictable.py +0 -27
  71. luminarycloud-0.21.2/luminarycloud/vis/interactive_report.py +0 -110
  72. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/DESCRIPTION.md +0 -0
  73. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/MANIFEST.in +0 -0
  74. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_auth/__init__.py +0 -0
  75. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_auth/auth.py +0 -0
  76. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_auth/callback_listener.py +0 -0
  77. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_auth/config.py +0 -0
  78. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_auth/credentials_store.py +0 -0
  79. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_auth/exceptions.py +0 -0
  80. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_auth/util.py +0 -0
  81. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_client/__init__.py +0 -0
  82. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_client/config.py +0 -0
  83. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_client/logging_interceptor.py +0 -0
  84. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_client/rpc_error.py +0 -0
  85. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_client/tracing.py +0 -0
  86. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/__init__.py +0 -0
  87. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/_code_representation.py +0 -0
  88. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/_create_geometry.py +0 -0
  89. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/_entity_identifier.py +0 -0
  90. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/_get_project_id.py +0 -0
  91. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/_simulation_params_from_json.py +0 -0
  92. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/_timestamp_to_datetime.py +0 -0
  93. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/_upload_mesh.py +0 -0
  94. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/_upload_table.py +0 -0
  95. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/_wait_for_mesh.py +0 -0
  96. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/_wait_for_simulation.py +0 -0
  97. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/cond.py +0 -0
  98. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/defaults.py +0 -0
  99. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/file_chunk_stream.py +0 -0
  100. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/named_variables.py +0 -0
  101. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/pagination.py +0 -0
  102. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/upload.py +0 -0
  103. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/util.py +0 -0
  104. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/warnings/__init__.py +0 -0
  105. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_helpers/warnings/deprecated.py +0 -0
  106. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_patch.py +0 -0
  107. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/common/common_pb2.py +0 -0
  108. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/common/common_pb2.pyi +0 -0
  109. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.py +0 -0
  110. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.pyi +0 -0
  111. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/inference/inference_pb2.py +0 -0
  112. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/inference/inference_pb2.pyi +0 -0
  113. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/inference/inference_pb2_grpc.py +0 -0
  114. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/inference/inference_pb2_grpc.pyi +0 -0
  115. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/mesh/mesh_pb2_grpc.py +0 -0
  116. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/mesh/mesh_pb2_grpc.pyi +0 -0
  117. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2.py +0 -0
  118. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2.pyi +0 -0
  119. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2_grpc.py +0 -0
  120. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2_grpc.pyi +0 -0
  121. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/output_definition/output_definition_pb2.py +0 -0
  122. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/output_definition/output_definition_pb2.pyi +0 -0
  123. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/output_definition/output_definition_pb2_grpc.py +0 -0
  124. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/output_definition/output_definition_pb2_grpc.pyi +0 -0
  125. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/output_node/output_node_pb2.py +0 -0
  126. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/output_node/output_node_pb2.pyi +0 -0
  127. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/output_node/output_node_pb2_grpc.py +0 -0
  128. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/output_node/output_node_pb2_grpc.pyi +0 -0
  129. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.py +0 -0
  130. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.pyi +0 -0
  131. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/project/project_pb2.py +0 -0
  132. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/project/project_pb2.pyi +0 -0
  133. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/project/project_pb2_grpc.py +0 -0
  134. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/project/project_pb2_grpc.pyi +0 -0
  135. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/project_ui_state/project_ui_state_pb2.py +0 -0
  136. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/project_ui_state/project_ui_state_pb2.pyi +0 -0
  137. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/project_ui_state/project_ui_state_pb2_grpc.py +0 -0
  138. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/project_ui_state/project_ui_state_pb2_grpc.pyi +0 -0
  139. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2_grpc.py +0 -0
  140. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2_grpc.pyi +0 -0
  141. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/solution/solution_pb2.py +0 -0
  142. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/solution/solution_pb2.pyi +0 -0
  143. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/solution/solution_pb2_grpc.py +0 -0
  144. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/solution/solution_pb2_grpc.pyi +0 -0
  145. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/stopping_condition/stopping_condition_pb2.py +0 -0
  146. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/stopping_condition/stopping_condition_pb2.pyi +0 -0
  147. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/stopping_condition/stopping_condition_pb2_grpc.py +0 -0
  148. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/stopping_condition/stopping_condition_pb2_grpc.pyi +0 -0
  149. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/upload/upload_pb2.py +0 -0
  150. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/upload/upload_pb2.pyi +0 -0
  151. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/upload/upload_pb2_grpc.py +0 -0
  152. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/upload/upload_pb2_grpc.pyi +0 -0
  153. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.py +0 -0
  154. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.pyi +0 -0
  155. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2_grpc.py +0 -0
  156. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2_grpc.pyi +0 -0
  157. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/assistant/assistant_pb2.py +0 -0
  158. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/assistant/assistant_pb2.pyi +0 -0
  159. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/assistant/assistant_pb2_grpc.py +0 -0
  160. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/assistant/assistant_pb2_grpc.pyi +0 -0
  161. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/cad/boolean_pb2.py +0 -0
  162. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/cad/boolean_pb2.pyi +0 -0
  163. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/cad/transformation_pb2.py +0 -0
  164. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/cad/transformation_pb2.pyi +0 -0
  165. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/cadmetadata/cadmetadata_pb2.py +0 -0
  166. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/cadmetadata/cadmetadata_pb2.pyi +0 -0
  167. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/client/entity_pb2.py +0 -0
  168. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/client/entity_pb2.pyi +0 -0
  169. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/client/simulation_pb2.pyi +0 -0
  170. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/condition/condition_pb2.py +0 -0
  171. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/condition/condition_pb2.pyi +0 -0
  172. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/entitygroup/entitygroup_pb2.py +0 -0
  173. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/entitygroup/entitygroup_pb2.pyi +0 -0
  174. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/file/file_pb2.py +0 -0
  175. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/file/file_pb2.pyi +0 -0
  176. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/frontend/output/output_pb2.py +0 -0
  177. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/frontend/output/output_pb2.pyi +0 -0
  178. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/fvm/global_solution_pb2.py +0 -0
  179. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/fvm/global_solution_pb2.pyi +0 -0
  180. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/fvm/param_pb2.py +0 -0
  181. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/fvm/param_pb2.pyi +0 -0
  182. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/fvm/particles_pb2.py +0 -0
  183. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/fvm/particles_pb2.pyi +0 -0
  184. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/fvm/solver_results_pb2.py +0 -0
  185. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/fvm/solver_results_pb2.pyi +0 -0
  186. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/fvm/vof_initialization_pb2.py +0 -0
  187. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/fvm/vof_initialization_pb2.pyi +0 -0
  188. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/inferenceservice/inferenceservice_pb2.py +0 -0
  189. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/inferenceservice/inferenceservice_pb2.pyi +0 -0
  190. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/lcn/lcmesh_pb2.py +0 -0
  191. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/lcn/lcmesh_pb2.pyi +0 -0
  192. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/lcn/lcmeshcheckpoint_pb2.py +0 -0
  193. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/lcn/lcmeshcheckpoint_pb2.pyi +0 -0
  194. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/lcn/lcn_pb2.py +0 -0
  195. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/lcn/lcn_pb2.pyi +0 -0
  196. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/lcn/lcsoln_pb2.py +0 -0
  197. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/lcn/lcsoln_pb2.pyi +0 -0
  198. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/lcn/lcvis_pb2.py +0 -0
  199. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/lcn/lcvis_pb2.pyi +0 -0
  200. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/lcstatus/codes_pb2.py +0 -0
  201. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/lcstatus/codes_pb2.pyi +0 -0
  202. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/lcstatus/lcstatus_pb2.py +0 -0
  203. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/lcstatus/lcstatus_pb2.pyi +0 -0
  204. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/lcstatus/levels_pb2.py +0 -0
  205. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/lcstatus/levels_pb2.pyi +0 -0
  206. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/named_variable_set/named_variable_set_pb2.py +0 -0
  207. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/named_variable_set/named_variable_set_pb2.pyi +0 -0
  208. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/namedvariableset/namedvariableset_pb2.py +0 -0
  209. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/namedvariableset/namedvariableset_pb2.pyi +0 -0
  210. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/options/options_pb2.py +0 -0
  211. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/options/options_pb2.pyi +0 -0
  212. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/output/output_pb2.py +0 -0
  213. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/output/output_pb2.pyi +0 -0
  214. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/output/reference_values_pb2.py +0 -0
  215. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/output/reference_values_pb2.pyi +0 -0
  216. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/parametricworker/parametricworker_pb2.py +0 -0
  217. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/parametricworker/parametricworker_pb2.pyi +0 -0
  218. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/parametricworker/parametricworker_pb2_grpc.py +0 -0
  219. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/parametricworker/parametricworker_pb2_grpc.pyi +0 -0
  220. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2.pyi +0 -0
  221. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/quantity/quantity_options_pb2.py +0 -0
  222. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/quantity/quantity_options_pb2.pyi +0 -0
  223. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/quantity/quantity_pb2.py +0 -0
  224. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/quantity/quantity_pb2.pyi +0 -0
  225. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/ratelimit/ratelimit_pb2.py +0 -0
  226. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/ratelimit/ratelimit_pb2.pyi +0 -0
  227. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/ratelimit/ratelimit_pb2_grpc.py +0 -0
  228. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/ratelimit/ratelimit_pb2_grpc.pyi +0 -0
  229. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/table/table_pb2.py +0 -0
  230. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/table/table_pb2.pyi +0 -0
  231. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/upload/upload_pb2.py +0 -0
  232. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_proto/upload/upload_pb2.pyi +0 -0
  233. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_version.py +0 -0
  234. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/_wrapper.py +0 -0
  235. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/__init__.py +0 -0
  236. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/averaging_type.py +0 -0
  237. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/calculation_type.py +0 -0
  238. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/force_direction_type.py +0 -0
  239. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/geometry_status.py +0 -0
  240. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/gpu_type.py +0 -0
  241. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/mesh_status.py +0 -0
  242. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/mesh_type.py +0 -0
  243. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/moment_convention_type.py +0 -0
  244. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/output_definition_includes.py +0 -0
  245. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/output_node_includes.py +0 -0
  246. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/physics_ai_lifecycle_state.py +0 -0
  247. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/quantity_type.py +0 -0
  248. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/reference_values_type.py +0 -0
  249. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/residual_normalization.py +0 -0
  250. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/residual_type.py +0 -0
  251. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/simulation_status.py +0 -0
  252. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/space_averaging_type.py +0 -0
  253. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/tables.py +0 -0
  254. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/vector3_component.py +0 -0
  255. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/enum/volume_reduction_type.py +0 -0
  256. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/exceptions.py +0 -0
  257. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/meshing/__init__.py +0 -0
  258. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/meshing/mesh_adaptation_params.py +0 -0
  259. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/meshing/metadata/__init__.py +0 -0
  260. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/meshing/metadata/mesh_metadata.py +0 -0
  261. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/meshing/sizing_strategy/__init__.py +0 -0
  262. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/named_variable_set.py +0 -0
  263. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/outputs/__init__.py +0 -0
  264. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/outputs/output_definitions.py +0 -0
  265. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/outputs/stopping_conditions.py +0 -0
  266. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/__init__.py +0 -0
  267. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/enum/__init__.py +0 -0
  268. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/enum/_enum_wrappers.py +0 -0
  269. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/enum/residual_output.py +0 -0
  270. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/geometry/__init__.py +0 -0
  271. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/geometry/geometry.py +0 -0
  272. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/geometry/shapes.py +0 -0
  273. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/outputs/__init__.py +0 -0
  274. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/outputs/output.py +0 -0
  275. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/outputs/residual_output.py +0 -0
  276. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/__init__.py +0 -0
  277. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/_lib.py +0 -0
  278. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/adaptive_mesh_refinement/__init__.py +0 -0
  279. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/adaptive_mesh_refinement/boundary_layer_profile_.py +0 -0
  280. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/adaptive_mesh_refinement_.py +0 -0
  281. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/adjoint_.py +0 -0
  282. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/basic/__init__.py +0 -0
  283. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/basic/gravity/__init__.py +0 -0
  284. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/basic/gravity/gravity_off_.py +0 -0
  285. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/basic/gravity/gravity_on_.py +0 -0
  286. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/basic/gravity_.py +0 -0
  287. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/body_frame_.py +0 -0
  288. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/entity_relationships/__init__.py +0 -0
  289. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/entity_relationships/volume_material_relationship_.py +0 -0
  290. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/entity_relationships/volume_physics_relationship_.py +0 -0
  291. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/entity_relationships_.py +0 -0
  292. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/general_.py +0 -0
  293. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/__init__.py +0 -0
  294. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/__init__.py +0 -0
  295. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/boussinesq_approximation/__init__.py +0 -0
  296. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_off_.py +0 -0
  297. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_on_.py +0 -0
  298. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/boussinesq_approximation_.py +0 -0
  299. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/material_model/__init__.py +0 -0
  300. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/material_model/ideal_gas_.py +0 -0
  301. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_.py +0 -0
  302. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_with_energy_.py +0 -0
  303. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/material_model_.py +0 -0
  304. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/__init__.py +0 -0
  305. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_conductivity_.py +0 -0
  306. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_prandtl_number_.py +0 -0
  307. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/temperature_dependent_conductivity_.py +0 -0
  308. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/thermal_conductivity_model_.py +0 -0
  309. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/viscosity_model/__init__.py +0 -0
  310. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/viscosity_model/prescribed_viscosity_.py +0 -0
  311. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/viscosity_model/sutherland_.py +0 -0
  312. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/viscosity_model/temperature_dependent_viscosity_.py +0 -0
  313. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/fluid/viscosity_model_.py +0 -0
  314. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/material_fluid_.py +0 -0
  315. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material/material_solid_.py +0 -0
  316. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/material_entity_.py +0 -0
  317. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/monitor_plane_.py +0 -0
  318. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/motion_data/__init__.py +0 -0
  319. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/motion_data/frame_transforms/__init__.py +0 -0
  320. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/motion_data/frame_transforms/no_transform_.py +0 -0
  321. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/motion_data/frame_transforms/rotational_transform_.py +0 -0
  322. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/motion_data/frame_transforms/translational_transform_.py +0 -0
  323. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/motion_data/frame_transforms_.py +0 -0
  324. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/motion_data/motion_type/__init__.py +0 -0
  325. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/motion_data/motion_type/constant_angular_motion_.py +0 -0
  326. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/motion_data/motion_type/constant_translation_motion_.py +0 -0
  327. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/motion_data/motion_type_.py +0 -0
  328. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/motion_data_.py +0 -0
  329. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/multi_physics_coupling_options_.py +0 -0
  330. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/output_.py +0 -0
  331. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/particle_group/__init__.py +0 -0
  332. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/particle_group/particle_group_type/__init__.py +0 -0
  333. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/__init__.py +0 -0
  334. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/__init__.py +0 -0
  335. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_normal_vector_.py +0 -0
  336. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_rotation_angles_.py +0 -0
  337. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection_.py +0 -0
  338. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk_.py +0 -0
  339. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/particle_group/particle_group_type/actuator_line_.py +0 -0
  340. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/particle_group/particle_group_type/probe_points_.py +0 -0
  341. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/particle_group/particle_group_type/source_points_.py +0 -0
  342. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/particle_group/particle_group_type_.py +0 -0
  343. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/particle_group_.py +0 -0
  344. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/__init__.py +0 -0
  345. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/__init__.py +0 -0
  346. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/adjoint_controls_fluid_.py +0 -0
  347. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/basic_fluid_.py +0 -0
  348. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/__init__.py +0 -0
  349. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/farfield_.py +0 -0
  350. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/__init__.py +0 -0
  351. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/fan_curve_inlet_.py +0 -0
  352. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mach_inlet_.py +0 -0
  353. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mass_flow_inlet_.py +0 -0
  354. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/total_pressure_inlet_.py +0 -0
  355. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_components_inlet_.py +0 -0
  356. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_magnitude_inlet_.py +0 -0
  357. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet_.py +0 -0
  358. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/__init__.py +0 -0
  359. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/__init__.py +0 -0
  360. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/fan_curve_outlet_.py +0 -0
  361. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_pressure_.py +0 -0
  362. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_corrected_mass_flow_rate_.py +0 -0
  363. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_mass_flow_rate_.py +0 -0
  364. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy_.py +0 -0
  365. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet_.py +0 -0
  366. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/symmetry_.py +0 -0
  367. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/turbulence_boundary_conditions_.py +0 -0
  368. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/__init__.py +0 -0
  369. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/__init__.py +0 -0
  370. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_heat_flux_.py +0 -0
  371. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_temperature_.py +0 -0
  372. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/__init__.py +0 -0
  373. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/no_slip_.py +0 -0
  374. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/slip_.py +0 -0
  375. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/wall_model_.py +0 -0
  376. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_energy_.py +0 -0
  377. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_momentum_.py +0 -0
  378. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall_.py +0 -0
  379. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/boundary_conditions_fluid_.py +0 -0
  380. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/initialization/__init__.py +0 -0
  381. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/initialization/fluid_existing_solution_.py +0 -0
  382. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/initialization/fluid_farfield_values_.py +0 -0
  383. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/initialization/fluid_prescribed_values_.py +0 -0
  384. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/initialization/turbulence_initialization_.py +0 -0
  385. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/initialization_fluid_.py +0 -0
  386. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/physical_behavior/__init__.py +0 -0
  387. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/physical_behavior/blade_element_airfoil_data_.py +0 -0
  388. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/__init__.py +0 -0
  389. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/__init__.py +0 -0
  390. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_blade_element_.py +0 -0
  391. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_radial_distribution_.py +0 -0
  392. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_uniform_thrust_.py +0 -0
  393. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/fan_curve_internal_.py +0 -0
  394. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model_.py +0 -0
  395. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model/__init__.py +0 -0
  396. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model/actuator_line_blade_element_.py +0 -0
  397. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model_.py +0 -0
  398. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/blade_element_params_.py +0 -0
  399. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/__init__.py +0 -0
  400. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_acceleration_source_.py +0 -0
  401. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_mass_source_.py +0 -0
  402. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model_.py +0 -0
  403. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model_.py +0 -0
  404. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/physical_behavior_.py +0 -0
  405. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/porous_behavior_.py +0 -0
  406. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/solution_controls/__init__.py +0 -0
  407. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/__init__.py +0 -0
  408. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_explicit_relaxation_.py +0 -0
  409. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/__init__.py +0 -0
  410. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/__init__.py +0 -0
  411. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_auto_.py +0 -0
  412. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_off_.py +0 -0
  413. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_on_.py +0 -0
  414. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup_.py +0 -0
  415. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation_.py +0 -0
  416. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method_.py +0 -0
  417. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/__init__.py +0 -0
  418. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/cfl_based_.py +0 -0
  419. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/fixed_pseudo_time_step_.py +0 -0
  420. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method_.py +0 -0
  421. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/solution_controls_fluid_.py +0 -0
  422. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/spatial_discretization/__init__.py +0 -0
  423. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/__init__.py +0 -0
  424. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ec2_.py +0 -0
  425. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/fds_.py +0 -0
  426. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ld2_.py +0 -0
  427. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/rhie_chow_.py +0 -0
  428. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_.py +0 -0
  429. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/__init__.py +0 -0
  430. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/first_order_.py +0 -0
  431. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/second_order_.py +0 -0
  432. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order_.py +0 -0
  433. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/spatial_discretization_fluid_.py +0 -0
  434. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/__init__.py +0 -0
  435. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/__init__.py +0 -0
  436. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_.py +0 -0
  437. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_vtm_.py +0 -0
  438. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/iddes_.py +0 -0
  439. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation_.py +0 -0
  440. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/__init__.py +0 -0
  441. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/__init__.py +0 -0
  442. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/custom_komega_sst_constants_.py +0 -0
  443. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/default_komega_sst_constants_.py +0 -0
  444. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/komega_sst_constants_.py +0 -0
  445. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst_.py +0 -0
  446. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/__init__.py +0 -0
  447. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/__init__.py +0 -0
  448. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/custom_spalart_allmaras_constants_.py +0 -0
  449. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/default_spalart_allmaras_constants_.py +0 -0
  450. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/spalart_allmaras_constants_.py +0 -0
  451. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras_.py +0 -0
  452. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/__init__.py +0 -0
  453. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/amd_.py +0 -0
  454. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/sigma_.py +0 -0
  455. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/smagorinsky_.py +0 -0
  456. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/vreman_.py +0 -0
  457. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/wale_.py +0 -0
  458. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model_.py +0 -0
  459. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid/turbulence_.py +0 -0
  460. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/fluid_.py +0 -0
  461. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/__init__.py +0 -0
  462. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/adjoint_controls_heat_.py +0 -0
  463. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/boundary_conditions/__init__.py +0 -0
  464. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_convection_.py +0 -0
  465. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_heat_flux_.py +0 -0
  466. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_integrated_heat_flux_.py +0 -0
  467. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_symmetry_.py +0 -0
  468. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_temperature_.py +0 -0
  469. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/boundary_conditions_heat_.py +0 -0
  470. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/heat_source/__init__.py +0 -0
  471. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/__init__.py +0 -0
  472. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_.py +0 -0
  473. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_per_unit_of_volume_.py +0 -0
  474. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type_.py +0 -0
  475. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/heat_source_.py +0 -0
  476. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/initialization/__init__.py +0 -0
  477. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/initialization/heat_existing_solution_.py +0 -0
  478. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values_.py +0 -0
  479. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/initialization_heat_.py +0 -0
  480. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/solution_controls/__init__.py +0 -0
  481. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method/__init__.py +0 -0
  482. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method/heat_implicit_relaxation_.py +0 -0
  483. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method_.py +0 -0
  484. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/solution_controls_heat_.py +0 -0
  485. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat/spatial_discretization_heat_.py +0 -0
  486. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/heat_.py +0 -0
  487. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/periodic_pair_.py +0 -0
  488. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/solution_controls/__init__.py +0 -0
  489. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/__init__.py +0 -0
  490. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/gauss_seidel_.py +0 -0
  491. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/krylov_amg_.py +0 -0
  492. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics/solution_controls/linear_solver_type_.py +0 -0
  493. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/physics_.py +0 -0
  494. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/simulation_param_.py +0 -0
  495. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/sliding_interfaces_.py +0 -0
  496. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/surface_name_.py +0 -0
  497. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/time/__init__.py +0 -0
  498. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/time/compute_statistics/__init__.py +0 -0
  499. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/time/compute_statistics/compute_statistics_off_.py +0 -0
  500. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/time/compute_statistics/compute_statistics_on_.py +0 -0
  501. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/time/compute_statistics_.py +0 -0
  502. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/time/time_marching/__init__.py +0 -0
  503. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/time/time_marching/time_explicit_.py +0 -0
  504. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/time/time_marching/time_implicit_.py +0 -0
  505. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/time/time_marching_.py +0 -0
  506. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/time/time_step_ramp/__init__.py +0 -0
  507. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_off_.py +0 -0
  508. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_on_.py +0 -0
  509. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/time/time_step_ramp_.py +0 -0
  510. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/time_.py +0 -0
  511. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/params/simulation/volume_entity_.py +0 -0
  512. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/physics_ai/__init__.py +0 -0
  513. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/physics_ai/architectures.py +0 -0
  514. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/physics_ai/inference.py +0 -0
  515. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/physics_ai/models.py +0 -0
  516. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/physics_ai/training_jobs.py +0 -0
  517. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/pipeline_util/yaml.py +0 -0
  518. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/pipelines/__init__.py +0 -0
  519. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/pipelines/arguments.py +0 -0
  520. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/pipelines/parameters.py +0 -0
  521. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/reference_values.py +0 -0
  522. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/simulation_param.py +0 -0
  523. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/simulation_queue.py +0 -0
  524. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/simulation_template.py +0 -0
  525. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/solution.py +0 -0
  526. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/tables.py +0 -0
  527. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/tag.py +0 -0
  528. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/thirdparty/__init__.py +0 -0
  529. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/thirdparty/onshape.py +0 -0
  530. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/types/__init__.py +0 -0
  531. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/types/adfloat.py +0 -0
  532. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/types/ids.py +0 -0
  533. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/types/matrix3.py +0 -0
  534. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/vis/__init__.py +0 -0
  535. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/vis/display.py +0 -0
  536. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/vis/filters.py +0 -0
  537. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/vis/interactive_inference.py +0 -0
  538. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/vis/interactive_scene.py +0 -0
  539. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/vis/primitives.py +0 -0
  540. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/vis/vis_util.py +0 -0
  541. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/luminarycloud/vis/visualization.py +0 -0
  542. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/requirements-dev.txt +0 -0
  543. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/requirements.txt +0 -0
  544. {luminarycloud-0.21.2 → luminarycloud-0.22.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: luminarycloud
3
- Version: 0.21.2
3
+ Version: 0.22.1
4
4
  Summary: Luminary Cloud SDK
5
5
  Project-URL: Homepage, https://www.luminarycloud.com/
6
6
  Project-URL: Documentation, https://app.luminarycloud.com/docs/api/
@@ -13,12 +13,14 @@ from . import (
13
13
  types as types,
14
14
  vis as vis,
15
15
  )
16
-
17
16
  from ._client import (
18
17
  Client as Client,
19
18
  get_default_client as get_default_client,
20
19
  set_default_client as set_default_client,
21
20
  )
21
+ from ._feature_flag import (
22
+ _get_feature_flags as _get_feature_flags,
23
+ )
22
24
  from .geometry import (
23
25
  get_geometry as get_geometry,
24
26
  Geometry as Geometry,
@@ -0,0 +1,89 @@
1
+ # Copyright 2023 Luminary Cloud, Inc. All Rights Reserved.
2
+
3
+ import grpc
4
+
5
+ from .._auth import Auth0Client
6
+
7
+
8
+ class AuthenticationPlugin(grpc.AuthMetadataPlugin):
9
+ """
10
+ Adds authentication headers for each outgoing RPC.
11
+
12
+ Supports two authentication methods:
13
+ 1. Bearer token authentication using Auth0
14
+ 2. API key authentication using x-api-key header
15
+
16
+ The __call__ function is invoked for every outgoing call. If using Bearer token
17
+ and the token has expired or doesn't exist, the Auth0 client tries to acquire
18
+ a new one.
19
+ """
20
+
21
+ def __init__(self, auth0_client: Auth0Client, api_key: str | None = None):
22
+ super(AuthenticationPlugin, self).__init__()
23
+ self.auth0_client = auth0_client
24
+ self.api_key = api_key
25
+
26
+ def __call__(
27
+ self,
28
+ context: grpc.AuthMetadataContext,
29
+ # Takes the list of headers to add as tuples
30
+ callback: grpc.AuthMetadataPluginCallback,
31
+ ) -> None:
32
+ try:
33
+ if self.api_key and isinstance(self.api_key, str):
34
+ metadata = [("x-api-key", self.api_key)]
35
+ else:
36
+ access_token = self.auth0_client.fetch_access_token()
37
+ metadata = [("authorization", "Bearer " + access_token)]
38
+ callback(metadata, None)
39
+ except Exception as err:
40
+ callback(None, err)
41
+
42
+
43
+ class AuthInterceptor(
44
+ grpc.UnaryUnaryClientInterceptor,
45
+ grpc.UnaryStreamClientInterceptor,
46
+ grpc.StreamUnaryClientInterceptor,
47
+ grpc.StreamStreamClientInterceptor,
48
+ ):
49
+ """
50
+ I need this as a workaround for container-to-host connections because I need to create a channel
51
+ that uses CallCredentials but doesn't use any ChannelCredentials. I.e. I need to authenticate
52
+ the requests, but I need the connection to be unencrypted. This is because the grpc server on
53
+ the native host isn't using SSL, so I can't use grpc.ssl_channel_credentials(), but it's also
54
+ not reachable on a loopback interface, so I can't use grpc.local_channel_credentials() either.
55
+ So I need to use a grpc.insecure_channel(), but you can't use CallCredentials with an insecure
56
+ channel. So the workaround is to use an interceptor instead of CallCredentials.
57
+
58
+ Also, I don't care about auth0, so I'm only supporting an API key.
59
+ """
60
+
61
+ def __init__(self, api_key: str):
62
+ self._api_key = api_key
63
+
64
+ def _augment(self, metadata):
65
+ return metadata + [("x-api-key", self._api_key)]
66
+
67
+ def intercept_unary_unary(self, continuation, client_call_details, request):
68
+ new_details = client_call_details._replace(
69
+ metadata=self._augment(client_call_details.metadata or [])
70
+ )
71
+ return continuation(new_details, request)
72
+
73
+ def intercept_unary_stream(self, continuation, client_call_details, request):
74
+ new_details = client_call_details._replace(
75
+ metadata=self._augment(client_call_details.metadata or [])
76
+ )
77
+ return continuation(new_details, request)
78
+
79
+ def intercept_stream_unary(self, continuation, client_call_details, request_iter):
80
+ new_details = client_call_details._replace(
81
+ metadata=self._augment(client_call_details.metadata or [])
82
+ )
83
+ return continuation(new_details, request_iter)
84
+
85
+ def intercept_stream_stream(self, continuation, client_call_details, request_iter):
86
+ new_details = client_call_details._replace(
87
+ metadata=self._augment(client_call_details.metadata or [])
88
+ )
89
+ return continuation(new_details, request_iter)
@@ -44,7 +44,10 @@ from .._proto.api.v0.luminarycloud.project_ui_state.project_ui_state_pb2_grpc im
44
44
  from .._proto.api.v0.luminarycloud.solution.solution_pb2_grpc import SolutionServiceStub
45
45
  from .._proto.api.v0.luminarycloud.upload.upload_pb2_grpc import UploadServiceStub
46
46
  from .._proto.api.v0.luminarycloud.vis.vis_pb2_grpc import VisAPIServiceStub
47
- from .authentication_plugin import AuthenticationPlugin
47
+ from .._proto.api.v0.luminarycloud.feature_flag.feature_flag_pb2_grpc import (
48
+ FeatureFlagServiceStub,
49
+ )
50
+ from .authentication_plugin import AuthenticationPlugin, AuthInterceptor
48
51
  from .config import LC_DOMAIN, LC_API_KEY
49
52
  from .logging_interceptor import LoggingInterceptor
50
53
  from .retry_interceptor import RetryInterceptor
@@ -71,6 +74,7 @@ class Client(
71
74
  InferenceServiceStub,
72
75
  OnshapeServiceStub,
73
76
  ProjectUIStateServiceStub,
77
+ FeatureFlagServiceStub,
74
78
  ):
75
79
  """
76
80
  Creates a Luminary API client.
@@ -89,11 +93,20 @@ class Client(
89
93
  The URL of the HTTP REST server. If not provided, it will default to the `target`.
90
94
  localhost : bool
91
95
  True if the API server is running locally.
96
+ insecure_grpc_channel : bool
97
+ True to use an unencrypted gRPC channel, even though requests are authenticated. There's no
98
+ legitimate reason to do this outside of a local development situation where the SDK is
99
+ running from a container and connecting to an API server that is running on the host.
92
100
  grpc_channel_options : Optional[Iterable[tuple[str, str]]]
93
101
  A list of gRPC channel args. The full list is available here:
94
102
  https://github.com/grpc/grpc/blob/v1.46.x/include/grpc/impl/codegen/grpc_types.h
95
103
  api_key : Optional[str]
96
104
  The API key to use for authentication.
105
+ log_retries : bool
106
+ True to log each retriable error response. There are some errors the API server may return
107
+ that are known to be transient, and the client will always retry requests when it gets one
108
+ of them. By default, the client retries silently. Set this to True to log the error
109
+ responses (at INFO level) for the retriable errors.
97
110
  **kwargs : dict, optional
98
111
  Additional arguments are passed to Auth0Client. See _auth/auth.py.
99
112
 
@@ -112,9 +125,11 @@ class Client(
112
125
  target: str = LC_DOMAIN,
113
126
  http_target: str | None = None,
114
127
  localhost: bool = False,
128
+ insecure_grpc_channel: bool = False,
115
129
  grpc_channel_options: Optional[Iterable[tuple[str, Union[str, int]]]] = None,
116
130
  channel_credentials: Optional[grpc.ChannelCredentials] = None,
117
131
  api_key: Optional[str] = LC_API_KEY,
132
+ log_retries: bool = False,
118
133
  **kwargs: Any,
119
134
  ):
120
135
  self._target = target
@@ -135,7 +150,12 @@ class Client(
135
150
  if grpc_channel_options:
136
151
  grpc_channel_options_with_keep_alive.extend(grpc_channel_options)
137
152
  self._channel = self._create_channel(
138
- localhost, grpc_channel_options_with_keep_alive, channel_credentials, api_key
153
+ localhost,
154
+ insecure_grpc_channel,
155
+ grpc_channel_options_with_keep_alive,
156
+ channel_credentials,
157
+ api_key,
158
+ log_retries,
139
159
  )
140
160
  self._context_tokens: list[Token] = []
141
161
  self.__register_rpcs()
@@ -189,9 +209,11 @@ class Client(
189
209
  def _create_channel(
190
210
  self,
191
211
  localhost: bool = False,
212
+ insecure: bool = False,
192
213
  grpc_channel_options: Optional[Iterable[tuple[str, Union[str, int]]]] = None,
193
214
  channel_credentials: Optional[grpc.ChannelCredentials] = None,
194
215
  api_key: Optional[str] = None,
216
+ log_retries: bool = False,
195
217
  ) -> grpc.Channel:
196
218
  if channel_credentials is None:
197
219
  if localhost:
@@ -213,15 +235,22 @@ class Client(
213
235
  call_creds = grpc.metadata_call_credentials(auth_plugin)
214
236
  composite_creds = grpc.composite_channel_credentials(channel_credentials, call_creds)
215
237
  options = grpc_channel_options and list(grpc_channel_options)
216
- channel = grpc.secure_channel(
217
- self._target,
218
- composite_creds,
219
- options=options,
220
- )
238
+ if insecure:
239
+ channel = grpc.insecure_channel(self._target, options=options)
240
+ channel = grpc.intercept_channel(
241
+ channel,
242
+ AuthInterceptor(api_key),
243
+ )
244
+ else:
245
+ channel = grpc.secure_channel(
246
+ self._target,
247
+ composite_creds,
248
+ options=options,
249
+ )
221
250
  intercepted_channel = grpc.intercept_channel(
222
251
  channel,
223
252
  LoggingInterceptor(),
224
- RetryInterceptor(),
253
+ RetryInterceptor(log_retries),
225
254
  )
226
255
  return add_instrumentation(
227
256
  intercepted_channel,
@@ -248,6 +277,7 @@ class Client(
248
277
  NamedVariableSetServiceStub.__init__(self, self._channel)
249
278
  OnshapeServiceStub.__init__(self, self._channel)
250
279
  ProjectUIStateServiceStub.__init__(self, self._channel)
280
+ FeatureFlagServiceStub.__init__(self, self._channel)
251
281
  for name, value in self.__dict__.items():
252
282
  if isinstance(value, grpc.UnaryUnaryMultiCallable):
253
283
  setattr(self, name, rpc_error(value))
@@ -32,7 +32,7 @@ class HttpClient:
32
32
  api_key: str | None = None,
33
33
  auth0_client: Auth0Client | None = None,
34
34
  *,
35
- timeout: int = 10,
35
+ timeout: int | None = 300,
36
36
  retries: int = 3,
37
37
  backoff_factor: float = 0.3,
38
38
  retriable_status_codes: tuple = (500, 502, 503, 504, 429),
@@ -2,19 +2,68 @@
2
2
  from collections.abc import Callable
3
3
  from time import sleep
4
4
  from typing import Any
5
+ import logging
5
6
 
6
7
  import grpc
7
8
  from grpc import (
8
9
  ClientCallDetails,
9
10
  UnaryUnaryClientInterceptor,
10
11
  )
12
+ from grpc_status.rpc_status import GRPC_DETAILS_METADATA_KEY
11
13
 
12
14
  from luminarycloud.exceptions import AuthenticationError
15
+ from luminarycloud._proto.base import base_pb2
16
+
17
+
18
+ def _is_rate_limited(call: grpc.Call) -> bool:
19
+ """
20
+ Check if a gRPC call failed due to rate limiting.
21
+
22
+ Rate limit errors are identified with the SUBCODE_RATE_LIMITED subcode and UNAVAILABLE status.
23
+
24
+ Args:
25
+ call: The gRPC call to check
26
+
27
+ Returns:
28
+ True if the error is a rate limit error, False otherwise
29
+ """
30
+ if call.code() != grpc.StatusCode.UNAVAILABLE:
31
+ return False
32
+
33
+ try:
34
+ # Get the trailing metadata which contains error details
35
+ # Metadata is a sequence of tuples (key, value)
36
+ for key, value in call.trailing_metadata() or []:
37
+ if key != GRPC_DETAILS_METADATA_KEY or not isinstance(value, bytes):
38
+ continue
39
+
40
+ status = base_pb2.Status()
41
+ status.ParseFromString(value)
42
+ for any_detail in status.details:
43
+ if any_detail.Is(base_pb2.StatusPayload.DESCRIPTOR):
44
+ payload = base_pb2.StatusPayload()
45
+ any_detail.Unpack(payload)
46
+ if payload.subcode == base_pb2.SUBCODE_RATE_LIMITED:
47
+ return True
48
+ except Exception:
49
+ pass
50
+ return False
51
+
52
+
53
+ logger = logging.getLogger(__name__)
13
54
 
14
55
 
15
56
  class RetryInterceptor(UnaryUnaryClientInterceptor):
57
+ def __init__(self, log_retries: bool = False):
58
+ self.log_retries = log_retries
59
+ super().__init__()
60
+
16
61
  """
17
- A retry interceptor that retries on status code RESOURCE_EXHAUSTED (i.e. rate-limited).
62
+ A retry interceptor that retries on rate limit errors and other retryable errors.
63
+
64
+ This interceptor handles:
65
+ 1. Rate limit errors (UNAVAILABLE with SUBCODE_RATE_LIMITED) - always retried
66
+ 2. [grpc.StatusCode.RESOURCE_EXHAUSTED, grpc.StatusCode.UNAVAILABLE] - retried
18
67
 
19
68
  This is required because, while the retry policy for the gRPC client is configurable via
20
69
  https://github.com/grpc/grpc-proto/blob/master/grpc/service_config/service_config.proto,
@@ -43,7 +92,10 @@ class RetryInterceptor(UnaryUnaryClientInterceptor):
43
92
  n_max_retries = 20
44
93
  max_retry_seconds = 20
45
94
  backoffs = [min(i * 2, max_retry_seconds) for i in range(1, n_max_retries)]
46
- for backoff in backoffs: # in seconds
95
+ backoff_index = 0
96
+ while True:
97
+ if backoff_index >= len(backoffs):
98
+ break
47
99
  call = continuation(client_call_details, request)
48
100
  if call.code() not in retryable_codes:
49
101
  break
@@ -54,7 +106,17 @@ class RetryInterceptor(UnaryUnaryClientInterceptor):
54
106
  details = call.details() or ""
55
107
  if "InteractiveAuthException" in details:
56
108
  break
109
+ backoff = backoffs[backoff_index]
110
+ if self.log_retries:
111
+ logger.info(
112
+ f"Retrying {client_call_details.method} in {backoff} seconds (last response: {call.code()}, {call.details()})"
113
+ )
57
114
  sleep(backoff)
115
+ # Keep retrying rate-limited calls while increasing the backoff up to the max.
116
+ backoff_index += 1
117
+ if _is_rate_limited(call):
118
+ backoff_index = max(min(backoff_index, len(backoffs) - 2), 0)
119
+
58
120
  try:
59
121
  call.result()
60
122
  except grpc.RpcError as e:
@@ -0,0 +1,22 @@
1
+ # Copyright 2023-2025 Luminary Cloud, Inc. All Rights Reserved.
2
+ from google.protobuf import empty_pb2
3
+
4
+ from ._proto.api.v0.luminarycloud.feature_flag import feature_flag_pb2
5
+ from ._client import get_default_client
6
+
7
+
8
+ def _get_feature_flags() -> dict[int, str]:
9
+ """Get enabled feature flags for the authenticated user.
10
+
11
+ Feature flags are used to control access to experimental and internal features.
12
+ Each flag is identified by an experiment ID and a feature flag name.
13
+
14
+ Returns
15
+ -------
16
+ dict[int, str]
17
+ A dictionary mapping experiment IDs (uint64) to feature flag names.
18
+ Returns an empty dictionary if no feature flags are enabled for the user.
19
+ """
20
+ req = empty_pb2.Empty()
21
+ res = get_default_client().GetFeatureFlags(req)
22
+ return dict(res.enabled_feature_flags)
@@ -7,6 +7,9 @@ from .._proto.api.v0.luminarycloud.simulation.simulation_pb2 import (
7
7
  SimulationOptions,
8
8
  CreateSimulationRequest,
9
9
  )
10
+ from .._proto.api.v0.luminarycloud.simulation_template.simulation_template_pb2 import (
11
+ SimulationTemplate,
12
+ )
10
13
  from .._client import Client
11
14
  from ..enum import GPUType
12
15
 
@@ -18,8 +21,9 @@ def create_simulation(
18
21
  project_id: str,
19
22
  mesh_id: str,
20
23
  name: str,
21
- simulation_template_id: str,
24
+ simulation_template_id: Optional[str] = None,
22
25
  *,
26
+ simulation_template: Optional[SimulationTemplate] = None,
23
27
  named_variable_set_version_id: Optional[str] = None,
24
28
  description: str = "",
25
29
  batch_processing: bool = True,
@@ -32,7 +36,8 @@ def create_simulation(
32
36
  CreateSimulationRequest(
33
37
  project_id=project_id,
34
38
  mesh_id=mesh_id,
35
- simulation_template_id=simulation_template_id,
39
+ simulation_template_id=simulation_template_id or "",
40
+ simulation_template=simulation_template,
36
41
  named_variable_set_version_id=named_variable_set_version_id or "",
37
42
  name=name,
38
43
  description=description,
@@ -17,6 +17,7 @@ from .._proto.api.v0.luminarycloud.solution.solution_pb2 import (
17
17
  )
18
18
  from .._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2 import (
19
19
  GetSolutionDataPhysicsAIRequest,
20
+ SurfaceGroup,
20
21
  )
21
22
  from .._client import Client
22
23
  from ..enum.quantity_type import QuantityType
@@ -140,6 +141,7 @@ def download_solution_physics_ai(
140
141
  process_volume: bool = False,
141
142
  single_precision: bool = False,
142
143
  internal_options: Optional[Dict[str, str]] = None,
144
+ export_surface_groups: Optional[Dict[str, List[str]]] = None,
143
145
  ) -> Optional[FileChunkStream]:
144
146
  """
145
147
  Returns the download as a file-like object, or None if destination_url is provided.
@@ -165,6 +167,9 @@ def download_solution_physics_ai(
165
167
  Whether to process volume meshes during physics AI processing.
166
168
  single_precision: bool
167
169
  If True, the solution will be downloaded in single precision.
170
+ export_surface_groups: Optional[Dict[str, List[str]]]
171
+ Dictionary mapping group names to lists of surface names.
172
+ Each group will be exported as an individual STL file.
168
173
 
169
174
  Examples
170
175
  --------
@@ -173,6 +178,11 @@ def download_solution_physics_ai(
173
178
  ... fp.write(dl.read())
174
179
  """
175
180
 
181
+ surface_groups_pb = []
182
+ if export_surface_groups:
183
+ for group_name, surfaces in export_surface_groups.items():
184
+ surface_groups_pb.append(SurfaceGroup(name=group_name, surfaces=surfaces))
185
+
176
186
  request = GetSolutionDataPhysicsAIRequest(
177
187
  solution_id=solution_id,
178
188
  exclude_surfaces=exclude_surfaces or [],
@@ -186,6 +196,7 @@ def download_solution_physics_ai(
186
196
  process_volume=process_volume,
187
197
  single_precision=single_precision,
188
198
  internal_options=internal_options or {},
199
+ export_surface_groups=surface_groups_pb,
189
200
  )
190
201
  response = client.GetSolutionDataPhysicsAI(request)
191
202
 
@@ -9,6 +9,9 @@ from typing import (
9
9
  from google.protobuf.message import Message
10
10
 
11
11
  from luminarycloud.types import Vector3
12
+ from luminarycloud.types.adfloat import _to_ad_proto
13
+ from luminarycloud.types.vector3 import _to_vector3_ad_proto
14
+ from .._proto.base.base_pb2 import AdFloatType, AdVector3
12
15
 
13
16
  P = TypeVar("P", bound=Message)
14
17
  C = TypeVar("C")
@@ -36,11 +39,16 @@ class proto_decorator(Generic[P]):
36
39
  _type = type_hints.get(field.name, None)
37
40
  if _type:
38
41
  value = getattr(self, field.name)
39
- if issubclass(_type, Vector3):
40
- vector_proto = getattr(proto, field.name)
41
- vector_proto.x = value.x
42
- vector_proto.y = value.y
43
- vector_proto.z = value.z
42
+ proto_value = getattr(proto, field.name)
43
+ if issubclass(_type, float) and isinstance(proto_value, AdFloatType):
44
+ proto_value.CopyFrom(_to_ad_proto(value))
45
+ elif issubclass(_type, Vector3):
46
+ if isinstance(proto_value, AdVector3):
47
+ proto_value.CopyFrom(_to_vector3_ad_proto((value.x, value.y, value.z)))
48
+ else:
49
+ proto_value.x = value.x
50
+ proto_value.y = value.y
51
+ proto_value.z = value.z
44
52
  else:
45
53
  setattr(proto, field.name, value)
46
54
  return proto
@@ -0,0 +1,55 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: proto/api/v0/luminarycloud/feature_flag/feature_flag.proto
4
+ """Generated protocol buffer code."""
5
+ from google.protobuf import descriptor as _descriptor
6
+ from google.protobuf import descriptor_pool as _descriptor_pool
7
+ from google.protobuf import message as _message
8
+ from google.protobuf import reflection as _reflection
9
+ from google.protobuf import symbol_database as _symbol_database
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
16
+ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
17
+
18
+
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n:proto/api/v0/luminarycloud/feature_flag/feature_flag.proto\x12\x30luminary.proto.api.v0.luminarycloud.feature_flag\x1a\x1cgoogle/api/annotations.proto\x1a\x1bgoogle/protobuf/empty.proto\"\xd9\x01\n\x17GetFeatureFlagsResponse\x12\x81\x01\n\x15\x65nabled_feature_flags\x18\x01 \x03(\x0b\x32\x62.luminary.proto.api.v0.luminarycloud.feature_flag.GetFeatureFlagsResponse.EnabledFeatureFlagsEntry\x1a:\n\x18\x45nabledFeatureFlagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x32\xa6\x01\n\x12\x46\x65\x61tureFlagService\x12\x8f\x01\n\x0fGetFeatureFlags\x12\x16.google.protobuf.Empty\x1aI.luminary.proto.api.v0.luminarycloud.feature_flag.GetFeatureFlagsResponse\"\x19\x82\xd3\xe4\x93\x02\x13\x12\x11/v0/feature_flagsB@Z>luminarycloud.com/core/proto/api/v0/luminarycloud/feature_flagb\x06proto3')
20
+
21
+
22
+
23
+ _GETFEATUREFLAGSRESPONSE = DESCRIPTOR.message_types_by_name['GetFeatureFlagsResponse']
24
+ _GETFEATUREFLAGSRESPONSE_ENABLEDFEATUREFLAGSENTRY = _GETFEATUREFLAGSRESPONSE.nested_types_by_name['EnabledFeatureFlagsEntry']
25
+ GetFeatureFlagsResponse = _reflection.GeneratedProtocolMessageType('GetFeatureFlagsResponse', (_message.Message,), {
26
+
27
+ 'EnabledFeatureFlagsEntry' : _reflection.GeneratedProtocolMessageType('EnabledFeatureFlagsEntry', (_message.Message,), {
28
+ 'DESCRIPTOR' : _GETFEATUREFLAGSRESPONSE_ENABLEDFEATUREFLAGSENTRY,
29
+ '__module__' : 'proto.api.v0.luminarycloud.feature_flag.feature_flag_pb2'
30
+ # @@protoc_insertion_point(class_scope:luminary.proto.api.v0.luminarycloud.feature_flag.GetFeatureFlagsResponse.EnabledFeatureFlagsEntry)
31
+ })
32
+ ,
33
+ 'DESCRIPTOR' : _GETFEATUREFLAGSRESPONSE,
34
+ '__module__' : 'proto.api.v0.luminarycloud.feature_flag.feature_flag_pb2'
35
+ # @@protoc_insertion_point(class_scope:luminary.proto.api.v0.luminarycloud.feature_flag.GetFeatureFlagsResponse)
36
+ })
37
+ _sym_db.RegisterMessage(GetFeatureFlagsResponse)
38
+ _sym_db.RegisterMessage(GetFeatureFlagsResponse.EnabledFeatureFlagsEntry)
39
+
40
+ _FEATUREFLAGSERVICE = DESCRIPTOR.services_by_name['FeatureFlagService']
41
+ if _descriptor._USE_C_DESCRIPTORS == False:
42
+
43
+ DESCRIPTOR._options = None
44
+ DESCRIPTOR._serialized_options = b'Z>luminarycloud.com/core/proto/api/v0/luminarycloud/feature_flag'
45
+ _GETFEATUREFLAGSRESPONSE_ENABLEDFEATUREFLAGSENTRY._options = None
46
+ _GETFEATUREFLAGSRESPONSE_ENABLEDFEATUREFLAGSENTRY._serialized_options = b'8\001'
47
+ _FEATUREFLAGSERVICE.methods_by_name['GetFeatureFlags']._options = None
48
+ _FEATUREFLAGSERVICE.methods_by_name['GetFeatureFlags']._serialized_options = b'\202\323\344\223\002\023\022\021/v0/feature_flags'
49
+ _GETFEATUREFLAGSRESPONSE._serialized_start=172
50
+ _GETFEATUREFLAGSRESPONSE._serialized_end=389
51
+ _GETFEATUREFLAGSRESPONSE_ENABLEDFEATUREFLAGSENTRY._serialized_start=331
52
+ _GETFEATUREFLAGSRESPONSE_ENABLEDFEATUREFLAGSENTRY._serialized_end=389
53
+ _FEATUREFLAGSERVICE._serialized_start=392
54
+ _FEATUREFLAGSERVICE._serialized_end=558
55
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,52 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import builtins
6
+ import collections.abc
7
+ import google.protobuf.descriptor
8
+ import google.protobuf.internal.containers
9
+ import google.protobuf.message
10
+ import sys
11
+
12
+ if sys.version_info >= (3, 8):
13
+ import typing as typing_extensions
14
+ else:
15
+ import typing_extensions
16
+
17
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
18
+
19
+ class GetFeatureFlagsResponse(google.protobuf.message.Message):
20
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
21
+
22
+ class EnabledFeatureFlagsEntry(google.protobuf.message.Message):
23
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
24
+
25
+ KEY_FIELD_NUMBER: builtins.int
26
+ VALUE_FIELD_NUMBER: builtins.int
27
+ key: builtins.int
28
+ value: builtins.str
29
+ def __init__(
30
+ self,
31
+ *,
32
+ key: builtins.int = ...,
33
+ value: builtins.str = ...,
34
+ ) -> None: ...
35
+ def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...
36
+
37
+ ENABLED_FEATURE_FLAGS_FIELD_NUMBER: builtins.int
38
+ @property
39
+ def enabled_feature_flags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.int, builtins.str]:
40
+ """Map of enabled feature flags where:
41
+ - Key: experiment ID (uint64)
42
+ - Value: feature flag name (string)
43
+ Returns an empty map if no feature flags are enabled for the user.
44
+ """
45
+ def __init__(
46
+ self,
47
+ *,
48
+ enabled_feature_flags: collections.abc.Mapping[builtins.int, builtins.str] | None = ...,
49
+ ) -> None: ...
50
+ def ClearField(self, field_name: typing_extensions.Literal["enabled_feature_flags", b"enabled_feature_flags"]) -> None: ...
51
+
52
+ global___GetFeatureFlagsResponse = GetFeatureFlagsResponse
@@ -0,0 +1,72 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
5
+ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
6
+ from luminarycloud._proto.api.v0.luminarycloud.feature_flag import feature_flag_pb2 as proto_dot_api_dot_v0_dot_luminarycloud_dot_feature__flag_dot_feature__flag__pb2
7
+
8
+
9
+ class FeatureFlagServiceStub(object):
10
+ """Manages feature flags for internal users.
11
+ """
12
+
13
+ def __init__(self, channel):
14
+ """Constructor.
15
+
16
+ Args:
17
+ channel: A grpc.Channel.
18
+ """
19
+ self.GetFeatureFlags = channel.unary_unary(
20
+ '/luminary.proto.api.v0.luminarycloud.feature_flag.FeatureFlagService/GetFeatureFlags',
21
+ request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
22
+ response_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_feature__flag_dot_feature__flag__pb2.GetFeatureFlagsResponse.FromString,
23
+ )
24
+
25
+
26
+ class FeatureFlagServiceServicer(object):
27
+ """Manages feature flags for internal users.
28
+ """
29
+
30
+ def GetFeatureFlags(self, request, context):
31
+ """Gets all enabled feature flags for the authenticated user.
32
+ Feature flags are used to control access to experimental and internal features.
33
+ """
34
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
35
+ context.set_details('Method not implemented!')
36
+ raise NotImplementedError('Method not implemented!')
37
+
38
+
39
+ def add_FeatureFlagServiceServicer_to_server(servicer, server):
40
+ rpc_method_handlers = {
41
+ 'GetFeatureFlags': grpc.unary_unary_rpc_method_handler(
42
+ servicer.GetFeatureFlags,
43
+ request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
44
+ response_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_feature__flag_dot_feature__flag__pb2.GetFeatureFlagsResponse.SerializeToString,
45
+ ),
46
+ }
47
+ generic_handler = grpc.method_handlers_generic_handler(
48
+ 'luminary.proto.api.v0.luminarycloud.feature_flag.FeatureFlagService', rpc_method_handlers)
49
+ server.add_generic_rpc_handlers((generic_handler,))
50
+
51
+
52
+ # This class is part of an EXPERIMENTAL API.
53
+ class FeatureFlagService(object):
54
+ """Manages feature flags for internal users.
55
+ """
56
+
57
+ @staticmethod
58
+ def GetFeatureFlags(request,
59
+ target,
60
+ options=(),
61
+ channel_credentials=None,
62
+ call_credentials=None,
63
+ insecure=False,
64
+ compression=None,
65
+ wait_for_ready=None,
66
+ timeout=None,
67
+ metadata=None):
68
+ return grpc.experimental.unary_unary(request, target, '/luminary.proto.api.v0.luminarycloud.feature_flag.FeatureFlagService/GetFeatureFlags',
69
+ google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
70
+ proto_dot_api_dot_v0_dot_luminarycloud_dot_feature__flag_dot_feature__flag__pb2.GetFeatureFlagsResponse.FromString,
71
+ options, channel_credentials,
72
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)