stbkit 0.1.0a9.dev1__tar.gz → 0.1.0b1__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 (134) hide show
  1. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/PKG-INFO +5 -5
  2. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/README.md +2 -2
  3. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/pyproject.toml +6 -7
  4. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/api/__init__.py +3 -3
  5. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/api/stb_latest.py +1 -1
  6. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/api/stb_v2_0_2.py +3 -2
  7. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/api/stb_v2_1_1.py +1 -1
  8. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/cli/_internal/cli_main.py +2 -1
  9. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/cli/_internal/common.py +2 -1
  10. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/cli/_internal/converter.py +44 -36
  11. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/cli/_internal/entry_points.py +2 -0
  12. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/cli/_internal/global_parent.py +2 -1
  13. stbkit-0.1.0b1/src/stbkit/cli/_internal/summary.py +73 -0
  14. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/cli/_internal/validate.py +2 -1
  15. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/cli/commands/convert.py +2 -2
  16. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/cli/commands/diff.py +2 -2
  17. stbkit-0.1.0b1/src/stbkit/cli/commands/summary.py +16 -0
  18. stbkit-0.1.0b1/src/stbkit/cli/commands/upgrade.py +16 -0
  19. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/cli/commands/validate.py +2 -2
  20. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/data_model/building_geometry.py +7 -4
  21. stbkit-0.1.0b1/src/stbkit/tools/_internal/data_model/summary.py +213 -0
  22. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/diff/diff_xml.py +7 -8
  23. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/optional_dependencies/ifc_exporter/ifc_entity_exporter.py +4 -2
  24. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/stb_io.py +2 -1
  25. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/utils/mesh_utils.py +3 -2
  26. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/building_geometry_to_ply_text.py +2 -1
  27. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/element_data_to_building_geometry.py +4 -2
  28. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/_stb_latest_to_element_data.py +11 -27
  29. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/member/member_line.py +2 -2
  30. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec.py +1 -1
  31. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_column_src.py +3 -3
  32. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_to_building_geometry.py +3 -3
  33. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/upgrade.py +5 -6
  34. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/hook_sec_pile_rc.py +4 -4
  35. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/hook_sec_pile_s.py +1 -1
  36. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/post_girder.py +1 -1
  37. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/post_sec_beam_rc.py +6 -2
  38. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/post_sec_beam_s.py +33 -28
  39. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit.egg-info/PKG-INFO +5 -5
  40. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit.egg-info/SOURCES.txt +4 -0
  41. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit.egg-info/requires.txt +1 -1
  42. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/LICENSE +0 -0
  43. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/setup.cfg +0 -0
  44. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/__main__.py +0 -0
  45. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/api/experimental/__init__.py +0 -0
  46. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/api/experimental/repository/__init__.py +0 -0
  47. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/api/py.typed +0 -0
  48. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/cli/__init__.py +0 -0
  49. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/cli/_internal/constants_exit_code.py +0 -0
  50. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/cli/_internal/diff.py +0 -0
  51. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/cli/_internal/show_versions.py +0 -0
  52. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/cli/py.typed +0 -0
  53. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/__init__.py +0 -0
  54. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/__init__.py +0 -0
  55. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/constants.py +0 -0
  56. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/data_model/building_geometry_web.py +0 -0
  57. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/data_model/element_data.py +0 -0
  58. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/data_model/ifc_data/entity_data.py +0 -0
  59. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/data_model/ifc_data/entity_names.py +0 -0
  60. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/data_model/shape_data.py +0 -0
  61. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/diff/__init__.py +0 -0
  62. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/diff/common.py +0 -0
  63. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/matrix.py +0 -0
  64. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/optional_dependencies/__init__.py +0 -0
  65. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/optional_dependencies/ifc_common.py +0 -0
  66. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/optional_dependencies/ifc_exporter/ifc_profile_exporter.py +0 -0
  67. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/optional_dependencies/ifc_exporter/ifc_representation_exporter.py +0 -0
  68. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/optional_dependencies/ifc_pipeline.py +0 -0
  69. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/optional_dependencies/ifc_to_building_geometry.py +0 -0
  70. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/stb_repair/_common.py +0 -0
  71. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/stb_repair/_stb_repair.py +0 -0
  72. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/stb_repair/_stb_v2_0_2_repair.py +0 -0
  73. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/stb_repair/_stb_v2_1_0_repair.py +0 -0
  74. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/stb_repair/_stb_v2_1_1_repair.py +0 -0
  75. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/studio_report.py +0 -0
  76. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/utils/atomic_writer.py +0 -0
  77. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/utils/float_rounding.py +0 -0
  78. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/utils/girder_utils.py +0 -0
  79. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/utils/guid_utils.py +0 -0
  80. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/utils/node_utils.py +0 -0
  81. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/utils/unit_utils.py +0 -0
  82. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/_internal/vectors.py +0 -0
  83. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/__init__.py +0 -0
  84. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/__init__.py +0 -0
  85. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/coord_converter.py +0 -0
  86. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/ifc_to_ply_text.py +0 -0
  87. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/name_converter.py +0 -0
  88. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/pipeline/__init__.py +0 -0
  89. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/pipeline/data.py +0 -0
  90. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/pipeline/execution.py +0 -0
  91. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/pipeline/ply_pipeline.py +0 -0
  92. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/pipeline/stb_pipeline.py +0 -0
  93. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/pipeline/stb_pipeline_latest.py +0 -0
  94. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/pipeline/step.py +0 -0
  95. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/__init__.py +0 -0
  96. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/member/member_footing.py +0 -0
  97. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/member/member_pile.py +0 -0
  98. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/member/member_plane.py +0 -0
  99. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/open.py +0 -0
  100. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_beam_rc.py +0 -0
  101. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_beam_s.py +0 -0
  102. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_beam_src.py +0 -0
  103. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_brace_s.py +0 -0
  104. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_column_cft.py +0 -0
  105. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_column_rc.py +0 -0
  106. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_column_s.py +0 -0
  107. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_foundation.py +0 -0
  108. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_parapet_rc.py +0 -0
  109. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_pile_rc.py +0 -0
  110. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_pile_s.py +0 -0
  111. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_latest_to_element_data/section/sec_steel.py +0 -0
  112. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_to_ifc_data/__init__.py +0 -0
  113. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_to_ifc_data/_stb_to_ifc_data.py +0 -0
  114. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_to_ifc_data/convert_option.py +0 -0
  115. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/converters/_internal/stb_to_ply_text.py +0 -0
  116. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/py.typed +0 -0
  117. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/__init__.py +0 -0
  118. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/__init__.py +0 -0
  119. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/common.py +0 -0
  120. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/__init__.py +0 -0
  121. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/hook_common.py +0 -0
  122. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/hook_joint_beam_shape_h.py +0 -0
  123. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/hook_sec_slab_deck.py +0 -0
  124. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/hook_sec_slab_rc.py +0 -0
  125. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hook_funcs/post_open.py +0 -0
  126. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/hooks.py +0 -0
  127. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/post.py +0 -0
  128. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/v2_0_2_to_v2_1_0/tables.py +0 -0
  129. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/v2_1_0_to_v2_1_1/__init__.py +0 -0
  130. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/v2_1_0_to_v2_1_1/hooks.py +0 -0
  131. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit/tools/upgrade/_internal/v2_1_0_to_v2_1_1/tables.py +0 -0
  132. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit.egg-info/dependency_links.txt +0 -0
  133. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit.egg-info/entry_points.txt +0 -0
  134. {stbkit-0.1.0a9.dev1 → stbkit-0.1.0b1}/src/stbkit.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stbkit
