dlubal.api 0.1.294487b1__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.

Potentially problematic release.


This version of dlubal.api might be problematic. Click here for more details.

Files changed (348) hide show
  1. dlubal_api-0.1.294487b1/PKG-INFO +40 -0
  2. dlubal_api-0.1.294487b1/README.md +15 -0
  3. dlubal_api-0.1.294487b1/dlubal/__init__.py +0 -0
  4. dlubal_api-0.1.294487b1/dlubal/api/__init__.py +0 -0
  5. dlubal_api-0.1.294487b1/dlubal/api/common/__init__.py +3 -0
  6. dlubal_api-0.1.294487b1/dlubal/api/common/common_pb2.py +42 -0
  7. dlubal_api-0.1.294487b1/dlubal/api/common/common_pb2.pyi +41 -0
  8. dlubal_api-0.1.294487b1/dlubal/api/common/connection.py +251 -0
  9. dlubal_api-0.1.294487b1/dlubal/api/common/exceptions.py +12 -0
  10. dlubal_api-0.1.294487b1/dlubal/api/common/model_id_pb2.py +38 -0
  11. dlubal_api-0.1.294487b1/dlubal/api/common/model_id_pb2.pyi +17 -0
  12. dlubal_api-0.1.294487b1/dlubal/api/common/table.py +35 -0
  13. dlubal_api-0.1.294487b1/dlubal/api/common/table_data_pb2.py +39 -0
  14. dlubal_api-0.1.294487b1/dlubal/api/common/table_data_pb2.pyi +21 -0
  15. dlubal_api-0.1.294487b1/dlubal/api/rfem/__init__.py +32 -0
  16. dlubal_api-0.1.294487b1/dlubal/api/rfem/aluminum_design_objects/__init__.py +2 -0
  17. dlubal_api-0.1.294487b1/dlubal/api/rfem/aluminum_design_objects/aluminum_design_sls_configuration_pb2.py +36 -0
  18. dlubal_api-0.1.294487b1/dlubal/api/rfem/aluminum_design_objects/aluminum_design_sls_configuration_pb2.pyi +30 -0
  19. dlubal_api-0.1.294487b1/dlubal/api/rfem/aluminum_design_objects/aluminum_design_uls_configuration_pb2.py +36 -0
  20. dlubal_api-0.1.294487b1/dlubal/api/rfem/aluminum_design_objects/aluminum_design_uls_configuration_pb2.pyi +30 -0
  21. dlubal_api-0.1.294487b1/dlubal/api/rfem/application.py +320 -0
  22. dlubal_api-0.1.294487b1/dlubal/api/rfem/application_pb2.py +67 -0
  23. dlubal_api-0.1.294487b1/dlubal/api/rfem/application_pb2.pyi +135 -0
  24. dlubal_api-0.1.294487b1/dlubal/api/rfem/application_pb2_grpc.py +973 -0
  25. dlubal_api-0.1.294487b1/dlubal/api/rfem/base_data/__init__.py +1 -0
  26. dlubal_api-0.1.294487b1/dlubal/api/rfem/base_data/terrain_pb2.py +40 -0
  27. dlubal_api-0.1.294487b1/dlubal/api/rfem/base_data/terrain_pb2.pyi +53 -0
  28. dlubal_api-0.1.294487b1/dlubal/api/rfem/building_model/__init__.py +4 -0
  29. dlubal_api-0.1.294487b1/dlubal/api/rfem/building_model/building_story_pb2.py +54 -0
  30. dlubal_api-0.1.294487b1/dlubal/api/rfem/building_model/building_story_pb2.pyi +151 -0
  31. dlubal_api-0.1.294487b1/dlubal/api/rfem/building_model/deep_beam_pb2.py +41 -0
  32. dlubal_api-0.1.294487b1/dlubal/api/rfem/building_model/deep_beam_pb2.pyi +73 -0
  33. dlubal_api-0.1.294487b1/dlubal/api/rfem/building_model/floor_set_pb2.py +39 -0
  34. dlubal_api-0.1.294487b1/dlubal/api/rfem/building_model/floor_set_pb2.pyi +59 -0
  35. dlubal_api-0.1.294487b1/dlubal/api/rfem/building_model/shear_wall_pb2.py +41 -0
  36. dlubal_api-0.1.294487b1/dlubal/api/rfem/building_model/shear_wall_pb2.pyi +73 -0
  37. dlubal_api-0.1.294487b1/dlubal/api/rfem/calculation_diagrams/__init__.py +1 -0
  38. dlubal_api-0.1.294487b1/dlubal/api/rfem/calculation_diagrams/calculation_diagram_pb2.py +50 -0
  39. dlubal_api-0.1.294487b1/dlubal/api/rfem/calculation_diagrams/calculation_diagram_pb2.pyi +1694 -0
  40. dlubal_api-0.1.294487b1/dlubal/api/rfem/concrete_design_objects/__init__.py +2 -0
  41. dlubal_api-0.1.294487b1/dlubal/api/rfem/concrete_design_objects/concrete_design_sls_configuration_pb2.py +36 -0
  42. dlubal_api-0.1.294487b1/dlubal/api/rfem/concrete_design_objects/concrete_design_sls_configuration_pb2.pyi +46 -0
  43. dlubal_api-0.1.294487b1/dlubal/api/rfem/concrete_design_objects/concrete_design_uls_configuration_pb2.py +36 -0
  44. dlubal_api-0.1.294487b1/dlubal/api/rfem/concrete_design_objects/concrete_design_uls_configuration_pb2.pyi +46 -0
  45. dlubal_api-0.1.294487b1/dlubal/api/rfem/construction_stages/__init__.py +1 -0
  46. dlubal_api-0.1.294487b1/dlubal/api/rfem/construction_stages/construction_stage_pb2.py +46 -0
  47. dlubal_api-0.1.294487b1/dlubal/api/rfem/construction_stages/construction_stage_pb2.pyi +176 -0
  48. dlubal_api-0.1.294487b1/dlubal/api/rfem/dynamic_loads/__init__.py +2 -0
  49. dlubal_api-0.1.294487b1/dlubal/api/rfem/dynamic_loads/accelerogram_pb2.py +40 -0
  50. dlubal_api-0.1.294487b1/dlubal/api/rfem/dynamic_loads/accelerogram_pb2.pyi +51 -0
  51. dlubal_api-0.1.294487b1/dlubal/api/rfem/dynamic_loads/response_spectrum_pb2.py +42 -0
  52. dlubal_api-0.1.294487b1/dlubal/api/rfem/dynamic_loads/response_spectrum_pb2.pyi +72 -0
  53. dlubal_api-0.1.294487b1/dlubal/api/rfem/geotechnical_analysis/__init__.py +2 -0
  54. dlubal_api-0.1.294487b1/dlubal/api/rfem/geotechnical_analysis/borehole_pb2.py +41 -0
  55. dlubal_api-0.1.294487b1/dlubal/api/rfem/geotechnical_analysis/borehole_pb2.pyi +54 -0
  56. dlubal_api-0.1.294487b1/dlubal/api/rfem/geotechnical_analysis/soil_massif_pb2.py +47 -0
  57. dlubal_api-0.1.294487b1/dlubal/api/rfem/geotechnical_analysis/soil_massif_pb2.pyi +119 -0
  58. dlubal_api-0.1.294487b1/dlubal/api/rfem/global_parameters/__init__.py +1 -0
  59. dlubal_api-0.1.294487b1/dlubal/api/rfem/global_parameters/global_parameter_pb2.py +40 -0
  60. dlubal_api-0.1.294487b1/dlubal/api/rfem/global_parameters/global_parameter_pb2.pyi +284 -0
  61. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/__init__.py +10 -0
  62. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/building_grid_pb2.py +53 -0
  63. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/building_grid_pb2.pyi +219 -0
  64. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/clipping_box_pb2.py +37 -0
  65. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/clipping_box_pb2.pyi +40 -0
  66. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/clipping_plane_pb2.py +45 -0
  67. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/clipping_plane_pb2.pyi +116 -0
  68. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/coordinate_system_pb2.py +41 -0
  69. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/coordinate_system_pb2.pyi +93 -0
  70. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/dimension_pb2.py +61 -0
  71. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/dimension_pb2.pyi +245 -0
  72. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/dxf_file_model_object_pb2.py +41 -0
  73. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/dxf_file_model_object_pb2.pyi +119 -0
  74. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/dxf_model_object_pb2.py +36 -0
  75. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/dxf_model_object_pb2.pyi +15 -0
  76. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/note_pb2.py +45 -0
  77. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/note_pb2.pyi +129 -0
  78. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/object_snap_pb2.py +38 -0
  79. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/object_snap_pb2.pyi +85 -0
  80. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/visual_object_pb2.py +43 -0
  81. dlubal_api-0.1.294487b1/dlubal/api/rfem/guide_objects/visual_object_pb2.pyi +129 -0
  82. dlubal_api-0.1.294487b1/dlubal/api/rfem/imperfections/__init__.py +5 -0
  83. dlubal_api-0.1.294487b1/dlubal/api/rfem/imperfections/imperfection_case_pb2.py +50 -0
  84. dlubal_api-0.1.294487b1/dlubal/api/rfem/imperfections/imperfection_case_pb2.pyi +158 -0
  85. dlubal_api-0.1.294487b1/dlubal/api/rfem/imperfections/member_imperfection_pb2.py +48 -0
  86. dlubal_api-0.1.294487b1/dlubal/api/rfem/imperfections/member_imperfection_pb2.pyi +205 -0
  87. dlubal_api-0.1.294487b1/dlubal/api/rfem/imperfections/member_set_imperfection_pb2.py +48 -0
  88. dlubal_api-0.1.294487b1/dlubal/api/rfem/imperfections/member_set_imperfection_pb2.pyi +203 -0
  89. dlubal_api-0.1.294487b1/dlubal/api/rfem/imperfections/surface_imperfection_pb2.py +40 -0
  90. dlubal_api-0.1.294487b1/dlubal/api/rfem/imperfections/surface_imperfection_pb2.pyi +55 -0
  91. dlubal_api-0.1.294487b1/dlubal/api/rfem/imperfections/surface_set_imperfection_pb2.py +40 -0
  92. dlubal_api-0.1.294487b1/dlubal/api/rfem/imperfections/surface_set_imperfection_pb2.pyi +55 -0
  93. dlubal_api-0.1.294487b1/dlubal/api/rfem/load_wizards/__init__.py +2 -0
  94. dlubal_api-0.1.294487b1/dlubal/api/rfem/load_wizards/wind_profile_pb2.py +44 -0
  95. dlubal_api-0.1.294487b1/dlubal/api/rfem/load_wizards/wind_profile_pb2.pyi +727 -0
  96. dlubal_api-0.1.294487b1/dlubal/api/rfem/load_wizards/wind_simulation_pb2.py +46 -0
  97. dlubal_api-0.1.294487b1/dlubal/api/rfem/load_wizards/wind_simulation_pb2.pyi +84 -0
  98. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/__init__.py +15 -0
  99. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/action_combination_pb2.py +40 -0
  100. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/action_combination_pb2.pyi +58 -0
  101. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/action_pb2.py +42 -0
  102. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/action_pb2.pyi +80 -0
  103. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/combination_wizard_pb2.py +40 -0
  104. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/combination_wizard_pb2.pyi +65 -0
  105. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/design_situation_pb2.py +38 -0
  106. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/design_situation_pb2.pyi +41 -0
  107. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/load_case_pb2.py +77 -0
  108. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/load_case_pb2.pyi +489 -0
  109. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/load_combination_pb2.py +48 -0
  110. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/load_combination_pb2.pyi +150 -0
  111. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/modal_analysis_settings_pb2.py +48 -0
  112. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/modal_analysis_settings_pb2.pyi +115 -0
  113. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/optimization_settings_pb2.py +42 -0
  114. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/optimization_settings_pb2.pyi +72 -0
  115. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/pushover_analysis_settings_pb2.py +38 -0
  116. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/pushover_analysis_settings_pb2.pyi +51 -0
  117. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/relationship_between_load_cases_pb2.py +40 -0
  118. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/relationship_between_load_cases_pb2.pyi +36 -0
  119. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/result_combination_pb2.py +42 -0
  120. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/result_combination_pb2.pyi +74 -0
  121. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/spectral_analysis_settings_pb2.py +46 -0
  122. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/spectral_analysis_settings_pb2.pyi +91 -0
  123. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/stability_analysis_settings_pb2.py +44 -0
  124. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/stability_analysis_settings_pb2.pyi +118 -0
  125. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/static_analysis_settings_pb2.py +46 -0
  126. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/static_analysis_settings_pb2.pyi +159 -0
  127. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/wind_simulation_analysis_settings_pb2.py +48 -0
  128. dlubal_api-0.1.294487b1/dlubal/api/rfem/loading/wind_simulation_analysis_settings_pb2.pyi +150 -0
  129. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/__init__.py +17 -0
  130. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/free_circular_load_pb2.py +42 -0
  131. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/free_circular_load_pb2.pyi +100 -0
  132. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/free_concentrated_load_pb2.py +42 -0
  133. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/free_concentrated_load_pb2.pyi +84 -0
  134. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/free_line_load_pb2.py +42 -0
  135. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/free_line_load_pb2.pyi +104 -0
  136. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/free_polygon_load_pb2.py +44 -0
  137. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/free_polygon_load_pb2.pyi +112 -0
  138. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/free_rectangular_load_pb2.py +49 -0
  139. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/free_rectangular_load_pb2.pyi +166 -0
  140. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/imposed_line_deformation_pb2.py +37 -0
  141. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/imposed_line_deformation_pb2.pyi +47 -0
  142. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/imposed_nodal_deformation_pb2.py +37 -0
  143. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/imposed_nodal_deformation_pb2.pyi +43 -0
  144. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/line_load_pb2.py +46 -0
  145. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/line_load_pb2.pyi +155 -0
  146. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/line_set_load_pb2.py +46 -0
  147. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/line_set_load_pb2.pyi +155 -0
  148. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/member_load_pb2.py +67 -0
  149. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/member_load_pb2.pyi +390 -0
  150. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/member_set_load_pb2.py +67 -0
  151. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/member_set_load_pb2.pyi +388 -0
  152. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/nodal_load_pb2.py +47 -0
  153. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/nodal_load_pb2.pyi +207 -0
  154. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/opening_load_pb2.py +42 -0
  155. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/opening_load_pb2.pyi +84 -0
  156. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/solid_load_pb2.py +53 -0
  157. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/solid_load_pb2.pyi +180 -0
  158. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/solid_set_load_pb2.py +53 -0
  159. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/solid_set_load_pb2.pyi +180 -0
  160. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/surface_load_pb2.py +57 -0
  161. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/surface_load_pb2.pyi +285 -0
  162. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/surface_set_load_pb2.py +57 -0
  163. dlubal_api-0.1.294487b1/dlubal/api/rfem/loads/surface_set_load_pb2.pyi +285 -0
  164. dlubal_api-0.1.294487b1/dlubal/api/rfem/packing.py +45 -0
  165. dlubal_api-0.1.294487b1/dlubal/api/rfem/result_objects/__init__.py +1 -0
  166. dlubal_api-0.1.294487b1/dlubal/api/rfem/result_objects/result_section_pb2.py +43 -0
  167. dlubal_api-0.1.294487b1/dlubal/api/rfem/result_objects/result_section_pb2.pyi +119 -0
  168. dlubal_api-0.1.294487b1/dlubal/api/rfem/results/__init__.py +2 -0
  169. dlubal_api-0.1.294487b1/dlubal/api/rfem/results/results_id_pb2.py +36 -0
  170. dlubal_api-0.1.294487b1/dlubal/api/rfem/results/results_id_pb2.pyi +14 -0
  171. dlubal_api-0.1.294487b1/dlubal/api/rfem/results/results_query_pb2.py +40 -0
  172. dlubal_api-0.1.294487b1/dlubal/api/rfem/results/results_query_pb2.pyi +26 -0
  173. dlubal_api-0.1.294487b1/dlubal/api/rfem/steel_design_objects/__init__.py +4 -0
  174. dlubal_api-0.1.294487b1/dlubal/api/rfem/steel_design_objects/steel_design_fr_configuration_pb2.py +36 -0
  175. dlubal_api-0.1.294487b1/dlubal/api/rfem/steel_design_objects/steel_design_fr_configuration_pb2.pyi +30 -0
  176. dlubal_api-0.1.294487b1/dlubal/api/rfem/steel_design_objects/steel_design_seismic_configuration_pb2.py +36 -0
  177. dlubal_api-0.1.294487b1/dlubal/api/rfem/steel_design_objects/steel_design_seismic_configuration_pb2.pyi +30 -0
  178. dlubal_api-0.1.294487b1/dlubal/api/rfem/steel_design_objects/steel_design_sls_configuration_pb2.py +36 -0
  179. dlubal_api-0.1.294487b1/dlubal/api/rfem/steel_design_objects/steel_design_sls_configuration_pb2.pyi +30 -0
  180. dlubal_api-0.1.294487b1/dlubal/api/rfem/steel_design_objects/steel_design_uls_configuration_pb2.py +36 -0
  181. dlubal_api-0.1.294487b1/dlubal/api/rfem/steel_design_objects/steel_design_uls_configuration_pb2.pyi +30 -0
  182. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_advanced/__init__.py +9 -0
  183. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_advanced/block_pb2.py +51 -0
  184. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_advanced/block_pb2.pyi +180 -0
  185. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_advanced/intersection_pb2.py +36 -0
  186. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_advanced/intersection_pb2.pyi +26 -0
  187. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_advanced/line_release_pb2.py +40 -0
  188. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_advanced/line_release_pb2.pyi +56 -0
  189. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_advanced/nodal_release_pb2.py +38 -0
  190. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_advanced/nodal_release_pb2.pyi +46 -0
  191. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_advanced/rigid_link_pb2.py +41 -0
  192. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_advanced/rigid_link_pb2.pyi +104 -0
  193. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_advanced/structure_modification_pb2.py +56 -0
  194. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_advanced/structure_modification_pb2.pyi +161 -0
  195. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_advanced/surface_release_pb2.py +38 -0
  196. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_advanced/surface_release_pb2.pyi +50 -0
  197. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_advanced/surface_results_adjustment_pb2.py +55 -0
  198. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_advanced/surface_results_adjustment_pb2.pyi +140 -0
  199. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_advanced/surfaces_contact_pb2.py +36 -0
  200. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_advanced/surfaces_contact_pb2.pyi +24 -0
  201. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/__init__.py +15 -0
  202. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/line_pb2.py +53 -0
  203. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/line_pb2.pyi +298 -0
  204. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/line_set_pb2.py +39 -0
  205. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/line_set_pb2.pyi +53 -0
  206. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/material_pb2.py +100 -0
  207. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/material_pb2.pyi +955 -0
  208. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/member_pb2.py +79 -0
  209. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/member_pb2.pyi +566 -0
  210. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/member_representative_pb2.py +83 -0
  211. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/member_representative_pb2.pyi +590 -0
  212. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/member_set_pb2.py +53 -0
  213. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/member_set_pb2.pyi +225 -0
  214. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/member_set_representative_pb2.py +99 -0
  215. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/member_set_representative_pb2.pyi +811 -0
  216. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/node_pb2.py +43 -0
  217. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/node_pb2.pyi +142 -0
  218. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/opening_pb2.py +37 -0
  219. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/opening_pb2.pyi +41 -0
  220. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/section_pb2.py +66 -0
  221. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/section_pb2.pyi +1939 -0
  222. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/solid_pb2.py +53 -0
  223. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/solid_pb2.pyi +212 -0
  224. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/solid_set_pb2.py +39 -0
  225. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/solid_set_pb2.pyi +55 -0
  226. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/surface_pb2.py +67 -0
  227. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/surface_pb2.pyi +473 -0
  228. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/surface_set_pb2.py +47 -0
  229. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/surface_set_pb2.pyi +164 -0
  230. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/thickness_pb2.py +64 -0
  231. dlubal_api-0.1.294487b1/dlubal/api/rfem/structure_core/thickness_pb2.pyi +479 -0
  232. dlubal_api-0.1.294487b1/dlubal/api/rfem/timber_design_objects/__init__.py +3 -0
  233. dlubal_api-0.1.294487b1/dlubal/api/rfem/timber_design_objects/timber_design_fr_configuration_pb2.py +36 -0
  234. dlubal_api-0.1.294487b1/dlubal/api/rfem/timber_design_objects/timber_design_fr_configuration_pb2.pyi +30 -0
  235. dlubal_api-0.1.294487b1/dlubal/api/rfem/timber_design_objects/timber_design_sls_configuration_pb2.py +36 -0
  236. dlubal_api-0.1.294487b1/dlubal/api/rfem/timber_design_objects/timber_design_sls_configuration_pb2.pyi +30 -0
  237. dlubal_api-0.1.294487b1/dlubal/api/rfem/timber_design_objects/timber_design_uls_configuration_pb2.py +36 -0
  238. dlubal_api-0.1.294487b1/dlubal/api/rfem/timber_design_objects/timber_design_uls_configuration_pb2.pyi +30 -0
  239. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_aluminum_design/__init__.py +3 -0
  240. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_aluminum_design/aluminum_effective_lengths_pb2.py +56 -0
  241. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_aluminum_design/aluminum_effective_lengths_pb2.pyi +150 -0
  242. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_aluminum_design/aluminum_member_local_section_reduction_pb2.py +38 -0
  243. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_aluminum_design/aluminum_member_local_section_reduction_pb2.pyi +36 -0
  244. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_aluminum_design/aluminum_member_transverse_weld_pb2.py +38 -0
  245. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_aluminum_design/aluminum_member_transverse_weld_pb2.pyi +36 -0
  246. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_concrete_design/__init__.py +5 -0
  247. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_concrete_design/concrete_durability_pb2.py +68 -0
  248. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_concrete_design/concrete_durability_pb2.pyi +269 -0
  249. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_concrete_design/concrete_effective_lengths_pb2.py +66 -0
  250. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_concrete_design/concrete_effective_lengths_pb2.pyi +186 -0
  251. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_concrete_design/punching_reinforcement_pb2.py +52 -0
  252. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_concrete_design/punching_reinforcement_pb2.pyi +196 -0
  253. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_concrete_design/reinforcement_direction_pb2.py +38 -0
  254. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_concrete_design/reinforcement_direction_pb2.pyi +48 -0
  255. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_concrete_design/surface_reinforcement_pb2.py +72 -0
  256. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_concrete_design/surface_reinforcement_pb2.pyi +560 -0
  257. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_lines/__init__.py +4 -0
  258. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_lines/line_hinge_pb2.py +103 -0
  259. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_lines/line_hinge_pb2.pyi +610 -0
  260. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_lines/line_mesh_refinement_pb2.py +38 -0
  261. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_lines/line_mesh_refinement_pb2.pyi +50 -0
  262. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_lines/line_support_pb2.py +127 -0
  263. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_lines/line_support_pb2.pyi +883 -0
  264. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_lines/line_welded_joint_pb2.py +42 -0
  265. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_lines/line_welded_joint_pb2.pyi +93 -0
  266. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/__init__.py +13 -0
  267. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/design_support_pb2.py +50 -0
  268. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/design_support_pb2.pyi +166 -0
  269. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_definable_stiffness_pb2.py +36 -0
  270. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_definable_stiffness_pb2.pyi +52 -0
  271. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_eccentricity_pb2.py +49 -0
  272. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_eccentricity_pb2.pyi +117 -0
  273. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_hinge_pb2.py +151 -0
  274. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_hinge_pb2.pyi +1226 -0
  275. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_nonlinearity_pb2.py +38 -0
  276. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_nonlinearity_pb2.pyi +62 -0
  277. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_openings_pb2.py +38 -0
  278. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_openings_pb2.pyi +36 -0
  279. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_result_intermediate_point_pb2.py +38 -0
  280. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_result_intermediate_point_pb2.pyi +40 -0
  281. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_rotational_restraint_pb2.py +48 -0
  282. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_rotational_restraint_pb2.pyi +111 -0
  283. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_shear_panel_pb2.py +40 -0
  284. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_shear_panel_pb2.pyi +82 -0
  285. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_spring_pb2.py +50 -0
  286. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_spring_pb2.pyi +139 -0
  287. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_stiffness_modification_pb2.py +46 -0
  288. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_stiffness_modification_pb2.pyi +130 -0
  289. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_support_pb2.py +49 -0
  290. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_support_pb2.pyi +162 -0
  291. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_transverse_stiffener_pb2.py +38 -0
  292. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_members/member_transverse_stiffener_pb2.pyi +36 -0
  293. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_nodes/__init__.py +2 -0
  294. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_nodes/nodal_mesh_refinement_pb2.py +40 -0
  295. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_nodes/nodal_mesh_refinement_pb2.pyi +65 -0
  296. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_nodes/nodal_support_pb2.py +171 -0
  297. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_nodes/nodal_support_pb2.pyi +1202 -0
  298. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_solids/__init__.py +3 -0
  299. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_solids/solid_contacts_pb2.py +40 -0
  300. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_solids/solid_contacts_pb2.pyi +61 -0
  301. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_solids/solid_gas_pb2.py +36 -0
  302. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_solids/solid_gas_pb2.pyi +28 -0
  303. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_solids/solid_mesh_refinement_pb2.py +36 -0
  304. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_solids/solid_mesh_refinement_pb2.pyi +30 -0
  305. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_special_objects/__init__.py +4 -0
  306. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_special_objects/line_release_type_pb2.py +105 -0
  307. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_special_objects/line_release_type_pb2.pyi +661 -0
  308. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_special_objects/nodal_release_type_pb2.py +110 -0
  309. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_special_objects/nodal_release_type_pb2.pyi +732 -0
  310. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_special_objects/surface_release_type_pb2.py +69 -0
  311. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_special_objects/surface_release_type_pb2.pyi +306 -0
  312. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_special_objects/surfaces_contact_type_pb2.py +44 -0
  313. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_special_objects/surfaces_contact_type_pb2.pyi +81 -0
  314. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_steel_design/__init__.py +3 -0
  315. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_steel_design/steel_boundary_conditions_pb2.py +42 -0
  316. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_steel_design/steel_boundary_conditions_pb2.pyi +60 -0
  317. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_steel_design/steel_effective_lengths_pb2.py +90 -0
  318. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_steel_design/steel_effective_lengths_pb2.pyi +337 -0
  319. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_steel_design/steel_member_local_section_reduction_pb2.py +38 -0
  320. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_steel_design/steel_member_local_section_reduction_pb2.pyi +36 -0
  321. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_surfaces/__init__.py +4 -0
  322. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_surfaces/surface_eccentricity_pb2.py +42 -0
  323. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_surfaces/surface_eccentricity_pb2.pyi +74 -0
  324. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_surfaces/surface_mesh_refinement_pb2.py +36 -0
  325. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_surfaces/surface_mesh_refinement_pb2.pyi +30 -0
  326. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_surfaces/surface_stiffness_modification_pb2.py +40 -0
  327. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_surfaces/surface_stiffness_modification_pb2.pyi +157 -0
  328. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_surfaces/surface_support_pb2.py +43 -0
  329. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_surfaces/surface_support_pb2.pyi +83 -0
  330. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_timber_design/__init__.py +5 -0
  331. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_timber_design/timber_effective_lengths_pb2.py +56 -0
  332. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_timber_design/timber_effective_lengths_pb2.pyi +139 -0
  333. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_timber_design/timber_member_local_section_reduction_pb2.py +38 -0
  334. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_timber_design/timber_member_local_section_reduction_pb2.pyi +36 -0
  335. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_timber_design/timber_moisture_class_pb2.py +38 -0
  336. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_timber_design/timber_moisture_class_pb2.pyi +46 -0
  337. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_timber_design/timber_service_class_pb2.py +38 -0
  338. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_timber_design/timber_service_class_pb2.pyi +46 -0
  339. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_timber_design/timber_service_conditions_pb2.py +42 -0
  340. dlubal_api-0.1.294487b1/dlubal/api/rfem/types_for_timber_design/timber_service_conditions_pb2.pyi +110 -0
  341. dlubal_api-0.1.294487b1/dlubal.api.egg-info/PKG-INFO +40 -0
  342. dlubal_api-0.1.294487b1/dlubal.api.egg-info/SOURCES.txt +684 -0
  343. dlubal_api-0.1.294487b1/dlubal.api.egg-info/dependency_links.txt +1 -0
  344. dlubal_api-0.1.294487b1/dlubal.api.egg-info/not-zip-safe +1 -0
  345. dlubal_api-0.1.294487b1/dlubal.api.egg-info/requires.txt +3 -0
  346. dlubal_api-0.1.294487b1/dlubal.api.egg-info/top_level.txt +1 -0
  347. dlubal_api-0.1.294487b1/setup.cfg +4 -0
  348. dlubal_api-0.1.294487b1/setup.py +42 -0
