jupytergis-qgis 0.10.1__tar.gz → 0.11.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/PKG-INFO +4 -3
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/jupytergis_qgis/_version.py +1 -1
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/jupytergis_qgis/labextension/package.json +6 -6
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/jupytergis_qgis/labextension/schemas/@jupytergis/jupytergis-qgis/package.json.orig +5 -5
- jupytergis_qgis-0.11.1/jupytergis_qgis/labextension/static/234.289502f2f5fca279c845.js +1 -0
- jupytergis_qgis-0.11.1/jupytergis_qgis/labextension/static/4.58e727bd5f18ac6d1689.js +1 -0
- jupytergis_qgis-0.11.1/jupytergis_qgis/labextension/static/432.8b7eadb127851128d478.js +1 -0
- jupytergis_qgis-0.11.1/jupytergis_qgis/labextension/static/remoteEntry.826b1f7429aad46d6213.js +1 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/jupytergis_qgis/labextension/static/third-party-licenses.json +1 -1
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/jupytergis_qgis/qgis_loader.py +1 -1
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/lib/plugins.js +9 -6
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/package.json +5 -5
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/pyproject.toml +5 -4
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/src/plugins.ts +21 -15
- jupytergis_qgis-0.11.1/tsconfig.tsbuildinfo +1 -0
- jupytergis_qgis-0.10.1/jupytergis_qgis/labextension/static/234.0e83af2f2f78ca5704f8.js +0 -1
- jupytergis_qgis-0.10.1/jupytergis_qgis/labextension/static/4.b343f064ea45c7c98a03.js +0 -1
- jupytergis_qgis-0.10.1/jupytergis_qgis/labextension/static/432.2f6bd92ee5f330f2ca8e.js +0 -1
- jupytergis_qgis-0.10.1/jupytergis_qgis/labextension/static/remoteEntry.19b2a2698f2af1a03f89.js +0 -1
- jupytergis_qgis-0.10.1/tsconfig.tsbuildinfo +0 -1
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/.gitignore +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/.prettierignore +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/LICENSE +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/README.md +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/install.json +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/jupyter-config/server-config/jupytergis_qgis.json +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/jupytergis_qgis/__init__.py +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/jupytergis_qgis/handlers.py +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/jupytergis_qgis/labextension/schemas/@jupytergis/jupytergis-qgis/qgisplugin.json +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/jupytergis_qgis/labextension/static/style.js +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/jupytergis_qgis/qgis_ydoc.py +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/jupytergis_qgis/tests/__init__.py +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/jupytergis_qgis/tests/files/project0.qgs +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/jupytergis_qgis/tests/test_qgis.py +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/lib/index.d.ts +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/lib/index.js +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/lib/modelfactory.d.ts +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/lib/modelfactory.js +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/lib/plugins.d.ts +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/schema/qgisplugin.json +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/scripts/bump-version.py +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/setup.py +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/src/index.ts +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/src/modelfactory.ts +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/style/base.css +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/style/index.css +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/style/index.js +0 -0
- {jupytergis_qgis-0.10.1 → jupytergis_qgis-0.11.1}/tsconfig.json +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jupytergis_qgis
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.1
|
|
4
4
|
Dynamic: Keywords
|
|
5
5
|
Summary: JupyterGIS QGIS extension.
|
|
6
6
|
Project-URL: Homepage, https://github.com/geojupyter/jupytergis
|
|
@@ -45,11 +45,12 @@ Classifier: Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt
|
|
|
45
45
|
Classifier: License :: OSI Approved :: BSD License
|
|
46
46
|
Classifier: Programming Language :: Python
|
|
47
47
|
Classifier: Programming Language :: Python :: 3
|
|
48
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
49
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
50
48
|
Classifier: Programming Language :: Python :: 3.10
|
|
51
49
|
Classifier: Programming Language :: Python :: 3.11
|
|
52
50
|
Classifier: Programming Language :: Python :: 3.12
|
|
51
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
52
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
53
|
+
Classifier: Topic :: Scientific/Engineering :: GIS
|
|
53
54
|
Requires-Python: >=3.10
|
|
54
55
|
Requires-Dist: jupyter-server<3,>=2.0.1
|
|
55
56
|
Requires-Dist: jupyter-ydoc<4,>=2
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jupytergis/jupytergis-qgis",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"description": "JupyterGIS QGIS extension.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jupyter",
|
|
@@ -53,10 +53,10 @@
|
|
|
53
53
|
"watch:labextension": "jupyter labextension watch ."
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@jupyter/collaborative-drive": "^
|
|
57
|
-
"@jupytergis/base": "^0.
|
|
58
|
-
"@jupytergis/jupytergis-core": "^0.
|
|
59
|
-
"@jupytergis/schema": "^0.
|
|
56
|
+
"@jupyter/collaborative-drive": "^4.1.2",
|
|
57
|
+
"@jupytergis/base": "^0.11.1",
|
|
58
|
+
"@jupytergis/jupytergis-core": "^0.11.1",
|
|
59
|
+
"@jupytergis/schema": "^0.11.1",
|
|
60
60
|
"@jupyterlab/application": "^4.3.0",
|
|
61
61
|
"@jupyterlab/apputils": "^4.3.0",
|
|
62
62
|
"@jupyterlab/coreutils": "^6.3.0",
|
|
@@ -121,7 +121,7 @@
|
|
|
121
121
|
}
|
|
122
122
|
},
|
|
123
123
|
"_build": {
|
|
124
|
-
"load": "static/remoteEntry.
|
|
124
|
+
"load": "static/remoteEntry.826b1f7429aad46d6213.js",
|
|
125
125
|
"extension": "./extension",
|
|
126
126
|
"style": "./style"
|
|
127
127
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jupytergis/jupytergis-qgis",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"description": "JupyterGIS QGIS extension.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jupyter",
|
|
@@ -53,10 +53,10 @@
|
|
|
53
53
|
"watch:labextension": "jupyter labextension watch ."
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@jupyter/collaborative-drive": "^
|
|
57
|
-
"@jupytergis/base": "^0.
|
|
58
|
-
"@jupytergis/jupytergis-core": "^0.
|
|
59
|
-
"@jupytergis/schema": "^0.
|
|
56
|
+
"@jupyter/collaborative-drive": "^4.1.2",
|
|
57
|
+
"@jupytergis/base": "^0.11.1",
|
|
58
|
+
"@jupytergis/jupytergis-core": "^0.11.1",
|
|
59
|
+
"@jupytergis/schema": "^0.11.1",
|
|
60
60
|
"@jupyterlab/application": "^4.3.0",
|
|
61
61
|
"@jupyterlab/apputils": "^4.3.0",
|
|
62
62
|
"@jupyterlab/coreutils": "^6.3.0",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_jupytergis_jupytergis_qgis=self.webpackChunk_jupytergis_jupytergis_qgis||[]).push([[234],{234(e,o,r){r.r(o),r.d(o,{ICollaborativeContentProvider:()=>n,IGlobalAwareness:()=>s});var t=r(262);const n=new t.Token("@jupyter/collaboration-extension:ICollaborativeContentProvider"),s=new t.Token("@jupyter/collaboration:IGlobalAwareness")}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_jupytergis_jupytergis_qgis=self.webpackChunk_jupytergis_jupytergis_qgis||[]).push([[4],{4(e,t,o){o.r(t),o.d(t,{default:()=>f});var r,n=o(911),a=o(640),i=o(95),s=o(906),l=o(827),d=o(690),c=o(805),g=o(292),m=o(118),y=o(907),p=o(223),u=o(707),h=o(247);class G{constructor(e){this.collaborative=void 0===document.querySelectorAll("[data-jupyter-lite-root]")[0],this._disposed=!1,this._annotationModel=e.annotationModel}get name(){throw"Not implemented"}get contentType(){throw"Not implemented"}get fileFormat(){return"base64"}get isDisposed(){return this._disposed}dispose(){this._disposed=!0}preferredLanguage(e){return""}createNew(e){return new s.JupyterGISModel({sharedModel:e.sharedModel,languagePreference:e.languagePreference,annotationModel:this._annotationModel,settingRegistry:this._settingRegistry})}}class S extends G{get name(){return"jupytergis-qgzmodel"}get contentType(){return"QGZ"}}class I extends G{get name(){return"jupytergis-qgsmodel"}get contentType(){return"QGS"}}!function(e){e.exportQgis="jupytergis:export"}(r||(r={}));const f=[{id:"@jupytergis/jupytergis-qgis:qgisplugin",requires:[s.IJupyterGISDocTracker,l.IThemeManager,y.IDefaultDrive,s.IJGISExternalCommandRegistryToken,c.ConsolePanel.IContentFactory,d.IEditorServices,m.IRenderMimeRegistry,c.IConsoleTracker,s.IAnnotationToken,p.ISettingRegistry,s.IJGISFormSchemaRegistryToken,u.IStateDB],optional:[l.ICommandPalette,n.ICollaborativeContentProvider],autoStart:!0,activate:async(e,t,o,n,d,c,m,y,p,u,G,f,w,Q,T)=>{const x=await(0,a.requestAPI)("jupytergis_qgis/backend-check",{method:"POST",body:JSON.stringify({})}),{installed:j}=x,v=()=>(j||(0,l.showErrorMessage)("QGIS is not installed","QGIS is required to open QGIS files"),j),M=new i.JupyterGISDocumentWidgetFactory({name:"JupyterGIS QGS Factory",modelName:"jupytergis-qgsmodel",fileTypes:["QGS"],defaultFor:["QGS"],tracker:t,commands:e.commands,externalCommandRegistry:d,backendCheck:v,manager:e.serviceManager,contentFactory:c,rendermime:y,mimeTypeService:m.mimeTypeService,consoleTracker:p,formSchemaRegistry:f,state:w,annotationModel:u}),b=new i.JupyterGISDocumentWidgetFactory({name:"JupyterGIS QGZ Factory",modelName:"jupytergis-qgzmodel",fileTypes:["QGZ"],defaultFor:["QGZ"],tracker:t,commands:e.commands,externalCommandRegistry:d,backendCheck:v,manager:e.serviceManager,contentFactory:c,rendermime:y,mimeTypeService:m.mimeTypeService,consoleTracker:p,formSchemaRegistry:f,state:w,annotationModel:u});e.docRegistry.addWidgetFactory(M),e.docRegistry.addWidgetFactory(b),e.docRegistry.addModelFactory(new I({annotationModel:u,settingRegistry:G})),e.docRegistry.addModelFactory(new S({annotationModel:u,settingRegistry:G})),e.docRegistry.addFileType({name:"QGS",displayName:"QGS",mimeTypes:["application/octet-stream"],extensions:[".qgs",".QGS"],fileFormat:"base64",contentType:"QGS",icon:a.logoMiniIcon}),e.docRegistry.addFileType({name:"QGZ",displayName:"QGZ",mimeTypes:["application/octet-stream"],extensions:[".qgz",".QGZ"],fileFormat:"base64",contentType:"QGZ",icon:a.logoMiniIconQGZ});const F=()=>new s.JupyterGISDoc;T&&(T.sharedModelFactory.registerDocumentFactory("QGS",F),T.sharedModelFactory.registerDocumentFactory("QGZ",F));const C=(r,n)=>{n.title.icon=a.logoMiniIconQGZ,n.context.pathChanged.connect(()=>{t.save(n)}),o.themeChanged.connect((e,t)=>n.model.themeChanged.emit(t)),t.add(n),e.shell.activateById("jupytergis::leftControlPanel"),e.shell.activateById("jupytergis::rightControlPanel")};M.widgetCreated.connect(C),b.widgetCreated.connect(C),j&&(e.commands.addCommand(r.exportQgis,{label:"Export To QGZ",isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:async e=>{var o,r;const i=".jGIS",s=".qgz",d=null===(o=t.currentWidget)||void 0===o?void 0:o.model.sharedModel;if(!d)return;const c=t.currentWidget.model.filePath;let m=null!==(r=e.filepath)&&void 0!==r?r:null;if(m||(m=(await l.InputDialog.getText({label:"File name",placeholder:g.PathExt.basename(c,i),title:"Export the project to QGZ file"})).value),null===m)return;m?m.endsWith(s)||(m=`${m}${s}`):m=`${g.PathExt.basename(c,i)}${s}`;let y=g.PathExt.dirname(c);y.includes(":")&&(y=y.split(":")[1]);const p=g.PathExt.join(y,m),u={layers:d.layers,sources:d.sources,layerTree:d.layerTree.slice().reverse(),options:d.options};let G=!0;if(await n.get(p,{content:!1}).catch(()=>{G=!1}),G&&!(await(0,l.showDialog)({title:"Export the project to QGZ file",body:`The file ${m} already exists.\nDo you want to overwrite it ?`})).button.accept)return;const S=await(0,a.requestAPI)("jupytergis_qgis/export",{method:"POST",body:JSON.stringify({path:p,virtual_file:u})});if(S.exported){if(S.logs.warnings.length){const e=document.createElement("pre");e.textContent=`${m} has been exported with warnings\n - ${S.logs.warnings.join("\n - ")}`;const t=new h.Widget({node:e});await(0,l.showDialog)({title:"Export the project to QGZ file",body:t,buttons:[l.Dialog.okButton()]})}}else(0,l.showErrorMessage)("Export the project to QGZ file",S.logs.errors.length?S.logs.errors.join("\n"):"Unknown error")}}),Q&&Q.addItem({command:r.exportQgis,category:"JupyterGIS"})),console.debug("@jupytergis/jupytergis-qgis:qgisplugin is activated!")}}]}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_jupytergis_jupytergis_qgis=self.webpackChunk_jupytergis_jupytergis_qgis||[]).push([[432],{51(e){e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},128(e){var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},296(e,t,n){n.d(t,{A:()=>s});var r=n(758),o=n.n(r),a=n(935),i=n.n(a)()(o());i.push([e.id,"",""]);const s=i},432(e,t,n){var r=n(591),o=n.n(r),a=n(740),i=n.n(a),s=n(128),c=n.n(s),u=n(855),p=n.n(u),l=n(51),f=n.n(l),d=n(656),v=n.n(d),h=n(296),m={};m.styleTagTransform=v(),m.setAttributes=p(),m.insert=c().bind(null,"head"),m.domAPI=i(),m.insertStyleElement=f(),o()(h.A,m),h.A&&h.A.locals&&h.A.locals},591(e){var t=[];function n(e){for(var n=-1,r=0;r<t.length;r++)if(t[r].identifier===e){n=r;break}return n}function r(e,r){for(var a={},i=[],s=0;s<e.length;s++){var c=e[s],u=r.base?c[0]+r.base:c[0],p=a[u]||0,l="".concat(u," ").concat(p);a[u]=p+1;var f=n(l),d={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==f)t[f].references++,t[f].updater(d);else{var v=o(d,r);r.byIndex=s,t.splice(s,0,{identifier:l,updater:v,references:1})}i.push(l)}return i}function o(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,o){var a=r(e=e||[],o=o||{});return function(e){e=e||[];for(var i=0;i<a.length;i++){var s=n(a[i]);t[s].references--}for(var c=r(e,o),u=0;u<a.length;u++){var p=n(a[u]);0===t[p].references&&(t[p].updater(),t.splice(p,1))}a=c}}},656(e){e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},740(e){e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var o=void 0!==n.layer;o&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,o&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var a=n.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},758(e){e.exports=function(e){return e[1]}},855(e,t,n){e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},935(e){e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n}).join("")},t.i=function(e,n,r,o,a){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(r)for(var s=0;s<this.length;s++){var c=this[s][0];null!=c&&(i[c]=!0)}for(var u=0;u<e.length;u++){var p=[].concat(e[u]);r&&i[p[0]]||(void 0!==a&&(void 0===p[5]||(p[1]="@layer".concat(p[5].length>0?" ".concat(p[5]):""," {").concat(p[1],"}")),p[5]=a),n&&(p[2]?(p[1]="@media ".concat(p[2]," {").concat(p[1],"}"),p[2]=n):p[2]=n),o&&(p[4]?(p[1]="@supports (".concat(p[4],") {").concat(p[1],"}"),p[4]=o):p[4]="".concat(o)),t.push(p))}},t}}}]);
|
jupytergis_qgis-0.11.1/jupytergis_qgis/labextension/static/remoteEntry.826b1f7429aad46d6213.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var _JUPYTERLAB;(()=>{"use strict";var e,r,t,n,o,i,a,u,s,l,d,f,p,c,h,v,g,y,b,m,j,w,S,E={7(e,r,t){var n={"./index":()=>t.e(4).then(()=>()=>t(4)),"./extension":()=>t.e(4).then(()=>()=>t(4)),"./style":()=>t.e(432).then(()=>()=>t(432))},o=(e,r)=>(t.R=r,r=t.o(n,e)?n[e]():Promise.resolve().then(()=>{throw new Error('Module "'+e+'" does not exist in container.')}),t.R=void 0,r),i=(e,r)=>{if(t.S){var n="default",o=t.S[n];if(o&&o!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return t.S[n]=e,t.I(n,r)}};t.d(r,{get:()=>o,init:()=>i})}},k={};function P(e){var r=k[e];if(void 0!==r)return r.exports;var t=k[e]={id:e,exports:{}};return E[e](t,t.exports,P),t.exports}P.m=E,P.c=k,P.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return P.d(r,{a:r}),r},P.d=(e,r)=>{for(var t in r)P.o(r,t)&&!P.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},P.f={},P.e=e=>Promise.all(Object.keys(P.f).reduce((r,t)=>(P.f[t](e,r),r),[])),P.u=e=>e+"."+{4:"58e727bd5f18ac6d1689",234:"289502f2f5fca279c845",432:"8b7eadb127851128d478"}[e]+".js?v="+{4:"58e727bd5f18ac6d1689",234:"289502f2f5fca279c845",432:"8b7eadb127851128d478"}[e],P.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),P.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="@jupytergis/jupytergis-qgis:",P.l=(t,n,o,i)=>{if(e[t])e[t].push(n);else{var a,u;if(void 0!==o)for(var s=document.getElementsByTagName("script"),l=0;l<s.length;l++){var d=s[l];if(d.getAttribute("src")==t||d.getAttribute("data-webpack")==r+o){a=d;break}}a||(u=!0,(a=document.createElement("script")).charset="utf-8",P.nc&&a.setAttribute("nonce",P.nc),a.setAttribute("data-webpack",r+o),a.src=t),e[t]=[n];var f=(r,n)=>{a.onerror=a.onload=null,clearTimeout(p);var o=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach(e=>e(n)),r)return r(n)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=f.bind(null,a.onerror),a.onload=f.bind(null,a.onload),u&&document.head.appendChild(a)}},P.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{P.S={};var e={},r={};P.I=(t,n)=>{n||(n=[]);var o=r[t];if(o||(o=r[t]={}),!(n.indexOf(o)>=0)){if(n.push(o),e[t])return e[t];P.o(P.S,t)||(P.S[t]={});var i=P.S[t],a="@jupytergis/jupytergis-qgis",u=(e,r,t,n)=>{var o=i[e]=i[e]||{},u=o[r];(!u||!u.loaded&&(!n!=!u.eager?n:a>u.from))&&(o[r]={get:t,from:a,eager:!!n})},s=[];return"default"===t&&(u("@jupyter/collaborative-drive","4.2.0",()=>P.e(234).then(()=>()=>P(234))),u("@jupytergis/jupytergis-qgis","0.11.1",()=>P.e(4).then(()=>()=>P(4)))),e[t]=s.length?Promise.all(s).then(()=>e[t]=1):1}}})(),(()=>{var e;P.g.importScripts&&(e=P.g.location+"");var r=P.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),P.p=e})(),t=e=>{var r=e=>e.split(".").map(e=>+e==e?+e:e),t=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),n=t[1]?r(t[1]):[];return t[2]&&(n.length++,n.push.apply(n,r(t[2]))),t[3]&&(n.push([]),n.push.apply(n,r(t[3]))),n},n=(e,r)=>{e=t(e),r=t(r);for(var n=0;;){if(n>=e.length)return n<r.length&&"u"!=(typeof r[n])[0];var o=e[n],i=(typeof o)[0];if(n>=r.length)return"u"==i;var a=r[n],u=(typeof a)[0];if(i!=u)return"o"==i&&"n"==u||"s"==u||"u"==i;if("o"!=i&&"u"!=i&&o!=a)return o<a;n++}},o=e=>{var r=e[0],t="";if(1===e.length)return"*";if(r+.5){t+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var n=1,i=1;i<e.length;i++)n--,t+="u"==(typeof(u=e[i]))[0]?"-":(n>0?".":"")+(n=2,u);return t}var a=[];for(i=1;i<e.length;i++){var u=e[i];a.push(0===u?"not("+s()+")":1===u?"("+s()+" || "+s()+")":2===u?a.pop()+" "+a.pop():o(u))}return s();function s(){return a.pop().replace(/^\((.+)\)$/,"$1")}},i=(e,r)=>{if(0 in e){r=t(r);var n=e[0],o=n<0;o&&(n=-n-1);for(var a=0,u=1,s=!0;;u++,a++){var l,d,f=u<e.length?(typeof e[u])[0]:"";if(a>=r.length||"o"==(d=(typeof(l=r[a]))[0]))return!s||("u"==f?u>n&&!o:""==f!=o);if("u"==d){if(!s||"u"!=f)return!1}else if(s)if(f==d)if(u<=n){if(l!=e[u])return!1}else{if(o?l>e[u]:l<e[u])return!1;l!=e[u]&&(s=!1)}else if("s"!=f&&"n"!=f){if(o||u<=n)return!1;s=!1,u--}else{if(u<=n||d<f!=o)return!1;s=!1}else"s"!=f&&"n"!=f&&(s=!1,u--)}}var p=[],c=p.pop.bind(p);for(a=1;a<e.length;a++){var h=e[a];p.push(1==h?c()|c():2==h?c()&c():h?i(h,r):!c())}return!!c()},a=(e,r)=>e&&P.o(e,r),u=e=>(e.loaded=1,e.get()),s=e=>Object.keys(e).reduce((r,t)=>(e[t].eager&&(r[t]=e[t]),r),{}),l=(e,r,t,o)=>{var a=o?s(e[r]):e[r];return(r=Object.keys(a).reduce((e,r)=>!i(t,r)||e&&!n(e,r)?e:r,0))&&a[r]},d=(e,r,t)=>{var o=t?s(e[r]):e[r];return Object.keys(o).reduce((e,r)=>!e||!o[e].loaded&&n(e,r)?r:e,0)},f=(e,r,t,n)=>"Unsatisfied version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" (required "+o(n)+")",p=(e,r,t,n,i)=>{var a=e[t];return"No satisfying version ("+o(n)+")"+(i?" for eager consumption":"")+" of shared module "+t+" found in shared scope "+r+".\nAvailable versions: "+Object.keys(a).map(e=>e+" from "+a[e].from).join(", ")},c=e=>{throw new Error(e)},h=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},g=(e,r,t)=>t?t():((e,r)=>c("Shared module "+r+" doesn't exist in shared scope "+e))(e,r),y=(v=e=>function(r,t,n,o,i){var a=P.I(r);return a&&a.then&&!n?a.then(e.bind(e,r,P.S[r],t,!1,o,i)):e(r,P.S[r],t,n,o,i)})((e,r,t,n,o,i)=>{if(!a(r,t))return g(e,t,i);var s=l(r,t,o,n);return s?u(s):i?i():void c(p(r,e,t,o,n))}),b=v((e,r,t,n,o,s)=>{if(!a(r,t))return g(e,t,s);var l=d(r,t,n);return i(o,l)||h(f(r,t,l,o)),u(r[t][l])}),m={},j={95:()=>b("default","@jupytergis/jupytergis-core",!1,[2,0,11,1]),118:()=>b("default","@jupyterlab/rendermime",!1,[1,4,5,1]),223:()=>b("default","@jupyterlab/settingregistry",!1,[1,4,5,1]),247:()=>b("default","@lumino/widgets",!1,[1,2,3,1,,"alpha",1]),292:()=>b("default","@jupyterlab/coreutils",!1,[1,6,5,1]),640:()=>b("default","@jupytergis/base",!1,[2,0,11,1]),690:()=>b("default","@jupyterlab/codeeditor",!1,[1,4,5,1]),707:()=>b("default","@jupyterlab/statedb",!1,[1,4,5,1]),805:()=>b("default","@jupyterlab/console",!1,[1,4,5,1]),827:()=>b("default","@jupyterlab/apputils",!1,[1,4,6,1]),906:()=>b("default","@jupytergis/schema",!1,[2,0,11,1]),907:()=>b("default","@jupyterlab/services",!1,[1,7,5,1]),911:()=>y("default","@jupyter/collaborative-drive",!1,[1,4,1,2],()=>P.e(234).then(()=>()=>P(234))),262:()=>b("default","@lumino/coreutils",!1,[1,2,0,0])},w={4:[95,118,223,247,292,640,690,707,805,827,906,907,911],234:[262]},S={},P.f.consumes=(e,r)=>{P.o(w,e)&&w[e].forEach(e=>{if(P.o(m,e))return r.push(m[e]);if(!S[e]){var t=r=>{m[e]=0,P.m[e]=t=>{delete P.c[e],t.exports=r()}};S[e]=!0;var n=r=>{delete m[e],P.m[e]=t=>{throw delete P.c[e],r}};try{var o=j[e]();o.then?r.push(m[e]=o.then(t).catch(n)):t(o)}catch(e){n(e)}}})},(()=>{var e={617:0};P.f.j=(r,t)=>{var n=P.o(e,r)?e[r]:void 0;if(0!==n)if(n)t.push(n[2]);else{var o=new Promise((t,o)=>n=e[r]=[t,o]);t.push(n[2]=o);var i=P.p+P.u(r),a=new Error;P.l(i,t=>{if(P.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n)){var o=t&&("load"===t.type?"missing":t.type),i=t&&t.target&&t.target.src;a.message="Loading chunk "+r+" failed.\n("+o+": "+i+")",a.name="ChunkLoadError",a.type=o,a.request=i,n[1](a)}},"chunk-"+r,r)}};var r=(r,t)=>{var n,o,[i,a,u]=t,s=0;if(i.some(r=>0!==e[r])){for(n in a)P.o(a,n)&&(P.m[n]=a[n]);u&&u(P)}for(r&&r(t);s<i.length;s++)o=i[s],P.o(e,o)&&e[o]&&e[o][0](),e[o]=0},t=self.webpackChunk_jupytergis_jupytergis_qgis=self.webpackChunk_jupytergis_jupytergis_qgis||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),P.nc=void 0;var _=P(7);(_JUPYTERLAB=void 0===_JUPYTERLAB?{}:_JUPYTERLAB)["@jupytergis/jupytergis-qgis"]=_})();
|
|
@@ -916,7 +916,7 @@ def jgis_layer_to_qgis(
|
|
|
916
916
|
# check logical operator to choose discrete or exact
|
|
917
917
|
op = layer_colors[3][0]
|
|
918
918
|
|
|
919
|
-
# skip the last value in both cases,
|
|
919
|
+
# skip the last value in both cases, that's the fallback and not used by qgis
|
|
920
920
|
if op == "<=":
|
|
921
921
|
# skip the second to last pair because that needs special handling
|
|
922
922
|
color_ramp_shader.setColorRampType(QgsColorRampShader.Discrete)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ICollaborativeContentProvider } from '@jupyter/collaborative-drive';
|
|
2
2
|
import { logoMiniIcon, logoMiniIconQGZ, requestAPI, } from '@jupytergis/base';
|
|
3
3
|
import { JupyterGISDocumentWidgetFactory } from '@jupytergis/jupytergis-core';
|
|
4
4
|
import { IJGISExternalCommandRegistryToken, JupyterGISDoc, IJupyterGISDocTracker, IAnnotationToken, IJGISFormSchemaRegistryToken, } from '@jupytergis/schema';
|
|
@@ -7,6 +7,7 @@ import { IEditorServices } from '@jupyterlab/codeeditor';
|
|
|
7
7
|
import { ConsolePanel, IConsoleTracker } from '@jupyterlab/console';
|
|
8
8
|
import { PathExt } from '@jupyterlab/coreutils';
|
|
9
9
|
import { IRenderMimeRegistry } from '@jupyterlab/rendermime';
|
|
10
|
+
import { IDefaultDrive, } from '@jupyterlab/services';
|
|
10
11
|
import { ISettingRegistry } from '@jupyterlab/settingregistry';
|
|
11
12
|
import { IStateDB } from '@jupyterlab/statedb';
|
|
12
13
|
import { Widget } from '@lumino/widgets';
|
|
@@ -18,7 +19,7 @@ var CommandIDs;
|
|
|
18
19
|
(function (CommandIDs) {
|
|
19
20
|
CommandIDs.exportQgis = 'jupytergis:export';
|
|
20
21
|
})(CommandIDs || (CommandIDs = {}));
|
|
21
|
-
const activate = async (app, tracker, themeManager, drive, externalCommandRegistry, contentFactory, editorServices, rendermime, consoleTracker, annotationModel, settingRegistry, formSchemaRegistry, state, commandPalette) => {
|
|
22
|
+
const activate = async (app, tracker, themeManager, drive, externalCommandRegistry, contentFactory, editorServices, rendermime, consoleTracker, annotationModel, settingRegistry, formSchemaRegistry, state, commandPalette, collaborativeContentProvider) => {
|
|
22
23
|
const fcCheck = await requestAPI('jupytergis_qgis/backend-check', {
|
|
23
24
|
method: 'POST',
|
|
24
25
|
body: JSON.stringify({}),
|
|
@@ -94,8 +95,10 @@ const activate = async (app, tracker, themeManager, drive, externalCommandRegist
|
|
|
94
95
|
const QGISSharedModelFactory = () => {
|
|
95
96
|
return new JupyterGISDoc();
|
|
96
97
|
};
|
|
97
|
-
|
|
98
|
-
|
|
98
|
+
if (collaborativeContentProvider) {
|
|
99
|
+
collaborativeContentProvider.sharedModelFactory.registerDocumentFactory('QGS', QGISSharedModelFactory);
|
|
100
|
+
collaborativeContentProvider.sharedModelFactory.registerDocumentFactory('QGZ', QGISSharedModelFactory);
|
|
101
|
+
}
|
|
99
102
|
const widgetCreatedCallback = (sender, widget) => {
|
|
100
103
|
widget.title.icon = logoMiniIconQGZ;
|
|
101
104
|
// Notify the instance tracker if restore data needs to update.
|
|
@@ -215,7 +218,7 @@ export const qgisplugin = {
|
|
|
215
218
|
requires: [
|
|
216
219
|
IJupyterGISDocTracker,
|
|
217
220
|
IThemeManager,
|
|
218
|
-
|
|
221
|
+
IDefaultDrive,
|
|
219
222
|
IJGISExternalCommandRegistryToken,
|
|
220
223
|
ConsolePanel.IContentFactory,
|
|
221
224
|
IEditorServices,
|
|
@@ -226,7 +229,7 @@ export const qgisplugin = {
|
|
|
226
229
|
IJGISFormSchemaRegistryToken,
|
|
227
230
|
IStateDB,
|
|
228
231
|
],
|
|
229
|
-
optional: [ICommandPalette],
|
|
232
|
+
optional: [ICommandPalette, ICollaborativeContentProvider],
|
|
230
233
|
autoStart: true,
|
|
231
234
|
activate,
|
|
232
235
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jupytergis/jupytergis-qgis",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"description": "JupyterGIS QGIS extension.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jupyter",
|
|
@@ -53,10 +53,10 @@
|
|
|
53
53
|
"watch:labextension": "jupyter labextension watch ."
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@jupyter/collaborative-drive": "^
|
|
57
|
-
"@jupytergis/base": "^0.
|
|
58
|
-
"@jupytergis/jupytergis-core": "^0.
|
|
59
|
-
"@jupytergis/schema": "^0.
|
|
56
|
+
"@jupyter/collaborative-drive": "^4.1.2",
|
|
57
|
+
"@jupytergis/base": "^0.11.1",
|
|
58
|
+
"@jupytergis/jupytergis-core": "^0.11.1",
|
|
59
|
+
"@jupytergis/schema": "^0.11.1",
|
|
60
60
|
"@jupyterlab/application": "^4.3.0",
|
|
61
61
|
"@jupyterlab/apputils": "^4.3.0",
|
|
62
62
|
"@jupyterlab/coreutils": "^6.3.0",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
build-backend = "hatchling.build"
|
|
3
3
|
requires = [
|
|
4
4
|
"hatchling>=1.5.0",
|
|
5
|
-
"jupyterlab>=4.
|
|
5
|
+
"jupyterlab>=4.5.1",
|
|
6
6
|
"hatch-nodejs-version>=0.3.2",
|
|
7
7
|
]
|
|
8
8
|
|
|
@@ -13,14 +13,15 @@ classifiers = [
|
|
|
13
13
|
"Framework :: Jupyter :: JupyterLab :: 4",
|
|
14
14
|
"Framework :: Jupyter :: JupyterLab :: Extensions",
|
|
15
15
|
"Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt",
|
|
16
|
+
"Topic :: Scientific/Engineering :: GIS",
|
|
16
17
|
"License :: OSI Approved :: BSD License",
|
|
17
18
|
"Programming Language :: Python",
|
|
18
19
|
"Programming Language :: Python :: 3",
|
|
19
|
-
"Programming Language :: Python :: 3.8",
|
|
20
|
-
"Programming Language :: Python :: 3.9",
|
|
21
20
|
"Programming Language :: Python :: 3.10",
|
|
22
21
|
"Programming Language :: Python :: 3.11",
|
|
23
22
|
"Programming Language :: Python :: 3.12",
|
|
23
|
+
"Programming Language :: Python :: 3.13",
|
|
24
|
+
"Programming Language :: Python :: 3.14",
|
|
24
25
|
]
|
|
25
26
|
dependencies = [
|
|
26
27
|
"jupyter_server>=2.0.1,<3",
|
|
@@ -78,7 +79,7 @@ version_cmd = "hatch version"
|
|
|
78
79
|
|
|
79
80
|
[tool.jupyter-releaser.hooks]
|
|
80
81
|
before-build-npm = [
|
|
81
|
-
"python -m pip install 'jupyterlab>=4.
|
|
82
|
+
"python -m pip install 'jupyterlab>=4.5.1'",
|
|
82
83
|
"jlpm",
|
|
83
84
|
"jlpm build:prod",
|
|
84
85
|
]
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ICollaborativeDrive,
|
|
3
|
-
SharedDocumentFactory,
|
|
4
|
-
} from '@jupyter/collaborative-drive';
|
|
1
|
+
import { ICollaborativeContentProvider } from '@jupyter/collaborative-drive';
|
|
5
2
|
import {
|
|
6
3
|
JupyterGISDocumentWidget,
|
|
7
4
|
logoMiniIcon,
|
|
@@ -37,6 +34,11 @@ import { IEditorServices } from '@jupyterlab/codeeditor';
|
|
|
37
34
|
import { ConsolePanel, IConsoleTracker } from '@jupyterlab/console';
|
|
38
35
|
import { PathExt } from '@jupyterlab/coreutils';
|
|
39
36
|
import { IRenderMimeRegistry } from '@jupyterlab/rendermime';
|
|
37
|
+
import {
|
|
38
|
+
Contents,
|
|
39
|
+
IDefaultDrive,
|
|
40
|
+
SharedDocumentFactory,
|
|
41
|
+
} from '@jupyterlab/services';
|
|
40
42
|
import { ISettingRegistry } from '@jupyterlab/settingregistry';
|
|
41
43
|
import { IStateDB } from '@jupyterlab/statedb';
|
|
42
44
|
import { Widget } from '@lumino/widgets';
|
|
@@ -75,7 +77,7 @@ const activate = async (
|
|
|
75
77
|
app: JupyterFrontEnd,
|
|
76
78
|
tracker: WidgetTracker<IJupyterGISWidget>,
|
|
77
79
|
themeManager: IThemeManager,
|
|
78
|
-
drive:
|
|
80
|
+
drive: Contents.IDrive,
|
|
79
81
|
externalCommandRegistry: IJGISExternalCommandRegistry,
|
|
80
82
|
contentFactory: ConsolePanel.IContentFactory,
|
|
81
83
|
editorServices: IEditorServices,
|
|
@@ -86,6 +88,7 @@ const activate = async (
|
|
|
86
88
|
formSchemaRegistry: IJGISFormSchemaRegistry,
|
|
87
89
|
state: IStateDB,
|
|
88
90
|
commandPalette: ICommandPalette | null,
|
|
91
|
+
collaborativeContentProvider: ICollaborativeContentProvider | null,
|
|
89
92
|
): Promise<void> => {
|
|
90
93
|
const fcCheck = await requestAPI<{ installed: boolean }>(
|
|
91
94
|
'jupytergis_qgis/backend-check',
|
|
@@ -175,14 +178,17 @@ const activate = async (
|
|
|
175
178
|
const QGISSharedModelFactory: SharedDocumentFactory = () => {
|
|
176
179
|
return new JupyterGISDoc();
|
|
177
180
|
};
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
181
|
+
|
|
182
|
+
if (collaborativeContentProvider) {
|
|
183
|
+
collaborativeContentProvider.sharedModelFactory.registerDocumentFactory(
|
|
184
|
+
'QGS',
|
|
185
|
+
QGISSharedModelFactory,
|
|
186
|
+
);
|
|
187
|
+
collaborativeContentProvider.sharedModelFactory.registerDocumentFactory(
|
|
188
|
+
'QGZ',
|
|
189
|
+
QGISSharedModelFactory,
|
|
190
|
+
);
|
|
191
|
+
}
|
|
186
192
|
|
|
187
193
|
const widgetCreatedCallback = (
|
|
188
194
|
sender: any,
|
|
@@ -323,7 +329,7 @@ export const qgisplugin: JupyterFrontEndPlugin<void> = {
|
|
|
323
329
|
requires: [
|
|
324
330
|
IJupyterGISDocTracker,
|
|
325
331
|
IThemeManager,
|
|
326
|
-
|
|
332
|
+
IDefaultDrive,
|
|
327
333
|
IJGISExternalCommandRegistryToken,
|
|
328
334
|
ConsolePanel.IContentFactory,
|
|
329
335
|
IEditorServices,
|
|
@@ -334,7 +340,7 @@ export const qgisplugin: JupyterFrontEndPlugin<void> = {
|
|
|
334
340
|
IJGISFormSchemaRegistryToken,
|
|
335
341
|
IStateDB,
|
|
336
342
|
],
|
|
337
|
-
optional: [ICommandPalette],
|
|
343
|
+
optional: [ICommandPalette, ICollaborativeContentProvider],
|
|
338
344
|
autoStart: true,
|
|
339
345
|
activate,
|
|
340
346
|
};
|