Releases: dnv-opensource/dictIO
Releases · dnv-opensource/dictIO
v0.4.1
Added
- Added support for Python 3.13
- Added CITATION.cff
- pyproject.toml : Added keywords
Solved
- Resolved issues raised by
ruff
0.9.2
Dependencies
- Updated to ruff>=0.9.2 (from ruff>=0.6.3)
- Updated to pyright>=1.1.392 (from pyright>=1.1.378)
- Updated to sourcery>=1.31 (from sourcery>=1.22)
- Updated to types-lxml>=2024.12 (from types-lxml>=2024.4)
- Updated to sphinx-autodoc-typehints>=3.0 (from sphinx-autodoc-typehints>=2.2)
- Updated to mypy>=1.14 (from mypy>=1.13)
- Updated to setup-uv@v5 (from setup-uv@v2)
- Updated to lxml>=5.3 (from lxml>=5.2)
- Updated to jupyter>=1.1 (from jupyter>=1.0)
- Updated to pytest-cov>=6.0 (from pytest-cov>=5.0)
- Updated to Sphinx>=8.1 (from Sphinx>=8.0)
- Updated to sphinx-argparse-cli>=1.19 (from sphinx-argparse-cli>=1.17)
- Updated to pre-commit>=4.0 (from pre-commit>=3.8)
- Updated to mypy>=1.14 (from mypy>=1.11.1)
- numpy: As Python 3.13 requires numpy 2.x, made minimum required numpy version in pyproject.toml dependent on Python version:
- "numpy>=1.26; python_version < '3.13'",
- "numpy>=2.2; python_version >= '3.13'",
v0.4.0
Breaking changes
- Renamed modules: Following modules have been renamed in order to comply with PEP8 naming conventions:
dictIO.dictReader
->dictIO.dict_reader
dictIO.dictWriter
->dictIO.dict_writer
dictIO.dictParser
->dictIO.dict_parser
dictIO.cppDict
->dictIO.cpp_dict
- Module
formatter.py
:
RenamedFormatter.format_type()
->Formatter.format_value()
- Module
parser.py
:
RenamedParser.parse_type()
->Parser.parse_value()
RenamedParser.parse_types()
->Parser.parse_values()
- class
CppDict
in moduledictIO.cppDict
has been replaced with the new classSDict[K, V]
in moduledictIO.dict
.
In order to maintain backward compatibility, a thin wrapper class namedCppDict
is kept in version ~0.4.0.
It is marked as deprecated, though, and will be removed with release 0.5.0. - Where
CppDict
inherited fromUserDict
,SDict
inherits directly from Python'sdict
class,
allowing to use it in any context where adict
or any otherMutableMapping
is expected. SDict
is generic: Static type checkers will hence require type arguments whenSDict
is used.
Where in dictIO < 0.4.0 you could write
my_dict: CppDict = CppDict()
,
you will now need to specify the type arguments, e.g.
my_dict: SDict[str, Any] = SDict()
.
With this change, type hinting is in line with how Python's builtindict
class works, and offers more control in static type checking.
Changed
- Changed from
pip
/tox
touv
as package manager - README.md : Completely rewrote section "Development Setup", introducing
uv
as package manager. - Changed publishing workflow to use OpenID Connect (Trusted Publisher Management) when publishing to PyPI
- Updated copyright statement
- VS Code settings: Turned off automatic venv activation
- Replaced black formatter with ruff formatter
Solved
- Sphinx documentation: Resolved issue that documentation of class members was generated twice.
Added
- Sphinx documentation: Added extension to support Markdown-based diagrams created with Mermaid.
- Added instance methods
dump()
andload()
toSDict
- Added
mypy
as static type checker (in addition topyright
)
GitHub workflows
- (all workflows): Adapted to use
uv
as package manager - _test_future.yml : updated Python version to 3.13.0-alpha - 3.13.0
- _test_future.yml : updated name of test job to 'test313'
Dependencies
- Updated to ruff>=0.6.3 (from ruff==0.4.2)
- Updated to pyright>=1.1.378 (from pyright==1.1.360)
- Updated to sourcery>=1.22 (from sourcery==1.16)
- Updated to pytest>=8.3 (from pytest>=8.2)
- Updated to Sphinx>=8.0 (from Sphinx>=7.3)
- Updated to sphinx-argparse-cli>=1.17 (from sphinx-argparse-cli>=1.16)
- Updated to myst-parser>=4.0 (from myst-parser>=3.0)
- Updated to furo>=2024.8 (from furo>=2024.5)
- updated to setup-python@v5 (from setup-python@v4)
- updated to actions-gh-pages@v4 (from actions-gh-pages@v3)
- updated to upload-artifact@v4 (from upload-artifact@v3)
- Updated to download-artifact@v4 (from download-artifact@v3)
- updated to checkout@v4 (from checkout@v3)
v0.4.0b10
Pre-release v0.4.0b10
v0.4.0b3
Pre-release v0.4.0b3
v0.4.0b2
Pre-release v0.4.0b2
v0.4.0b1
Pre-release v0.4.0b1
v0.3.4
Dependencies
- updated to ruff==0.4.2 (from ruff==0.2.1)
- updated to pyright==1.1.360 (from pyright==1.1.350)
- updated to sourcery==1.16 (from sourcery==1.15)
- updated to lxml>=5.2 (from lxml>=5.1)
- updated to types-lxml>=2024.4 (from types-lxml>=5.1)
- updated to pytest>=8.2 (from pytest>=7.4)
- updated to pytest-cov>=5.0 (from pytest-cov>=4.1)
- updated to Sphinx>=7.3 (from Sphinx>=7.2)
- updated to sphinx-argparse-cli>=1.15 (from sphinx-argparse-cli>=1.11)
- updated to myst-parser>=3.0 (from myst-parser>=2.0)
- updated to furo>=2024.4 (from furo>=2023.9.10)
- updated to numpy>=1.26,<2.0 (from numpy>=1.26)
- removed black
Changed
- replaced black formatter with ruff formatter
- Changed publishing workflow to use OpenID Connect (Trusted Publisher Management) when publishing to PyPI
- Updated copyright statement
- VS Code settings: Turned off automatic venv activation
v0.3.3
Hotfix
- corrected name of cli script (wrong: dictIO correct: dictParser)
v0.3.2
Added
- README.md : Under
Development Setup
, added a step to install current package in "editable" mode, using the pip install -e option.
This removes the need to manually add /src to the PythonPath environment variable in order for debugging and tests to work.
Removed
- VS Code settings: Removed the setting which added the /src folder to PythonPath. This is no longer necessary. Installing the project itself as a package in "editable" mode, using the pip install -e option, solves the issue and removes the need to manually add /src to the PythonPath environment variable.
Changed
- Moved all project configuration from setup.cfg to pyproject.toml
- Moved all tox configuration from setup.cfg to tox.ini.
- Moved pytest configuration from pyproject.toml to pytest.ini
- Deleted setup.cfg
Dependencies
- updated to black[jupyter]==24.1 (from black[jupyter]==23.12)
- updated to version: '==24.1' (from version: '==23.12')
- updated to ruff==0.2.1 (from ruff==0.1.8)
- updated to pyright==1.1.350 (from pyright==1.1.338)
- updated to sourcery==1.15 (from sourcery==1.14)
- updated to lxml>=5.1 (from lxml>=4.9)