Skip to content

Releases: PlotPyStack/guidata

v3.11.0

04 Jul 10:00

Choose a tag to compare

Version 3.11.0

💥 New features:

  • New utils.genreqs module for generating installation requirements files:
    • Function generate_requirements_txt generates a requirements.txt file
    • Function generate_requirements_rst generates a requirements.rst file
    • The module is used by the new command line script guidata-genreqs

v3.10.0

17 Jun 14:26

Choose a tag to compare

Version 3.10.0

💥 New features:

  • Issue #81 - Modernize the internationalization utilities
    • The guidata.utils.gettext_helpers module, based on the gettext module, has been deprecated.
    • It has been replaced by a new module guidata.utils.translations, which provides a more modern and flexible way to handle translations, thanks to the babel library.
    • This change introduces a new script for managing translations, which may be used as follows:
      • Scan for new translations:
        • python -m guidata.utils.translations scan --name <name> --directory <directory>
        • or guidata-translations scan --name <name> --directory <directory>
      • Compile translations:
        • python -m guidata.utils.translations compile --name <name> --directory <directory>
        • or guidata-translations compile --name <name> --directory <directory>
      • More options are available, see the help message of the script:
        • python -m guidata.utils.translations --help
        • or guidata-translations --help

🛠️ Bug fixes:

  • Issue #88 - DictItem default value persists across dataset instances (missing deepcopy)
    • This issue is as old as the DictItem class itself.
    • When using a DictItem in a dataset, if a value is set to the item instance, this value was incorrectly used as the default for the next instance of the same dataset class.
    • This happened because a deepcopy was not made when setting the defaults of the class items in guidata.dataset.datatypes.
    • The fix ensures that each dataset instance has its own independent default value for DictItem, preventing side effects from one instance to another.

v3.9.0

26 Apr 09:21

Choose a tag to compare

💥 New features:

  • Issue #87 - Array editor: add an option to paste data (Ctrl+V)
  • Issue #85 - Array editor: add a button to export data as CSV
  • Issue #86 - Array editor: add "Copy all" feature for copying array and headers to clipboard

v3.8.0

26 Apr 07:25

Choose a tag to compare

ℹ️ Changes:

  • utils.gettext_helpers:
    • do_rescan_files: use --no-location option to avoid including the file location in the translation files
    • msgmerge: use --update option to avoid regenerating the translation files
  • Replace flake8 with ruff for linting in GitHub Actions workflow

🛠️ Bug fixes:

  • Issue #84 - Side effects of win32_fix_title_bar_background with QGraphicsEffect active
  • Issue #82 - Autodoc extension: translation of generic documentation text
    • Initially, the generic documentation text like "Returns a new instance of" was translated using the gettext function.
    • This was a mistake, as this text should be translated only after the documentation has been generated, i.e. by the sphinx-intl tool.
    • In other words, translating those generic texts should be done in the application documentation, not in the library itself.
    • To fix this issue, the generic documentation text is no longer translated using gettext, but is left as is in the source code.
  • Issue #80 - ValueError when trying to show/edit an empty array

v3.7.1

07 Nov 11:07

Choose a tag to compare

Version 3.7.1

ℹ️ Changes:

  • Fixed ResourceWarning: unclosed file on some platforms (e.g. CentOS Stream 8).
  • Update GitHub Actions to use setup-python@v5 and checkout@v4

Version 3.7.0

Drop support for Python 3.8.

v3.7.0

06 Nov 14:28

Choose a tag to compare

Drop support for Python 3.8.

v3.6.3

10 Sep 08:16

Choose a tag to compare

In this release, test coverage is 74%.

💥 New features:

  • MultipleChoiceItem: implemented callback property feature (was unexpectedly not supported)

🛠️ Bug fixes:

  • Issue #78 - PySide6 on Linux: AttributeError: 'DataFrameView' object has no attribute 'MoveLeft'
  • Issue #77 - PyQt6/PySide6 on Linux: AttributeError: type object 'PySide6.QtGui.QPalette' has no attribute 'Background'
  • Add 'Monospace' and 'Menlo' to the list of fixed-width supported fonts
  • Font warning message in configtools.py: replace print by warnings.warn

v3.6.2

06 Aug 09:03

Choose a tag to compare

In this release, test coverage is 74%.

🛠️ Bug fixes:

  • Light/dark theme support:
    • Fix default color mode issues
    • Color theme test: allow to derive from, so that the test may be completed by other widgets

v3.6.1

04 Aug 20:47

Choose a tag to compare

In this release, test coverage is 74%.

🛠️ Bug fixes:

  • Light/dark theme support:
    • Auto light/dark theme: quering OS setting only once, or each time the set_color_mode('auto') function is called
    • Fix console widget color theme: existing text in console widget was not updated when changing color theme
    • Fixed issue with dark theme on Windows: the windows title bar background was not updated when the theme was changed from dark to light (the inverse was working) - this is now fixed in guidata.qthelpers.win32_fix_title_bar_background function
    • Added guidata.qthelpers.set_color_mode function to set the color mode ('dark', 'light' or 'auto' for system default)
    • Added guidata.qthelpers.get_color_mode function to get the current color mode ('dark', 'light' or 'auto' for system default)
    • Added guidata.qthelpers.get_color_theme function to get the current color theme ('dark' or 'light')
    • Added guidata.qthelpers.get_background_color function to get the current background QColor associated with the current color theme
    • Added guidata.qthelpers.get_foreground_color function to get the current foreground QColor associated with the current color theme
    • Added guidata.qthelpers.is_dark_theme function to check if the current theme is dark)
    • As a consequence, guidata.qthelpers.is_dark_mode and guidata.qthelpers.set_dark_mode functions are deprecated, respectively in favor of guidata.qthelpers.is_dark_theme and guidata.qthelpers.set_color_mode

v3.6.0

02 Aug 12:47

Choose a tag to compare

Version 3.6.0

In this release, test coverage is 74%.

💥 New features:

  • Improved dark/light mode theme update:
    • The theme mode may be changed during the application lifetime
    • Added methods update_color_mode on CodeEditor and ConsoleBaseWidget widgets

Version 3.5.3

In this release, test coverage is 74%.

🛠️ Bug fixes:

  • Configuration initialization on Windows:

    • For various reasons, a PermissionError exception may be raised when trying to remove the configuration file on Windows, just after having created it for the first time. This is due to the fact that the file is still locked by the file system, even if the file has been closed. This is a known issue with Windows file system, and the solution is to wait a little bit before trying to remove the file.
    • To fix this issue, a new try_remove_file function has been added to the userconfig module, which tries multiple times to remove the file before raising an exception.
  • Moved back conftest.py to the tests folder (was in the root folder), so that pytest can be executed with proper configuration when running the test suite from the installed package