FourCIPP 1.25.0__tar.gz → 1.27.0__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.
- {fourcipp-1.25.0/src/FourCIPP.egg-info → fourcipp-1.27.0}/PKG-INFO +1 -1
- {fourcipp-1.25.0 → fourcipp-1.27.0/src/FourCIPP.egg-info}/PKG-INFO +1 -1
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/config/4C_metadata.yaml +93 -1
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/config/4C_schema.json +129 -2
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/fourc_input.py +30 -10
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/version.py +3 -3
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/fourcipp/test_fourc_input.py +14 -13
- {fourcipp-1.25.0 → fourcipp-1.27.0}/.coveragerc +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/.github/workflows/check_code.yaml +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/.github/workflows/publish_pypi.yaml +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/.github/workflows/run_testsuite.yaml +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/.github/workflows/tag_version.yaml +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/.github/workflows/update_4C_metadata_schema_file.yaml +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/.gitignore +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/.pre-commit-config.yaml +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/LICENSE +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/README.md +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/docs/assets/fourcipp_logo_black.svg +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/docs/assets/fourcipp_logo_white.svg +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/pyproject.toml +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/requirements.in +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/requirements.txt +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/setup.cfg +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/FourCIPP.egg-info/SOURCES.txt +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/FourCIPP.egg-info/dependency_links.txt +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/FourCIPP.egg-info/entry_points.txt +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/FourCIPP.egg-info/requires.txt +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/FourCIPP.egg-info/top_level.txt +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/__init__.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/config/config.yaml +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/legacy_io/__init__.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/legacy_io/element.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/legacy_io/inline_dat.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/legacy_io/node.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/legacy_io/node_topology.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/legacy_io/particle.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/utils/__init__.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/utils/cli.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/utils/configuration.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/utils/converter.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/utils/dict_utils.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/utils/metadata.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/utils/not_set.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/utils/type_hinting.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/utils/validation.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/src/fourcipp/utils/yaml_io.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/__init__.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/conftest.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/fourcipp/__init__.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/fourcipp/legacy_io/__init__.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/fourcipp/legacy_io/test_element.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/fourcipp/legacy_io/test_inline_dat.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/fourcipp/legacy_io/test_legacy_io.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/fourcipp/legacy_io/test_node.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/fourcipp/legacy_io/test_node_topology.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/fourcipp/legacy_io/test_particle.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/fourcipp/legacy_io/utils.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/fourcipp/test_readme_quickstart_example.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/fourcipp/utils/__init__.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/fourcipp/utils/test_configuration.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/fourcipp/utils/test_converter.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/fourcipp/utils/test_dict_utils.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/fourcipp/utils/test_metadata.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/fourcipp/utils/test_not_set.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/fourcipp/utils/test_validation.py +0 -0
- {fourcipp-1.25.0 → fourcipp-1.27.0}/tests/fourcipp/utils/test_yaml_io.py +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
metadata:
|
|
2
|
-
commit_hash:
|
|
2
|
+
commit_hash: 94e6a4c70b221f84b9211d6b06a3da3f08248d2a
|
|
3
3
|
version: 2025.4.0-dev
|
|
4
4
|
description_section_name: TITLE
|
|
5
5
|
legacy_element_specs:
|
|
@@ -40971,6 +40971,98 @@ sections:
|
|
|
40971
40971
|
- name: COUPLING_ID
|
|
40972
40972
|
type: int
|
|
40973
40973
|
required: true
|
|
40974
|
+
- name: BEAM INTERACTION/BEAM TO SOLID EDGE CONTACT
|
|
40975
|
+
type: group
|
|
40976
|
+
description: Parameters for beam-to-solid edge contact.
|
|
40977
|
+
required: false
|
|
40978
|
+
specs:
|
|
40979
|
+
- type: all_of
|
|
40980
|
+
specs:
|
|
40981
|
+
- name: CONSTRAINT_ENFORCEMENT
|
|
40982
|
+
type: enum
|
|
40983
|
+
description: "How the beam-to-edge constraints should be enforced."
|
|
40984
|
+
required: false
|
|
40985
|
+
default: none
|
|
40986
|
+
choices:
|
|
40987
|
+
- name: none
|
|
40988
|
+
- name: penalty
|
|
40989
|
+
- name: lagrange
|
|
40990
|
+
- name: PENALTY_LAW
|
|
40991
|
+
type: group
|
|
40992
|
+
description: Parameters for penalty law
|
|
40993
|
+
required: true
|
|
40994
|
+
specs:
|
|
40995
|
+
- type: all_of
|
|
40996
|
+
specs:
|
|
40997
|
+
- name: TYPE
|
|
40998
|
+
type: enum
|
|
40999
|
+
description: "Type of penalty law"
|
|
41000
|
+
required: false
|
|
41001
|
+
default: none
|
|
41002
|
+
choices:
|
|
41003
|
+
- name: none
|
|
41004
|
+
- name: linear
|
|
41005
|
+
- name: linear_quadratic
|
|
41006
|
+
- name: PENALTY_PARAMETER
|
|
41007
|
+
type: double
|
|
41008
|
+
description: "Penalty parameter for beam-to-solid surface contact"
|
|
41009
|
+
required: false
|
|
41010
|
+
default: 0
|
|
41011
|
+
validator:
|
|
41012
|
+
range:
|
|
41013
|
+
minimum: 0
|
|
41014
|
+
maximum: 1.7976931348623157e+308
|
|
41015
|
+
minimum_exclusive: false
|
|
41016
|
+
maximum_exclusive: false
|
|
41017
|
+
- name: PENALTY_PARAMETER_G0
|
|
41018
|
+
type: double
|
|
41019
|
+
description: "First penalty regularization parameter G0 >=0: For gap<G0 contact is active"
|
|
41020
|
+
required: false
|
|
41021
|
+
default: 0
|
|
41022
|
+
- name: BEAM INTERACTION/BEAM TO SOLID EDGE CONTACT BEAM
|
|
41023
|
+
type: list
|
|
41024
|
+
required: false
|
|
41025
|
+
spec:
|
|
41026
|
+
type: all_of
|
|
41027
|
+
specs:
|
|
41028
|
+
- name: E
|
|
41029
|
+
type: int
|
|
41030
|
+
description: "ID of the condition. This ID refers to the respective topological entity of the condition."
|
|
41031
|
+
required: true
|
|
41032
|
+
- name: ENTITY_TYPE
|
|
41033
|
+
type: enum
|
|
41034
|
+
description: "The type of entity that E refers to."
|
|
41035
|
+
required: false
|
|
41036
|
+
default: legacy_id
|
|
41037
|
+
choices:
|
|
41038
|
+
- name: legacy_id
|
|
41039
|
+
- name: node_set_id
|
|
41040
|
+
- name: element_block_id
|
|
41041
|
+
- name: COUPLING_ID
|
|
41042
|
+
type: int
|
|
41043
|
+
required: true
|
|
41044
|
+
- name: BEAM INTERACTION/BEAM TO SOLID EDGE CONTACT SOLID EDGE
|
|
41045
|
+
type: list
|
|
41046
|
+
required: false
|
|
41047
|
+
spec:
|
|
41048
|
+
type: all_of
|
|
41049
|
+
specs:
|
|
41050
|
+
- name: E
|
|
41051
|
+
type: int
|
|
41052
|
+
description: "ID of the condition. This ID refers to the respective topological entity of the condition."
|
|
41053
|
+
required: true
|
|
41054
|
+
- name: ENTITY_TYPE
|
|
41055
|
+
type: enum
|
|
41056
|
+
description: "The type of entity that E refers to."
|
|
41057
|
+
required: false
|
|
41058
|
+
default: legacy_id
|
|
41059
|
+
choices:
|
|
41060
|
+
- name: legacy_id
|
|
41061
|
+
- name: node_set_id
|
|
41062
|
+
- name: element_block_id
|
|
41063
|
+
- name: COUPLING_ID
|
|
41064
|
+
type: int
|
|
41065
|
+
required: true
|
|
40974
41066
|
- name: BEAM INTERACTION/BEAM TO SOLID SURFACE CONTACT
|
|
40975
41067
|
type: group
|
|
40976
41068
|
required: false
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"description": "Schema for 4C\nCommit hash:
|
|
2
|
+
"description": "Schema for 4C\nCommit hash: 94e6a4c70b221f84b9211d6b06a3da3f08248d2a\nVersion: 2025.4.0-dev",
|
|
3
3
|
"type": "object",
|
|
4
4
|
"properties": {
|
|
5
5
|
"ALE DOMAIN": {
|
|
@@ -69053,6 +69053,133 @@
|
|
|
69053
69053
|
]
|
|
69054
69054
|
}
|
|
69055
69055
|
},
|
|
69056
|
+
"BEAM INTERACTION/BEAM TO SOLID EDGE CONTACT": {
|
|
69057
|
+
"title": "BEAM INTERACTION/BEAM TO SOLID EDGE CONTACT (group)",
|
|
69058
|
+
"description": "Parameters for beam-to-solid edge contact.",
|
|
69059
|
+
"type": "object",
|
|
69060
|
+
"properties": {
|
|
69061
|
+
"CONSTRAINT_ENFORCEMENT": {
|
|
69062
|
+
"title": "CONSTRAINT_ENFORCEMENT (enum)",
|
|
69063
|
+
"description": "How the beam-to-edge constraints should be enforced.",
|
|
69064
|
+
"default": "none",
|
|
69065
|
+
"type": "string",
|
|
69066
|
+
"enum": [
|
|
69067
|
+
"none",
|
|
69068
|
+
"penalty",
|
|
69069
|
+
"lagrange"
|
|
69070
|
+
]
|
|
69071
|
+
},
|
|
69072
|
+
"PENALTY_LAW": {
|
|
69073
|
+
"title": "PENALTY_LAW (group)",
|
|
69074
|
+
"description": "Parameters for penalty law",
|
|
69075
|
+
"type": "object",
|
|
69076
|
+
"properties": {
|
|
69077
|
+
"TYPE": {
|
|
69078
|
+
"title": "TYPE (enum)",
|
|
69079
|
+
"description": "Type of penalty law",
|
|
69080
|
+
"default": "none",
|
|
69081
|
+
"type": "string",
|
|
69082
|
+
"enum": [
|
|
69083
|
+
"none",
|
|
69084
|
+
"linear",
|
|
69085
|
+
"linear_quadratic"
|
|
69086
|
+
]
|
|
69087
|
+
},
|
|
69088
|
+
"PENALTY_PARAMETER": {
|
|
69089
|
+
"title": "PENALTY_PARAMETER (double)",
|
|
69090
|
+
"description": "Penalty parameter for beam-to-solid surface contact",
|
|
69091
|
+
"default": 0,
|
|
69092
|
+
"type": "number",
|
|
69093
|
+
"minimum": 0,
|
|
69094
|
+
"maximum": 1.7976931348623157e+308
|
|
69095
|
+
},
|
|
69096
|
+
"PENALTY_PARAMETER_G0": {
|
|
69097
|
+
"title": "PENALTY_PARAMETER_G0 (double)",
|
|
69098
|
+
"description": "First penalty regularization parameter G0 >=0: For gap<G0 contact is active",
|
|
69099
|
+
"default": 0,
|
|
69100
|
+
"type": "number"
|
|
69101
|
+
}
|
|
69102
|
+
},
|
|
69103
|
+
"additionalProperties": false
|
|
69104
|
+
}
|
|
69105
|
+
},
|
|
69106
|
+
"additionalProperties": false,
|
|
69107
|
+
"required": [
|
|
69108
|
+
"PENALTY_LAW"
|
|
69109
|
+
]
|
|
69110
|
+
},
|
|
69111
|
+
"BEAM INTERACTION/BEAM TO SOLID EDGE CONTACT BEAM": {
|
|
69112
|
+
"title": "BEAM INTERACTION/BEAM TO SOLID EDGE CONTACT BEAM (list)",
|
|
69113
|
+
"description": "No description yet.",
|
|
69114
|
+
"type": "array",
|
|
69115
|
+
"items": {
|
|
69116
|
+
"type": "object",
|
|
69117
|
+
"properties": {
|
|
69118
|
+
"E": {
|
|
69119
|
+
"title": "E (int)",
|
|
69120
|
+
"description": "ID of the condition. This ID refers to the respective topological entity of the condition.",
|
|
69121
|
+
"type": "integer"
|
|
69122
|
+
},
|
|
69123
|
+
"ENTITY_TYPE": {
|
|
69124
|
+
"title": "ENTITY_TYPE (enum)",
|
|
69125
|
+
"description": "The type of entity that E refers to.",
|
|
69126
|
+
"default": "legacy_id",
|
|
69127
|
+
"type": "string",
|
|
69128
|
+
"enum": [
|
|
69129
|
+
"legacy_id",
|
|
69130
|
+
"node_set_id",
|
|
69131
|
+
"element_block_id"
|
|
69132
|
+
]
|
|
69133
|
+
},
|
|
69134
|
+
"COUPLING_ID": {
|
|
69135
|
+
"title": "COUPLING_ID (int)",
|
|
69136
|
+
"description": "No description yet.",
|
|
69137
|
+
"type": "integer"
|
|
69138
|
+
}
|
|
69139
|
+
},
|
|
69140
|
+
"additionalProperties": false,
|
|
69141
|
+
"required": [
|
|
69142
|
+
"E",
|
|
69143
|
+
"COUPLING_ID"
|
|
69144
|
+
]
|
|
69145
|
+
}
|
|
69146
|
+
},
|
|
69147
|
+
"BEAM INTERACTION/BEAM TO SOLID EDGE CONTACT SOLID EDGE": {
|
|
69148
|
+
"title": "BEAM INTERACTION/BEAM TO SOLID EDGE CONTACT SOLID EDGE (list)",
|
|
69149
|
+
"description": "No description yet.",
|
|
69150
|
+
"type": "array",
|
|
69151
|
+
"items": {
|
|
69152
|
+
"type": "object",
|
|
69153
|
+
"properties": {
|
|
69154
|
+
"E": {
|
|
69155
|
+
"title": "E (int)",
|
|
69156
|
+
"description": "ID of the condition. This ID refers to the respective topological entity of the condition.",
|
|
69157
|
+
"type": "integer"
|
|
69158
|
+
},
|
|
69159
|
+
"ENTITY_TYPE": {
|
|
69160
|
+
"title": "ENTITY_TYPE (enum)",
|
|
69161
|
+
"description": "The type of entity that E refers to.",
|
|
69162
|
+
"default": "legacy_id",
|
|
69163
|
+
"type": "string",
|
|
69164
|
+
"enum": [
|
|
69165
|
+
"legacy_id",
|
|
69166
|
+
"node_set_id",
|
|
69167
|
+
"element_block_id"
|
|
69168
|
+
]
|
|
69169
|
+
},
|
|
69170
|
+
"COUPLING_ID": {
|
|
69171
|
+
"title": "COUPLING_ID (int)",
|
|
69172
|
+
"description": "No description yet.",
|
|
69173
|
+
"type": "integer"
|
|
69174
|
+
}
|
|
69175
|
+
},
|
|
69176
|
+
"additionalProperties": false,
|
|
69177
|
+
"required": [
|
|
69178
|
+
"E",
|
|
69179
|
+
"COUPLING_ID"
|
|
69180
|
+
]
|
|
69181
|
+
}
|
|
69182
|
+
},
|
|
69056
69183
|
"BEAM INTERACTION/BEAM TO SOLID SURFACE CONTACT": {
|
|
69057
69184
|
"title": "BEAM INTERACTION/BEAM TO SOLID SURFACE CONTACT (group)",
|
|
69058
69185
|
"description": "No description yet.",
|
|
@@ -401143,5 +401270,5 @@
|
|
|
401143
401270
|
"PROBLEM TYPE"
|
|
401144
401271
|
],
|
|
401145
401272
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
401146
|
-
"$id": "
|
|
401273
|
+
"$id": "94e6a4c70b221f84b9211d6b06a3da3f08248d2a"
|
|
401147
401274
|
}
|
|
@@ -75,8 +75,12 @@ def sort_by_section_names(data: dict) -> dict:
|
|
|
75
75
|
This sorts the dictionary in the following style:
|
|
76
76
|
|
|
77
77
|
1. "TITLE" section
|
|
78
|
-
2.
|
|
79
|
-
3.
|
|
78
|
+
2. Required sections (in schema order)
|
|
79
|
+
3. Typed sections (alphabetically, case-insensitive)
|
|
80
|
+
3.1 MATERIALS section
|
|
81
|
+
3.2 'DESIGN *' sections (alphabetically, case-insensitive)
|
|
82
|
+
4. FUNCT sections (numeric order)
|
|
83
|
+
5. Legacy sections (alphabetically)
|
|
80
84
|
|
|
81
85
|
Args:
|
|
82
86
|
data: Dictionary to sort.
|
|
@@ -89,10 +93,23 @@ def sort_by_section_names(data: dict) -> dict:
|
|
|
89
93
|
required_sections = CONFIG.fourc_json_schema["required"]
|
|
90
94
|
n_sections_splitter = len(CONFIG.sections.all_sections) * 1000
|
|
91
95
|
|
|
92
|
-
#
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
+
# typed sections (sorted alphabetically + case insensitive, 'DESIGN *' + 'MATERIALS' at the end)
|
|
97
|
+
design_sections = [
|
|
98
|
+
s for s in CONFIG.sections.typed_sections if s.startswith("DESIGN")
|
|
99
|
+
]
|
|
100
|
+
remaining_typed_sections = list(
|
|
101
|
+
set(CONFIG.sections.typed_sections) - set(design_sections) - set(["MATERIALS"])
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
typed_sections = (
|
|
105
|
+
sorted(remaining_typed_sections, key=str.lower)
|
|
106
|
+
+ ["MATERIALS"]
|
|
107
|
+
+ sorted(design_sections, key=str.lower)
|
|
108
|
+
)
|
|
109
|
+
|
|
110
|
+
# function sections (sorted numerically)
|
|
111
|
+
functions = sorted(
|
|
112
|
+
[s for s in data.keys() if s.startswith("FUNCT") and s[5:].isdigit()],
|
|
96
113
|
key=lambda s: (
|
|
97
114
|
s.lower() if not s.startswith("FUNCT") else f"funct{s[5:].zfill(10)}"
|
|
98
115
|
),
|
|
@@ -115,12 +132,15 @@ def sort_by_section_names(data: dict) -> dict:
|
|
|
115
132
|
# Required sections
|
|
116
133
|
elif section in required_sections:
|
|
117
134
|
return 1 * n_sections_splitter + required_sections.index(section)
|
|
118
|
-
# Typed
|
|
119
|
-
elif section in
|
|
120
|
-
return 2 * n_sections_splitter +
|
|
135
|
+
# Typed sections (alphabetical + case insensitive)
|
|
136
|
+
elif section in typed_sections:
|
|
137
|
+
return 2 * n_sections_splitter + typed_sections.index(section)
|
|
138
|
+
# Function sections (numeric order)
|
|
139
|
+
elif section in functions:
|
|
140
|
+
return 3 * n_sections_splitter + functions.index(section)
|
|
121
141
|
# Legacy sections
|
|
122
142
|
elif section in CONFIG.sections.legacy_sections:
|
|
123
|
-
return
|
|
143
|
+
return 4 * n_sections_splitter + CONFIG.sections.legacy_sections.index(
|
|
124
144
|
section
|
|
125
145
|
)
|
|
126
146
|
# Unknown section
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '1.
|
|
32
|
-
__version_tuple__ = version_tuple = (1,
|
|
31
|
+
__version__ = version = '1.27.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (1, 27, 0)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'gba4ffa9e5'
|
|
@@ -566,24 +566,25 @@ def test_sort_by_section_names():
|
|
|
566
566
|
]
|
|
567
567
|
|
|
568
568
|
# also use end subset to also add some lowercase sections
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
+ typed_sections[-15:]
|
|
572
|
-
+ [f"FUNCT{i}" for i in [1, 2, 9, 10, 33]]
|
|
573
|
-
)
|
|
569
|
+
typed_sections = typed_sections[:15] + typed_sections[-15:]
|
|
570
|
+
typed_sections = sorted(typed_sections, key=str.lower)
|
|
574
571
|
|
|
575
|
-
#
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
572
|
+
# use first 5 'DESIGN * ' sections
|
|
573
|
+
design_sections = [
|
|
574
|
+
s for s in CONFIG.sections.typed_sections if s.startswith("DESIGN")
|
|
575
|
+
][:5]
|
|
576
|
+
design_sections = sorted(design_sections, key=str.lower)
|
|
577
|
+
|
|
578
|
+
# create some FUNCT sections
|
|
579
|
+
function_sections = [f"FUNCT{i}" for i in [1, 2, 9, 10, 33]]
|
|
582
580
|
|
|
583
581
|
correct_section_order = (
|
|
584
582
|
[CONFIG.fourc_metadata["metadata"]["description_section_name"]]
|
|
585
583
|
+ CONFIG.fourc_json_schema["required"]
|
|
586
|
-
+
|
|
584
|
+
+ typed_sections
|
|
585
|
+
+ ["MATERIALS"]
|
|
586
|
+
+ design_sections
|
|
587
|
+
+ function_sections
|
|
587
588
|
+ CONFIG.sections.legacy_sections
|
|
588
589
|
)
|
|
589
590
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|