3
- Version: 0.1.0a9.dev1
3
+ Version: 0.1.0b1
4
4
  Summary: ST-Bridgeを扱うライブラリSTB-KIT
5
5
  Author-email: "STB-KIT Development Team (TAISEI CORPORATION)" <oss-dev@pub.taisei.co.jp>
6
6
  License-Expression: MPL-2.0
@@ -9,7 +9,7 @@ Project-URL: Repository, https://github.com/taisei-oss/stb-kit
9
9
  Project-URL: Issues, https://github.com/taisei-oss/stb-kit/issues
10
10
  Project-URL: Changelog, https://github.com/taisei-oss/stb-kit/blob/main/CHANGELOG.md
11
11
  Keywords: ST-Bridge,BIM,IFC,structural-engineering,stbridge
12
- Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Development Status :: 4 - Beta
13
13
  Classifier: Environment :: Console
14
14
  Classifier: Intended Audience :: Developers
15
15
  Classifier: Intended Audience :: Science/Research
@@ -27,7 +27,7 @@ Classifier: Typing :: Typed
27
27
  Requires-Python: >=3.12
28
28
  Description-Content-Type: text/markdown
29
29
  License-File: LICENSE
30
- Requires-Dist: stbkit-core==0.1.0a9.dev1
30
+ Requires-Dist: stbkit-core==0.1.0b1
31
31
  Provides-Extra: xsd
