Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
160 commits
Select commit Hold shift + click to select a range
bf3c7c2
initial commit
lachlangrose Jun 17, 2025
ef6deba
adding pyproject.toml for ruff
lachlangrose Jun 17, 2025
bfd0a9c
change linter to ruff
lachlangrose Jun 17, 2025
70aafd5
adding release please action
lachlangrose Jun 17, 2025
a330933
linting
lachlangrose Jun 17, 2025
720bbf5
Bump dawidd6/action-download-artifact from 9 to 11
dependabot[bot] Jun 17, 2025
0122b59
ci: fix formatting of release-please
lachlangrose Jun 17, 2025
1a5e7b7
Merge pull request #2 from Loop3D/main
lachlangrose Jun 17, 2025
90ebef3
Update linter.yml
lachlangrose Jun 17, 2025
ec42a79
Update release-please.yml
lachlangrose Jun 17, 2025
d85b581
fixing syntax
lachlangrose Jun 17, 2025
8ad1c4e
adding release please files
lachlangrose Jun 17, 2025
387086f
Merge pull request #1 from Loop3D/dependabot/github_actions/dawidd6/a…
lachlangrose Jun 17, 2025
6ae8d3f
fix: import typo
lachlangrose Jun 17, 2025
7bf312d
Merge branch 'main' of github.com:Loop3D/plugin_map2loop
lachlangrose Jun 17, 2025
c0bb5f2
template for basal contacts processing tool
lachlangrose Jun 17, 2025
f9878b0
Update linter.yml
lachlangrose Jun 17, 2025
b51f758
disable qgis testing for now
lachlangrose Jun 17, 2025
b3fc47d
Update release-please.yml
lachlangrose Jun 17, 2025
56a20ae
Update release-please.yml
lachlangrose Jun 17, 2025
043ea5c
Merge remote-tracking branch 'origin/processing/basal_contacts' into …
rabii-chaarani Jun 20, 2025
773ef48
feature: Implement StratigraphySorterAlgorithm
rabii-chaarani Jun 23, 2025
e7bb9f6
feature: functions to convert layers to GeoDataFrame and DataFrame
rabii-chaarani Aug 18, 2025
95ba89b
feature: add geodataframe to qgsLayer conversion
rabii-chaarani Aug 18, 2025
f744d83
refactor: update GeoDataFrameToQgsLayer
rabii-chaarani Aug 18, 2025
ea67c2e
fix: GeoDataFrameToQgsLayer to FeatureSink
rabii-chaarani Aug 18, 2025
f11d713
refactor: clean up imports in vectorLayerWrapper.py
rabii-chaarani Aug 18, 2025
d718b96
feature: add basal contacts extraction algorithm
rabii-chaarani Aug 18, 2025
0c7e768
refactor: add imports in sorter.py
rabii-chaarani Aug 18, 2025
aeed68b
feature: implement sampler algorithm
rabii-chaarani Aug 25, 2025
78f1511
feature: add thickness calculator algorithms
rabii-chaarani Aug 25, 2025
4069406
fix: correct return value
rabii-chaarani Aug 25, 2025
f67be33
feature: add support SamplerSpacing
rabii-chaarani Aug 25, 2025
3c46553
fix: update sampler type strings for consistency
rabii-chaarani Aug 25, 2025
7e76267
fix: convert dataframe to qgis layer
rabii-chaarani Aug 26, 2025
c42a4dd
feature: add dataframe to point sink conversion
rabii-chaarani Aug 27, 2025
54a0bc9
fix: add input parameters
rabii-chaarani Aug 27, 2025
df54c1b
refactor: rename to dataframeToQgsLayer
rabii-chaarani Aug 27, 2025
703a89c
refactor: update thickness calculator parameters and processing logic
rabii-chaarani Aug 27, 2025
8bb0c99
update BasalContactsAlgorithm
noellehmcheng Aug 27, 2025
359e45a
Merge branch 'processing/processing_tools' of https://github.com/Loop…
noellehmcheng Aug 27, 2025
fcdf4a2
fix import in vectorLayerWrapper.py
noellehmcheng Aug 28, 2025
7aaa076
rename unused loop idx in vectorLayerWrapper
noellehmcheng Aug 28, 2025
d0d9e77
rename directory to m2l to avoid import conflicts
noellehmcheng Aug 29, 2025
34f3d25
fix linter.yml
noellehmcheng Aug 29, 2025
76df4b2
Merge pull request #12 from Loop3D/processing/processing_tools_basal-…
rabii-chaarani Sep 1, 2025
52ee4ad
Merge branch 'processing/processing_tools' into processing-tools-rename
rabii-chaarani Sep 1, 2025
b72fbf4
fix: add QgsPoint import
rabii-chaarani Sep 1, 2025
04d3937
fix: add QgsPointXY import
rabii-chaarani Sep 1, 2025
ffe7f98
Merge branch 'processing/processing_tools' into processing-tools-rename
rabii-chaarani Sep 1, 2025
bf0ab2d
Merge pull request #14 from Loop3D/processing-tools-rename
rabii-chaarani Sep 1, 2025
d4a1d7d
fix: enforce str type
rabii-chaarani Sep 1, 2025
cf8321e
refactor: handling of string fields
rabii-chaarani Sep 1, 2025
60bd84e
fix: add missing import for wkb_loads
rabii-chaarani Sep 1, 2025
1c72667
refactor: implementation and enforce string dtype
rabii-chaarani Sep 1, 2025
3dd9aea
fix: QGIS string fields are converted to str
rabii-chaarani Sep 1, 2025
86e3f7b
fix: remove type conversion issues
rabii-chaarani Sep 1, 2025
2c37667
fix: simplify string field handling
rabii-chaarani Sep 1, 2025
510d82f
fix: ensure string fields are explicitly converted
rabii-chaarani Sep 1, 2025
c028237
sampler
noellehmcheng Sep 1, 2025
cb1ac9d
Merge branch 'processing-tools-rename' into processing/processing_too…
noellehmcheng Sep 1, 2025
bc99ec9
fix: enhance contact rextraction tool
rabii-chaarani Sep 1, 2025
af2056d
fix: update algorithm imports and registration in provider
rabii-chaarani Sep 1, 2025
546724b
fix: correct parameter types
rabii-chaarani Sep 1, 2025
671fed2
fix: standardize algorithm group ID
rabii-chaarani Sep 1, 2025
8cc49af
fix: add user-defined sorting option
rabii-chaarani Sep 3, 2025
ffeb1bc
input files
noellehmcheng Sep 3, 2025
2f070c9
Merge branch 'processing/processing_tools' into processing/processing…
noellehmcheng Sep 3, 2025
7b11408
fix: change stratigraphic column QgsProcessingParameterFeatureSink de…
noellehmcheng Sep 3, 2025
27d2ee5
feat add formation column mapping and validation for strat column
noellehmcheng Sep 4, 2025
03a6ffc
delete input files
noellehmcheng Sep 4, 2025
e23f023
fix sorter
noellehmcheng Sep 4, 2025
ccd1c93
fix data type of spacing and decimator in sampler
noellehmcheng Sep 4, 2025
26233f0
rename unused loop idx in sampler
noellehmcheng Sep 4, 2025
1709581
add dtm to input
noellehmcheng Sep 6, 2025
2488fab
add validation in sampler
noellehmcheng Sep 6, 2025
38a552a
spacing decimator test
noellehmcheng Sep 8, 2025
9341a8e
refactor sampler tests for cicd compatibility
noellehmcheng Sep 8, 2025
096a13e
update tester.yml workflow for all branches
noellehmcheng Sep 8, 2025
5fa83ad
change image
noellehmcheng Sep 8, 2025
a6c14b2
update testing.txt
noellehmcheng Sep 8, 2025
378f9ae
install map2loop in tester.yml
noellehmcheng Sep 8, 2025
cf91e1f
Merge branch 'processing/processing_tools_sampler_test' into processi…
noellehmcheng Sep 8, 2025
06fc7ec
tester.yml
noellehmcheng Sep 8, 2025
a2b96f6
input file
noellehmcheng Sep 8, 2025
79b28ad
test_basal_contacts
noellehmcheng Sep 8, 2025
82532dc
fix import in test_basal_contacts.py
noellehmcheng Sep 8, 2025
02f9cb9
fix strati_column in test_basal_contacts
noellehmcheng Sep 8, 2025
5cab785
Merge branch 'processing/processing_tools' into processing/processing…
noellehmcheng Sep 10, 2025
91bcc09
add structure and dtm parameters for SorterObservationProjections and…
noellehmcheng Sep 10, 2025
f527e91
Merge branch 'processing/processing_tools' into processing/processing…
noellehmcheng Sep 12, 2025
9273c17
add contact as output layer
noellehmcheng Sep 12, 2025
3576bd7
change contacts_df and relationships_df
noellehmcheng Sep 12, 2025
70fbefc
merge processing/processing_tools_sampler
noellehmcheng Sep 12, 2025
06d4ebc
merge with processing_tools_sampler_test
noellehmcheng Sep 12, 2025
ebb88f0
merge with processing_tools_basal-contacts-v2
noellehmcheng Sep 12, 2025
a471265
Merge branch 'processing/processing_tools_basal-contacts_test' into n…
noellehmcheng Sep 12, 2025
fb873f3
add contact layer in sorter
noellehmcheng Sep 12, 2025
a9092f4
handle dip, dipdir, orientation type for structure in sorter.py
noellehmcheng Sep 15, 2025
cfd09ec
fix syntax in sampler
noellehmcheng Sep 16, 2025
1e28eb7
update basal contact test
noellehmcheng Sep 16, 2025
856cb42
update basal contact test to include contacts layer
noellehmcheng Sep 16, 2025
73b6e22
feat: thickness calculator tool
rabii-chaarani Sep 17, 2025
b483f00
feat: raster and dataframe handling
rabii-chaarani Sep 17, 2025
9ee2ac7
fix clean up process for tests
noellehmcheng Sep 17, 2025
beef36d
fix remove duplicated units_df in sorter
noellehmcheng Sep 18, 2025
81f2670
fix build_input_frames in sorter
noellehmcheng Sep 18, 2025
a3a7082
add contacts and basal contacts data for testing
noellehmcheng Sep 19, 2025
a3fe1de
add validation in sorter
noellehmcheng Sep 19, 2025
170c1b8
handle user defined strati column and add validation
noellehmcheng Sep 19, 2025
569f39b
add json file output for sorter
noellehmcheng Sep 19, 2025
9435579
refactor: remove user defined column
rabii-chaarani Sep 22, 2025
a660002
feat: add qvariantToFloat function
rabii-chaarani Sep 22, 2025
b74bc79
feat: Processing/processing tools sampler (#19)
noellehmcheng Sep 22, 2025
26399b2
Processing/processing tools basal contacts test (#21)
noellehmcheng Sep 22, 2025
1235856
Merge branch 'noelle/sorter' into processing/processing_tools
rabii-chaarani Sep 22, 2025
72f5949
fix: fix syntac error
rabii-chaarani Sep 22, 2025
30c7e20
fix: remove redundant parameters in SamplerAlgorithm
rabii-chaarani Sep 22, 2025
5dbcfca
fix: remove redundant imports
rabii-chaarani Sep 22, 2025
09091a4
Merge branch 'processing/processing_tools' into processing/thickness_…
rabii-chaarani Sep 22, 2025
90663cf
fix: remove unused QgsSettings
rabii-chaarani Sep 22, 2025
4ff7546
fix: updated tearDownClass
rabii-chaarani Sep 22, 2025
14db8d0
fix: add pass statement
rabii-chaarani Sep 22, 2025
ec993bb
update sampler tests
noellehmcheng Sep 22, 2025
83c1703
update sampler
noellehmcheng Sep 22, 2025
747abef
Merge branch 'processing/thickness_calculator' of https://github.com/…
noellehmcheng Sep 22, 2025
5205cf5
update strati column and bounding box
noellehmcheng Sep 23, 2025
a259cae
fix sample contacts data type
noellehmcheng Sep 23, 2025
00d4bb8
add orientation type for structure data
noellehmcheng Sep 23, 2025
d2d2925
Processing/thickness calculator (#23)
rabii-chaarani Sep 24, 2025
17cd45b
feat: add UserDefinedStratigraphyAlgorithm to provider
rabii-chaarani Sep 24, 2025
4395880
feat: import UserDefinedStratigraphyAlgorithm
rabii-chaarani Sep 24, 2025
2d4eff6
refactor: update BasalContactsAlgorithm
rabii-chaarani Sep 24, 2025
09034f1
refactor: update SamplerAlgorithm
rabii-chaarani Sep 24, 2025
932b95c
refactor: update sorter
rabii-chaarani Sep 24, 2025
476eadb
refactor: update ThicknessCalculatorAlgorithm
rabii-chaarani Sep 24, 2025
9e890d5
feat: implement UserDefinedStratigraphyAlgorithm
rabii-chaarani Sep 24, 2025
3b61ed6
refactor: remove redundant algo
rabii-chaarani Sep 24, 2025
248040d
fix: use correct strati table
rabii-chaarani Sep 24, 2025
9cacb9b
fix: correct variable assignment
rabii-chaarani Sep 24, 2025
f59f4f8
fix units in ThicknessCalculatorAlgorithm
noellehmcheng Sep 24, 2025
b1bb23f
update extract_basal_contacts and test_basal_contacts
noellehmcheng Sep 24, 2025
ec389b3
Revert "update extract_basal_contacts and test_basal_contacts"
noellehmcheng Sep 24, 2025
e6fa63c
fix test_basal_contacts
noellehmcheng Sep 24, 2025
d4d6d83
fix input file name in test_basal_contacts
noellehmcheng Sep 24, 2025
2cd4c53
feat dynamic field handling in Sampler
noellehmcheng Oct 6, 2025
97c5274
fix strat column data in ThicknessCalculator
noellehmcheng Oct 6, 2025
fe429df
merge with processing/processing_tools
noellehmcheng Oct 7, 2025
53917e3
add user defined boundingbox in ThicknessCalculatorAlgorithm
noellehmcheng Oct 15, 2025
c94b40c
replace QMetaType with QVariant in sampler
noellehmcheng Oct 15, 2025
b32baec
change orientation type variable name in ThicknessCalculatorAlgorithm
noellehmcheng Oct 15, 2025
291de7a
Merge branch 'processing/processing_tools' into noelle/thickness_calc…
noellehmcheng Oct 16, 2025
d5e5862
Merge pull request #25 from Loop3D/noelle/thickness_calculator
noellehmcheng Oct 16, 2025
b34340c
Initial commit
lachlangrose Oct 16, 2025
57dec36
Merge remote-tracking branch 'plugin_loopstructural/main'
lachlangrose Oct 16, 2025
d866175
rename for folder for merge with loopstructural plugin
lachlangrose Oct 16, 2025
4ada6b3
Merge remote-tracking branch 'plugin_map2loop/ls_merge'
lachlangrose Oct 16, 2025
83c4dfa
add agent.md file with initial content. (#53)
lachlangrose Oct 22, 2025
6ae3bc1
Fix: revert building qgs Table
rabii-chaarani Oct 29, 2025
003d963
Refactor: remove unnecessary formation field
rabii-chaarani Oct 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ tooling:
- .pre-commit-config.yaml
- setup.cfg


UI:
- head-branch:
- ^ui
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/linter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ env:
permissions:
contents: write


jobs:
lint-py:
name: Python 🐍
Expand Down
168 changes: 168 additions & 0 deletions .github/workflows/package_and_release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
name: "📦 Package & 🚀 Release"

env:
PROJECT_FOLDER: plugin_map2loop
PYTHON_VERSION: 3.9

on:
push:
branches:
- main
paths:
- .github/workflows/package_and_release.yml
- 'docs/**/*'
- "plugin_map2loop/**/*.py"
- "plugin_map2loop/metadata.txt"
tags:
- "*"

# Allow one concurrent deployment per branch/pr
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
translation:
name: "💬 i18n compilation"
runs-on: ubuntu-latest

steps:
- name: Get source code
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}

- name: Install translation requirements
run: |
sudo apt update
sudo apt install qt5-qmake qttools5-dev-tools
python3 -m pip install -U pyqt5-tools

- name: Update translations
run: |
python3 scripts/generate_translation_profile.py
pylupdate5 -noobsolete -verbose ${{ env.PROJECT_FOLDER }}/resources/i18n/plugin_translation.pro

- name: Compile translations
run: lrelease ${{ env.PROJECT_FOLDER }}/resources/i18n/*.ts

- uses: actions/upload-artifact@v4
with:
name: translations-build
path: ${{ env.PROJECT_FOLDER }}/**/*.qm
if-no-files-found: error

# -- NO TAGS ----------------------------------------------------------------------
packaging:
name: "📦 Packaging plugin"
runs-on: ubuntu-latest
needs:
- translation

if: ${{ !startsWith(github.ref, 'refs/tags/') }}

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
cache: "pip"
cache-dependency-path: "requirements/packaging.txt"
python-version: ${{ env.PYTHON_VERSION }}

- name: Install dependencies
run: |
python -m pip install -U pip setuptools wheel
python -m pip install -U -r requirements/packaging.txt

- name: Download translations
uses: actions/download-artifact@v4
with:
name: translations-build
path: ${{ env.PROJECT_FOLDER }}

- name: Amend gitignore to include compiled translations and add it to tracked files
run: |
# include compiled translations
sed -i "s|^*.qm.*| |" .gitignore

# git add full project
git add ${{ env.PROJECT_FOLDER }}/

- name: Package the latest version
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
qgis-plugin-ci package latest \
--allow-uncommitted-changes \
--plugin-repo-url $(gh api "repos/$GITHUB_REPOSITORY/pages" --jq '.html_url')

- uses: actions/upload-artifact@v4
with:
name: ${{ env.PROJECT_FOLDER }}-latest
path: |
plugins.xml
${{ env.PROJECT_FOLDER }}.*.zip
if-no-files-found: error

# -- ONLY TAGS ----------------------------------------------------------------------
release:
name: "🚀 Release on tag"
runs-on: ubuntu-latest
permissions:
contents: write
needs:
- translation

if: startsWith(github.ref, 'refs/tags/')

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
cache: "pip"
cache-dependency-path: "requirements/packaging.txt"
python-version: ${{ env.PYTHON_VERSION }}

- name: Install project requirements
run: |
python -m pip install -U pip setuptools wheel
python -m pip install -U -r requirements/packaging.txt

- name: Download translations
uses: actions/download-artifact@v4
with:
name: translations-build
path: ${{ env.PROJECT_FOLDER }}

- name: Amend gitignore to include compiled translations and add it to tracked files
run: |
# include compiled translations
sed -i "s|^*.qm.*| |" .gitignore

# git add full project
git add ${{ env.PROJECT_FOLDER }}/

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
fail_on_unmatched_files: true
generate_release_notes: true

- name: Deploy plugin
run: >-
qgis-plugin-ci
release ${GITHUB_REF/refs\/tags\//}
--allow-uncommitted-changes
--create-plugin-repo
--github-token ${{ secrets.GITHUB_TOKEN }}
--osgeo-username ${{ secrets.OSGEO_USER }}
--osgeo-password ${{ secrets.OSGEO_PASSWORD }}
1 change: 0 additions & 1 deletion .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

on:
push:
branches:
Expand Down
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
".": "0.0.1",
"loopstructural": "0.1.11"
}
}
93 changes: 93 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# AGENTS.md

## Purpose

This document outlines the architectural and development principles for contributors to the `plugin_loopstructural` QGIS plugin. The plugin provides a thin, modular interface to the `map2loop` and `LoopStructural` libraries, enabling geological modeling workflows within QGIS.

---

## Design Philosophy

### 🔹 Thin Interface Layer
- The plugin **must not** reimplement or duplicate functionality from `map2loop` or `LoopStructural`.
- All core logic and enhancements should be contributed upstream to the respective libraries.
- The plugin should focus on **UI integration**, **data flow orchestration**, and **user interaction**.

### 🔹 Modularity
- UI components (dialogs, panels, actions) live under the `loopstructural/gui/` package and should be encapsulated in their own classes.
- Business logic and orchestration are located in `loopstructural/main/` and `loopstructural/toolbelt/` where adapters and services wrap external libraries.
- Processing algorithms and QGIS provider integration are in `loopstructural/processing/` and should be isolated from UI code.
- Avoid tight coupling between components. Use signals/slots or event-driven patterns where appropriate.

### 🔹 Object-Oriented Design
- Use classes with clear responsibilities and interfaces.
- Prefer composition over inheritance unless subclassing is semantically appropriate.
- Encapsulate interactions with external libraries in dedicated adapter or service classes (e.g., `loopstructural.main.Map2LoopService`, `loopstructural.main.LoopStructuralRunner`).

---

## Development Guidelines

### ✅ Code Quality
- All code must pass the repository's pre-commit checks (formatting, linting, import sorting).
- Use type hints and docstrings for all public methods and classes.
- Follow PEP8 and QGIS plugin development best practices.

### 🧪 Testing
- All new code must include **unit tests** and, where applicable, **integration tests**.
- Tests live under the `tests/` package and are runnable with `pytest`.
- Mock external dependencies (`map2loop`, `LoopStructural`) in unit tests.

### 🧩 Current Plugin Structure

```
plugin_loopstructural/
├── loopstructural/ # plugin package
│ ├── __init__.py
│ ├── __about__.py
│ ├── plugin_main.py # QGIS plugin entry and bootstrap
│ ├── gui/ # UI dialogs, widgets, and panels
│ ├── main/ # controllers, managers, adapters (service layer)
│ ├── processing/ # QGIS processing provider and algorithms
│ ├── toolbelt/ # utilities, env parsing, preferences, logging
│ ├── resources/ # icons, translations, help files
│ └── requirements.txt
├── docs/
├── requirements/
├── tests/
└── README.md
```

Notes on mapping older concepts:
- What used to be called `services/` and `controllers/` is implemented across `loopstructural/main/` and `loopstructural/toolbelt/`.
- UI remains in `loopstructural/gui/` (dialogs, `.ui` files, widget classes).
- Processing-specific code and QGIS provider live under `loopstructural/processing/`.

---

## Contribution Workflow

1. Fork the repository and create a feature branch.
2. Implement changes following the design and code quality guidelines.
3. Add or update tests under `tests/` and ensure they run with `pytest`.
4. Run pre-commit hooks (e.g. `pre-commit run --all-files`) and ensure all checks pass.
5. Submit a pull request with a clear description of the changes and rationale. Link to upstream libraries if behavior is moved upstream.

---

## Future Enhancements

- Support for asynchronous or background processing of long-running tasks (consider using QGIS background task framework).
- Improved error handling and user feedback.
- Internationalization (i18n) support and keeping `.ts`/.qm translation files in `loopstructural/resources/i18n/`.
- Better separation of concerns between UI, processing algorithms and adapters to facilitate unit testing.

---

## Contact

For questions or contributions to the upstream libraries:
- `map2loop`
- `LoopStructural`

---
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991

Copyright (c) 2024, Lachlan GROSE / QGIS
Copyright (c) 2025, Lachlan GROSE / QGIS
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
Expand Down
3 changes: 1 addition & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#!python3

"""Configuration for project documentation using Sphinx.
"""
"""Configuration for project documentation using Sphinx."""

# standard
import sys
Expand Down
1 change: 0 additions & 1 deletion docs/development/environment.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ Typically on Ubuntu:
# create virtual environment linking to system packages (for pyqgis)
python3 -m venv .venv --system-site-packages
source .venv/bin/activate

# bump dependencies inside venv
python -m pip install -U pip
python -m pip install -U -r requirements/development.txt
Expand Down
Binary file added docs/static/dev_qgis_enable_plugin.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/static/dev_qgis_set_pluginpath_envvar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading