interlis2py 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (462) hide show
  1. ili2py/__init__.py +3 -0
  2. ili2py/_version.py +24 -0
  3. ili2py/cli.py +229 -0
  4. ili2py/interfaces/__init__.py +0 -0
  5. ili2py/interfaces/interlis/__init__.py +0 -0
  6. ili2py/interfaces/interlis/interlis_23/__init__.py +36 -0
  7. ili2py/interfaces/interlis/interlis_23/generator.py +146 -0
  8. ili2py/interfaces/interlis/interlis_24/__init__.py +37 -0
  9. ili2py/interfaces/interlis/interlis_24/ilismeta/README.md +21 -0
  10. ili2py/interfaces/interlis/interlis_24/ilismeta/__init__.py +0 -0
  11. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/__init__.py +815 -0
  12. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/actual_argument_type.py +630 -0
  13. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/actual_argument_type_formal_argument.py +19 -0
  14. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/actual_argument_type_object_classes.py +22 -0
  15. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/allowed_in_basket.py +11 -0
  16. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/allowed_in_basket_type.py +33 -0
  17. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/allowed_in_basket_type_class_in_basket.py +19 -0
  18. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/allowed_in_basket_type_of_data_unit.py +19 -0
  19. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/any_oidtype.py +12 -0
  20. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/any_oidtype_type.py +11 -0
  21. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/aref_of.py +12 -0
  22. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/aref_of_type.py +9 -0
  23. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/aref_restriction.py +12 -0
  24. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/aref_restriction_type.py +32 -0
  25. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/aref_restriction_type_aref.py +19 -0
  26. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/aref_restriction_type_type.py +19 -0
  27. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/argument.py +11 -0
  28. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/argument_type.py +11 -0
  29. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/argument_type_1.py +62 -0
  30. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/argument_type_function.py +37 -0
  31. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/argument_type_type_1.py +9 -0
  32. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/assoc_acc.py +11 -0
  33. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/assoc_acc_origin.py +11 -0
  34. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/assoc_acc_origin_type.py +8 -0
  35. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/assoc_acc_target.py +11 -0
  36. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/assoc_acc_target_type.py +8 -0
  37. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/assoc_acc_type.py +29 -0
  38. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/assoc_acc_type_assoc_acc.py +19 -0
  39. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/assoc_acc_type_class.py +19 -0
  40. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/assoc_role.py +11 -0
  41. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/assoc_role_type.py +8 -0
  42. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/attr_or_param.py +11 -0
  43. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/attr_or_param_type.py +11 -0
  44. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/attr_or_param_type_1.py +88 -0
  45. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/attr_or_param_type_attr_parent.py +37 -0
  46. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/attr_or_param_type_derivates.py +116 -0
  47. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/attr_or_param_type_param_parent.py +37 -0
  48. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/attr_or_param_type_type_1.py +9 -0
  49. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/attribute_const.py +11 -0
  50. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/attribute_const_type.py +19 -0
  51. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/attribute_const_type_attribute.py +19 -0
  52. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/attribute_ref_type.py +11 -0
  53. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/attribute_ref_type_type.py +19 -0
  54. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/attribute_ref_type_type_of.py +29 -0
  55. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/axis_spec.py +11 -0
  56. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/axis_spec_type.py +29 -0
  57. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/axis_spec_type_axis.py +27 -0
  58. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/axis_spec_type_coord_type.py +19 -0
  59. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/base_class.py +11 -0
  60. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/base_class_type.py +29 -0
  61. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/base_class_type_base_class.py +19 -0
  62. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/base_class_type_crt.py +19 -0
  63. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/base_type.py +11 -0
  64. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/base_type_type.py +8 -0
  65. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/base_view_def.py +11 -0
  66. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/base_view_def_type.py +8 -0
  67. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/base_view_ref.py +11 -0
  68. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/base_view_ref_type.py +8 -0
  69. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/blackbox_type.py +11 -0
  70. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/blackbox_type_type.py +19 -0
  71. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/boolean_type.py +11 -0
  72. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/boolean_type_type.py +10 -0
  73. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_attr.py +11 -0
  74. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_attr_type.py +8 -0
  75. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_const.py +11 -0
  76. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_const_type.py +19 -0
  77. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_const_type_class.py +19 -0
  78. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_constraint.py +11 -0
  79. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_constraint_type.py +8 -0
  80. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_mod.py +11 -0
  81. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_param.py +11 -0
  82. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_param_type.py +8 -0
  83. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_ref.py +11 -0
  84. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_ref_type.py +23 -0
  85. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_ref_type_ref.py +19 -0
  86. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_ref_type_type.py +10 -0
  87. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_related_type.py +11 -0
  88. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_related_type_type.py +10 -0
  89. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_restriction.py +11 -0
  90. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_restriction_type.py +31 -0
  91. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_restriction_type_class_restriction.py +19 -0
  92. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_restriction_type_crtr.py +19 -0
  93. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_type.py +74 -0
  94. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_type_existence_constraint.py +29 -0
  95. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_type_multiplicity.py +22 -0
  96. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_type_oid.py +29 -0
  97. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/class_type_view.py +29 -0
  98. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/concrete_for_generic.py +11 -0
  99. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/concrete_for_generic_type.py +33 -0
  100. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/concrete_for_generic_type_concrete_domain.py +19 -0
  101. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/concrete_for_generic_type_generic_def.py +19 -0
  102. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/cond_sign_param_assignment.py +13 -0
  103. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/cond_sign_param_assignment_type.py +31 -0
  104. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/cond_sign_param_assignment_type_assignments.py +22 -0
  105. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/cond_sign_param_assignment_type_where.py +116 -0
  106. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/constant.py +11 -0
  107. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/constant_type.py +28 -0
  108. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/constraint.py +11 -0
  109. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/constraint_type.py +28 -0
  110. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/constraint_type_to_class.py +29 -0
  111. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/constraint_type_to_domain.py +29 -0
  112. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/context.py +11 -0
  113. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/context_type.py +10 -0
  114. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/coord_type.py +11 -0
  115. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/coord_type_type.py +38 -0
  116. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/data_unit.py +11 -0
  117. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/data_unit_type.py +37 -0
  118. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/data_unit_type_oid.py +29 -0
  119. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/dependency.py +11 -0
  120. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/dependency_type.py +29 -0
  121. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/dependency_type_dependent.py +19 -0
  122. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/dependency_type_using.py +19 -0
  123. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/derived_assoc.py +11 -0
  124. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/derived_assoc_type.py +8 -0
  125. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/doc_text.py +11 -0
  126. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/doc_text_translation.py +11 -0
  127. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/doc_text_translation_type.py +17 -0
  128. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/doc_text_type.py +25 -0
  129. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/domain_constraint.py +11 -0
  130. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/domain_constraint_type.py +8 -0
  131. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/domain_type.py +11 -0
  132. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/domain_type_type.py +28 -0
  133. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/domain_type_type_context.py +29 -0
  134. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/drawing_rule.py +11 -0
  135. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/drawing_rule_type.py +37 -0
  136. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/drawing_rule_type_class.py +29 -0
  137. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/drawing_rule_type_graphic.py +29 -0
  138. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/drawing_rule_type_rule.py +22 -0
  139. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/enum_assignment_type_max_enum_value.py +19 -0
  140. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/enum_assignment_type_min_enum_value.py +19 -0
  141. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/enum_mapping_type_enum_value.py +22 -0
  142. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/enum_node.py +11 -0
  143. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/enum_node_type.py +28 -0
  144. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/enum_node_type_enum_type.py +37 -0
  145. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/enum_node_type_parent_node.py +37 -0
  146. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/enum_tree_value_type.py +11 -0
  147. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/enum_tree_value_type_type.py +20 -0
  148. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/enum_tree_value_type_type_et.py +29 -0
  149. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/enum_type.py +11 -0
  150. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/enum_type_type.py +19 -0
  151. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/existence_constraint.py +11 -0
  152. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/existence_constraint_type.py +20 -0
  153. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/existence_constraint_type_attr.py +22 -0
  154. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/existence_def.py +11 -0
  155. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/existence_def_type.py +8 -0
  156. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/explicit_assoc_acc.py +11 -0
  157. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/explicit_assoc_acc_type.py +8 -0
  158. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/explicit_assoc_access.py +11 -0
  159. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/explicit_assoc_access_type.py +44 -0
  160. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/explicit_assoc_access_type_assoc_acc_of.py +37 -0
  161. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/explicit_assoc_access_type_origin_role.py +29 -0
  162. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/explicit_assoc_access_type_target_role.py +29 -0
  163. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/expression.py +11 -0
  164. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/expression_type.py +8 -0
  165. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/extendable_me.py +12 -0
  166. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/extendable_metype.py +49 -0
  167. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/extendable_metype_super.py +29 -0
  168. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/factor.py +11 -0
  169. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/factor_type.py +10 -0
  170. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/formal_argument.py +11 -0
  171. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/formal_argument_type.py +8 -0
  172. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/formatted_type.py +11 -0
  173. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/formatted_type_type.py +29 -0
  174. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/formatted_type_type_struct.py +29 -0
  175. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/function_call_type_function.py +19 -0
  176. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/function_def.py +11 -0
  177. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/function_def_type.py +28 -0
  178. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/function_def_type_result_type.py +29 -0
  179. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/generic_def.py +11 -0
  180. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/generic_def_type.py +8 -0
  181. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/graphic.py +11 -0
  182. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/graphic_base.py +11 -0
  183. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/graphic_base_type.py +8 -0
  184. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/graphic_rule.py +11 -0
  185. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/graphic_rule_type.py +8 -0
  186. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/graphic_type.py +28 -0
  187. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/graphic_type_base.py +29 -0
  188. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/graphic_type_where.py +116 -0
  189. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/ili1_format.py +11 -0
  190. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/ili1_format_type.py +96 -0
  191. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/ili1_transfer_element.py +11 -0
  192. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/ili1_transfer_element_type.py +35 -0
  193. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/ili1_transfer_element_type_ili1_ref_attr.py +27 -0
  194. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/ili1_transfer_element_type_ili1_transfer_class.py +19 -0
  195. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/import_mod.py +11 -0
  196. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/import_type.py +29 -0
  197. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/import_type_imported_p.py +19 -0
  198. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/import_type_importing_p.py +19 -0
  199. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/inheritance.py +11 -0
  200. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/inheritance_type.py +8 -0
  201. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/line_attr.py +11 -0
  202. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/line_attr_type.py +8 -0
  203. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/line_coord.py +11 -0
  204. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/line_coord_type.py +8 -0
  205. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/line_form.py +11 -0
  206. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/line_form_structure.py +11 -0
  207. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/line_form_structure_type.py +8 -0
  208. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/line_form_type.py +20 -0
  209. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/line_form_type_structure.py +29 -0
  210. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/line_type.py +11 -0
  211. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/line_type_type.py +53 -0
  212. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/line_type_type_coord_type.py +29 -0
  213. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/line_type_type_lastructure.py +29 -0
  214. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/lines_form.py +11 -0
  215. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/lines_form_type.py +29 -0
  216. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/lines_form_type_line_form.py +19 -0
  217. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/lines_form_type_line_type.py +19 -0
  218. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/local_ftype.py +12 -0
  219. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/local_ftype_type.py +9 -0
  220. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/local_type.py +11 -0
  221. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/local_type_type.py +8 -0
  222. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_attribute.py +11 -0
  223. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_attribute_type.py +46 -0
  224. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_attribute_type_meta_element.py +29 -0
  225. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_attributes.py +11 -0
  226. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_attributes_type.py +8 -0
  227. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_basket_def.py +11 -0
  228. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_basket_def_type.py +31 -0
  229. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_basket_def_type_meta_data_topic.py +29 -0
  230. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_basket_members.py +11 -0
  231. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_basket_members_type.py +8 -0
  232. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_data_unit.py +11 -0
  233. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_data_unit_type.py +8 -0
  234. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_element.py +11 -0
  235. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_element_type.py +48 -0
  236. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_element_type_documentation.py +22 -0
  237. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_element_type_element_in_package.py +29 -0
  238. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_object_class.py +11 -0
  239. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_object_class_type.py +8 -0
  240. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_object_def.py +11 -0
  241. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_object_def_type.py +40 -0
  242. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_object_def_type_class.py +29 -0
  243. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/meta_object_def_type_meta_basket_def.py +29 -0
  244. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/metranslation.py +12 -0
  245. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/metranslation_type.py +41 -0
  246. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/metranslation_type_of.py +19 -0
  247. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/metranslation_type_translated_doc.py +22 -0
  248. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/model.py +11 -0
  249. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/model_data.py +11 -0
  250. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/model_data_basket_oid.py +12 -0
  251. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/model_data_basket_oidtype.py +9 -0
  252. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/model_data_type.py +455 -0
  253. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/model_translation.py +11 -0
  254. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/model_translation_type.py +33 -0
  255. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/model_type.py +101 -0
  256. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/model_type_ili1_format.py +22 -0
  257. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/multi_value.py +11 -0
  258. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/multi_value_type.py +28 -0
  259. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/multi_value_type_multiplicity.py +22 -0
  260. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/multiplicity.py +11 -0
  261. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/multiplicity_type.py +29 -0
  262. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/num_type.py +11 -0
  263. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/num_type_type.py +60 -0
  264. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/num_type_type_ref_sys.py +29 -0
  265. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/num_type_type_unit.py +29 -0
  266. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/num_unit.py +11 -0
  267. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/num_unit_type.py +8 -0
  268. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/nums_ref_sys.py +11 -0
  269. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/nums_ref_sys_type.py +18 -0
  270. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/object_oid.py +12 -0
  271. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/object_oidtype.py +9 -0
  272. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/object_type.py +11 -0
  273. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/object_type_type.py +19 -0
  274. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/package.py +11 -0
  275. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/package_elements.py +11 -0
  276. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/package_elements_type.py +8 -0
  277. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/package_type.py +10 -0
  278. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/path_el.py +11 -0
  279. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/path_el_type.py +44 -0
  280. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/path_el_type_ref.py +19 -0
  281. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/path_or_insp_factor.py +11 -0
  282. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/path_or_insp_factor_type.py +32 -0
  283. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/path_or_insp_factor_type_inspection.py +19 -0
  284. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/path_or_insp_factor_type_path_els.py +22 -0
  285. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/reference_type.py +11 -0
  286. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/reference_type_type.py +19 -0
  287. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/renamed_base_view.py +11 -0
  288. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/renamed_base_view_type.py +39 -0
  289. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/renamed_base_view_type_base_view.py +29 -0
  290. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/renamed_base_view_type_view.py +37 -0
  291. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/result_type.py +11 -0
  292. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/result_type_type.py +8 -0
  293. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/role.py +11 -0
  294. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/role_type.py +64 -0
  295. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/role_type_association.py +37 -0
  296. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/role_type_derivates.py +116 -0
  297. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/role_type_multiplicity.py +22 -0
  298. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/runtime_param_ref.py +11 -0
  299. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/runtime_param_ref_type.py +22 -0
  300. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/runtime_param_ref_type_runtime_param.py +19 -0
  301. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/set_constraint.py +11 -0
  302. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/set_constraint_type.py +28 -0
  303. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/set_constraint_type_constraint.py +116 -0
  304. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/set_constraint_type_where.py +116 -0
  305. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/sign_class.py +11 -0
  306. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/sign_class_type.py +8 -0
  307. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/sign_param_assignment.py +11 -0
  308. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/sign_param_assignment_type.py +32 -0
  309. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/sign_param_assignment_type_assignment.py +116 -0
  310. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/sign_param_assignment_type_param.py +19 -0
  311. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/simple_constraint.py +11 -0
  312. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/simple_constraint_type.py +42 -0
  313. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/simple_constraint_type_logical_expression.py +116 -0
  314. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/struct_of_format.py +11 -0
  315. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/struct_of_format_type.py +8 -0
  316. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/sub_model.py +11 -0
  317. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/sub_model_type.py +10 -0
  318. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/sub_node.py +11 -0
  319. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/sub_node_type.py +8 -0
  320. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/text_type.py +11 -0
  321. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/text_type_type.py +29 -0
  322. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/top_node.py +11 -0
  323. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/top_node_type.py +8 -0
  324. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/transfer_element.py +11 -0
  325. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/transfer_element_type.py +33 -0
  326. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/transfer_element_type_transfer_class.py +19 -0
  327. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/transfer_element_type_transfer_element.py +27 -0
  328. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/translation.py +11 -0
  329. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/translation_type.py +36 -0
  330. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/translation_type_translations.py +22 -0
  331. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/tree_value_type_of.py +11 -0
  332. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/tree_value_type_of_type.py +8 -0
  333. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/type_mod.py +11 -0
  334. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/type_related_type.py +11 -0
  335. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/type_related_type_type.py +22 -0
  336. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/type_related_type_type_base_type.py +29 -0
  337. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/type_restriction.py +11 -0
  338. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/type_restriction_type.py +31 -0
  339. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/type_restriction_type_trtr.py +19 -0
  340. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/type_restriction_type_type_restriction.py +19 -0
  341. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/type_type.py +28 -0
  342. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/type_type_lftparent.py +29 -0
  343. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/type_type_ltparent.py +29 -0
  344. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/unique_constraint.py +11 -0
  345. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/unique_constraint_type.py +40 -0
  346. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/unique_constraint_type_unique_def.py +22 -0
  347. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/unique_constraint_type_where.py +116 -0
  348. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/unit.py +11 -0
  349. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/unit_function.py +11 -0
  350. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/unit_function_type.py +19 -0
  351. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/unit_ref.py +11 -0
  352. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/unit_ref_type.py +19 -0
  353. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/unit_ref_type_unit.py +19 -0
  354. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/unit_type.py +28 -0
  355. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/unit_type_definition.py +116 -0
  356. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/view.py +11 -0
  357. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/view_type.py +46 -0
  358. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/view_type_formation_parameter.py +116 -0
  359. ili2py/interfaces/interlis/interlis_24/ilismeta/ilismeta16_2022_10_10/view_type_where.py +116 -0
  360. ili2py/interfaces/interlis/interlis_24/ilismeta16/README.md +6 -0
  361. ili2py/interfaces/interlis/interlis_24/ilismeta16/__init__.py +45 -0
  362. ili2py/interfaces/interlis/interlis_24/ilismeta16/helper.py +65 -0
  363. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/__init__.py +0 -0
  364. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/abstract_element.py +85 -0
  365. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/constraints.py +47 -0
  366. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/extendable_me/__init__.py +0 -0
  367. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/extendable_me/extendable_me.py +102 -0
  368. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/extendable_me/type/__init__.py +0 -0
  369. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/extendable_me/type/domain_type/__init__.py +0 -0
  370. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/extendable_me/type/domain_type/class_related_type/__init__.py +0 -0
  371. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/extendable_me/type/domain_type/class_related_type/class_related_type.py +26 -0
  372. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/extendable_me/type/domain_type/class_related_type/role.py +56 -0
  373. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/extendable_me/type/domain_type/domain_type.py +171 -0
  374. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/extendable_me/type/expression/__init__.py +0 -0
  375. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/extendable_me/type/expression/expression.py +52 -0
  376. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/extendable_me/type/expression/factor/__init__.py +0 -0
  377. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/extendable_me/type/expression/factor/factor.py +46 -0
  378. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/extendable_me/type/type_class.py +77 -0
  379. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/line_form.py +39 -0
  380. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/meta_element.py +47 -0
  381. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/model_data.py +132 -0
  382. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/package/__init__.py +0 -0
  383. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/package/package.py +99 -0
  384. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/path_elements.py +51 -0
  385. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/references.py +57 -0
  386. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_data/serialization_elements.py +81 -0
  387. ili2py/interfaces/interlis/interlis_24/ilismeta16/model_translation/__init__.py +0 -0
  388. ili2py/interfaces/interlis/interlis_24/ilismeta16/shared.py +5 -0
  389. ili2py/mappers/__init__.py +0 -0
  390. ili2py/mappers/helpers.py +1018 -0
  391. ili2py/mappers/internal/__init__.py +0 -0
  392. ili2py/mappers/internal/ilismeta16/__init__.py +0 -0
  393. ili2py/mappers/internal/ilismeta16/domain.py +29 -0
  394. ili2py/mappers/internal/ilismeta16/model_data/__init__.py +0 -0
  395. ili2py/mappers/internal/ilismeta16/model_data/definitions.py +401 -0
  396. ili2py/mappers/internal/ilismeta16/model_data/domain.py +31 -0
  397. ili2py/mappers/internal/ilismeta16/model_data/types.py +94 -0
  398. ili2py/mappers/internal/ilismeta16/model_data/units.py +49 -0
  399. ili2py/py.typed +0 -0
  400. ili2py/readers/__init__.py +0 -0
  401. ili2py/readers/interlis_23/__init__.py +0 -0
  402. ili2py/readers/interlis_23/xtf/__init__.py +0 -0
  403. ili2py/readers/interlis_23/xtf/xsdata.py +38 -0
  404. ili2py/readers/interlis_24/__init__.py +0 -0
  405. ili2py/readers/interlis_24/ilismeta16/__init__.py +0 -0
  406. ili2py/readers/interlis_24/ilismeta16/xsdata.py +40 -0
  407. ili2py/readers/interlis_24/xtf/__init__.py +0 -0
  408. ili2py/scripts/__init__.py +0 -0
  409. ili2py/scripts/config.py +21 -0
  410. ili2py/scripts/generate_docs_diagrams.py +177 -0
  411. ili2py/scripts/generate_mermaid_diagrams.py +118 -0
  412. ili2py/scripts/generate_plantuml_diagrams.py +156 -0
  413. ili2py/scripts/generate_test_output.py +632 -0
  414. ili2py/writers/__init__.py +0 -0
  415. ili2py/writers/diagram/__init__.py +33 -0
  416. ili2py/writers/diagram/interlis/__init__.py +115 -0
  417. ili2py/writers/diagram/interlis/templates/dot/class.jinja2 +34 -0
  418. ili2py/writers/diagram/interlis/templates/dot/classes.jinja2 +4 -0
  419. ili2py/writers/diagram/interlis/templates/dot/dot.jinja2 +48 -0
  420. ili2py/writers/diagram/interlis/templates/mermaid/mermaid.jinja2 +69 -0
  421. ili2py/writers/diagram/interlis/templates/plantuml/plantuml.jinja2 +62 -0
  422. ili2py/writers/diagram/interlis/templates/plantuml_role_members/plantuml_role_members.jinja2 +78 -0
  423. ili2py/writers/diagram/interlis/uml.py +353 -0
  424. ili2py/writers/helpers.py +36 -0
  425. ili2py/writers/py/__init__.py +0 -0
  426. ili2py/writers/py/constraints.py +183 -0
  427. ili2py/writers/py/interlis23/templates/classes.jinja2 +218 -0
  428. ili2py/writers/py/interlis23/templates/convertable_types.jinja2 +50 -0
  429. ili2py/writers/py/interlis23/templates/coord_types.jinja2 +126 -0
  430. ili2py/writers/py/interlis23/templates/domain_types.jinja2 +26 -0
  431. ili2py/writers/py/interlis23/templates/enumerations.jinja2 +27 -0
  432. ili2py/writers/py/interlis23/templates/library_init.jinja2 +5 -0
  433. ili2py/writers/py/interlis23/templates/line_types.jinja2 +162 -0
  434. ili2py/writers/py/interlis23/templates/module.jinja2 +89 -0
  435. ili2py/writers/py/interlis23/templates/package_init.jinja2 +56 -0
  436. ili2py/writers/py/interlis23/templates/references.jinja2 +26 -0
  437. ili2py/writers/py/interlis23/templates/xtf_opening.jinja2 +126 -0
  438. ili2py/writers/py/interlis24/templates/classes.jinja2 +225 -0
  439. ili2py/writers/py/interlis24/templates/convertable_types.jinja2 +50 -0
  440. ili2py/writers/py/interlis24/templates/coord_types.jinja2 +120 -0
  441. ili2py/writers/py/interlis24/templates/domain_types.jinja2 +26 -0
  442. ili2py/writers/py/interlis24/templates/enumerations.jinja2 +27 -0
  443. ili2py/writers/py/interlis24/templates/library_init.jinja2 +5 -0
  444. ili2py/writers/py/interlis24/templates/line_type_polyline.jinja2 +31 -0
  445. ili2py/writers/py/interlis24/templates/line_type_polyline_multi.jinja2 +49 -0
  446. ili2py/writers/py/interlis24/templates/line_type_segment.jinja2 +27 -0
  447. ili2py/writers/py/interlis24/templates/line_type_surface.jinja2 +31 -0
  448. ili2py/writers/py/interlis24/templates/line_type_surface_boundary.jinja2 +40 -0
  449. ili2py/writers/py/interlis24/templates/line_type_surface_multi.jinja2 +50 -0
  450. ili2py/writers/py/interlis24/templates/line_types.jinja2 +41 -0
  451. ili2py/writers/py/interlis24/templates/module.jinja2 +89 -0
  452. ili2py/writers/py/interlis24/templates/package_init.jinja2 +56 -0
  453. ili2py/writers/py/interlis24/templates/references.jinja2 +13 -0
  454. ili2py/writers/py/interlis24/templates/xtf_opening.jinja2 +120 -0
  455. ili2py/writers/py/python_structure.py +1829 -0
  456. ili2py/writers/py/render.py +180 -0
  457. interlis2py-0.1.0.dist-info/METADATA +91 -0
  458. interlis2py-0.1.0.dist-info/RECORD +462 -0
  459. interlis2py-0.1.0.dist-info/WHEEL +5 -0
  460. interlis2py-0.1.0.dist-info/entry_points.txt +2 -0
  461. interlis2py-0.1.0.dist-info/licenses/LICENSE +661 -0
  462. interlis2py-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,353 @@
