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
A deployer and package manager for OceanBase open-source software.

OceanBase Deploy OceanBase Deploy (简称 OBD)是 OceanBase 开源软件的安装部署工具。OBD 同时也是包管理器,可以用来管理 OceanBase 所有的开源软件。本文介绍如何安装 OBD、使用 OBD 和 OBD 的命令。 安装 OBD 您可以使用以下方

OceanBase 59 Dec 27, 2022
【教程】莉沫酱教你学继承!?

【教程】莉沫酱教你学继承! 众所周知,类的继承就是说当一个类死亡的时候,它的子类会获得它拥有的资源。 根据类的继承法不同,各个子类能获得的资源也不同。 继承法的类型 在解释继承法之前,我们先定义三个类,一个父类A,和它的子类B、C。 它们都拥有x、y、z三个属性。

黄巍 17 Dec 05, 2022
Old versions of Deadcord that are problematic or used as reference.

⚠️ Unmaintained and broken. We have decided to release the old version of Deadcord before our v1.0 rewrite. (which will be equiped with much more feat

Galaxzy 1 Feb 10, 2022
Subnet calculator script using python

subnetCalculator Subnet calculator script using python3 Interactive Version Define the subnet variable interactively Use: subnetDict = subnetCalculato

1 Feb 15, 2022
Meera 2 May 12, 2022
Opendrop - An open Apple AirDrop implementation written in Python

OpenDrop: an Open Source AirDrop Implementation OpenDrop is a command-line tool that allows sharing files between devices directly over Wi-Fi. Its uni

Secure Mobile Networking Lab 7.5k Jan 03, 2023
This is a Fava extension to display a grouped portfolio view in Fava for a set of Beancount accounts.

Fava Portfolio Summary This is a Fava extension to display a grouped portfolio view in Fava for a set of Beancount accounts. It can also calculate MWR

18 Dec 26, 2022
Easytile blender - Simple Blender 2.83 addon for tiling meshes easily

easytile_blender Dead simple, barebones Blender (2.83) addon for placing meshes as tiles. Installation In Blender, go to Edit Preferences Add-ons

Sam Gibson 6 Jul 19, 2022
An almost fully customizable language made in python!

Whython is a project language, the idea of it is that anyone can download and edit the language to make it suitable to what they want.

Julian 47 Nov 05, 2022
It is a Blender Tool which can convert the Object Data Attributes in face corner to the UVs or Vertex Color.

Blender_ObjectDataAttributesConvertTool It is a Blender Tool which can convert the Object Data Attributes in face corner to the UVs or Vertex Color. D

Takeshi Chō 2 Jan 08, 2022
python based clash stars made by grade 7 and 5

clash_stars python based clash stars made by grade 7 and 5 How to play: PLAYER ONE (LEFT PLAYER) Move: W,A,S,D Shoot: SHIFT PLAYER TWO (RIGHT PLAYER)

5 Oct 22, 2021
The program calculates the BMI of people

Programmieren Einleitung: Das Programm berechnet den BMI von Menschen. Es ist sehr einfach zu handhaben, so können alle Menschen ihren BMI berechnen.

2 Dec 16, 2021
Example platform plugin that fixes fentry calls in Binja

Example Binja Platform Plugin This is an example Binja platform plugin which fixes up linux kernel module calls to __fentry__. __fentry__ is the linux

_yrp 2 Oct 07, 2021
Notes on the Deep Learning book from Ian Goodfellow, Yoshua Bengio and Aaron Courville (2016)

The Deep Learning Book - Goodfellow, I., Bengio, Y., and Courville, A. (2016) This content is part of a series following the chapter 2 on linear algeb

hadrienj 1.7k Jan 07, 2023
Imports an object based on a string import_string('package.module:function_name')() - Based on werkzeug.utils

DEPRECATED don't use it. Please do: import importlib foopath = 'src.apis.foo.Foo' module_name = '.'.join(foopath.split('.')[:-1]) # to get src.apis.f

Bruno Rocha Archived Projects 11 Nov 12, 2022
This is the Code Institute student template for Gitpod.

Welcome AnaG0307, This is the Code Institute student template for Gitpod. We have preinstalled all of the tools you need to get started. It's perfectl

0 Feb 02, 2022
A wrapper for the apt package manager.

A wrapper for the apt package manager.

531 Jan 04, 2023
Practice10 - Operasi String With Python

Operasi String MY SOSIAL MEDIA : Apa itu Python String ? String adalah urutan si

Maulana Reza Badrudin 1 Jan 05, 2022
El_Binario - A converter for Binary, Decimal, Hexadecimal and Octal numbers

El_Binario El_Binario es un conversor de números Binarios, Decimales, Hexadecima

2 Jan 28, 2022
This speeds up PyCharm's package index processes and avoids CPU & memory overloading

This speeds up PyCharm's package index processes and avoids CPU & memory overloading

1 Feb 09, 2022