Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
9ca4f6b
Updated to sphinx-argparse-cli>=1.21.3
ClaasRostock Mar 26, 2026
cbdcd7c
Updated to ruff>=0.15.7
ClaasRostock Mar 26, 2026
2d7bd3e
Updated to pytest-cov>=7.1
ClaasRostock Mar 26, 2026
1f7d35a
Updated to numpy>=2.4
ClaasRostock Mar 26, 2026
7b70ca7
Updated to types-lxml>=2026.2
ClaasRostock Mar 26, 2026
0c590c9
.pre-commit-config.yaml: Updated rev of ruff-pre-commit to v0.15.7
ClaasRostock Mar 26, 2026
2e8acf8
Updated CHANGELOG.md
ClaasRostock Mar 26, 2026
a06a33b
updated files in root folder with latest changes in python_project_te…
ClaasRostock Mar 26, 2026
c6c93f2
updated GitHub workflows with latest changes in python_project_templa…
ClaasRostock Mar 26, 2026
95af5a5
updated Visual Studio Code settings with latest changes in python_pro…
ClaasRostock Mar 26, 2026
9f237dd
updated uv.lock
ClaasRostock Mar 26, 2026
2a8908f
updated files in /src with latest changes in python_project_template…
ClaasRostock Mar 26, 2026
9c7e6eb
updated files in /tests with latest changes in python_project_templat…
ClaasRostock Mar 26, 2026
99198fc
Renamed command line script `src/dictIO/cli/dictParser.py` to ` src/d…
ClaasRostock Mar 26, 2026
c30f9f8
src/dictIO/cli/__main__.py: Added a module level ignore for ruff rule…
ClaasRostock Mar 26, 2026
45307d4
tests/conftest.py: Added type annotations to module level variables `…
ClaasRostock Mar 26, 2026
47d9c0d
.vscode/launch.json: Corrected the CLI debug launch configuration
ClaasRostock Mar 26, 2026
e8c5f48
updated CHANGELOG.md
ClaasRostock Mar 26, 2026
7bdba54
Bumped version number to 0.4.4
ClaasRostock Mar 26, 2026
2293ef5
updated uv.lock
ClaasRostock Mar 26, 2026
1c21323
updated CHANGELOG.md
ClaasRostock Mar 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/_build_and_publish_documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ jobs:
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
cache-dependency-glob: 'uv.lock'
- name: Install the project
run: uv sync -U
run: uv sync --frozen
- name: Print debugging information
run: |
echo "github.ref:" ${{github.ref}}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/_build_package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
cache-dependency-glob: 'uv.lock'
- name: Build source distribution and wheels
run: uv build
- name: Check build artifacts
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/_code_quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
cache-dependency-glob: 'uv.lock'
- name: Install the project
run: uv sync -U
- name: Run ruff format
Expand All @@ -29,7 +29,7 @@ jobs:
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
cache-dependency-glob: 'uv.lock'
- name: Install the project
run: uv sync -U
- name: Run ruff check
Expand All @@ -45,7 +45,7 @@ jobs:
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
cache-dependency-glob: 'uv.lock'
- name: Install the project
run: uv sync -U
- name: Run pyright
Expand All @@ -61,7 +61,7 @@ jobs:
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
cache-dependency-glob: 'uv.lock'
- name: Install the project
run: uv sync -U
- name: Run mypy
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ jobs:
name: Test (Python ${{ matrix.python }}, ${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python: ['3.11', '3.12', '3.13', '3.14']
Expand All @@ -17,7 +18,7 @@ jobs:
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
cache-dependency-glob: 'uv.lock'
- name: Install the project
run: uv sync -p ${{ matrix.python }} -U --no-dev
- name: Run pytest
Expand Down
14 changes: 13 additions & 1 deletion .github/workflows/_test_future.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ jobs:
continue-on-error: true
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest, windows-latest]
python:
Expand All @@ -21,7 +22,18 @@ jobs:
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
cache-dependency-glob: 'uv.lock'
- name: Remove Python upper version constraint from pyproject.toml
shell: pwsh
run: |
$File = Get-Item pyproject.toml
$Content = Get-Content $File -Raw
[regex]$RequiresPythonPattern = '(?<!-)(\brequires-python = "\s?[>=]{1,2}\s?\d+\.\d+\.?\d*\.?[\d\w]*\s?)(,\s?[<=]{1,2}\s?\d+\.?\d*\.?\d*\.?[\d\w]*\s?)?(")'
if ($Content -match $RequiresPythonPattern) {
$RequiresPythonFound = $Matches[0]
$RequiresPythonReplacement = $Matches[1] + $Matches[3]
$Content -Replace $RequiresPythonFound, $RequiresPythonReplacement | Set-Content $File -NoNewline
}
- name: Install the project
run: uv sync -p ${{ matrix.python.uvpy }} -U --no-dev
- name: Run pytest
Expand Down
5 changes: 1 addition & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ ipython_config.py
# It is generally recommended to include `uv.lock` in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, `uv` might install dependencies in one environment that don't work in another.
# In such case, `uv.lock` should be added to `.gitignore`
# In such case, `uv.lock` should be added to `.gitignore` (and, as such, excluded from version control).
# uv.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
Expand Down Expand Up @@ -158,6 +158,3 @@ demos/**/*.nc

# Cmake generated files
CMakeUserPresets.json

# modules
modules.txt
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ repos:
- id: check-toml
- id: check-merge-conflict
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.15.1
rev: v0.15.7
hooks:
- id: ruff-format
- id: ruff-check
Expand Down
60 changes: 22 additions & 38 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@
"autoReload": {
"enable": true
},
"subProcess": true,
"justMyCode": true,
"redirectOutput": true, // pipe stdout/stderr to Debug Console
"showReturnValue": true,
"logToFile": false, // set true temporarily when diagnosing debugger issues
},
{
"name": "Python: Current File, cwd = file dir",
Expand All @@ -28,10 +32,14 @@
"cwd": "${fileDirname}", // working dir = dir where current file is
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true,
"autoReload": {
"enable": true
},
"subProcess": true,
"justMyCode": true,
"redirectOutput": true,
"showReturnValue": true,
"logToFile": false,
},
{
"name": "Python: Current File, cwd = workspace root folder",
Expand All @@ -43,55 +51,31 @@
"autoReload": {
"enable": true
},
"subProcess": true,
"justMyCode": true,
"redirectOutput": true,
"showReturnValue": true,
"logToFile": false,
},
{
"name": "dictParser test_dict",
"type": "debugpy",
"request": "launch",
"cwd": "${workspaceFolder}\\tests",
"program": "${workspaceFolder}\\src\\dictIO\\cli\\dictParser.py",
"args": [
"-v",
"test_dict"
],
"console": "integratedTerminal",
"autoReload": {
"enable": true
},
"justMyCode": true,
},
{
"name": "dictParser include\\initialConditions",
"type": "debugpy",
"request": "launch",
"cwd": "${workspaceFolder}\\tests",
"program": "${workspaceFolder}\\src\\dictIO\\cli\\dictParser.py",
"args": [
"-v",
"include\\initialConditions"
],
"console": "integratedTerminal",
"autoReload": {
"enable": true
},
"justMyCode": true,
},
{
"name": "dictParser test_dict",
"name": "dictParser test_dictParser_dict",
"type": "debugpy",
"request": "launch",
"cwd": "${workspaceFolder}\\tests",
"program": "${workspaceFolder}\\src\\dictIO\\cli\\dictParser.py",
"cwd": "${workspaceFolder}\\tests\\test_working_directory",
"program": "${workspaceFolder}\\src\\dictIO\\cli\\__main__.py",
"args": [
"test_dictParser_dict",
"-v",
"test_dict"
],
"console": "integratedTerminal",
"autoReload": {
"enable": true
},
"subProcess": true,
"justMyCode": true,
"redirectOutput": true,
"showReturnValue": true,
"logToFile": false,
},
]
}
}
2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@
"mypy-type-checker.reportingScope": "custom",
"mypy-type-checker.preferDaemon": true,
"ruff.configurationPreference": "filesystemFirst",
}
}
20 changes: 19 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,23 @@ The changelog format is based on [Keep a Changelog](https://keepachangelog.com/e
* -/-


## [0.4.4] - 2026-03-26

### Changed
* Renamed command line script `src/dictIO/cli/dictParser.py` to ` src/dictIO/cli/__main__.py`
* VS Code Settings:
* .vscode/launch.json: Corrected the CLI debug launch configuration
* Updated code base with latest changes in python_project_template v0.2.10

### Dependencies
* .pre-commit-config.yaml: Updated rev of ruff-pre-commit to v0.15.7
* Updated to numpy>=2.4
* Updated to pytest-cov>=7.1
* Updated to ruff>=0.15.7
* Updated to sphinx-argparse-cli>=1.21.3
* Updated to types-lxml>=2026.2


## [0.4.3] - 2026-02-22

### Solved
Expand Down Expand Up @@ -494,7 +511,8 @@ This removes the need to manually add /src to the PythonPath environment variabl
* Added support for Python 3.10

<!-- Markdown link & img dfn's -->
[unreleased]: https://github.com/dnv-opensource/dictIO/compare/v0.4.3...HEAD
[unreleased]: https://github.com/dnv-opensource/dictIO/compare/v0.4.4...HEAD
[0.4.4]: https://github.com/dnv-opensource/dictIO/compare/v0.4.3...v0.4.4
[0.4.3]: https://github.com/dnv-opensource/dictIO/compare/v0.4.2...v0.4.3
[0.4.2]: https://github.com/dnv-opensource/dictIO/compare/v0.4.1...v0.4.2
[0.4.1]: https://github.com/dnv-opensource/dictIO/compare/v0.4.0...v0.4.1
Expand Down
51 changes: 27 additions & 24 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -1,32 +1,35 @@
title: dictIO
version: 0.4.3
version: 0.4.4
abstract: >-
Python package to read, write and manipulate dictionary text files.
Supports dictIOs native file format, as well as JSON, XML and OpenFOAM.
Python package to read, write and manipulate dictionary text files.
Supports dictIOs native file format, as well as JSON, XML and OpenFOAM.
type: software
authors:
- name: DNV SE
address: 'Brooktorkai 18'
post-code: '20457'
city: Hamburg
country: DE
website: 'https://www.dnv.com/'
- given-names: Frank
family-names: Lumpitzsch
affiliation: DNV
email: frank.lumpitzsch@dnv.com
website: 'https://www.linkedin.com/in/frank-lumpitzsch-23013196/'
- given-names: Claas
family-names: Rostock
affiliation: DNV
email: claas.rostock@dnv.com
website: 'https://www.linkedin.com/in/claasrostock/?locale=en_US'
- given-names: Seunghyeon
family-names: Yoo
affiliation: DNV
email: seunghyeon.yoo@dnv.com
website: 'https://www.linkedin.com/in/seunghyeon-yoo-3625173b/'
- name: DNV SE
address: 'Brooktorkai 18'
post-code: '20457'
city: Hamburg
country: DE
website: 'https://www.dnv.com/'
- given-names: Frank
family-names: Lumpitzsch
affiliation: DNV
email: frank.lumpitzsch@dnv.com
website: 'https://www.linkedin.com/in/frank-lumpitzsch-23013196/'
- given-names: Claas
family-names: Rostock
affiliation: DNV
email: claas.rostock@dnv.com
website: 'https://www.linkedin.com/in/claasrostock/?locale=en_US'
- given-names: Seunghyeon
family-names: Yoo
affiliation: DNV
email: seunghyeon.yoo@dnv.com
website: 'https://www.linkedin.com/in/seunghyeon-yoo-3625173b/'
keywords:
- dictIO
- dictParser
- dict
license: MIT
license-url: 'https://dnv-opensource.github.io/dictIO/LICENSE.html'
url: 'https://dnv-opensource.github.io/dictIO/README.html'
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2024 [DNV](https://www.dnv.com) [open source](https://github.com/dnv-opensource)
Copyright (c) 2026 [DNV](https://www.dnv.com) [open source](https://github.com/dnv-opensource)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
15 changes: 9 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Further, dictIO
pip install dictIO
```

## Usage Example
## Usage

dictIO's core class is `SDict`, a generic data structure for serializable dictionaries. <br>
`SDict` inherits from Python's builtin `dict`. It can hence be used transparently in any context where a `dict` or any other `MutableMapping` type is expected.
Expand Down Expand Up @@ -110,7 +110,7 @@ uv self update
```

### 2. Install Python
This project requires Python 3.10 or later. <br>
This project requires Python 3.11 or later. <br>
If you don't already have a compatible version installed on your machine, the probably most comfortable way to install Python is through `uv`:
```sh
uv python install
Expand All @@ -134,15 +134,18 @@ cd dictIO
```

### 4. Install dependencies
Run `uv sync` to create a virtual environment and install all project dependencies into it:
Run `uv sync -U` to create a virtual environment and install all project dependencies into it:
```sh
uv sync
uv sync -U
```
> **Note**: Using `--no-dev` will omit installing development dependencies.

> **Explanation**: The `-U` option stands for `--update`. It forces `uv` to fetch and install the latest versions of all dependencies,
> ensuring that your environment is up-to-date.

> **Note**: `uv` will create a new virtual environment called `.venv` in the project root directory when running
> `uv sync` the first time. Optionally, you can create your own virtual environment using e.g. `uv venv`, before running
> `uv sync`.
> `uv sync -U` the first time. Optionally, you can create your own virtual environment using e.g. `uv venv`, before running
> `uv sync -U`.

### 5. (Optional) Activate the virtual environment
When using `uv`, there is in almost all cases no longer a need to manually activate the virtual environment. <br>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
.. sphinx_argparse_cli::
:module: dictIO.cli.dict_parser
:module: dictIO.cli.__main__
:func: _argparser
2 changes: 1 addition & 1 deletion docs/source/cli.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ CLI Documentation
.. toctree::
:maxdepth: 3

cli.dict_parser
cli.__main__
2 changes: 1 addition & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
author = "Frank Lumpitzsch, Claas Rostock, Seunghyeon Yoo"

# The full version, including alpha/beta/rc tags
release = "0.4.3"
release = "0.4.4"

# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
Expand Down
Loading
Loading