1
+ import logging
2
+ from abc import ABC
3
+ from dataclasses import dataclass, field
4
+ from typing import Any
5
+
6
+ from ili2py.interfaces.interlis.interlis_24.ilismeta.ilismeta16_2022_10_10 import (
7
+ AttrOrParam as ImdAttrOrParam,
8
+ )
9
+ from ili2py.interfaces.interlis.interlis_24.ilismeta.ilismeta16_2022_10_10 import (
10
+ BlackboxType as ImdBlackboxType,
11
+ )
12
+ from ili2py.interfaces.interlis.interlis_24.ilismeta.ilismeta16_2022_10_10 import (
13
+ BooleanType as ImdBooleanType,
14
+ )
15
+ from ili2py.interfaces.interlis.interlis_24.ilismeta.ilismeta16_2022_10_10 import (
16
+ Class as ImdClass,
17
+ )
18
+ from ili2py.interfaces.interlis.interlis_24.ilismeta.ilismeta16_2022_10_10 import (
19
+ ClassRefType as ImdClassRefType,
20
+ )
21
+ from ili2py.interfaces.interlis.interlis_24.ilismeta.ilismeta16_2022_10_10 import (
22
+ CoordType as ImdCoordType,
23
+ )
24
+ from ili2py.interfaces.interlis.interlis_24.ilismeta.ilismeta16_2022_10_10 import (
25
+ EnumTreeValueType as ImdEnumTreeValueType,
26
+ )
27
+ from ili2py.interfaces.interlis.interlis_24.ilismeta.ilismeta16_2022_10_10 import (
28
+ EnumType as ImdEnumType,
29
+ )
30
+ from ili2py.interfaces.interlis.interlis_24.ilismeta.ilismeta16_2022_10_10 import (
31
+ FormattedType as ImdFormattedType,
32
+ )
33
+ from ili2py.interfaces.interlis.interlis_24.ilismeta.ilismeta16_2022_10_10 import (
34
+ LineType as ImdLineType,
35
+ )
36
+ from ili2py.interfaces.interlis.interlis_24.ilismeta.ilismeta16_2022_10_10 import (
37
+ Model as ImdModel,
38
+ )
39
+ from ili2py.interfaces.interlis.interlis_24.ilismeta.ilismeta16_2022_10_10 import (
40
+ MultiValue as ImdMultiValue,
41
+ )
42
+ from ili2py.interfaces.interlis.interlis_24.ilismeta.ilismeta16_2022_10_10 import (
43
+ NumType as ImdNumType,
44
+ )
45
+ from ili2py.interfaces.interlis.interlis_24.ilismeta.ilismeta16_2022_10_10 import (
46
+ Role as ImdRole,
47
+ )
48
+ from ili2py.interfaces.interlis.interlis_24.ilismeta.ilismeta16_2022_10_10 import (
49
+ SubModel as ImdSubmodel,
50
+ )
51
+ from ili2py.interfaces.interlis.interlis_24.ilismeta.ilismeta16_2022_10_10 import (
52
+ TextType as ImdTextType,
53
+ )
54
+ from ili2py.mappers.helpers import Index, mandatory, mandatory_ref
55
+
56
+ # (class tid, multiplicity, strongness, role tid) of one end of an association
57
+ type AssociationEnd = tuple[str, str | None, str, str]
58
+ # all ends of an association, followed by the name of the association
59
+ type Association = list[AssociationEnd | str]
60
+
61
+
62
+ @dataclass
63
+ class Base(ABC):
64
+ oid: str
65
+ name: str
66
+
67
+ @property
68
+ def save_oid(self) -> str:
69
+ return self.oid.replace(".", "_")
70
+
71
+
72
+ @dataclass
73
+ class Attribute(Base):
74
+ type_definition: str
75
+ mandatory: str
76
+
77
+ @classmethod
78
+ def from_imd(cls, attribute: ImdAttrOrParam, index: Index):
79
+ type_name, is_mandatory = Attribute.handle_type(attribute, index)
80
+ return cls(
81
+ name=mandatory(attribute.name),
82
+ oid=mandatory(attribute.tid),
83
+ type_definition=type_name,
84
+ mandatory="[1]" if is_mandatory else "[0..1]",
85
+ )
86
+
87
+ @staticmethod
88
+ def handle_type(attribute: ImdAttrOrParam, index: Index) -> tuple[str, bool]:
89
+ type_definition = index.index[mandatory_ref(attribute.type_value)]
90
+ name = Attribute.handle_type_trail(type_definition, index)
91
+ return name, type_definition.mandatory
92
+
93
+ @staticmethod
94
+ def handle_type_trail(
95
+ type_definition: (
96
+ ImdTextType
97
+ | ImdFormattedType
98
+ | ImdBlackboxType
99
+ | ImdNumType
100
+ | ImdBooleanType
101
+ | ImdMultiValue
102
+ | ImdEnumType
103
+ | ImdCoordType
104
+ | ImdLineType
105
+ | ImdEnumTreeValueType
106
+ | ImdClassRefType
107
+ ),
108
+ index: Index,
109
+ ) -> str:
110
+ if isinstance(type_definition, ImdTextType):
111
+ return "String"
112
+ elif isinstance(type_definition, ImdFormattedType):
113
+ if type_definition.super and type_definition.name == "TYPE":
114
+ return Attribute.handle_type_trail(
115
+ index.index[type_definition.super.ref], index
116
+ )
117
+ else:
118
+ return mandatory(type_definition.name)
119
+ elif isinstance(type_definition, ImdBlackboxType):
120
+ return "BlackBox"
121
+ elif isinstance(type_definition, ImdNumType):
122
+ return "Number"
123
+ elif isinstance(type_definition, ImdBooleanType):
124
+ return "Boolean"
125
+ elif isinstance(type_definition, ImdMultiValue):
126
+ return index.index[mandatory_ref(type_definition.base_type)].name
127
+ elif isinstance(type_definition, (ImdEnumType, ImdEnumTreeValueType)):
128
+ return "Enumeration"
129
+ elif isinstance(type_definition, (ImdCoordType, ImdLineType)):
130
+ if type_definition.super and type_definition.name == "TYPE":
131
+ return Attribute.handle_type_trail(
132
+ index.index[type_definition.super.ref], index
133
+ )
134
+ else:
135
+ return mandatory(type_definition.name)
136
+ elif isinstance(type_definition, ImdClassRefType):
137
+ return index.index[index.class_related_type[type_definition.tid]].name
138
+ else:
139
+ logging.debug(
140
+ f"Type was not handled correctly for UML preparation: {type_definition}"
141
+ )
142
+ return "UNKNOWN"
143
+
144
+
145
+ @dataclass
146
+ class Class(Base):
147
+ attributes: list[Attribute]
148
+ inherits_from: str | None
149
+ association_attributes: list[Attribute] = field(default_factory=list)
150
+
151
+ @classmethod
152
+ def from_imd(cls, class_definition: ImdClass, index: Index):
153
+ attributes = []
154
+ if index.class_class_attribute.get(class_definition.tid):
155
+ for attribute_tid in index.class_class_attribute[class_definition.tid]:
156
+ attribute = index.index[attribute_tid]
157
+ attributes.append(Attribute.from_imd(attribute, index))
158
+ association_attributes = []
159
+ association_oids = index.associated_classes.get(class_definition.tid, [])
160
+ for association_oid in association_oids:
161
+ for (
162
+ role_oid,
163
+ related_class_oid,
164
+ _strongness,
165
+ _min,
166
+ _max,
167
+ ) in index.association_bucket[association_oid]:
168
+ if related_class_oid != class_definition.tid:
169
+ role_object: ImdRole = index.index[role_oid]
170
+ multiplicity = Index.role_multiplicity(role_object)
171
+ minimum = multiplicity.min or 0
172
+ maximum = "*" if multiplicity.max is None else multiplicity.max
173
+ association_attributes.append(
174
+ Attribute(
175
+ oid=role_oid,
176
+ name=mandatory(role_object.name),
177
+ type_definition="Ref",
178
+ mandatory=f"{minimum}...{maximum}"
179
+ if minimum != maximum
180
+ else f"{minimum}",
181
+ )
182
+ )
183
+
184
+ return cls(
185
+ name=mandatory(class_definition.name),
186
+ oid=mandatory(class_definition.tid),
187
+ inherits_from=class_definition.super.ref if class_definition.super else None,
188
+ attributes=attributes,
189
+ association_attributes=association_attributes,
190
+ )
191
+
192
+
193
+ @dataclass
194
+ class Group(Base, ABC):
195
+ """
196
+ Common base of ili:Model and ili:Topic
197
+ """
198
+
199
+ classes: list[Class]
200
+ associations: list[Association]
201
+
202
+ @staticmethod
203
+ def handle_class(classes: list[Class], element: Any, index: Index):
204
+ classes.append(Class.from_imd(element, index))
205
+
206
+ @classmethod
207
+ def handle_association(
208
+ cls,
209
+ associations: list[Association],
210
+ association: ImdClass,
211
+ index: Index,
212
+ ):
213
+ if index.association_bucket.get(association.tid):
214
+ association_string: Association = []
215
+ for role_tid, class_tid, _strongness, _min, _max in index.association_bucket[
216
+ association.tid
217
+ ]:
218
+ role = index.index[role_tid]
219
+ related_class = index.index[class_tid]
220
+ if role.multiplicity.multiplicity is None:
221
+ multiplicity_string = None
222
+ else:
223
+ multiplicity_string = TopicGroup.render_multiplicity(
224
+ role.multiplicity.multiplicity.min, role.multiplicity.multiplicity.max
225
+ )
226
+ strongness_string = TopicGroup.render_strongness(role.strongness)
227
+ association_string.append(
228
+ (related_class.tid, multiplicity_string, strongness_string, role_tid)
229
+ )
230
+ association_string.append(mandatory(association.name))
231
+ associations.append(association_string)
232
+
233
+ @staticmethod
234
+ def render_multiplicity(minimum, maximum) -> str:
235
+ if minimum == 1 and maximum == 1:
236
+ return "1"
237
+ elif minimum == 0 and maximum == 0:
238
+ # Cardinality / Multiplicity '0' is not implemented in mermaid
239
+ return "0"
240
+ elif minimum == 0 and maximum == 1:
241
+ return "0..1"
242
+ elif minimum == 1 and maximum is None:
243
+ return "1..*"
244
+ elif minimum == 0 and maximum is None:
245
+ # Cardinality / Multiplicity '0..*' is not implemented in mermaid directly we
246
+ # deliver empty string
247
+ return "0..*"
248
+ elif minimum is None and maximum is None:
249
+ return "*"
250
+ else:
251
+ return f"{minimum}..{maximum}"
252
+
253
+ @staticmethod
254
+ def render_strongness(strongness: str):
255
+ if strongness == "Assoc":
256
+ # TODO: decide if we want to show direction of association with arrows at the end
257
+ # of the connector
258
+ logging.debug("Association is drawn without arrows currently!")
259
+ return ""
260
+ elif strongness == "Aggr":
261
+ return "o"
262
+ elif strongness == "Comp":
263
+ return "*"
264
+ else:
265
+ logging.error(f"Unknown strongness: {strongness}")
266
+ return ""
267
+
268
+
269
+ @dataclass
270
+ class TopicGroup(Group):
271
+ """
272
+ Represents an ili:Topic
273
+ """
274
+
275
+ @classmethod
276
+ def from_imd(cls, sub_model: ImdSubmodel, index: Index):
277
+ classes: list[Class] = []
278
+ associations: list[Association] = []
279
+
280
+ if index.class_in_package.get(sub_model.tid):
281
+ for element_tid in index.class_in_package[sub_model.tid]:
282
+ element = index.index[element_tid]
283
+ cls.handle_class(classes, element, index)
284
+ if index.association_in_package.get(sub_model.tid):
285
+ for element_tid in index.association_in_package[sub_model.tid]:
286
+ element = index.index[element_tid]
287
+ cls.handle_association(associations, element, index)
288
+
289
+ return cls(
290
+ name=mandatory(sub_model.name),
291
+ oid=mandatory(sub_model.tid),
292
+ classes=classes,
293
+ associations=associations,
294
+ )
295
+
296
+
297
+ @dataclass
298
+ class ModelGroup(Group):
299
+ """
300
+ Represents an ili:Model
301
+ """
302
+
303
+ topic_groups: list[TopicGroup]
304
+
305
+ @classmethod
306
+ def from_imd(cls, model: ImdModel, index: Index):
307
+ topics: list[TopicGroup] = []
308
+ classes: list[Class] = []
309
+ associations: list[Association] = []
310
+ if index.submodel_in_package.get(model.tid):
311
+ for element_tid in index.submodel_in_package[model.tid]:
312
+ element = index.index[element_tid]
313
+ cls.handle_topic(topics, element, index)
314
+ if index.class_in_package.get(model.tid):
315
+ for element_tid in index.class_in_package[model.tid]:
316
+ element = index.index[element_tid]
317
+ cls.handle_class(classes, element, index)
318
+ if index.association_in_package.get(model.tid):
319
+ for element_tid in index.association_in_package[model.tid]:
320
+ element = index.index[element_tid]
321
+ cls.handle_association(associations, element, index)
322
+ return cls(
323
+ name=mandatory(model.name),
324
+ oid=mandatory(model.tid),
325
+ topic_groups=topics,
326
+ classes=classes,
327
+ associations=associations,
328
+ )
329
+
330
+ @staticmethod
331
+ def handle_topic(topics: list[TopicGroup], element: Any, index: Index):
332
+ if isinstance(element, ImdSubmodel):
333
+ topics.append(TopicGroup.from_imd(element, index))
334
+
335
+
336
+ @dataclass
337
+ class Diagram(Base):
338
+ """
339
+ Represents the whole diagram with all nested items
340
+ """
341
+
342
+ model_groups: list[ModelGroup]
343
+
344
+ @classmethod
345
+ def from_imd(cls, index: Index):
346
+ models = []
347
+ for model in index.types_bucket["Model"]:
348
+ models.append(ModelGroup.from_imd(model, index))
349
+ return cls(
350
+ name=", ".join([model.name for model in models]),
351
+ oid="diagram",
352
+ model_groups=models,
353
+ )
@@ -0,0 +1,36 @@
1
+ import logging
2
+ import os
3
+ from pathlib import Path
4
+
5
+ from ili2py.mappers.helpers import Index
6
+
7
+
8
+ def handle_model_versions(index: Index) -> str:
9
+ ili_version: str | None = None
10
+ for model in index.types_bucket["Model"]:
11
+ if model.name == "INTERLIS":
12
+ logging.debug(
13
+ "INTERLIS package is ignored for version check due "
14
+ "to https://github.com/claeis/ili2c/issues/146"
15
+ )
16
+ else:
17
+ if not ili_version:
18
+ ili_version = model.ili_version
19
+ if model.ili_version != ili_version:
20
+ logging.error(f"General version {ili_version} does not match package {model}")
21
+ raise RuntimeError(
22
+ "Different ili versions in one library are not supported "
23
+ "(enable debug and check logs for details). Please have also a look at "
24
+ "https://interlis.discourse.group/t/gibt-es-gruende-weshalb-man-ili2-3-und-ili2-4-nicht-mischen-sollte/78"
25
+ )
26
+ if ili_version is None:
27
+ raise LookupError(
28
+ "No model besides INTERLIS found to derive the INTERLIS version from"
29
+ )
30
+ return ili_version
31
+
32
+
33
+ def create_file(output_path: str, model_name: str, file_name: str):
34
+ output_file = Path(os.path.join(output_path, model_name, file_name))
35
+ output_file.parent.mkdir(exist_ok=True, parents=True)
36
+ return output_file
File without changes
@@ -0,0 +1,183 @@
1
+ from abc import ABC
2
+ from dataclasses import dataclass, field
3
+ from decimal import Decimal
4
+ from typing import Union
5
+
6
+
7
+ @dataclass
8
+ class Expression(ABC):
9
+ pass
10
+
11
+
12
+ @dataclass
13
+ class Factor(Expression, ABC):
14
+ pass
15
+
16
+
17
+ @dataclass
18
+ class UnaryExpr(Expression):
19
+ operation: str | None = field(default=None)
20
+ sub_expression: Union["ExpressionType", None] = field(default=None)
21
+
22
+
23
+ @dataclass
24
+ class CompoundExpr(Expression):
25
+ operation: str | None = field(default=None)
26
+ sub_expressions: list["ExpressionType"] | None = field(default_factory=list)
27
+
28
+
29
+ @dataclass
30
+ class PathEl:
31
+ kind: str | None = field(default=None)
32
+ ref: str | None = field(default=None)
33
+ num_index: int | None = field(default=None)
34
+ spec_index: str | None = field(default=None)
35
+
36
+
37
+ @dataclass
38
+ class PathOrInspFactor(Factor):
39
+ path_els: list[PathEl] = field(default_factory=list)
40
+ inspection: str | None = field(default=None)
41
+
42
+
43
+ @dataclass
44
+ class EnumAssignment:
45
+ # reference to Ilismeta16.EnumNode
46
+ min_enum_value: str = field()
47
+ max_enum_value: str | None = field(
48
+ default=None,
49
+ )
50
+ value_to_assign: Union["ExpressionType", None] = field(
51
+ default=None,
52
+ )
53
+
54
+
55
+ @dataclass
56
+ class EnumMapping(Factor):
57
+ enum_value: PathOrInspFactor | None = field(
58
+ default=None,
59
+ )
60
+ cases: list[EnumAssignment] = field(
61
+ default_factory=list,
62
+ )
63
+
64
+
65
+ @dataclass
66
+ class ActualArgument:
67
+ kind: str = field()
68
+ # reference string to Argument
69
+ formal_argument: str | None = field(
70
+ default=None,
71
+ )
72
+ # references to classes bag {0..1}
73
+ expression: Union["ExpressionType", None] = field(
74
+ default=None,
75
+ )
76
+ # references to classes bag {0..*}
77
+ object_classes: list[str] = field(
78
+ default_factory=list,
79
+ )
80
+
81
+
82
+ @dataclass
83
+ class FunctionCall(Factor):
84
+ # ref to IlisMeta16.FunctionDef
85
+ function: str | None = field(
86
+ default=None,
87
+ )
88
+ arguments: list[ActualArgument] = field(
89
+ default_factory=list,
90
+ )
91
+
92
+
93
+ @dataclass
94
+ class RuntimeParamRef(Factor):
95
+ # reference to Ilismeta16.AttrOrParam
96
+ runtime_param: str = field()
97
+
98
+
99
+ @dataclass
100
+ class Constant(Factor):
101
+ value: str = field()
102
+ type: str = field()
103
+
104
+
105
+ @dataclass
106
+ class ClassConst(Factor):
107
+ # reference to Ilismeta16.Class
108
+ class_value: str | None = field(default=None)
109
+
110
+
111
+ @dataclass
112
+ class AttributeConst(Factor):
113
+ # reference to Ilismeta16.AttrOrParam
114
+ attribute: str | None = field(default=None)
115
+
116
+
117
+ @dataclass
118
+ class UnitRef(Factor):
119
+ unit: str | None = field(default=None)
120
+
121
+
122
+ @dataclass
123
+ class UnitFunction(Factor):
124
+ explanation: str = field()
125
+
126
+
127
+ @dataclass
128
+ class ExpressionType:
129
+ class Meta:
130
+ global_type = False
131
+
132
+ choice: (
133
+ UnitFunction
134
+ | UnitRef
135
+ | AttributeConst
136
+ | ClassConst
137
+ | Constant
138
+ | RuntimeParamRef
139
+ | FunctionCall
140
+ | EnumMapping
141
+ | PathOrInspFactor
142
+ | CompoundExpr
143
+ | UnaryExpr
144
+ | None
145
+ ) = field(default=None)
146
+
147
+
148
+ @dataclass
149
+ class Constraint:
150
+ id: str = field()
151
+ name: str = field()
152
+ documentation: list[str] = field()
153
+ to_class: str | None = field(default=None)
154
+ to_domain: str | None = field(default=None)
155
+
156
+
157
+ @dataclass(kw_only=True)
158
+ class SimpleConstraint(Constraint):
159
+ kind: str | None = field(default=None)
160
+ percentage: Decimal | None = field(
161
+ default=None,
162
+ )
163
+ logical_expression: ExpressionType | None = field(default=None)
164
+
165
+
166
+ @dataclass(kw_only=True)
167
+ class ExistenceConstraint(Constraint):
168
+ attr: PathOrInspFactor = field()
169
+
170
+
171
+ @dataclass(kw_only=True)
172
+ class UniqueConstraint(Constraint):
173
+ kind: str = field()
174
+ unique_def: list[PathOrInspFactor] = field()
175
+ # bag of...
176
+ where: ExpressionType | None = field(default=None)
177
+
178
+
179
+ @dataclass(kw_only=True)
180
+ class SetConstraint(Constraint):
181
+ # bag of...
182
+ where: ExpressionType | None = field(default=None)
183
+ constraint: ExpressionType | None = field(default=None)