Skip to content

Commit e79bf33

Browse files
author
Konstantin
committed
merge main into feature branch
2 parents 5f4be2c + e0af1af commit e79bf33

17 files changed

+302
-66
lines changed

.github/workflows/coverage.yml

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,7 @@ on:
66
pull_request: {}
77
jobs:
88
coverage:
9-
runs-on: ${{ matrix.os }}
10-
strategy:
11-
matrix:
12-
python-version: ["3.13"]
13-
os: [ubuntu-latest]
9+
runs-on: ubuntu-latest
1410
steps:
1511
- uses: actions/checkout@v5
1612
with:
@@ -21,10 +17,10 @@ jobs:
2117
# REPO_AND_READ_PACKAGES_PAT is a secret token on organization level
2218
# https://github.com/organizations/Hochfrequenz/settings/secrets/dependabot/REPO_AND_READ_PACKAGES_PAT
2319
submodules: "recursive"
24-
- name: Set up Python ${{ matrix.python-version }}
20+
- name: Set up Python
2521
uses: actions/setup-python@v6
2622
with:
27-
python-version: ${{ matrix.python-version }}
23+
python-version: "3.14"
2824
- name: Install dependencies
2925
run: |
3026
python -m pip install --upgrade pip

.github/workflows/dev_test.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,10 @@ on:
88
pull_request: {}
99
jobs:
1010
check:
11-
runs-on: ${{ matrix.os }}
11+
runs-on: ubuntu-latest
1212
strategy:
1313
matrix:
14-
python-version: ["3.11", "3.12", "3.13"]
15-
os: [ubuntu-latest]
14+
python-version: ["3.11", "3.12", "3.13", "3.14"]
1615
steps:
1716
- uses: actions/checkout@v5
1817
- name: Set up Python ${{ matrix.python-version }}

.github/workflows/formatting.yml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,16 @@ on:
66
pull_request: {}
77
jobs:
88
black:
9-
runs-on: ${{ matrix.os }}
9+
runs-on: ubuntu-latest
1010
strategy:
1111
matrix:
12-
python-version: ["3.13"]
13-
os: [ubuntu-latest]
1412
tool: ["black", "isort"]
1513
steps:
1614
- uses: actions/checkout@v5
17-
- name: Set up Python ${{ matrix.python-version }}
15+
- name: Set up Python
1816
uses: actions/setup-python@v6
1917
with:
20-
python-version: ${{ matrix.python-version }}
18+
python-version: "3.14"
2119
- name: Install dependencies
2220
run: |
2321
python -m pip install --upgrade pip

.github/workflows/packaging_test.yml

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,13 @@ on:
66
pull_request: {}
77
jobs:
88
check_packaging:
9-
runs-on: ${{ matrix.os }}
10-
strategy:
11-
matrix:
12-
python-version: ["3.13"]
13-
os: [ubuntu-latest]
9+
runs-on: ubuntu-latest
1410
steps:
1511
- uses: actions/checkout@v5
16-
- name: Set up Python ${{ matrix.python-version }}
12+
- name: Set up Python
1713
uses: actions/setup-python@v6
1814
with:
19-
python-version: ${{ matrix.python-version }}
15+
python-version: 3.14
2016
- name: Install dependencies
2117
run: |
2218
python -m pip install --upgrade pip

.github/workflows/python-publish.yml

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,18 @@ on:
1414
jobs:
1515
tests:
1616
if: startsWith(github.ref, 'refs/tags/v')
17-
runs-on: ${{ matrix.os }}
18-
strategy:
19-
matrix:
20-
python-version: [ "3.13" ]
21-
os: [ ubuntu-latest ]
17+
runs-on: ubuntu-latest
2218
steps:
2319
- uses: actions/checkout@v5
2420
with:
2521
ref: ${{ github.event.workflow_run.head_branch }}
2622
token: ${{ secrets.XML_SUBMODULE_PAT }} # token with repo scope; expires never
2723
# https://github.com/Hochfrequenz/xml-fundamend-python/settings/secrets/actions/XML_AHB_MIG_Token
2824
submodules: "recursive"
29-
- name: Set up Python ${{ matrix.python-version }}
25+
- name: Set up Python
3026
uses: actions/setup-python@v6
3127
with:
32-
python-version: ${{ matrix.python-version }}
28+
python-version: "3.14"
3329
- name: Install tox
3430
run: |
3531
python -m pip install --upgrade pip
@@ -40,24 +36,20 @@ jobs:
4036
4137
build-n-publish:
4238
name: Build and publish Python 🐍 distributions 📦 to PyPI and TestPyPI
43-
runs-on: ${{ matrix.os }}
44-
strategy:
45-
matrix:
46-
python-version: [ "3.13" ]
47-
os: [ ubuntu-latest ]
48-
# Specifying a GitHub environment, # Specifying a GitHub environment, which is strongly recommended by
49-
#PyPI: https://docs.pypi.org/trusted-publishers/adding-a-publisher/
50-
# you have to create an environment in your repository settings and add the environment name here
39+
runs-on: ubuntu-latest
40+
# Specifying a GitHub environment, # Specifying a GitHub environment, which is strongly recommended by
41+
#PyPI: https://docs.pypi.org/trusted-publishers/adding-a-publisher/
42+
# you have to create an environment in your repository settings and add the environment name here
5143
environment: release
5244
permissions:
5345
id-token: write
5446
needs: tests
5547
steps:
5648
- uses: actions/checkout@v5
57-
- name: Set up Python ${{ matrix.python-version }}
49+
- name: Set up Python
5850
uses: actions/setup-python@v6
5951
with:
60-
python-version: ${{ matrix.python-version }}
52+
python-version: "3.14"
6153
- name: Install dependencies
6254
run: |
6355
python -m pip install --upgrade pip

