A QGIS integration plugin for Kart repositories

Overview

QGIS Kart Plugin

A plugin to work with Kart repositories

License: GPL v3

Installation

The Kart plugin is available in the QGIS Plugins server. To install the latest version, use the QGIS Plugin Manager and search for the Kart plugin.

Alternatively, you can get the latest version from the release page

Open the QGIS Plugin manager and install the downloaded zip file.

This plugin is compatible with QGIS 3.4 or later.

Usage

Usage documentation can be found here

For developers

For Kart development see the Contributing Notes.

Comments
  • Option to display spatial filter extents on the map

    Option to display spatial filter extents on the map

    If a user has spatial filter(s) set, would be good to be able to (optionally) see the borders of the filters on the map.

    IMO ideally they wouldn't appear as layers, but maybe more like a decoration (ie: layout extents, grids, etc)? Maybe @hamishcampbell has other ideas?

    opened by rcoup 9
  • Fix support for ssh clones of kart repos.

    Fix support for ssh clones of kart repos.

    The plugin currently fails to recognize SSH paths to hosted repositories.

    This change moves the responsibility for determining the users intended clone source into the clone widget. This also fixes handling of paths already prefixed with file:// and tightens up the checking of http/https paths.

    opened by hamishcampbell 8
  • Github Setup for bug reporting & contributing

    Github Setup for bug reporting & contributing

    • [x] Issue template — make sure we're getting the right info/OS/versions/logs/context/etc to help figure issues out quickly.
    • [x] Contributing doc — how to get up and running with the plugin for development (as opposed to "install from here"), conventions, etc.
    documentation 
    opened by rcoup 7
  • Improve installation of kart and/or configuration of plugin and kart executables

    Improve installation of kart and/or configuration of plugin and kart executables

    The plugin should robustly handle the case of Kart not installed or misconfigured.

    Eventually, it might perform installation itself, so they user can do the full setup from QGIS

    enhancement 
    opened by volaya 6
  • UI minor changes rollup

    UI minor changes rollup

    Minor UI changes (mostly wording) rollup issue

    • [x] Working tree → Working copy everywhere

    CleanShot 2021-11-23 at 10 57 33

    • [x] heading → “Your Kart installation location is not configured:”
    • [x] stray "."

    CleanShot 2021-11-23 at 10 52 40

    • [x] pane titlebar → "Kart Repositories"

    • [x] hint text → "Tip: right-click on items for available actions"

    • [x] remove logo/heading (~ideally move logo to pane title~ not a thing)

    • [x] add a space between repo title & branch name

    • [x] can we collapse the repository path in the middle when the panel isn't wide enough and the repo doesn't have a title set? I think Qt supports this via elidedText. ie:

      /Users/rcoup/code/kart-foss4g-2021/workshop/first [mybranch]  # now
      ~/code/kart-foss4g-2021/workshop/first [mybranch]             # use ~ for os.path.expanduser('~') prefix
      ~/code/.../workshop/first [mybranch]                          # collapse in the middle
      

    CleanShot 2021-11-23 at 11 25 21

    • [x] Remove this repository: icon → minus-circle-outline
    • [x] Show log: icon → history
    • [x] Show working tree changes: icon → compare
    • [x] Discard working tree changes: icon → undo
    • [x] Commit working tree changes: icon → content-save-outline
    • [x] Switch branch: icon → swap-horizontal
    • [x] Apply patch: icon → file-import-outline
    • [x] Menu order/wording
      • -break-
      • Show log...
      • Show working copy changes...
      • Discard working copy changes
      • Commit working copy changes...
      • Switch branch...
      • Merge into {current-branch}...
      • -break-
      • Pull...
      • Push...
      • -break-
      • Import layer to repository...
      • Apply patch...
      • -break-
      • Refresh
      • Properties...
      • Remove this repository

    CleanShot 2021-11-23 at 12 02 17

    • [x] Matching icon and wording changes from the repository context menu
    • [x] Menu ordering:
      • Add to QGIS project
      • -break-
      • Show log...
      • Show working copy changes for dataset...
      • Discard working copy changes for dataset
      • Commit working copy changes for dataset...
      • -break-
      • Remove from repository

    Diff Viewer dialog

    • [x] Restore old version
    • [x] Restore new version
    • [x] Don't show restore new version when displaying working-tree changes
    • [x] Project layers should be the default for "additional layers"
    • [x] Map extent needs some padding so vertices don't end up drawn on the edges of the map
    • [x] Swipe cursor should change from hand to resize when the mouse hovers over the black line
    • [x] ~Scrolling to zoom seems really rough~ nevermind, is my machine
    • [x] [status message] Working copy has been updated.

    Layer context menu

    • [x] ~Can we add the Kart icon to make it stand out a bit in the menu?~
    • [x] Wording/icons need to match the other menus
    opened by rcoup 5
  • Add option to remove layer from repository

    Add option to remove layer from repository

    @hamishcampbell @rcoup Not sure how this is done in Kart, since I could not find a command for it.

    Should the plugin just delete the table in the repo database and then commit?

    opened by volaya 5
  • Problem creating a repository

    Problem creating a repository

    Hi!

    Firstable, contragratulations for the plugin! Its a great contribution for the QGIS users community.

    I´m testing the plugin guided by documentation, and when I use the create new repository option, QGIS report me the error message "The specified folder already exists"

    image

    The folder is empty and I don't "init" it before.

    Meanwhile, if I create a new repository with command terminal and add it using the Kart plugin there isn´t any problem.

    This is the information about by environment.

    Kart Plugin version 1.0.1 QGIS version 3.20.2-Odense Operating system Windows 10 10.0.19041 Kart version Kart v0.10.7, Copyright (c) Kart Contributors » GDAL v3.3.2; PROJ v8.1.1 » PyGit2 v1.7.0; Libgit2 v1.3.0; Git v2.29.2.windows.1 » SQLAlchemy v1.4.11; pysqlite3 v2.6.0/v3.31.1; SpatiaLite v5.0.0; Libpq v11.0.9 » SpatialIndex v1.9.3

    Thx

    bug 
    opened by sigdeletras 4
  • New install in QGIS gives Python error UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 591: ordinal not in range(128)

    New install in QGIS gives Python error UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 591: ordinal not in range(128)

    Entirely possible I'm missing something obvious here, but I just tried installing the QGIS Kart plugin, and I'm getting the following error in the Python error log when going to Plugins -> Kart -> About....

    2021-12-20T11:37:56     WARNING    Traceback (most recent call last):
                  File "/Users/leighhunt/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/kart/plugin.py", line 72, in openAbout
                  pluginVersion = self.pluginVersion()
                  File "/Users/leighhunt/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/kart/plugin.py", line 66, in pluginVersion
                  config.read(path)
                  File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/configparser.py", line 697, in read
                  self._read(fp, filename)
                  File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/configparser.py", line 1017, in _read
                  for lineno, line in enumerate(fp, start=1):
                  File "/Applications/QGIS.app/Contents/MacOS/lib/python3.8/encodings/ascii.py", line 26, in decode
                  return codecs.ascii_decode(input, self.errors)[0]
                 UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 591: ordinal not in range(128)
    

    I then went to Plugins -> Kart -> Settings... and set Kart executable to /usr/local/bin/kart and get the following error in the Kart log:

    2021-12-20T11:38:01     INFO    Command: Applications/Kart.app/Contents/MacOS/kart_cli --version
    2021-12-20T11:38:01     CRITICAL    [Errno 2] No such file or directory: 'Applications/Kart.app/Contents/MacOS/kart_cli'
    

    Further info:

    QGIS Plugins log:

    2021-12-20T11:44:50     INFO    Loaded QuickMapServices (package: quick_map_services)
    2021-12-20T11:44:51     INFO    Loaded Relief Visualization Toolbox (package: rvt-qgis)
    2021-12-20T11:44:53     INFO    Loaded Processing (package: processing)
    2021-12-20T11:44:53     INFO    Loaded DB Manager (package: db_manager)
    2021-12-20T11:44:53     INFO    Loaded MetaSearch Catalog Client (package: MetaSearch)
    2021-12-20T11:45:09     INFO    Loaded Kart (package: kart)
    
    which kart
    /usr/local/bin/kart
    
    kart --version
    Kart v0.10.7, Copyright (c) Kart Contributors
    » GDAL v3.3.2; PROJ v6.3.0
    » PyGit2 v1.7.0; Libgit2 v1.3.0; Git v2.33.GIT
    » SQLAlchemy v1.4.11; pysqlite3 v2.6.0/v3.31.1; SpatiaLite v5.0.1; Libpq v14.0.1
    » SpatialIndex v1.9.3
    
    kart_cli
    zsh: command not found: kart_cli
    

    Kart was installed using homebrew, OS: MacOSX Monterey, on MacBook Air with M1 chip. QGIS version 3.18.1-Zürich

    More verbose error message when attempting to see Kart Settings again:

    An error has occurred while executing Python code: 
    
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 591: ordinal not in range(128) 
    Traceback (most recent call last):
      File "/Users/leighhunt/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/kart/plugin.py", line 72, in openAbout
        pluginVersion = self.pluginVersion()
      File "/Users/leighhunt/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/kart/plugin.py", line 66, in pluginVersion
        config.read(path)
      File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/configparser.py", line 697, in read
        self._read(fp, filename)
      File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/configparser.py", line 1017, in _read
        for lineno, line in enumerate(fp, start=1):
      File "/Applications/QGIS.app/Contents/MacOS/lib/python3.8/encodings/ascii.py", line 26, in decode
        return codecs.ascii_decode(input, self.errors)[0]
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 591: ordinal not in range(128)
    
    
    Python version: 3.8.7 (default, Feb 10 2021, 09:04:08) [Clang 12.0.0 (clang-1200.0.32.29)] 
    QGIS version: 3.18.1-Zürich Zürich, 202f1bf7e5 
    
    Python Path:
    /Applications/QGIS.app/Contents/MacOS/../Resources/python
    /Users/leighhunt/Library/Application Support/QGIS/QGIS3/profiles/default/python
    /Users/leighhunt/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins
    /Applications/QGIS.app/Contents/MacOS/../Resources/python/plugins
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/patsy-0.5.1-py3.8.egg
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/Rtree-0.9.4-py3.8.egg
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/geopandas-0.8.1-py3.8.egg
    /Applications/QGIS.app/Contents/MacOS/lib/python38.zip
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/rasterio-1.1.5-py3.8-macosx-10.13.0-x86_64.egg
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/Fiona-1.8.13.post1-py3.8-macosx-10.13.0-x86_64.egg
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/click_plugins-1.1.1-py3.8.egg
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/numpy-1.20.1-py3.8-macosx-10.13.0-x86_64.egg
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/affine-2.3.0-py3.8.egg
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/pandas-1.1.0-py3.8-macosx-10.13.0-x86_64.egg
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/netCDF4-1.5.4-py3.8-macosx-10.13.0-x86_64.egg
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/statsmodels-0.11.1-py3.8-macosx-10.13.0-x86_64.egg
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/lib-dynload
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/cftime-1.2.1-py3.8-macosx-10.13.0-x86_64.egg
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/pyproj-2.6.0-py3.8-macosx-10.13.0-x86_64.egg
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/scipy-1.5.1-py3.8-macosx-10.13.0-x86_64.egg
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/Pillow-7.2.0-py3.8-macosx-10.13.0-x86_64.egg
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/numba-0.50.1-py3.8-macosx-10.13.0-x86_64.egg
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/snuggs-1.4.7-py3.8.egg
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/GDAL-3.2.1-py3.8-macosx-10.13.0-x86_64.egg
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/matplotlib-3.3.0-py3.8-macosx-10.13.0-x86_64.egg
    /Applications/QGIS.app/Contents/MacOS/lib/python3.8/site-packages/opencv_contrib_python-4.3.0.36-py3.8-macosx-10.13.0-x86_64.egg
    /Users/leighhunt/Library/Application Support/QGIS/QGIS3/profiles/default/python
    /Users/leighhunt/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/rvt-qgis
    /Users/leighhunt/dev/playground/covid/covid-geojson
    
    bug 
    opened by leighghunt 4
  • ValueError: too many values to unpack (expected 2)

    ValueError: too many values to unpack (expected 2)

    image_2022-08-23_155102417 When I enter in...

    Show Logs > Show changes introduced by this commit...

    the following error is displayed

    An error has occurred while executing Python code:

    ValueError: too many values to unpack (expected 2) Traceback (most recent call last): File "C:\Users/UTEA/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\kart\gui\diffviewer.py", line 182, in treeItemChanged self._createLayers() File "C:\Users/UTEA/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\kart\gui\diffviewer.py", line 458, in _createLayers self._createFeatureDiffLayers() File "C:\Users/UTEA/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\kart\gui\diffviewer.py", line 513, in _createFeatureDiffLayers self._createVertexDiffLayer(geoms) File "C:\Users/UTEA/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\kart\gui\diffviewer.py", line 557, in _createVertexDiffLayer x, y = coord.strip().split(" ") ValueError: too many values to unpack (expected 2)

    I work with QGIS 3.22.10 and Kart 0.11.3

    Thank you!

    bug 
    opened by bismarksr17 3
  • Can't load datasets from PostGIS working copy

    Can't load datasets from PostGIS working copy

    Describe the bug I have imported datasets into my repository (a localhost postgis working copy), using both the command line and the plugin, but I can't load it into QGIS using the Add to QGIS project option.

    2022-05-04T01:44:23 WARNING Traceback (most recent call last): File "C:\Users/testing/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\kart\gui\dockwidget.py", line 158, in wrapper f(*args) File "C:\Users/testing/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\kart\gui\dockwidget.py", line 734, in addToProject layer = self.repo.workingCopyLayer(self.name) File "C:\Users/testing/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\kart\kartapi.py", line 738, in workingCopyLayer uri.setConnection(host, port, database) TypeError: QgsDataSourceUri.setConnection(): arguments did not match any overloaded call: overload 1: not enough arguments overload 2: not enough arguments

    I am using a Windows 10 virtual machine, with QGIS 3.22.6 and PostgreSQL 13.6 Postgis 3.1

    I am able to load the layers manually, though.

    The same type of error appears when I try to show changes on the working copy dataset. I am able to see the attributes changes, but the geometries changes appear empty and a similar error is shown.

    Version info (this is important!):

    • Operating System (e.g. Windows 10, macOS): Windows 10

    Kart Plugin version 1.0.2 QGIS version 3.22.6-Białowieża Operating system Windows 10 10.0.19044 Kart version Kart v0.11.1, Copyright (c) Kart Contributors » GDAL v3.3.2; PROJ v8.1.1 » PyGit2 v1.9.0; Libgit2 v1.4.2; Git v2.34.0.windows.1.13.g93318cbc8d » SQLAlchemy v1.4.29; pysqlite3 v2.6.0/v3.31.1; SpatiaLite v5.0.0; Libpq v11.0.9 » SpatialIndex v1.9.3

    Paste the contents from "Plugins...Kart...About Kart" into here
    
    bug 
    opened by SrNetoChan 3
  • Plugin doesn't load

    Plugin doesn't load

    Describe the bug Plugin doesn't load.

    To Reproduce Steps to reproduce the behavior:

    1. Open Plugin Manager
    2. Find Kart plugin and attempt to install
    3. Get error: Couldn't load plugin 'kart' due to an error when calling its classFactory() method, ModuleNotFoundError: No module named 'mock' (full error below)
    4. Install from zip instead
    5. Close & re-open QGIS
    6. On QGIS start, same error

    Expected behavior I expected the plugin to install & open without error.

    Version info (this is important!):

    • Operating System (e.g. Windows 10, macOS): Ubuntu 20.04
    • QGIS, Kart & Plugin details:
      • Kart v0.10.7
      • QGIS version: 3.22.1

    Additional context Full error message:

    Couldn't load plugin 'kart' due to an error when calling its classFactory() method 
    
    ModuleNotFoundError: No module named 'mock' 
    Traceback (most recent call last):
      File "/usr/lib/python3/dist-packages/qgis/utils.py", line 423, in _startPlugin
        plugins[packageName] = package.classFactory(iface)
      File "/home/john/.local/share/QGIS/QGIS3/profiles/default/python/plugins/kart/__init__.py", line 2, in classFactory
        from kart.plugin import KartPlugin
      File "/usr/lib/python3/dist-packages/qgis/utils.py", line 888, in _import
        mod = _builtin_import(name, globals, locals, fromlist, level)
      File "/home/john/.local/share/QGIS/QGIS3/profiles/default/python/plugins/kart/plugin.py", line 11, in 
        from kart.gui.dockwidget import KartDockWidget
      File "/usr/lib/python3/dist-packages/qgis/utils.py", line 888, in _import
        mod = _builtin_import(name, globals, locals, fromlist, level)
      File "/home/john/.local/share/QGIS/QGIS3/profiles/default/python/plugins/kart/gui/dockwidget.py", line 27, in 
        from kart.kartapi import (
      File "/usr/lib/python3/dist-packages/qgis/utils.py", line 888, in _import
        mod = _builtin_import(name, globals, locals, fromlist, level)
      File "/home/john/.local/share/QGIS/QGIS3/profiles/default/python/plugins/kart/kartapi.py", line 31, in 
        from kart.gui.installationwarningdialog import InstallationWarningDialog
      File "/usr/lib/python3/dist-packages/qgis/utils.py", line 888, in _import
        mod = _builtin_import(name, globals, locals, fromlist, level)
      File "/home/john/.local/share/QGIS/QGIS3/profiles/default/python/plugins/kart/gui/installationwarningdialog.py", line 13, in 
        from kart.gui.settingsdialog import SettingsDialog
      File "/usr/lib/python3/dist-packages/qgis/utils.py", line 888, in _import
        mod = _builtin_import(name, globals, locals, fromlist, level)
      File "/home/john/.local/share/QGIS/QGIS3/profiles/default/python/plugins/kart/gui/settingsdialog.py", line 9, in 
        from kart.utils import setting, setSetting, KARTPATH, AUTOCOMMIT, DIFFSTYLES
      File "/usr/lib/python3/dist-packages/qgis/utils.py", line 888, in _import
        mod = _builtin_import(name, globals, locals, fromlist, level)
      File "/home/john/.local/share/QGIS/QGIS3/profiles/default/python/plugins/kart/utils.py", line 7, in 
        from qgis.testing.mocked import get_iface
      File "/usr/lib/python3/dist-packages/qgis/utils.py", line 888, in _import
        mod = _builtin_import(name, globals, locals, fromlist, level)
      File "/usr/lib/python3/dist-packages/qgis/testing/mocked.py", line 26, in 
        import mock
      File "/usr/lib/python3/dist-packages/qgis/utils.py", line 888, in _import
        mod = _builtin_import(name, globals, locals, fromlist, level)
    ModuleNotFoundError: No module named 'mock'
    
    
    Python version: 3.8.10 (default, Nov 26 2021, 20:14:08) [GCC 9.3.0] 
    QGIS version: 3.22.1-Białowieża Białowieża, 663dcf8fb9 
    
    Python Path:
    /usr/share/python-wheels/chardet-3.0.4-py2.py3-none-any.whl
    /usr/share/python-wheels/requests-2.22.0-py2.py3-none-any.whl
    /usr/share/python-wheels/colorama-0.4.3-py2.py3-none-any.whl
    /usr/share/python-wheels/html5lib-1.0.1-py2.py3-none-any.whl
    /usr/share/python-wheels/toml-0.10.0-py2.py3-none-any.whl
    /usr/share/python-wheels/lockfile-0.12.2-py2.py3-none-any.whl
    /usr/share/python-wheels/setuptools-44.0.0-py2.py3-none-any.whl
    /usr/share/python-wheels/progress-1.5-py2.py3-none-any.whl
    /usr/share/python-wheels/packaging-20.3-py2.py3-none-any.whl
    /usr/share/python-wheels/retrying-1.3.3-py2.py3-none-any.whl
    /usr/share/python-wheels/idna-2.8-py2.py3-none-any.whl
    /usr/share/python-wheels/wheel-0.34.2-py2.py3-none-any.whl
    /usr/share/python-wheels/six-1.14.0-py2.py3-none-any.whl
    /usr/share/python-wheels/webencodings-0.5.1-py2.py3-none-any.whl
    /usr/share/python-wheels/distlib-0.3.0-py2.py3-none-any.whl
    /usr/share/python-wheels/msgpack-0.6.2-py2.py3-none-any.whl
    /usr/share/python-wheels/ipaddr-2.2.0-py2.py3-none-any.whl
    /usr/share/python-wheels/pyparsing-2.4.6-py2.py3-none-any.whl
    /usr/share/python-wheels/distro-1.4.0-py2.py3-none-any.whl
    /usr/share/python-wheels/pip-20.0.2-py2.py3-none-any.whl
    /usr/share/python-wheels/contextlib2-0.6.0-py2.py3-none-any.whl
    /usr/share/python-wheels/CacheControl-0.12.6-py2.py3-none-any.whl
    /usr/share/python-wheels/urllib3-1.25.8-py2.py3-none-any.whl
    /usr/share/python-wheels/certifi-2019.11.28-py2.py3-none-any.whl
    /usr/share/python-wheels/pep517-0.8.2-py2.py3-none-any.whl
    /usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl
    /usr/share/python-wheels/appdirs-1.4.3-py2.py3-none-any.whl
    /usr/share/qgis/python
    /home/john/.local/share/QGIS/QGIS3/profiles/default/python
    /home/john/.local/share/QGIS/QGIS3/profiles/default/python/plugins
    /usr/share/qgis/python/plugins
    /usr/lib/python38.zip
    /usr/lib/python3.8
    /usr/lib/python3.8/lib-dynload
    /usr/local/lib/python3.8/dist-packages
    /usr/lib/python3/dist-packages
    /home/john/.local/share/QGIS/QGIS3/profiles/default/python
    
    bug 
    opened by johnwbryant 3
  • Make it easier to create branches

    Make it easier to create branches

    Is your feature request related to a problem? Please describe.

    The only place you can create a branch is from within the Repo Log window by right clicking a particular commit to branch from. This is a bit obscure and I would expect to be able to create a branch from the right click menu of the Repo itself, and possibly from within the "Switch Branch" dialog.

    Usually you want to create a branch from the current state of the Repository, so going into the Log shouldn't really be necessary for most use cases.

    Describe the solution you'd like

    Add a "create branch" option to the right click context menu for a Repository (or similar option).

    enhancement 
    opened by hamishcampbell 0
  • History filtering local/UTC time

    History filtering local/UTC time

    It seems that Kart uses UTC for storing all operations (good), however when using history in the plugin depending on the time of the day it will set filter to local machine time which would hide the graph nodes. My timezone is UTC-6 I added some data and I thought it was empty but when expanding the search for the 8th the graph is there, do not know an easy way to handle this but for new people it may be confusing, and I don't know if this is mentioned in the documentation

    image

    image

    enhancement 
    opened by antoniolocandro 1
  • Handling duplicate name/conflict

    Handling duplicate name/conflict

    if the kart repository already includes a layer that happens to have the same name as one you are importing the plugin shows only there is conflict but no way to handle it, ideally it would allow user to specify a non-conflicting name if wanted or cancel the operations

    Steps:

    1. Add a layer to the dataset from any source for example 'airportheliport'
    2. Load a GPKG that also has a source 'airportheliport'

    image

    bug 
    opened by antoniolocandro 1
  • 'show feature history' will always show features from a layer even if it isn't currently visible

    'show feature history' will always show features from a layer even if it isn't currently visible

    Describe the bug If there are more than one layers from Kart repos on a map and "Activate 'show feature history' map tool" is selected on a layer which is not the top most feature history from that layer will always be used even if features from other layers are 'in front' of that chosen layer.

    Expected behavior Not sure as the choice was explicit but the end result is at best non obvious, particularly if the layers are from the same 'Author'. Potentially it should highlight the selected feature as per 'select features' QGIS command.

    Screenshots

    Screenshot 2022-11-07 at 6 16 10 pm Screenshot 2022-11-07 at 6 20 25 pm Screenshot 2022-11-07 at 6 23 14 pm

    Version info (this is important!):

    • Operating System (e.g. Windows 10, macOS): MacOS
    • QGIS, Kart & Plugin details: QGIS 3.28 Kart plugin 1.0.4
    Kart Plugin version
    1.0.4
    QGIS version
    3.28.0-Firenze
    Operating system
    macOS 13.0 x86_64 i386 64bit
    Kart version
    Kart v0.11.5, Copyright (c) Kart Contributors
    » GDAL v3.4.0; PROJ v6.3.0
    » PyGit2 v1.9.0; Libgit2 v1.4.2; Git v2.33.GIT
    » SQLAlchemy v1.4.40; pysqlite3 v2.6.0/v3.31.1; SpatiaLite v5.0.1; Libpq v14.0.5
    » SpatialIndex v1.9.3
    
    bug 
    opened by pfw 2
  • If GPKG has more than one layer it complains no table is specified

    If GPKG has more than one layer it complains no table is specified

    Import a GPKG with more than one layer the following popup shows but there is no option to select which table, so it seems only single layer GPKG are supported

    image

    Ideally when adding a GPKG with multiple tables a user would be able to select all the tables that they want imported to keep track off

    As a sample the world_map.gpkg shipped with QGIS may be used

    bug 
    opened by antoniolocandro 0
Releases(v1.0.3)
  • v1.0.3-rc.1(Aug 25, 2022)

    What's Changed

    • Usage was always showing for ‘install’ and ‘package’ by @pfw in https://github.com/koordinates/kart-qgis-plugin/pull/61
    • Ensure user name and email aren’t blank strings on commit by @pfw in https://github.com/koordinates/kart-qgis-plugin/pull/60
    • parse PostgreSQL username and password from working copy location #63 by @SrNetoChan in https://github.com/koordinates/kart-qgis-plugin/pull/64
    • Maintain the same tab in diffviewer as features are selected by @pfw in https://github.com/koordinates/kart-qgis-plugin/pull/67
    • Support old and new style feature id strings by @pfw in https://github.com/koordinates/kart-qgis-plugin/pull/69
    • Renaming changes to diff for consistency by @benpearman in https://github.com/koordinates/kart-qgis-plugin/pull/71
    • Require Kart 0.11. Fix warning from --json-style option by @craigds in https://github.com/koordinates/kart-qgis-plugin/pull/73
    • Only x and y are used in the diff viewer by @pfw in https://github.com/koordinates/kart-qgis-plugin/pull/68
    • Update to require latest release of 0.11.5 by @pfw in https://github.com/koordinates/kart-qgis-plugin/pull/75

    New Contributors

    • @pfw made their first contribution in https://github.com/koordinates/kart-qgis-plugin/pull/61
    • @SrNetoChan made their first contribution in https://github.com/koordinates/kart-qgis-plugin/pull/64
    • @benpearman made their first contribution in https://github.com/koordinates/kart-qgis-plugin/pull/71
    • @craigds made their first contribution in https://github.com/koordinates/kart-qgis-plugin/pull/73

    Full Changelog: https://github.com/koordinates/kart-qgis-plugin/compare/v1.0.2...v1.0.3-rc.1

    Source code(tar.gz)
    Source code(zip)
    kart-v1.0.3-rc.1.zip(106.08 KB)
  • v1.0.2(Feb 21, 2022)

    Full Changelog: https://github.com/koordinates/kart-qgis-plugin/compare/v1.0.1...v1.0.2

    • The plugin now helps you install the latest Kart version on Windows & macOS
    • You can now import Kart datasets from a PostGIS database
    • Fix for Kart version detection/compatibility (#59)
    • Fix for repository creation in an empty folder (#53)
    • Fix for an error during push (#54)
    • Fix for an error when you remove a dataset from a repository (#58)
    Source code(tar.gz)
    Source code(zip)
    kart-v1.0.2.zip(105.22 KB)
  • v1.0.1(Dec 21, 2021)

  • v1.0.0(Dec 16, 2021)

    This is the initial release of the Kart plugin for QGIS.

    We've exposed much of the basic Kart functionality inside QGIS to allow working with Kart repositories — cloning, creating, making changes and reviewing commit histories. We will continue to extend the functionality, and we'd love to hear your ideas — either create an issue for a specific improvement or start a discussion with any wider ideas you have.

    You can install the plugin via the plugin zip archive below, or search for "Kart" in the QGIS plugins repository.

    Source code(tar.gz)
    Source code(zip)
    kart-v1.0.0.zip(100.32 KB)
Owner
Koordinates
A geospatial data management platform inspired by cracking GIS data out of vendor silos. You can host, manage, share, publish, access, and build apps.
Koordinates
Automatic and platform-independent unpacker for Windows binaries based on emulation

_ _ __ _ __ _ | | | | / / (_) \ \ | | | | | |_ __ | | _ | | _ __ __ _ ___| | _____ _ __

514 Dec 21, 2022
Anki Addon idea by gbrl.sc to see previous ratings of a card in the reviewer

Card History At A Glance Stop having to press card browser and ctrl+i for every card and then WINCING to see it's history of reviews FEATURES Visualiz

Jerry Zhou 11 Dec 19, 2022
Sodium is a general purpose programming language which is instruction-oriented

Sodium is a general purpose programming language which is instruction-oriented (a new programming concept that we are developing and devising)

Satin Wuker 22 Jan 11, 2022
Pokemon catch events project to demonstrate data pipeline on AWS

Pokemon Catches Data Pipeline This is a sample project to practice end-to-end data project; Terraform is used to deploy infrastructure; Kafka is the t

Vitor Carra 4 Sep 03, 2021
Team Curie is a group of people working together to achieve a common aim

Team Curie is a group of people working together to achieve a common aim. We are enthusiasts!.... We are setting the pace!.... We offer encouragement and motivation....And we believe TeamWork makes t

4 Aug 07, 2021
The Doodle Master seeks to turn your UI mockups into real code.

Doodle Master The Doodle Master seeks to turn your UI mockups into real code. Currently this repository just serves to demonstrate a Proof Of Concept

Karanbir Chahal 2.4k Dec 09, 2022
J MBF - Assalamualaikum Mamang...

★ VISITOR ★ ★ INFORMATION ★ Script Ini DiBuat Oleh YayanXD Script Ini Akan DiPerjual Belikan Tanggal 9 Januari 2022 Jika Mau Beli Script Silahkan Hub

Risky [ Zero Tow ] 5 Apr 08, 2022
Solves Maths24 problems for you!

maths24-solver Solves Maths24 problems for you! Enjoy this open scource project! You can edit modify and share! My wishes is for you to use this proje

6 Nov 07, 2021
App to decide weekly winners in H2H 1 Win (9 Cat)

Fantasy Weekly Winner for H2H 1 Win (9 Cat) Yahoo Fantasy API Read

Sai Atmakuri 1 Dec 31, 2021
A (hopefully) considerably copious collection of classical cipher crackers

ClassicalCipherCracker A (hopefully) considerably copious collection of classical cipher crackers Written in Python3 (and run with PyPy) TODOs Write a

Stanley Zhong 2 Feb 22, 2022
Multifunctional Analysis of Regions through Input-Output

MARIO Multifunctional Analysis of Regions through Input-Output. (Documents) What is it MARIO is a python package for handling input-output tables and

14 Dec 25, 2022
Movie recommend community

README 0. 초록 1) 목적 사용자의 Needs를 기반으로 영화를 추천해주는 커뮤니티 서비스 구현 2) p!ck 서비스란? "pick your taste!" 취향대로 영화 플레이리스트(이하 서비스 내에서의 명칭인 '바스켓'이라 함)를 만들고, 비슷한 취향을 가진

2 Dec 08, 2021
Run Python code right in your Telegram messages

Run Python code right in your Telegram messages Made with Telethon library, TGPy is a tool for evaluating expressions and Telegram API scripts. Instal

29 Nov 22, 2022
Script para generar automatización de registro de formularios IEEH

Formularios_IEEH Script para generar automatización de registro de formularios IEEH Corresponde a un conjunto de script en python que permiten la auto

vhevia11 1 Jan 06, 2022
A example project's description is a high-level overview of why you’re doing a project.

A example project's description is a high-level overview of why you’re doing a project.

Nikita Matyukhin 12 Mar 23, 2022
My custom Fedora ostree build with sway/wayland.

Ramblurr's Sway Desktop This is an rpm-ostree based minimal Fedora developer desktop with the sway window manager and podman/toolbox for doing develop

Casey Link 1 Nov 28, 2021
Python Common things by Problem Fighter Library, (Exception, Debug Log, etc.)

In the name of God, the Most Gracious, the Most Merciful. PF-PY-Common Documentation Install and update using pip: pip install -U xxxx Please find the

Problem Fighter 3 Jan 15, 2022
TMTC Commander Core

This commander application was first developed by KSat for the SOURCE project to test the on-board software but has evolved into a more generic tool for satellite developers to perform TMTC (Telemetr

robamu 8 Dec 14, 2022
This repo is related to Google Coding Challenge, given to Bright Network Internship Experience 2021.

BrightNetworkUK-GCC-2021 This repo is related to Google Coding Challenge, given to Bright Network Internship Experience 2021. Language used here is py

Dareer Ahmad Mufti 28 May 23, 2022
Snack Rice - A Rice University servery finder, customized for your needs!

Snack Rice - A Rice University servery finder, customized for your needs!

Aidan Gerber 3 Sep 25, 2022