Skip to content

Latest commit

 

History

History
329 lines (226 loc) · 12 KB

CHANGELOG.md

File metadata and controls

329 lines (226 loc) · 12 KB

Changelog

All notable changes to the dictIO project will be documented in this file.
The changelog format is based on Keep a Changelog.

Dependencies

  • Updated to download-artifact@v4 (from download-artifact@v3)

Dependencies

  • GitHub workflows: Replaced pip install tox with pip install tox-uv
  • GitHub workflows: Removed cache: 'pip' for tox-uv compatibility
  • GitHub workflows: Install dependencies: change singleline run statements to multiline run statements
  • GitHub workflows: Add step to install 'uv' package
  • GitHub workflows: Add step to install 'uv' package
  • GitHub workflows: Install dependencies: change from 'pip install' to 'uv pip install'
  • GitHub workflow _test_future.yml : updated Python version to 3.13.0-alpha - 3.13.0
  • GitHub workflow _test_future.yml : updated name of test job to 'test313'

Dependencies

  • updated to ruff==0.5.1 (from ruff==0.4.2)
  • updated to pyright==1.1.371 (from pyright==1.1.360)
  • 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 black[jupyter]==24.4 (from black[jupyter]==23.12)
  • updated to version: '==24.4' (from version: '==23.12')
  • updated to sourcery==1.21 (from sourcery==1.16)
  • updated to checkout@v4 (from checkout@v3)

0.3.4 - 2024-05-22

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

0.3.3 - 2024-02-21

Hotfix

  • corrected name of cli script (wrong: dictIO correct: dictParser)

0.3.2 - 2024-02-21

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)

0.3.1 - 2024-01-09

