Skip to content

Commit d2b9c81

Browse files
release: v0.8.0 (#103)
Release v0.8.0 Features: Add additional field check into csv readers Fixes: add greater error handling around polars and duckdb csv reader Build: Upgrade supported Python versions to 3.12 Upgrade Pyspark to 3.5.2 Upgrade idna from 3.13 to 3.15 to resolve vulns Upgrade pymdown-extensions from 10.21.2 to 10.21.3 to resolve vulns Upgrade urllib3 from 2.6.3 to 2.7.0 to resolve vulns Upgrade pytest from 8.4.2 to 9.0.3 to resolve vulns
2 parents a6a0c36 + de02375 commit d2b9c81

40 files changed

Lines changed: 1051 additions & 864 deletions

File tree

.mise.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
[tools]
2-
python="3.11"
2+
python="3.12"
33
poetry="2.3.3"
44
java="liberica-1.8.0"

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
## v0.8.0 (2026-06-10)
2+
3+
### Feat
4+
5+
- add additional fields check into csv readers (#109)
6+
7+
### Fix
8+
9+
- add greater error handling around polars and duckdb csv reader (#112)
10+
- adjust csv header check feedback message to be more detailed
11+
112
## v0.7.6 (2026-04-30)
213

314
### Fix

README.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,16 @@ Below is a list of features that we would like to implement or have been request
6060
| ------------------------------------------------------------------------------- | ----------------- | --------- |
6161
| Open source release | 0.1.0 | Yes |
6262
| Uplift to Python 3.11 | 0.2.0 | Yes |
63-
| Uplift Pyspark to 3.5 | TBA | No |
64-
| Allow DVE to run on Python 3.12+ | TBA | No |
65-
| Upgrade to Pydantic 2.0 | TBA | No |
63+
| Uplift Pyspark to 3.5 | 0.8.0 | Yes |
64+
| Allow DVE to run on Python 3.12+ | 0.8.0 | Yes |
65+
| Upgrade to Pydantic 2.0 | 0.9.0 | No |
6666
| Uplift Pyspark to 4.0+ | TBA | No |
67-
| Create a more user friendly interface for building and modifying dischema files | Not yet confirmed | No |
67+
| Polars upgrade to v1+ | TBA | No |
68+
| DuckDB upgrade to v1.5+ | TBA | No |
69+
| Python 3.13 & 3.14 upgrade | TBA | No |
70+
| Create a more user friendly interface for building and modifying dischema files | TBA | No |
6871

69-
Beyond the Python and Pydantic upgrade, we cannot confirm the other features will be made available anytime soon. Therefore, if you have the interest and desire to make these features available, then please read the [Contributing](#Contributing) section and get involved.
72+
If you are interested in getting any of the unreleased features listed above available, then please read the [Contributing](#Contributing) section and then submit us a pull request.
7073

7174
## Contributing
7275
Please see guidance [here](https://github.com/NHSDigital/data-validation-engine/blob/main/CONTRIBUTE.md).

docs/user_guidance/data_contract.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ tags:
66
- Domain Types
77
---
88

9-
The Data Contract defines the structure (models) of your data and controls how it is typecast. We use [Pydantic](https://docs.pydantic.dev/1.10/) to generate and validate the models. This page is meant to give you greater details on how you should write your Data Contract. If you want a summary of how the Data Contract works, please refer to the [Getting Started](./getting_started.md#rules-configuration-introduction) page.
9+
The Data Contract defines the structure (models) of your data and controls how it is typecast. We use [Pydantic](https://pydantic.dev/docs/validation/1.10/overview/) to generate and validate the models. This page is meant to give you greater details on how you should write your Data Contract. If you want a summary of how the Data Contract works, please refer to the [Getting Started](./getting_started.md#rules-configuration-introduction) page.
1010

1111
!!! Note
1212

13-
We plan to migrate to Pydantic v2+ in a future release. This page currently reflects what is available through Pydantic v1.
13+
We plan to migrate to Pydantic v2+ in v0.9.0. This page currently reflects what is available through Pydantic v1.
1414

1515
## Models
1616

@@ -206,7 +206,7 @@ If you want to read more about the readers, please see the [File Transformation]
206206

207207
Within the `fields` section of the contract you must define what data type a given field should be. Depending on how strict/lenient you want your types to be, a number of types are available to use. The types available are:
208208

209-
- [Built-in standard library](https://docs.python.org/3.11/library/stdtypes.html) types (such as `int`, `str`, `date`) available with your version of Python installed for the DVE.
209+
- [Built-in standard library](https://docs.python.org/3.12/library/stdtypes.html) types (such as `int`, `str`, `date`) available with your version of Python installed for the DVE.
210210
- [Pydantic v1 types](https://docs.pydantic.dev/1.10/usage/types/)
211211
- [Custom Types](./data_contract.md#custom-types)
212212
- [Domain types](./data_contract.md#domain-types)

docs/user_guidance/implementations/spark.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def get_spark_session() -> SparkSession:
2525
os.environ["PYSPARK_SUBMIT_ARGS"] = " ".join(
2626
[
2727
"--packages",
28-
"com.databricks:spark-xml_2.12:0.16.0,io.delta:delta-core_2.12:2.4.0",
28+
"com.databricks:spark-xml_2.12:0.16.0,io.delta:delta-spark_2.12:3.2.0",
2929
"pyspark-shell",
3030
]
3131
)

docs/user_guidance/install.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ tags:
88
!!! warning
99
**DVE is currently an unstable package. Expect breaking changes between every minor patch**. We intend to follow semantic versioning of `major.minor.patch` more strictly after a 1.0 release. Until then, we recommend that you pin your install to the latest version available and keep an eye on [future releases](https://github.com/NHSDigital/data-validation-engine/releases).
1010

11-
**Please note that we only support Python runtimes of 3.10 and 3.11.** In the future we will look to add support for Python versions greater than 3.11, but it's not an immediate priority.
11+
**Please note that we only support Python runtimes of 3.10, 3.11 & 3.12.** In the future we will look to add support for Python versions greater than 3.12, but it's not an immediate priority.
1212

1313
If working on Python 3.7, the `0.1` release supports this (and only this) version of Python. However, we have not been updating that version with any bugfixes, performance improvements etc. There are also a number of vulnerable dependencies on version `0.1` release due to [Python 3.7 being depreciated](https://devguide.python.org/versions/) and a number of packages dropping support. **If you choose to install `0.1`, you accept the risks of doing so and additional support will not be provided.**
1414

@@ -83,6 +83,7 @@ Once you have installed the DVE you are almost ready to use it. To be able to ru
8383

8484
| DVE Version | Python Version | DuckDB Version | Spark Version | Pydantic Version |
8585
| ------------ | -------------- | -------------- | ------------- | ---------------- |
86+
| >=0.8.0 | >=3.10,<3.13 | 1.1.3 | 3.5.2 | 1.10.19 |
8687
| >=0.7.2 | >=3.10,<3.12 | 1.1.* | 3.4.* | 1.10.16 |
8788
| >=0.6 | >=3.10,<3.12 | 1.1.* | 3.4.* | 1.10.15 |
8889
| >=0.2,<0.6 | >=3.10,<3.12 | 1.1.0 | 3.4.4 | 1.10.15 |

0 commit comments

Comments
 (0)