32
32
  Requires-Dist: xmlschema>=4.3.2; extra == "xsd"
33
33
  Provides-Extra: ifc
@@ -66,7 +66,7 @@ stbkit-core(データモデル・バリデーション)をコアの依存と
66
66
 
67
67
  ## インストール(最小構成)
68
68
 
69
- STB-KITは現在アルファ版です。通常のインストールではアルファ版が選ばれない場合があるため、次の例では`--pre`を指定します。利用するアルファ版の番号が分かっている場合は、`stbkit==バージョン番号`のようにバージョンを直接指定することもできます。
69
+ STB-KITは現在ベータ版です。通常のインストールではベータ版が選ばれない場合があるため、次の例では`--pre`を指定します。利用するベータ版の番号が分かっている場合は、`stbkit==バージョン番号`のようにバージョンを直接指定することもできます。
70
70
 
71
71
  ```bash
72
72
  python -m pip install --pre stbkit
@@ -101,7 +101,7 @@ python -m pip install --pre stbkit
101
101
  stbkit -h
102
102
  ```
103
103
 
104
- - ST-Bridgeをのバリデーションを行う
104
+ - ST-Bridgeのバリデーションを行う
105
105
 
106
106
  ```bash
107
107
  stbkit validate model.stb
@@ -25,7 +25,7 @@ stbkit-core(データモデル・バリデーション)をコアの依存と
25
25
 
26
26
  ## インストール(最小構成)
27
27
 
28
- STB-KITは現在アルファ版です。通常のインストールではアルファ版が選ばれない場合があるため、次の例では`--pre`を指定します。利用するアルファ版の番号が分かっている場合は、`stbkit==バージョン番号`のようにバージョンを直接指定することもできます。
28
+ STB-KITは現在ベータ版です。通常のインストールではベータ版が選ばれない場合があるため、次の例では`--pre`を指定します。利用するベータ版の番号が分かっている場合は、`stbkit==バージョン番号`のようにバージョンを直接指定することもできます。
29
29
 
30
30
  ```bash
31
31
  python -m pip install --pre stbkit
@@ -60,7 +60,7 @@ python -m pip install --pre stbkit
60
60
  stbkit -h
61
61
  ```
62
62
 
63
- - ST-Bridgeをのバリデーションを行う
63
+ - ST-Bridgeのバリデーションを行う
64
64
 
65
65
  ```bash
66
66
  stbkit validate model.stb
@@ -10,19 +10,19 @@ build-backend = "setuptools.build_meta"
10
10
 
11
11
  [project]
12
12
  name = "stbkit"
13
- version = "0.1.0a9.dev1"
13
+ version = "0.1.0b1"
14
14
  description = "ST-Bridgeを扱うライブラリSTB-KIT"
15
15
  authors = [
16
16
  { name = "STB-KIT Development Team (TAISEI CORPORATION)", email = "oss-dev@pub.taisei.co.jp" },
17
17
  ]
18
- dependencies = ["stbkit-core==0.1.0a9.dev1"]
18
+ dependencies = ["stbkit-core==0.1.0b1"]
19
19
  readme = "README.md"
20
20
  requires-python = ">=3.12"
21
21
  license = "MPL-2.0"
22
22
  license-files = ["LICENSE"]
23
23
  keywords = ["ST-Bridge", "BIM", "IFC", "structural-engineering", "stbridge"]