.github/workflows/pythonlint.yml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,16 @@ on:
77
jobs:
88
pylint:
99
name: Python Code Quality and Lint
10-
runs-on: ${{ matrix.os }}
10+
runs-on: ubuntu-latest
1111
strategy:
1212
matrix:
13-
python-version: ["3.13"]
14-
os: [ubuntu-latest]
1513
linter-env: ["linting", "type_check", "spell_check"]
1614
steps:
1715
- uses: actions/checkout@v5
18-
- name: Set up Python ${{ matrix.python-version }}
16+
- name: Set up Python
1917
uses: actions/setup-python@v6
2018
with:
21-
python-version: ${{ matrix.python-version }}
19+
python-version: "3.14"
2220
- name: Install Dependencies
2321
run: |
2422
python -m pip install --upgrade pip

.github/workflows/unittests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
runs-on: ${{ matrix.os }}
1010
strategy:
1111
matrix:
12-
python-version: ["3.11", "3.12", "3.13"]
12+
python-version: ["3.11", "3.12", "3.13", "3.14"]
1313
cli: [install_typer, skip_typer]
1414
os: [ubuntu-latest]
1515
steps:

pyproject.toml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@ classifiers = [
1616
"Programming Language :: Python :: 3.11",
1717
"Programming Language :: Python :: 3.12",
1818
"Programming Language :: Python :: 3.13",
19+
"Programming Language :: Python :: 3.14",
1920
]
2021
dependencies = [
2122
"pydantic>=2",
22-
"efoli>=2.0.0"
23+
"efoli>=2.1.0"
2324
]
2425
dynamic = ["readme", "version"]
2526

@@ -36,10 +37,10 @@ coverage = [
3637
]
3738
formatting = [
3839
"black==25.9.0",
39-
"isort==6.0.1"
40+
"isort==7.0.0"
4041
]
4142
linting = [
42-
"pylint==3.3.8"
43+
"pylint==4.0.0"
4344
]
4445
cli = [
4546
"typer" # if you install fundamend[cli], the cli commands are available via typer
@@ -66,7 +67,7 @@ Homepage = "https://github.com/Hochfrequenz/xml-fundamend-python"
6667

6768
[tool.black]
6869
line-length = 120
69-
target_version = ["py311", "py312", "py313"]
70+
target_version = ["py311", "py312", "py313", "py314"]
7071

7172
[tool.isort]
7273
line_length = 120

requirements.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
#
77
annotated-types==0.7.0
88
# via pydantic
9-
efoli==2.0.0
9+
efoli==2.1.1
1010
# via fundamend (pyproject.toml)
11-
pydantic==2.11.3
11+
pydantic==2.12.0
1212
# via fundamend (pyproject.toml)
13-
pydantic-core==2.33.1
13+
pydantic-core==2.41.1
1414
# via pydantic
1515
pytz==2025.2
1616
# via efoli
@@ -19,5 +19,5 @@ typing-extensions==4.15.0
1919
# pydantic
2020
# pydantic-core
2121
# typing-inspection
22-
typing-inspection==0.4.1
22+
typing-inspection==0.4.2
2323
# via pydantic

src/fundamend/models/anwendungshandbuch.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
from efoli import EdifactFormat
99

1010
from fundamend.models.base import FundamendBaseModel
11+
from fundamend.models.kommunikationsrichtung import Kommunikationsrichtung
12+
from fundamend.utils import parse_kommunikation_von
1113

1214

1315
class Code(FundamendBaseModel):
@@ -149,6 +151,15 @@ def is_outdated(self) -> bool:
149151
"""
150152
return "##alt##" in self.pruefidentifikator.lower() # table flip moment
151153

154+
@property
155+
def kommunikationsrichtungen(self) -> list[Kommunikationsrichtung] | None:
156+
"""
157+
the parsed 'kommunikation_von' attribute or None if it's unparsable (l)or outdated
158+
"""
159+
if self.is_outdated:
160+
return None
161+
return parse_kommunikation_von(self.kommunikation_von)
162+
152163

153164
class Bedingung(FundamendBaseModel):
154165
"""Ein ConditionKeyConditionText Mapping"""

0 commit comments

Comments
 (0)