Solved

  • Solved a bug that led to single character references not being identified (solves #14).

0.3.0 - 2024-01-08

Changed

  • Enabled recognition of strings with nested quotes in it (solves #2)
  • GitHub workflows: Included Python 3.12 release version as standard, and Python 3.13.0a2 as "future" test.

Dependencies

  • updated to black[jupyter]==23.12 (from black[jupyter]==23.11)
  • updated to ruff==0.1.8 (from ruff==0.1.6)
  • updated to pyright==1.1.338 (from pyright==1.1.336)

0.2.9 - 2023-09-20

Dependencies

  • Updated dependencies to latest versions

0.2.8 - 2023-06-22

Changed

  • Modularized GitHub workflows
  • Changed default Python version in GitHub workflows from 3.10 to 3.11

Dependencies

  • requirements-dev.txt: Updated dependencies to latest versions

0.2.7 - 2023-05-04

Changed

  • dependencies: updated dependencies to latest versions
  • ruff: added rule-set "B" (flake8-bugbear)

0.2.6 - 2023-01-11

Changed

  • Added missing DocStrings for public classes, methods and functions
  • Changed links to package documentation to open README.html, not the default index page

0.2.5 - 2023-01-04

Changed

  • Linter: Migrated from flake8 to ruff.
    (Added ruff; removed flake8 and isort)
  • Adjusted GitHub CI workflow accordingly.
    (Added ruff job; removed flake8 and isort jobs)
  • VS Code settings: Adjusted Pylance configuration
  • Sphinx documentation: Rebuilt API documentation

Added

  • Added a batch file 'qa.bat' in root folder to ease local execution of code quality checks

0.2.4 - 2022-12-12

Changed

  • Moved dev-only dependencies from requirements.txt to requirements-dev.txt
  • dictIO/__utils__.py : ensured that imported symbols get also exported
    (added "as" clause -> "from x import y as y" instead of only "from x import y")
  • Configured code quality tools flake8, black, isort, pyright
  • Improved code quality, resolving all warnings and errors flagged by the configured code quality tools (flake8, black, isort, pyright, sourcery)

Added

  • Added support for selected numpy functions (diag, eye, ones, zeros) which can now be used in expressions.
    This is an experimental feature which might be removed or changed in future.
  • Added GitHub workflow 'main.yml' for continuous integration (runs all CI tasks except Sphinx)
    • format checks: black, isort
    • lint check: flake8, flake8-bugbear
    • type check: pyright
    • test: uses tox to run pytest on {Windows, Linux, MacOS} with {py39, py310}
    • publish: publishing to PyPI (runs only on push of new tag vx.x.x, and after all other jobs succeeded)
    • merge_to_release_branch: merge tagged commit to release branch (runs after publish)

0.2.3 - 2022-12-01

Changed

  • Code formatting: Changed from yapf to black
  • STYLEGUIDE.md : Adjusted to match black formatting
  • VS Code settings: Updated to use black as formatter
  • requirements.txt: Updated dependencies to their most recent versions
  • GitHub actions (yml files): Updated following actions to their most recent versions:
    • checkout@v1 -> checkout@v3
    • setup-python@v2 -> setup-python@v4
    • cache@v2 -> cache@v3

Added

  • Added sourcery configuration (.sourcery.yaml)
  • Added py.typed file into the package root folder and included it setup.cfg as package_data
  • Documentation: Included sub-package dictIO.utils in documentation

0.2.2 - 2022-11-08

Added

  • JsonParser: JsonParser now supports the usage of references and expressions, similar to the CppParser.

0.2.1 - 2022-10-13

Solved

  • XmlParser: Solved a bug where default namespaces in an XML file would not be parsed correctly.

0.2.0 - 2022-09-29

Added

  • dictIO.utils.path.py: Added two new functions
    • highest_common_root_folder(paths)
    • relative_path(from_path, to_path)

Changed

  • Replaced usages of pathlib.Path.resolve_to() with dictIO.utils.path.relative_path()

Removed

  • dictIO.utils.path.py: Removed obsolete function silent_remove()

0.1.2 - 2022-09-27

Solved

  • XmlParser: Changed how empty XML nodes get parsed.
    The value for an empty node is now saved as an empty dict, i.e. {}, instead of None. This change solves issue #4.
    Problem was that None is not iterable, and code such as the following had caused an exception:

    if '_attributes' in my_parsed_xml_dict[node_key]:
        ...

    because my_parsed_xml_dict[node_key] had been None.

    Now, with the code change in place, my_parsed_xml_dict[node_key] would resolve to an empty dict ( {} ) instead of to None. As a dict is formally iterable (even when empty), querying code as above does no longer crash.

0.1.1 - 2022-08-19

Added

  • cppDict:
    • Added method include(dict_to_include). This method adds an include directive for the passed in dict inside the dict the method is called on.

0.1.0 - 2022-05-28

Changed

  • Simplified imports from namespace dictIO. Example:

    • Old (<= v0.0.22):
      from dictIO.dictParser import DictParser
    • New:
      from dictIO import DictParser
  • parser.py

    • Parser.remove_quotes_from_string()

      • Changed default of 'all' argument from True to False
        This change was introduced in order to, by default, protect inner quotes in i.e. a farn filter expression "var in ['item1', 'item2']" from being removed.
    • CppParser._parse_tokenized_dict()

      • Changed implementation of the conditional code where a key value pair gets parsed.
        This change was introduced in order to better identify invalid key value pairs.
        Two invalid keys were added in test_parser_dict (section 'invalid') and a respective test was added.
  • formatter.py

    • JsonFormatter.insert_includes()
      • Changed correction of backslashes, so that backslashes in include paths are not substituted by forwardslashes but actually escaped in Json compliant way.
  • dictWriter.py

    • DictWriter.write()
      • Changed default of 'mode' argument from 'w' (overwrite) to 'a' (append)
  • utils\strings.py

    • plural() function moved to farn package (-> moved into utils\logging.py module in farn)
      It was moved since the plural() function is currently used in farn logging only (neither in dictIO nor in ospx).

0.0.22 - 2022-05-09

  • First public release

0.0.17 - 2022-02-14

Added

  • Added support for Python 3.10