Skip to content

Commit c35b237

Browse files
authored
Merge pull request #25 from heliocastro/fix/validate_enum
fix(models): Update ValidatedIntEnum class to properly serialize with…
2 parents 9bcba84 + 9c86ba6 commit c35b237

20 files changed

+331
-39
lines changed

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "uv_build"
44

55
[project]
66
name = "python-ort"
7-
version = "0.8.4"
7+
version = "0.8.5"
88
description = "A Python Ort model serialization library"
99
readme = "README.md"
1010
license = "MIT"
@@ -40,7 +40,7 @@ dev = [
4040
"pytest>=9.0.2",
4141
"rich>=14.3.3",
4242
"ruff>=0.15.6",
43-
"ty>=0.0.22",
43+
"ty>=0.0.23",
4444
"types-pyyaml>=6.0.12.20250915",
4545
]
4646

src/ort/utils/validated_enum.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,21 @@ def validate(value: Any) -> ValidatedIntEnum:
3131
return cls(value)
3232
raise ValueError(f"Invalid value for {cls.__name__}: {value}")
3333

34-
return core_schema.no_info_plain_validator_function(validate)
34+
enum_names = [member.name for member in cls]
35+
36+
return core_schema.no_info_wrap_validator_function(
37+
lambda value, handler: validate(value),
38+
core_schema.str_schema(),
39+
serialization=core_schema.plain_serializer_function_ser_schema(
40+
lambda v: v.name,
41+
info_arg=False,
42+
),
43+
metadata={
44+
"pydantic_js_functions": [
45+
lambda _schema, handler: {
46+
"type": "string",
47+
"enum": enum_names,
48+
}
49+
]
50+
},
51+
)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
excludes:
2+
scopes:
3+
- pattern: "devDependencies"
4+
reason: "DEV_DEPENDENCY_OF"
5+
comment: "Packages for development only."
6+
license_choices:
7+
package_license_choice:
8+
- package_id: "NPM::promised-io:0.3.6"
9+
license_choices:
10+
- given: AFL-2.1 OR BSD-3-Clause
11+
choice: BSD-3-Clause
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
excludes:
2+
scopes:
3+
- pattern: "devDependencies"
4+
reason: "DEV_DEPENDENCY_OF"
5+
comment: "Packages for development only."
6+
license_choices:
7+
package_license_choices:
8+
- package_id: "NPM::promised-io:0.3.6"
9+
license_choices:
10+
- given: AFL-2.1 OR BSD-3-Clause
11+
choice: BSD-3-Clause

tests/test_advisor_capability.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-FileCopyrightText: 2026 Helio Chissini de Castro <heliocastro@gmail.com>
1+
# SPDX-FileCopyrightText: 2026 Helio Chissini de Castro <dev@heliocastro.info>
22
# SPDX-License-Identifier: MIT
33

44
import pytest

tests/test_advisor_details.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-FileCopyrightText: 2026 Helio Chissini de Castro <heliocastro@gmail.com>
1+
# SPDX-FileCopyrightText: 2026 Helio Chissini de Castro <dev@heliocastro.info>
22
# SPDX-License-Identifier: MIT
33

44
import pytest

tests/test_advisor_result.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-FileCopyrightText: 2026 Helio Chissini de Castro <heliocastro@gmail.com>
1+
# SPDX-FileCopyrightText: 2026 Helio Chissini de Castro <dev@heliocastro.info>
22
# SPDX-License-Identifier: MIT
33

44
from datetime import datetime, timezone

tests/test_cvss_ratings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-FileCopyrightText: 2026 Helio Chissini de Castro <heliocastro@gmail.com>
1+
# SPDX-FileCopyrightText: 2026 Helio Chissini de Castro <dev@heliocastro.info>
22
# SPDX-License-Identifier: MIT
33

44
import pytest

tests/test_evaluator_run.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-FileCopyrightText: 2026 Helio Chissini de Castro <heliocastro@gmail.com>
1+
# SPDX-FileCopyrightText: 2026 Helio Chissini de Castro <dev@heliocastro.info>
22
# SPDX-License-Identifier: MIT
33

44
from datetime import datetime, timezone

tests/test_package_configuration.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-FileCopyrightText: 2025 Helio Chissini de Castro <heliocastro@gmail.com>
1+
# SPDX-FileCopyrightText: 2025 Helio Chissini de Castro <dev@heliocastro.info>
22
# SPDX-License-Identifier: MIT
33

44

0 commit comments

Comments
 (0)