quality-result-gui


Namequality-result-gui JSON
Version 2.0.7 PyPI version JSON
download
home_pagehttps://github.com/nlsfi/quality-result-gui
SummaryQGIS plugin for visualizing quality check results.
upload_time2024-01-17 12:33:50
maintainer
docs_urlNone
authorNational Land Survey of Finland
requires_python
licenseGNU GPL v3.0
keywords qgis
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # quality-result-gui

QGIS plugin for visualizing quality check results.

## Plugin

Not implemented yet.

## Library

To use this library as an external dependency in your plugin or other Python code, install it using `pip install quality-result-gui` and use imports from the provided `quality_result_gui` package. If used in a plugin, library must be installed in the runtime QGIS environment or use [qgis-plugin-dev-tools] to bundle your plugin with runtime dependencies included.

### Minimal working example (with JSON file)

For quality dock widget to work, a subclass of QualityResultClient needs to be first implemented. Instance of the created API client class is then passed to QualityErrorsDockWidget. For a real-world application, a separate backend application is needed for checking data quality and provide the quality check results for the QGIS plugin.

Example of the expected api response can be seen in [this file](./src/quality_result_gui_plugin/dev_tools/example_quality_errors/quality_errors.json). [Example parser class](./src/quality_result_gui_plugin/dev_tools/example_quality_errors/quality_errors.json) for json response is also provided for the following example to work:

```python
import json

from qgis.utils import iface

from quality_result_gui.api.quality_api_client import QualityResultClient
from quality_result_gui.api.types.quality_error import QualityError
from quality_result_gui_plugin.dev_tools.response_parser import QualityErrorResponse
from quality_result_gui.quality_error_manager import QualityResultManager


class ExampleQualityResultClient(QualityResultClient):

    def get_results(self) -> Optional[List[QualityError]]:
        """
        Retrieve latest quality errors from API

        Returns:
            None: if no results available
            List[QualityError]: if results available

        Raises:
            QualityResultClientError: if request fails
            QualityResultServerError: if check failed in backend
        """
        full_path_to_json = "some-path/example_quality_errors.json"
        example_response = json.loads(Path(full_path_to_json).read_text())

        return QualityErrorResponse(example_response).quality_results

    def get_crs(self) -> QgsCoordinateReferenceSystem:
        return QgsCoordinateReferenceSystem("EPSG:3067")



api_client = ExampleQualityResultClient()
quality_manager = QualityResultManager(api_client, iface.mainWindow())
quality_manager.show_dock_widget()

```

## Development of quality-result-gui

See [development readme](./DEVELOPMENT.md).

## License & copyright

Licensed under GNU GPL v3.0.

This tool is part of the topographic data production system developed in National Land Survey of Finland. For further information, see:

- [Abstract for FOSS4G](https://talks.osgeo.org/foss4g-2022/talk/TDDGJ9/)
- [General news article about the project](https://www.maanmittauslaitos.fi/en/topical_issues/topographic-data-production-system-upgraded-using-open-source-solutions)

Copyright (C) 2022 [National Land Survey of Finland].

[National Land Survey of Finland]: https://www.maanmittauslaitos.fi/en
[qgis-plugin-dev-tools]: https://github.com/nlsfi/qgis-plugin-dev-tools

# CHANGELOG

## [2.0.7] - 2024-01-17

- Fix: Process modifications in quality error tree correctly when multiple filters are present

## [2.0.6] - 2024-01-05

- Fix: Show correct results when user processed filter is toggled with map extent filter active

## [2.0.5] - 2023-12-12

- Fix: Filter newly inserted quality error rows correctly with user processed and map extent filters

## [2.0.4] - 2023-10-05

- Fix: Redraw map when an error is selected and errors are not visualized on map

## [2.0.3] - 2023-09-12

- Fix: Include .qm translation files to the zip generated by release workflow action

## [2.0.2] - 2023-09-06

- Fix: Make Finnish translations visible

## [2.0.1] - 2023-07-12

- Feat: Add Finnish translations

## [2.0.0] - 2023-07-11

- Refactor!: replace hierarchical representation of quality errors with a flat quality error list

## [1.1.6] - 2023-05-23

- Feat: Add functionality to display quality error feature type and attribute names from layer aliases.

## [1.1.5] - 2023-03-29

- Fix: Do not zoom to error when geometry is null geometry

## [1.1.4] - 2023-03-08

- Fix: Show correct error count when errors are filtered
- Fix: Remove selected error visualization from map when error is removed from list

## [1.1.3] - 2023-03-03

- Feat: Add method to hide dock widget and functionality to recreate error visualizations

## [1.1.2] - 2023-03-01

- Fix: Do not hide filter menu when a filter is selected
- Fix: Fix missing marker symbol from line type annotations
- Feat: Allow configuring quality layer styles
- Feat: Add keyboard shortcut for visualize errors on map

## [1.1.1] - 2023-02-23

- Feat: Change Show user processed filter into checkbox selection

## [1.1.0] - 2023-02-16

- Feat: Add optional extra info field to quality error. Extra info is displayed in the tooltip of error description and may contain html formatted text.
- Refactor: Remove language specific description fields from quality error and include only a single field for description.

## [1.0.0] - 2023-02-14

- Feat: Added an API to add custom filters for errors.
- Fix: Hide empty branches from quality error list when user processed errors are hidden and user processes all errors for a feature
- Fix: Error layer stays visible after minimizing QGIS.

## [0.0.4] - 2022-12-28

- Feat: Emit mouse event signal for selected error feature
- Feat: New filter to filter quality errors by error attribute value
- Feat: Add tooltip for quality error description
- Feat: Update data in tree view partially when data changes
- Fix: Minor styling fixes of tree view
- Fix: Visualize error when description is clicked

## [0.0.3] - 2022-12-15

- Fix: Use glob paths for missing build resource files

## [0.0.2] - 2022-12-14

- Fix: Fix missing ui and svg files by including them in setuptools build

## [0.0.1] - 2022-12-14

- Initial release: QGIS dock widget for visualizing quality check results

[0.0.1]: https://github.com/nlsfi/quality-result-gui/releases/tag/v0.0.1
[0.0.2]: https://github.com/nlsfi/quality-result-gui/releases/tag/v0.0.2
[0.0.3]: https://github.com/nlsfi/quality-result-gui/releases/tag/v0.0.3
[0.0.4]: https://github.com/nlsfi/quality-result-gui/releases/tag/v0.0.4
[1.0.0]: https://github.com/nlsfi/quality-result-gui/releases/tag/v1.0.0
[1.1.0]: https://github.com/nlsfi/quality-result-gui/releases/tag/v1.1.0
[1.1.1]: https://github.com/nlsfi/quality-result-gui/releases/tag/v1.1.1
[1.1.2]: https://github.com/nlsfi/quality-result-gui/releases/tag/v1.1.2
[1.1.3]: https://github.com/nlsfi/quality-result-gui/releases/tag/v1.1.3
[1.1.4]: https://github.com/nlsfi/quality-result-gui/releases/tag/v1.1.4
[1.1.5]: https://github.com/nlsfi/quality-result-gui/releases/tag/v1.1.5
[1.1.6]: https://github.com/nlsfi/quality-result-gui/releases/tag/v1.1.6
[2.0.0]: https://github.com/nlsfi/quality-result-gui/releases/tag/v2.0.0
[2.0.1]: https://github.com/nlsfi/quality-result-gui/releases/tag/v2.0.1
[2.0.2]: https://github.com/nlsfi/quality-result-gui/releases/tag/v2.0.2
[2.0.3]: https://github.com/nlsfi/quality-result-gui/releases/tag/v2.0.3
[2.0.4]: https://github.com/nlsfi/quality-result-gui/releases/tag/v2.0.4
[2.0.5]: https://github.com/nlsfi/quality-result-gui/releases/tag/v2.0.5
[2.0.6]: https://github.com/nlsfi/quality-result-gui/releases/tag/v2.0.6
[2.0.7]: https://github.com/nlsfi/quality-result-gui/releases/tag/v2.0.7

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/nlsfi/quality-result-gui",
    "name": "quality-result-gui",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "qgis",
    "author": "National Land Survey of Finland",
    "author_email": "os@nls.fi",
    "download_url": "https://files.pythonhosted.org/packages/bc/0e/07a1f610e3e4120918dcc46dfe8c792664d18840d4cdc4fe1651bfea9874/quality-result-gui-2.0.7.tar.gz",
    "platform": null,
    "description": "# quality-result-gui\n\nQGIS plugin for visualizing quality check results.\n\n## Plugin\n\nNot implemented yet.\n\n## Library\n\nTo use this library as an external dependency in your plugin or other Python code, install it using `pip install quality-result-gui` and use imports from the provided `quality_result_gui` package. If used in a plugin, library must be installed in the runtime QGIS environment or use [qgis-plugin-dev-tools] to bundle your plugin with runtime dependencies included.\n\n### Minimal working example (with JSON file)\n\nFor quality dock widget to work, a subclass of QualityResultClient needs to be first implemented. Instance of the created API client class is then passed to QualityErrorsDockWidget. For a real-world application, a separate backend application is needed for checking data quality and provide the quality check results for the QGIS plugin.\n\nExample of the expected api response can be seen in [this file](./src/quality_result_gui_plugin/dev_tools/example_quality_errors/quality_errors.json). [Example parser class](./src/quality_result_gui_plugin/dev_tools/example_quality_errors/quality_errors.json) for json response is also provided for the following example to work:\n\n```python\nimport json\n\nfrom qgis.utils import iface\n\nfrom quality_result_gui.api.quality_api_client import QualityResultClient\nfrom quality_result_gui.api.types.quality_error import QualityError\nfrom quality_result_gui_plugin.dev_tools.response_parser import QualityErrorResponse\nfrom quality_result_gui.quality_error_manager import QualityResultManager\n\n\nclass ExampleQualityResultClient(QualityResultClient):\n\n    def get_results(self) -> Optional[List[QualityError]]:\n        \"\"\"\n        Retrieve latest quality errors from API\n\n        Returns:\n            None: if no results available\n            List[QualityError]: if results available\n\n        Raises:\n            QualityResultClientError: if request fails\n            QualityResultServerError: if check failed in backend\n        \"\"\"\n        full_path_to_json = \"some-path/example_quality_errors.json\"\n        example_response = json.loads(Path(full_path_to_json).read_text())\n\n        return QualityErrorResponse(example_response).quality_results\n\n    def get_crs(self) -> QgsCoordinateReferenceSystem:\n        return QgsCoordinateReferenceSystem(\"EPSG:3067\")\n\n\n\napi_client = ExampleQualityResultClient()\nquality_manager = QualityResultManager(api_client, iface.mainWindow())\nquality_manager.show_dock_widget()\n\n```\n\n## Development of quality-result-gui\n\nSee [development readme](./DEVELOPMENT.md).\n\n## License & copyright\n\nLicensed under GNU GPL v3.0.\n\nThis tool is part of the topographic data production system developed in National Land Survey of Finland. For further information, see:\n\n- [Abstract for FOSS4G](https://talks.osgeo.org/foss4g-2022/talk/TDDGJ9/)\n- [General news article about the project](https://www.maanmittauslaitos.fi/en/topical_issues/topographic-data-production-system-upgraded-using-open-source-solutions)\n\nCopyright (C) 2022 [National Land Survey of Finland].\n\n[National Land Survey of Finland]: https://www.maanmittauslaitos.fi/en\n[qgis-plugin-dev-tools]: https://github.com/nlsfi/qgis-plugin-dev-tools\n\n# CHANGELOG\n\n## [2.0.7] - 2024-01-17\n\n- Fix: Process modifications in quality error tree correctly when multiple filters are present\n\n## [2.0.6] - 2024-01-05\n\n- Fix: Show correct results when user processed filter is toggled with map extent filter active\n\n## [2.0.5] - 2023-12-12\n\n- Fix: Filter newly inserted quality error rows correctly with user processed and map extent filters\n\n## [2.0.4] - 2023-10-05\n\n- Fix: Redraw map when an error is selected and errors are not visualized on map\n\n## [2.0.3] - 2023-09-12\n\n- Fix: Include .qm translation files to the zip generated by release workflow action\n\n## [2.0.2] - 2023-09-06\n\n- Fix: Make Finnish translations visible\n\n## [2.0.1] - 2023-07-12\n\n- Feat: Add Finnish translations\n\n## [2.0.0] - 2023-07-11\n\n- Refactor!: replace hierarchical representation of quality errors with a flat quality error list\n\n## [1.1.6] - 2023-05-23\n\n- Feat: Add functionality to display quality error feature type and attribute names from layer aliases.\n\n## [1.1.5] - 2023-03-29\n\n- Fix: Do not zoom to error when geometry is null geometry\n\n## [1.1.4] - 2023-03-08\n\n- Fix: Show correct error count when errors are filtered\n- Fix: Remove selected error visualization from map when error is removed from list\n\n## [1.1.3] - 2023-03-03\n\n- Feat: Add method to hide dock widget and functionality to recreate error visualizations\n\n## [1.1.2] - 2023-03-01\n\n- Fix: Do not hide filter menu when a filter is selected\n- Fix: Fix missing marker symbol from line type annotations\n- Feat: Allow configuring quality layer styles\n- Feat: Add keyboard shortcut for visualize errors on map\n\n## [1.1.1] - 2023-02-23\n\n- Feat: Change Show user processed filter into checkbox selection\n\n## [1.1.0] - 2023-02-16\n\n- Feat: Add optional extra info field to quality error. Extra info is displayed in the tooltip of error description and may contain html formatted text.\n- Refactor: Remove language specific description fields from quality error and include only a single field for description.\n\n## [1.0.0] - 2023-02-14\n\n- Feat: Added an API to add custom filters for errors.\n- Fix: Hide empty branches from quality error list when user processed errors are hidden and user processes all errors for a feature\n- Fix: Error layer stays visible after minimizing QGIS.\n\n## [0.0.4] - 2022-12-28\n\n- Feat: Emit mouse event signal for selected error feature\n- Feat: New filter to filter quality errors by error attribute value\n- Feat: Add tooltip for quality error description\n- Feat: Update data in tree view partially when data changes\n- Fix: Minor styling fixes of tree view\n- Fix: Visualize error when description is clicked\n\n## [0.0.3] - 2022-12-15\n\n- Fix: Use glob paths for missing build resource files\n\n## [0.0.2] - 2022-12-14\n\n- Fix: Fix missing ui and svg files by including them in setuptools build\n\n## [0.0.1] - 2022-12-14\n\n- Initial release: QGIS dock widget for visualizing quality check results\n\n[0.0.1]: https://github.com/nlsfi/quality-result-gui/releases/tag/v0.0.1\n[0.0.2]: https://github.com/nlsfi/quality-result-gui/releases/tag/v0.0.2\n[0.0.3]: https://github.com/nlsfi/quality-result-gui/releases/tag/v0.0.3\n[0.0.4]: https://github.com/nlsfi/quality-result-gui/releases/tag/v0.0.4\n[1.0.0]: https://github.com/nlsfi/quality-result-gui/releases/tag/v1.0.0\n[1.1.0]: https://github.com/nlsfi/quality-result-gui/releases/tag/v1.1.0\n[1.1.1]: https://github.com/nlsfi/quality-result-gui/releases/tag/v1.1.1\n[1.1.2]: https://github.com/nlsfi/quality-result-gui/releases/tag/v1.1.2\n[1.1.3]: https://github.com/nlsfi/quality-result-gui/releases/tag/v1.1.3\n[1.1.4]: https://github.com/nlsfi/quality-result-gui/releases/tag/v1.1.4\n[1.1.5]: https://github.com/nlsfi/quality-result-gui/releases/tag/v1.1.5\n[1.1.6]: https://github.com/nlsfi/quality-result-gui/releases/tag/v1.1.6\n[2.0.0]: https://github.com/nlsfi/quality-result-gui/releases/tag/v2.0.0\n[2.0.1]: https://github.com/nlsfi/quality-result-gui/releases/tag/v2.0.1\n[2.0.2]: https://github.com/nlsfi/quality-result-gui/releases/tag/v2.0.2\n[2.0.3]: https://github.com/nlsfi/quality-result-gui/releases/tag/v2.0.3\n[2.0.4]: https://github.com/nlsfi/quality-result-gui/releases/tag/v2.0.4\n[2.0.5]: https://github.com/nlsfi/quality-result-gui/releases/tag/v2.0.5\n[2.0.6]: https://github.com/nlsfi/quality-result-gui/releases/tag/v2.0.6\n[2.0.7]: https://github.com/nlsfi/quality-result-gui/releases/tag/v2.0.7\n",
    "bugtrack_url": null,
    "license": "GNU GPL v3.0",
    "summary": "QGIS plugin for visualizing quality check results.",
    "version": "2.0.7",
    "project_urls": {
        "Changelog": "https://github.com/nlsfi/quality-result-gui/blob/main/CHANGELOG.md",
        "Homepage": "https://github.com/nlsfi/quality-result-gui"
    },
    "split_keywords": [
        "qgis"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fc569996a6d77bf05268692b7f2c0c38ab351951420fb5e0e3e27e7153c672ab",
                "md5": "42c620686490508c2b3356e9cc571d50",
                "sha256": "eb0ebf45eaa3b06e2a821dad7689708029658f27ab28fcd2998edd9b78b9527e"
            },
            "downloads": -1,
            "filename": "quality_result_gui-2.0.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "42c620686490508c2b3356e9cc571d50",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 82397,
            "upload_time": "2024-01-17T12:33:49",
            "upload_time_iso_8601": "2024-01-17T12:33:49.058166Z",
            "url": "https://files.pythonhosted.org/packages/fc/56/9996a6d77bf05268692b7f2c0c38ab351951420fb5e0e3e27e7153c672ab/quality_result_gui-2.0.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bc0e07a1f610e3e4120918dcc46dfe8c792664d18840d4cdc4fe1651bfea9874",
                "md5": "499143aaa4de5c6641a28f0700c94ea8",
                "sha256": "4077fd3625e8eec324e924fa30727b70886216930f547c1d1208d3c4bbab125a"
            },
            "downloads": -1,
            "filename": "quality-result-gui-2.0.7.tar.gz",
            "has_sig": false,
            "md5_digest": "499143aaa4de5c6641a28f0700c94ea8",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 58603,
            "upload_time": "2024-01-17T12:33:50",
            "upload_time_iso_8601": "2024-01-17T12:33:50.844555Z",
            "url": "https://files.pythonhosted.org/packages/bc/0e/07a1f610e3e4120918dcc46dfe8c792664d18840d4cdc4fe1651bfea9874/quality-result-gui-2.0.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-17 12:33:50",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "nlsfi",
    "github_project": "quality-result-gui",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "quality-result-gui"
}
        
Elapsed time: 0.17175s