@@ -0,0 +1,40 @@
1
+ Metadata-Version: 2.2
2
+ Name: dlubal.api
3
+ Version: 0.1.294487b1
4
+ Summary: Python Client Library for Dlubal Software APIs powered by gRPC
5
+ Author: Dlubal Software
6
+ Author-email: api@dlubal.com
7
+ License: MIT
8
+ Classifier: License :: OSI Approved :: MIT License
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python :: 3.10
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Description-Content-Type: text/markdown
14
+ Requires-Dist: grpcio==1.68.0
15
+ Requires-Dist: grpcio-tools==1.68.0
16
+ Requires-Dist: pandas==2.2.3
17
+ Dynamic: author
18
+ Dynamic: author-email
19
+ Dynamic: classifier
20
+ Dynamic: description
21
+ Dynamic: description-content-type
22
+ Dynamic: license
23
+ Dynamic: requires-dist
24
+ Dynamic: summary
25
+
26
+ # RFEM Client 2.0
27
+ The RFEM Client 2.0 is a revamped and improved version of the RFEM Python Client, built upon the RFEM Python API and utilizing the gRPC framework. This new release offers enhanced performance, streamlined communication between client and server, and an updated interface for better interaction with RFEM structural analysis and design software.
28
+
29
+ ## Features
30
+ #### Enhanced Performance:
31
+ Optimized data handling and communication for faster response times and improved efficiency.
32
+
33
+ #### gRPC Integration:
34
+ Uses gRPC for efficient and robust client-server communication, ensuring better scalability and low-latency operations.
35
+
36
+ #### Seamless API Access:
37
+ Provides access to RFEM functionalities directly from Python, enabling easy automation, scripting, and integration into engineering workflows.
38
+
39
+ ## Getting Started
40
+ To get started with the RFEM_Client_2.0, refer to the documentation for setup instructions, usage examples, and API references.
@@ -0,0 +1,15 @@
1
+ # RFEM Client 2.0
2
+ The RFEM Client 2.0 is a revamped and improved version of the RFEM Python Client, built upon the RFEM Python API and utilizing the gRPC framework. This new release offers enhanced performance, streamlined communication between client and server, and an updated interface for better interaction with RFEM structural analysis and design software.
3
+
4
+ ## Features
5
+ #### Enhanced Performance:
6
+ Optimized data handling and communication for faster response times and improved efficiency.
7
+
8
+ #### gRPC Integration:
9
+ Uses gRPC for efficient and robust client-server communication, ensuring better scalability and low-latency operations.
10
+
11
+ #### Seamless API Access:
12
+ Provides access to RFEM functionalities directly from Python, enabling easy automation, scripting, and integration into engineering workflows.
13
+
14
+ ## Getting Started
15
+ To get started with the RFEM_Client_2.0, refer to the documentation for setup instructions, usage examples, and API references.
File without changes
File without changes
@@ -0,0 +1,3 @@
1
+ from .common_pb2 import *
2
+ from .model_id_pb2 import *
3
+ from .table_data_pb2 import *
@@ -0,0 +1,42 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: dlubal/api/common/common.proto
5
+ # Protobuf Python Version: 5.28.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 5,
15
+ 28,
16
+ 1,
17
+ '',
18
+ 'dlubal/api/common/common.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+
26
+
27
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x64lubal/api/common/common.proto\x12\x11\x64lubal.api.common\"+\n\x08Vector3d\x12\t\n\x01x\x18\x01 \x01(\x01\x12\t\n\x01y\x18\x02 \x01(\x01\x12\t\n\x01z\x18\x03 \x01(\x01\"\x16\n\x05\x43olor\x12\r\n\x05value\x18\x01 \x01(\t\"\x9e\x01\n\x05Value\x12\x32\n\nnull_value\x18\x01 \x01(\x0e\x32\x1c.dlubal.api.common.NullValueH\x00\x12\x13\n\tint_value\x18\x02 \x01(\x05H\x00\x12\x16\n\x0c\x64ouble_value\x18\x03 \x01(\x01H\x00\x12\x16\n\x0cstring_value\x18\x04 \x01(\tH\x00\x12\x14\n\nbool_value\x18\x05 \x01(\x08H\x00\x42\x06\n\x04kind*\x1b\n\tNullValue\x12\x0e\n\nNULL_VALUE\x10\x00\x62\x06proto3')
28
+
29
+ _globals = globals()
30
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'dlubal.api.common.common_pb2', _globals)
32
+ if not _descriptor._USE_C_DESCRIPTORS:
33
+ DESCRIPTOR._loaded_options = None
34
+ _globals['_NULLVALUE']._serialized_start=283
35
+ _globals['_NULLVALUE']._serialized_end=310
36
+ _globals['_VECTOR3D']._serialized_start=53
37
+ _globals['_VECTOR3D']._serialized_end=96
38
+ _globals['_COLOR']._serialized_start=98
39
+ _globals['_COLOR']._serialized_end=120
40
+ _globals['_VALUE']._serialized_start=123
41
+ _globals['_VALUE']._serialized_end=281
42
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,41 @@
1
+ from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
2
+ from google.protobuf import descriptor as _descriptor
3
+ from google.protobuf import message as _message
4
+ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
5
+
6
+ DESCRIPTOR: _descriptor.FileDescriptor
7
+
8
+ class NullValue(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
9
+ __slots__ = ()
10
+ NULL_VALUE: _ClassVar[NullValue]
11
+ NULL_VALUE: NullValue
12
+
13
+ class Vector3d(_message.Message):
14
+ __slots__ = ("x", "y", "z")
15
+ X_FIELD_NUMBER: _ClassVar[int]
16
+ Y_FIELD_NUMBER: _ClassVar[int]
17
+ Z_FIELD_NUMBER: _ClassVar[int]
18
+ x: float
19
+ y: float
20
+ z: float
21
+ def __init__(self, x: _Optional[float] = ..., y: _Optional[float] = ..., z: _Optional[float] = ...) -> None: ...
22
+
23
+ class Color(_message.Message):
24
+ __slots__ = ("value",)
25
+ VALUE_FIELD_NUMBER: _ClassVar[int]
26
+ value: str
27
+ def __init__(self, value: _Optional[str] = ...) -> None: ...
28
+
29
+ class Value(_message.Message):
30
+ __slots__ = ("null_value", "int_value", "double_value", "string_value", "bool_value")
31
+ NULL_VALUE_FIELD_NUMBER: _ClassVar[int]
32
+ INT_VALUE_FIELD_NUMBER: _ClassVar[int]
33
+ DOUBLE_VALUE_FIELD_NUMBER: _ClassVar[int]
34
+ STRING_VALUE_FIELD_NUMBER: _ClassVar[int]
35
+ BOOL_VALUE_FIELD_NUMBER: _ClassVar[int]
36
+ null_value: NullValue
37
+ int_value: int
38
+ double_value: float
39
+ string_value: str
40
+ bool_value: bool
41
+ def __init__(self, null_value: _Optional[_Union[NullValue, str]] = ..., int_value: _Optional[int] = ..., double_value: _Optional[float] = ..., string_value: _Optional[str] = ..., bool_value: bool = ...) -> None: ...
@@ -0,0 +1,251 @@
1
+ ''' Definition file '''
2
+ import os
3
+ import ssl
4
+ import grpc
5
+
6
+ from pathlib import Path
7
+ from configparser import ConfigParser
8
+
9
+ # Enable prompt option for testing purposes
10
+ prompt = False
11
+
12
+ options = [
13
+ ('grpc.max_send_message_length', -1),
14
+ ('grpc.max_receive_message_length', -1),
15
+ ]
16
+ compression = grpc.Compression.Gzip # https://grpc.io/docs/guides/compression/
17
+
18
+ class _config():
19
+ def __init__(self):
20
+ '''
21
+ Read config file. It is doesn't exist, create one.
22
+ '''
23
+ self.config = ConfigParser()
24
+ self.config_loc = Path(Path(__file__).parents[1], 'config.ini')
25
+ # Parse existing file
26
+ if os.path.isfile(self.config_loc):
27
+ self.config.read(self.config_loc)
28
+
29
+ def _save_to_file(self):
30
+ '''
31
+ Save current config file
32
+ '''
33
+ with open(self.config_loc, 'w', encoding="utf-8") as config_file:
34
+ self.config.write(config_file)
35
+
36
+ def get_name_of_default(self):
37
+ '''
38
+ Return first name of the API key, which was set as default
39
+ '''
40
+ all_items = self.config.items('api_keys')
41
+ all_keys = self.config.options('api_keys')
42
+ if 'default' in all_keys:
43
+ default_value = self.config.get('api_keys', 'default')
44
+ for i in all_items:
45
+ if i[0] != 'default' and i[1] == default_value:
46
+ return i[0]
47
+ return None
48
+
49
+ def _set(self, section, key, value):
50
+ '''
51
+ Set value and save config into file
52
+ '''
53
+ self.config.set(section, key, value)
54
+ self._save_to_file()
55
+
56
+ def get_value(self, key):
57
+ '''
58
+ Get API key from config
59
+ '''
60
+ value = None
61
+ if self.config.has_section('api_keys'):
62
+ value = self.config.get('api_keys', key, fallback=None)
63
+ if value and value.startswith(('AK', 'ak')):
64
+ # Set default
65
+ self._set('api_keys', 'default', value)
66
+ return value
67
+
68
+ def set_value(self, key, value):
69
+ '''
70
+ Set API key into config
71
+ '''
72
+ if self.config.has_section('api_keys'):
73
+ self._set('api_keys', key, value)
74
+ else:
75
+ self.config.add_section('api_keys')
76
+ self._set('api_keys', key, value)
77
+ # Set default
78
+ self._set('api_keys', 'default', value)
79
+
80
+ def delete_value(self, section, key):
81
+ '''
82
+ Delete API key
83
+ '''
84
+ self.config.remove_option(section, key)
85
+
86
+
87
+ class _ApiKey():
88
+ '''
89
+ API key class to make it easy to manage API keys.
90
+ '''
91
+ def __init__(self, key=None , value=None):
92
+
93
+ # Value sanity check
94
+ if value and not value.startswith(('AK','ak')):
95
+ print("ERROR: Invalid API key. Please check the API key format.")
96
+ exit()
97
+
98
+ self.key = key
99
+ self.value = value
100
+ self.config = _config()
101
+
102
+ if self.key and self.value:
103
+ # Check if API key is saved. If not, save it to config file.
104
+ if self.config.get_value(self.key) is None:
105
+ self.config.set_value(self.key, self.value)
106
+ elif self.key:
107
+ # Check if API key is saved, get it and put into self.value
108
+ self.value = self.config.get_value(self.key)
109
+ elif self.value:
110
+ # Providing value without key suggests user doesn't want to store it
111
+ # Don't even store any default value
112
+ pass
113
+ else:
114
+ # Key and value are None
115
+ # Check if there is any default key set in config
116
+ self.value = self.config.get_value('default')
117
+ if self.value:
118
+ default_key = self.config.get_name_of_default()
119
+ if default_key:
120
+ # Print only if key is found
121
+ print(f'API key: {self.config.get_name_of_default()}')
122
+ # If there is no default key, envoke prompt
123
+ elif self.value is None and prompt:
124
+ # If there is no default key, raise an error
125
+ self.value = input('API key was not found. Please, enter your API key value:\n')
126
+ store_api = input('Would you like to store your API key for future use? y/n\n')
127
+ if store_api.lower() == 'y':
128
+ key_input = input('Please, enter API key identificator (e.g.RFEM_API_KEY).\n')
129
+ if isinstance(key_input, str):
130
+ self.key = key_input
131
+ self.config.set_value(self.key, self.value)
132
+
133
+ def get(self, key=None):
134
+ '''
135
+ Get API key
136
+ '''
137
+ if key:
138
+ self.value = self.config.get_value(key)
139
+ else:
140
+ self.value = self.config.get_value('default')
141
+
142
+ if self.value is None:
143
+ raise ValueError("Invalid API key idenficator or missing default value.")
144
+ return self.value
145
+
146
+ def set(self, key, value):
147
+ '''
148
+ Set APi key
149
+ '''
150
+ self.config.set_value(key, value)
151
+
152
+
153
+ class _ClientCallDetails(grpc.ClientCallDetails):
154
+ '''
155
+ Client call details class to pass authorization API key
156
+ '''
157
+ def __init__(self, call_details, metadata):
158
+ self.method = call_details.method
159
+ self.timeout = call_details.timeout
160
+ self.credentials = call_details.credentials
161
+ self.metadata = metadata
162
+
163
+ class AuthInterceptor(grpc.UnaryUnaryClientInterceptor):
164
+ '''
165
+ Authorization Unary Interceptor class
166
+ '''
167
+ def __init__(self, value):
168
+ self.api_key = value
169
+
170
+ def intercept_call(self, continuation, client_call_details, request_or_iterator):
171
+ call_details = _ClientCallDetails(client_call_details, [("authorization", f"Bearer {self.api_key}"),])
172
+ return continuation(call_details, request_or_iterator)
173
+
174
+ def intercept_unary_unary(self, continuation, client_call_details, request):
175
+ return self.intercept_call(continuation, client_call_details, request)
176
+
177
+ def check_ssl(_ssl, _ssl_file):
178
+ '''
179
+ Check SSL certificate
180
+ Params:
181
+ _ssl (bool): False if NOT using SSL auth. True if using SSL certificate.
182
+ _ssl_file (str):Path to .crt/.pem certificate.
183
+ '''
184
+ if _ssl is False:
185
+ print('SSL not used.')
186
+ elif _ssl is True:
187
+ if isinstance(_ssl_file, str) and os.path.isfile(_ssl_file) and _ssl_file.endswith(('.crt', '.pem')):
188
+ # Use provided file
189
+ pass
190
+ elif _ssl_file == '':
191
+ # Use Windows Certification Store
192
+ pass
193
+ else:
194
+ # Provided path is not correct
195
+ print("ERROR: Invalid SSL path. Please check path to SSL certificate.")
196
+ exit()
197
+
198
+ return True
199
+
200
+ def _get_ssl_credentials(_ssl_file) -> grpc.ChannelCredentials:
201
+ '''
202
+ Get SSL channel credentials by reading cert. file
203
+
204
+ Params:
205
+ path (str): Path to the SSL (.crt) certificate filepath
206
+ '''
207
+ if _ssl_file == '':
208
+ '''
209
+ Credit: https://github.com/grpc/grpc/issues/25533#issuecomment-1830823902
210
+ '''
211
+ print('Using Windows Cert Store.')
212
+ certs = ssl.create_default_context().get_ca_certs(True)
213
+ cert_string = ''
214
+ for cert in certs:
215
+ cert_string += ssl.DER_cert_to_PEM_cert(cert)
216
+ return grpc.ssl_channel_credentials(root_certificates=cert_string.encode('utf-8'))
217
+ else:
218
+ print('Using SSL file')
219
+ cert_file = open(_ssl_file, 'rb')
220
+ return grpc.ssl_channel_credentials(cert_file.read())
221
+
222
+ def init_channel(API_key, url, port, _ssl, _ssl_file):
223
+ '''
224
+ Initialize the gRPC channel with the provided API key.
225
+
226
+ Params:
227
+ API_key (str): Api key
228
+ url (str): URl number defaults to localhost (127.0.0.1)
229
+ port (str): Port number defaults to 8089
230
+ _ssl (bool): True if using SSL
231
+ _ssl_file (str): Path to SSL cert file
232
+ '''
233
+ channel = None
234
+ try:
235
+ if _ssl:
236
+ # Create secure channel
237
+ channel_credentials = _get_ssl_credentials(_ssl_file)
238
+ channel = grpc.secure_channel(f"{url}:{port}", channel_credentials, options, compression)
239
+ else:
240
+ # Create insecure channel
241
+ channel = grpc.insecure_channel(f"{url}:{port}", options, compression)
242
+
243
+ # Create gRPC interceptor
244
+ interceptor = AuthInterceptor(API_key)
245
+ channel = grpc.intercept_channel(channel, interceptor)
246
+
247
+ # All exceptions are handeled at the RFEM.__exit__()
248
+ except:
249
+ pass
250
+
251
+ return channel
@@ -0,0 +1,12 @@
1
+ def exception_handler(exception, value, traceback):
2
+ '''
3
+ Exception handler
4
+ '''
5
+ print('ERROR:')
6
+ if traceback:
7
+ print(f'File: {traceback.tb_frame.f_code.co_filename}, line: {traceback.tb_frame.f_lineno}')
8
+ if value:
9
+ try:
10
+ print('Message:', value.details())
11
+ except:
12
+ print('Message:', value)
@@ -0,0 +1,38 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: dlubal/api/common/model_id.proto
5
+ # Protobuf Python Version: 5.28.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 5,
15
+ 28,
16
+ 1,
17
+ '',
18
+ 'dlubal/api/common/model_id.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+
26
+
27
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n dlubal/api/common/model_id.proto\x12\x11\x64lubal.api.common\"\x15\n\x07ModelId\x12\n\n\x02id\x18\x01 \x01(\t\")\n\x0fOptionalModelId\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x05\n\x03_idb\x06proto3')
28
+
29
+ _globals = globals()
30
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'dlubal.api.common.model_id_pb2', _globals)
32
+ if not _descriptor._USE_C_DESCRIPTORS:
33
+ DESCRIPTOR._loaded_options = None
34
+ _globals['_MODELID']._serialized_start=55
35
+ _globals['_MODELID']._serialized_end=76
36
+ _globals['_OPTIONALMODELID']._serialized_start=78
37
+ _globals['_OPTIONALMODELID']._serialized_end=119
38
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,17 @@
1
+ from google.protobuf import descriptor as _descriptor
2
+ from google.protobuf import message as _message
3
+ from typing import ClassVar as _ClassVar, Optional as _Optional
4
+
5
+ DESCRIPTOR: _descriptor.FileDescriptor
6
+
7
+ class ModelId(_message.Message):
8
+ __slots__ = ("id",)
9
+ ID_FIELD_NUMBER: _ClassVar[int]
10
+ id: str
11
+ def __init__(self, id: _Optional[str] = ...) -> None: ...
12
+
13
+ class OptionalModelId(_message.Message):
14
+ __slots__ = ("id",)
15
+ ID_FIELD_NUMBER: _ClassVar[int]
16
+ id: str
17
+ def __init__(self, id: _Optional[str] = ...) -> None: ...
@@ -0,0 +1,35 @@
1
+ import pandas
2
+
3
+ class Table:
4
+ def __init__(self, data: pandas.DataFrame):
5
+ self.data = data
6
+
7
+ def __getitem__(self, key):
8
+ if isinstance(key, str):
9
+ return self.col(key)
10
+ elif isinstance(key, int):
11
+ return self.row(key)
12
+
13
+ def col(self, key):
14
+ column = self.data[key]
15
+ if len(column) == 0:
16
+ return None
17
+ if len(column) == 1:
18
+ return column.values[0]
19
+ return column.values
20
+
21
+ def row(self, idx):
22
+ return self.data.iloc[idx]
23
+
24
+ def values(self, *keys):
25
+ results = [self.col(key) for key in keys]
26
+ try:
27
+ result_tuples = list(zip(*results))
28
+ if len(result_tuples) == 0:
29
+ return None
30
+ if len(result_tuples) == 1:
31
+ return result_tuples[0]
32
+ else:
33
+ return result_tuples
34
+ except:
35
+ return tuple(results)
@@ -0,0 +1,39 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: dlubal/api/common/table_data.proto
5
+ # Protobuf Python Version: 5.28.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 5,
15
+ 28,
16
+ 1,
17
+ '',
18
+ 'dlubal/api/common/table_data.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from dlubal.api.common import common_pb2 as dlubal_dot_api_dot_common_dot_common__pb2
26
+
27
+
28
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"dlubal/api/common/table_data.proto\x12\x11\x64lubal.api.common\x1a\x1e\x64lubal/api/common/common.proto\"J\n\tTableData\x12\x12\n\ncolumn_ids\x18\x01 \x03(\t\x12)\n\x04rows\x18\x02 \x03(\x0b\x32\x1b.dlubal.api.common.TableRow\"4\n\x08TableRow\x12(\n\x06values\x18\x01 \x03(\x0b\x32\x18.dlubal.api.common.Valueb\x06proto3')
29
+
30
+ _globals = globals()
31
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
32
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'dlubal.api.common.table_data_pb2', _globals)
33
+ if not _descriptor._USE_C_DESCRIPTORS:
34
+ DESCRIPTOR._loaded_options = None
35
+ _globals['_TABLEDATA']._serialized_start=89
36
+ _globals['_TABLEDATA']._serialized_end=163
37
+ _globals['_TABLEROW']._serialized_start=165
38
+ _globals['_TABLEROW']._serialized_end=217
39
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,21 @@
1
+ from dlubal.api.common import common_pb2 as _common_pb2
2
+ from google.protobuf.internal import containers as _containers
3
+ from google.protobuf import descriptor as _descriptor
4
+ from google.protobuf import message as _message
5
+ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
6
+
7
+ DESCRIPTOR: _descriptor.FileDescriptor
8
+
9
+ class TableData(_message.Message):
10
+ __slots__ = ("column_ids", "rows")
11
+ COLUMN_IDS_FIELD_NUMBER: _ClassVar[int]
12
+ ROWS_FIELD_NUMBER: _ClassVar[int]
13
+ column_ids: _containers.RepeatedScalarFieldContainer[str]
14
+ rows: _containers.RepeatedCompositeFieldContainer[TableRow]
15
+ def __init__(self, column_ids: _Optional[_Iterable[str]] = ..., rows: _Optional[_Iterable[_Union[TableRow, _Mapping]]] = ...) -> None: ...
16
+
17
+ class TableRow(_message.Message):
18
+ __slots__ = ("values",)
19
+ VALUES_FIELD_NUMBER: _ClassVar[int]
20
+ values: _containers.RepeatedCompositeFieldContainer[_common_pb2.Value]
21
+ def __init__(self, values: _Optional[_Iterable[_Union[_common_pb2.Value, _Mapping]]] = ...) -> None: ...
@@ -0,0 +1,32 @@
1
+ from .application_pb2 import *
2
+ from .application_pb2_grpc import *
3
+ from . import aluminum_design_objects
4
+ from . import base_data
5
+ from . import building_model
6
+ from . import calculation_diagrams
7
+ from . import concrete_design_objects
8
+ from . import construction_stages
9
+ from . import dynamic_loads
10
+ from . import geotechnical_analysis
11
+ from . import global_parameters
12
+ from . import guide_objects
13
+ from . import imperfections
14
+ from . import loading
15
+ from . import loads
16
+ from . import load_wizards
17
+ from . import results
18
+ from . import result_objects
19
+ from . import steel_design_objects
20
+ from . import structure_advanced
21
+ from . import structure_core
22
+ from . import timber_design_objects
23
+ from . import types_for_aluminum_design
24
+ from . import types_for_concrete_design
25
+ from . import types_for_lines
26
+ from . import types_for_members
27
+ from . import types_for_nodes
28
+ from . import types_for_solids
29
+ from . import types_for_special_objects
30
+ from . import types_for_steel_design
31
+ from . import types_for_surfaces
32
+ from . import types_for_timber_design
@@ -0,0 +1,2 @@
1
+ from .aluminum_design_sls_configuration_pb2 import *
2
+ from .aluminum_design_uls_configuration_pb2 import *
@@ -0,0 +1,36 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: dlubal/api/rfem/aluminum_design_objects/aluminum_design_sls_configuration.proto
5
+ # Protobuf Python Version: 5.28.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 5,
15
+ 28,
16
+ 1,
17
+ '',
18
+ 'dlubal/api/rfem/aluminum_design_objects/aluminum_design_sls_configuration.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+
26
+
27
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\nOdlubal/api/rfem/aluminum_design_objects/aluminum_design_sls_configuration.proto\x12\'dlubal.api.rfem.aluminum_design_objects\"\xfe\x03\n\x1e\x41luminumDesignSlsConfiguration\x12\n\n\x02no\x18\x01 \x01(\x05\x12&\n\x19user_defined_name_enabled\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x11\n\x04name\x18\x03 \x01(\tH\x01\x88\x01\x01\x12$\n\x17\x61ssigned_to_all_members\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x13\x61ssigned_to_members\x18\x05 \x03(\x05\x12(\n\x1b\x61ssigned_to_all_member_sets\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x1f\n\x17\x61ssigned_to_member_sets\x18\x07 \x03(\x05\x12\x14\n\x07\x63omment\x18\x08 \x01(\tH\x04\x88\x01\x01\x12!\n\x14id_for_export_import\x18\t \x01(\tH\x05\x88\x01\x01\x12\'\n\x1ametadata_for_export_import\x18\n \x01(\tH\x06\x88\x01\x01\x42\x1c\n\x1a_user_defined_name_enabledB\x07\n\x05_nameB\x1a\n\x18_assigned_to_all_membersB\x1e\n\x1c_assigned_to_all_member_setsB\n\n\x08_commentB\x17\n\x15_id_for_export_importB\x1d\n\x1b_metadata_for_export_importb\x06proto3')
28
+
29
+ _globals = globals()
30
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'dlubal.api.rfem.aluminum_design_objects.aluminum_design_sls_configuration_pb2', _globals)
32
+ if not _descriptor._USE_C_DESCRIPTORS:
33
+ DESCRIPTOR._loaded_options = None
34
+ _globals['_ALUMINUMDESIGNSLSCONFIGURATION']._serialized_start=125
35
+ _globals['_ALUMINUMDESIGNSLSCONFIGURATION']._serialized_end=635
36
+ # @@protoc_insertion_point(module_scope)