24
24
  classifiers = [
25
- "Development Status :: 3 - Alpha",
25
+ "Development Status :: 4 - Beta",
26
26
  "Environment :: Console",
27
27
  "Intended Audience :: Developers",
28
28
  "Intended Audience :: Science/Research",
@@ -67,11 +67,10 @@ full = [
67
67
  "xmlschema>=4.3.2",
68
68
  ]
69
69
 
70
+ [tool.ruff]
71
+ extend = "../../pyproject.toml"
72
+
70
73
  [tool.ruff.lint.per-file-ignores]
71
- # 辞書形式の要素名が長いため1行になるのを許容
72
- "src/stbkit/tools/transform/versioning/_internal/upgrade_v202_to_v210/tables.py" = [
73
- "E501",
74
- ]
75
74
  # 社内用コードから公開用コードへ切り出す際に生じてしまうエラーの除外
76
75
  "src/stbkit/cli/_internal/diff.py" = ["F401", "I001"]
77
76
 
@@ -7,7 +7,7 @@
7
7
  """stbkitの基本機能をまとめたAPI
8
8
 
9
9
  ST-Bridgeファイルの読み書き、バージョンアップ、他形式への変換を提供します。
10
- バージョンごとのデータモデルはstb_latest、stb_v2_0、stb_v2_1から利用してください。
10
+ バージョンごとのデータモデルはstb_latest、stb_v2_0_2、stb_v2_1_1から利用してください。
11
11
 
12
12
  読み込みは、ファイルのバージョンをそのまま扱うload・loadsと、
13
13
  読み込んでから最新版へ変換するload_latest・loads_latestがあります。
@@ -40,8 +40,8 @@ __all__ = [
40
40
  "loads",
41
41
  "loads_latest",
42
42
  "stb_latest",
43
- "stb_v2_0",
44
- "stb_v2_1",
43
+ "stb_v2_0_2",
44
+ "stb_v2_1_1",
45
45
  "to_ifc",
46
46
  "upgrade_to_latest",
47
47
  "validate_schema",
@@ -4,4 +4,4 @@
4
4
  # License, v. 2.0. If a copy of the MPL was not distributed with this
5
5
  # file, You can obtain one at https://mozilla.org/MPL/2.0/.
6
6
 
7
- from stbkit.core.data_model.stb_v2_1_1 import *
7
+ from stbkit.core.data_model.stb_v2_1_1 import * # noqa: F403
@@ -6,6 +6,7 @@
6
6
 
7
7
  """ST-Bridge v2.0.2のデータモデル
8
8
 
9
- WARNING: ST-Bridge 2.0.xは、2027年末でサポート終了となります。v2.1.xへの移行を推奨します。"""
9
+ WARNING: ST-Bridge 2.0.xは、2027年末でサポート終了となります。
10
+ v2.1.xへの移行を推奨します。"""
10
11
 
11
- from stbkit.core.data_model.stb_v2_0_2 import *
12
+ from stbkit.core.data_model.stb_v2_0_2 import * # noqa: F403
@@ -6,4 +6,4 @@
6
6
 
7
7
  """ST-Bridge v2.1.1のデータモデル"""
8
8
 
9
- from stbkit.core.data_model.stb_v2_1_1 import *
9
+ from stbkit.core.data_model.stb_v2_1_1 import * # noqa: F403
@@ -69,7 +69,8 @@ def _main() -> None:
69
69
  register(subparsers)
70
70
  except Exception as e: # noqa: BLE001
71
71
  print(
72
- f"不明なサブコマンドを登録しようとして失敗しました[{entry_point.name}]: {e}",
72
+ "不明なサブコマンドを登録しようとして失敗しました"
73
+ f"[{entry_point.name}]: {e}",
73
74
  file=sys.stderr,
74
75
  )
75
76
 
@@ -27,7 +27,8 @@ def use_input(parser: ArgumentParser) -> None:
27
27
 
28
28
 
29
29
  def read_stdin_xml(*, max_size: int, encoding: str | None = None) -> str:
30
- # 端末のエンコーディング設定だとST-Bridgeに記載のencodingを読めないため、bytesとして受け取り、XML宣言から判定する。
30
+ # 端末のエンコーディング設定だとST-Bridgeに記載のencodingを読めないため、
31
+ # bytesとして受け取り、XML宣言から判定する。
31
32
  # encodingを明示した場合は判定より優先する。
32
33
  buffer: IO[bytes] | None = getattr(sys.stdin, "buffer", None)
33
34
  if buffer is None:
@@ -10,7 +10,7 @@ import os
10
10
  import sys
11
11
  from argparse import Namespace, _SubParsersAction
12
12
  from dataclasses import dataclass
13
- from logging import Logger
13
+ from logging import INFO, Logger
14
14
  from pathlib import Path
15
15
  from typing import Any
16
16
  from xml.etree.ElementTree import ParseError
@@ -24,6 +24,7 @@ from stbkit.core.stb_reporting import (
24
24
  get_reporter,
25
25
  )
26
26
 
27
+ from stbkit.tools._internal.data_model.summary import StbSummary, get_summary
27
28
  from stbkit.tools.converters._internal.pipeline.data import (
28
29
  _Data,
29
30
  _DataFormat,
@@ -77,40 +78,11 @@ class ConverterArgs:
77
78
  reporter: Reporter
78
79
 
79
80
  def print_stb_info(self, stb: StBridgeRoot) -> None:
80
- logger = self.logger
81
- logger.info("ST-Bridgeモデル情報:")
82
- model = stb.stb_model_or_none # type: ignore[attr-defined]
83
- if model is None:
84
- return
85
- if model.stb_nodes_or_none:
86
- logger.info(f" node数:{len(model.stb_nodes.stb_node)}")
87
- members = model.stb_members_or_none
88
- if members is None:
89
- return
90
- member_types = [
91
- "column",
92
- "girder",
93
- "post",
94
- "beam",
95
- "brace",
96
- "wall",
97
- "slab",
98
- ]
99
- for member_type in member_types:
100
- member_group = getattr(
101
- members,
102
- f"stb_{member_type}s_or_none",
103
- None,
104
- )
105
- if member_group is None:
106
- continue
107
- member_list = getattr(
108
- member_group,
109
- f"stb_{member_type}",
110
- None,
111
- )
112
- if member_list:
113
- logger.info(f" {member_type}数:{len(member_list)}")
81
+ summary: StbSummary = get_summary(
82
+ stb, reporter=CollectingReporter(), validate=False
83
+ )
84
+ for line in summary.to_text().splitlines():
85
+ self.logger.info(line)
114
86
 
115
87
 
116
88
  @dataclass(frozen=True)
@@ -473,7 +445,7 @@ def _pipeline_convert(args: ConverterArgs) -> None:
473
445
  max_size=args.max_size,
474
446
  )
475
447
 
476
- if isinstance(input_data, StbData):
448
+ if isinstance(input_data, StbData) and args.logger.isEnabledFor(INFO):
477
449
  args.print_stb_info(input_data.value)
478
450
 
479
451
  observed_data: dict[_DataFormat, _Data] = {
@@ -571,6 +543,42 @@ def register(subparsers: _SubParsersAction[Any]) -> None:
571
543
  parser.set_defaults(func=_run, _parser=parser)
572
544
 
573
545
 
546
+ def register_upgrade(subparsers: _SubParsersAction[Any]) -> None:
547
+ parser = subparsers.add_parser(
548
+ "upgrade",
549
+ parents=[make_global_parent()],
550
+ help=("ST-Bridgeを最新版へ更新します。"),
551
+ )
552
+ parser.add_argument(
553
+ "input",
554
+ nargs="?",
555
+ help="入力ファイルのパス。-で標準入力を使用します。",
556
+ )
557
+ parser.add_argument(
558
+ "-o",
559
+ "--output",
560
+ default="-",
561
+ help="出力ファイルのパス。-で標準出力を使用します。",
562
+ )
563
+ parser.add_argument(
564
+ "-y", "--yes", action="store_true", help="確認なしで上書きします。"
565
+ )
566
+ parser.add_argument(
567
+ "--input-encoding",
568
+ help="入力ファイルのエンコーディングを指定します。"
569
+ "省略時は自動検出またはutf-8を使用します。",
570
+ )
571
+ parser.set_defaults(
572
+ func=_run,
573
+ _parser=parser,
574
+ from_format="stb",
575
+ to_format="stb",
576
+ list_formats=False,
577
+ via=None,
578
+ save_intermediate=None,
579
+ )
580
+
581
+
574
582
  def _print_list_formats() -> None:
575
583
  print("対応しているファイル形式")
576
584
  for spec in _CLI_FORMAT_SPECS:
@@ -14,6 +14,8 @@ COMMAND_GROUP: Final = "stbkit.commands"
14
14
  BUILTIN_COMMANDS: Final[dict[str, str]] = {
15
15
  "convert": "stbkit.cli.commands.convert:register",
16
16
  "diff": "stbkit.cli.commands.diff:register",
17
+ "summary": "stbkit.cli.commands.summary:register",
18
+ "upgrade": "stbkit.cli.commands.upgrade:register",
17
19
  "validate": "stbkit.cli.commands.validate:register",
18
20
  }
19
21
 
@@ -16,7 +16,8 @@ DEFAULT_MAX_SIZE_MB: int = DEFAULT_MAX_XML_SIZE // BYTES_PER_MB
16
16
 
17
17
 
18
18
  def make_global_parent() -> argparse.ArgumentParser:
19
- # 共通引数に既定値を持たせるとサブコマンドより前で指定した値がサブコマンドで上書きされてしまうため、
19
+ # 共通引数に既定値を持たせるとサブコマンドより前で指定した値が
20
+ # サブコマンドで上書きされてしまうため、
20
21
  # 共通引数は既定値を持たせず、下のget_xxxを用いる。
21
22
  parent = argparse.ArgumentParser(add_help=False)
22
23
  parent.add_argument(
@@ -0,0 +1,73 @@
1
+ # Copyright 2026 TAISEI CORPORATION
2
+ # SPDX-License-Identifier: MPL-2.0
3
+ # This Source Code Form is subject to the terms of the Mozilla Public
4
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ # file, You can obtain one at https://mozilla.org/MPL/2.0/.
6
+
7
+ from __future__ import annotations
8
+
9
+ import sys
10
+ from argparse import Namespace, _SubParsersAction
11
+ from pathlib import Path
12
+ from typing import Any
13
+
14
+ from stbkit.core.data_model.common import StBridgeRoot
15
+ from stbkit.core.stb_io import load, loads
16
+ from stbkit.core.stb_reporting import CollectingReporter
17
+
18
+ from stbkit.tools._internal.data_model.summary import StbSummary, get_summary
19
+
20
+ from . import common
21
+ from .constants_exit_code import EXIT_EXECUTION_ERROR, EXIT_INVALID_ARGUMENT, EXIT_OK
22
+ from .global_parent import get_max_size, make_global_parent
23
+
24
+
25
+ def register(subparsers: _SubParsersAction[Any]) -> None:
26
+ parser = subparsers.add_parser(
27
+ "summary",
28
+ parents=[make_global_parent()],
29
+ help="ST-Bridgeの概要を出力します。",
30
+ )
31
+ common.use_input(parser)
32
+ parser.add_argument(
33
+ "--output-format",
34
+ choices=("text", "json"),
35
+ default="text",
36
+ help="出力フォーマット。textまたはjsonを指定します。",
37
+ )
38
+ parser.set_defaults(func=_run)
39
+
40
+
41
+ def _run(args: Namespace) -> None:
42
+ input_path: str = common.get_input(args)
43
+ max_size: int = get_max_size(args)
44
+ output_format: str = str(args.output_format)
45
+ verbose: int = int(args.verbose) if hasattr(args, "verbose") else 0
46
+
47
+ try:
48
+ reporter: CollectingReporter = CollectingReporter()
49
+ if input_path == "-":
50
+ stb: StBridgeRoot = loads(
51
+ common.read_stdin_xml(max_size=max_size),
52
+ max_size=max_size,
53
+ reporter=reporter,
54
+ )
55
+ else:
56
+ path: Path = Path(input_path)
57
+ if not path.is_file():
58
+ raise FileNotFoundError(f"入力ファイルが見つかりません: {path}")
59
+ stb = load(path, max_size=max_size, reporter=reporter)
60
+ summary: StbSummary = get_summary(stb, reporter=reporter)
61
+ if output_format == "json":
62
+ output_str: str = summary.to_json(indent=2)
63
+ else:
64
+ output_str = summary.to_text(verbose=verbose)
65
+ sys.stdout.write(output_str)
66
+ except FileNotFoundError as error:
67
+ print(str(error), file=sys.stderr)
68
+ raise SystemExit(EXIT_INVALID_ARGUMENT) from None
69
+ except Exception as error: # noqa: BLE001
70
+ print(f"summaryの作成に失敗しました: {error}", file=sys.stderr)
71
+ raise SystemExit(EXIT_EXECUTION_ERROR) from None
72
+
73
+ raise SystemExit(EXIT_OK)
@@ -48,7 +48,8 @@ def _try_validate_report(
48
48
  require_xsd: bool,
49
49
  exclude_legal_extensions: bool,
50
50
  ) -> tuple[CollectingReporter | None, str]:
51
- # XMLとして読み込めなかった場合は、チェック結果ではなく実行の失敗なので(None, エラーメッセージ)を返す。
51
+ # XMLとして読み込めなかった場合は、チェック結果ではなく実行の失敗なので
52
+ # (None, エラーメッセージ)を返す。
52
53
  # ST-Bridgeとしての不正はチェック結果であるため、エラーとしない。
53
54
  try:
54
55
  reporter: CollectingReporter = _validate_report(
@@ -9,8 +9,8 @@ from __future__ import annotations
9
9
  from argparse import _SubParsersAction
10
10
  from typing import Any
11
11
 
12
- from .._internal import converter
13
-
14
12
 
15
13
  def register(subparsers: _SubParsersAction[Any]) -> None:
14
+ from .._internal import converter
15
+
16
16
  converter.register(subparsers)
@@ -9,8 +9,8 @@ from __future__ import annotations
9
9
  from argparse import _SubParsersAction
10
10
  from typing import Any
11
11
 
12
- from .._internal import diff
13
-
14
12
 
15
13
  def register(subparsers: _SubParsersAction[Any]) -> None:
14
+ from .._internal import diff
15
+
16
16
  diff.register(subparsers)
@@ -0,0 +1,16 @@
1
+ # Copyright 2026 TAISEI CORPORATION
2
+ # SPDX-License-Identifier: MPL-2.0
3
+ # This Source Code Form is subject to the terms of the Mozilla Public
4
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ # file, You can obtain one at https://mozilla.org/MPL/2.0/.
6
+
7
+ from __future__ import annotations
8
+
9
+ from argparse import _SubParsersAction
10
+ from typing import Any
11
+
12
+ from .._internal import summary
13
+
14
+
15
+ def register(subparsers: _SubParsersAction[Any]) -> None:
16
+ summary.register(subparsers)
@@ -0,0 +1,16 @@
1
+ # Copyright 2026 TAISEI CORPORATION
2
+ # SPDX-License-Identifier: MPL-2.0
3
+ # This Source Code Form is subject to the terms of the Mozilla Public
4
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ # file, You can obtain one at https://mozilla.org/MPL/2.0/.
6
+
7
+ from __future__ import annotations
8
+
9
+ from argparse import _SubParsersAction
10
+ from typing import Any
11
+
12
+
13
+ def register(subparsers: _SubParsersAction[Any]) -> None:
14
+ from .._internal import converter
15
+
16
+ converter.register_upgrade(subparsers)
@@ -9,8 +9,8 @@ from __future__ import annotations
9
9
  from argparse import _SubParsersAction
10
10
  from typing import Any
11
11
 
12
- from .._internal import validate
13
-
14
12
 
15
13
  def register(subparsers: _SubParsersAction[Any]) -> None:
14
+ from .._internal import validate
15
+
16
16
  validate.register(subparsers)
@@ -42,7 +42,8 @@ def _new_u32_array() -> array[int]:
42
42
 
43
43
 
44
44
  def _new_offsets_array() -> array[int]:
45
- # データの範囲をoffsets[i]:offsets[i + 1] で求めるため、要素が0個でも先頭の0を作っておく。
45
+ # データの範囲をoffsets[i]:offsets[i + 1] で求めるため、
46
+ # 要素が0個でも先頭の0を作っておく。
46
47
  return array("I", [0])
47
48
 
48
49
 
@@ -169,7 +170,7 @@ class PolygonMesh:
169
170
  repr=False,
170
171
  )
171
172
  """面の頂点。
172
-
173
+
173
174
  例えば面が(0, 1, 2, 3),(4, 5, 6)なら、 [0, 1, 2, 3, 4, 5, 6]のように格納する"""
174
175
 
175
176
  face_offsets: array[int] = field(
@@ -325,7 +326,8 @@ class PlaneShape:
325
326
  @dataclass(slots=True)
326
327
  class PlaneShapeTable:
327
328
  points_xyz: array[float] = field(default_factory=_new_f64_array, repr=False)
328
- """全ループの頂点。x, y, z の順で1点につき3値。ループの順序はplane_loop_offsetsで表す。"""
329
+ """全ループの頂点。x, y, z の順で1点につき3値。
330
+ ループの順序はplane_loop_offsetsで表す。"""
329
331
  loop_point_offsets: array[int] = field(
330
332
  default_factory=_new_offsets_array,
331
333
  repr=False,
@@ -1135,7 +1137,8 @@ class BuildingGeometry:
1135
1137
  else:
1136
1138
  if not flags & ElementFlags.HAS_MESH:
1137
1139
  raise ValueError(
1138
- f"element {element_index} はmesh spanがありますがHAS_MESHではありません"
1140
+ f"element {element_index} はmesh spanがありますが"
1141
+ "HAS_MESHではありません"
1139
1142
  )
1140
1143
  if span.vertex_start + span.vertex_count > vertex_count:
1141
1144
  raise ValueError(