gennaker-tools 0.1.3__tar.gz → 0.1.4__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.
Files changed (37) hide show
  1. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/CHANGELOG.md +16 -2
  2. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/PKG-INFO +1 -1
  3. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/gennaker_tools/_version.py +1 -1
  4. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/gennaker_tools/labextension/package.json +2 -2
  5. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/gennaker_tools/labextension/schemas/gennaker-tools/package.json.orig +1 -1
  6. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/gennaker_tools/labextension/schemas/gennaker-tools/stateless-run.json +4 -2
  7. gennaker_tools-0.1.4/gennaker_tools/labextension/static/509.4ba7e0c1be6d39a3ec07.js +1 -0
  8. gennaker_tools-0.1.3/gennaker_tools/labextension/static/remoteEntry.3e78bb25784889ba8b31.js → gennaker_tools-0.1.4/gennaker_tools/labextension/static/remoteEntry.b3c1c8e6f30bc57694cf.js +1 -1
  9. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/package.json +1 -1
  10. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/schema/stateless-run.json +4 -2
  11. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/src/index.ts +13 -9
  12. gennaker_tools-0.1.3/gennaker_tools/labextension/static/509.289abdc89cdc2da51b88.js +0 -1
  13. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/.copier-answers.yml +0 -0
  14. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/.gitignore +0 -0
  15. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/.prettierignore +0 -0
  16. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/.yarnrc.yml +0 -0
  17. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/LICENSE +0 -0
  18. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/README.md +0 -0
  19. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/RELEASE.md +0 -0
  20. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/flake.lock +0 -0
  21. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/flake.nix +0 -0
  22. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/gennaker_tools/__init__.py +0 -0
  23. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/gennaker_tools/labextension/static/728.c3ac4b62173ea8b3c44b.js +0 -0
  24. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/gennaker_tools/labextension/static/747.28975bdde163d0eaf6e0.js +0 -0
  25. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/gennaker_tools/labextension/static/style.js +0 -0
  26. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/gennaker_tools/labextension/static/third-party-licenses.json +0 -0
  27. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/gennaker_tools/settings_sync_extension.py +0 -0
  28. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/install.json +0 -0
  29. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/jupyter-config/jupyter_server_config.d/gennaker_tools.json +0 -0
  30. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/pyproject.toml +0 -0
  31. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/renovate.json5 +0 -0
  32. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/setup.py +0 -0
  33. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/style/base.css +0 -0
  34. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/style/index.css +0 -0
  35. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/style/index.js +0 -0
  36. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/tsconfig.json +0 -0
  37. {gennaker_tools-0.1.3 → gennaker_tools-0.1.4}/yarn.lock +0 -0
@@ -2,6 +2,22 @@
2
2
 
3
3
  <!-- <START NEW CHANGELOG ENTRY> -->
4
4
 
5
+ ## 0.1.4
6
+
7
+ ([Full Changelog](https://github.com/agoose77/gennaker-tools/compare/v0.1.3...795450402276c565914c01971d096d93afac9662))
8
+
9
+ ### Merged PRs
10
+
11
+ - fix: command ID [#15](https://github.com/agoose77/gennaker-tools/pull/15) ([@agoose77](https://github.com/agoose77))
12
+
13
+ ### Contributors to this release
14
+
15
+ ([GitHub contributors page for this release](https://github.com/agoose77/gennaker-tools/graphs/contributors?from=2025-12-23&to=2026-01-10&type=c))
16
+
17
+ [@agoose77](https://github.com/search?q=repo%3Aagoose77%2Fgennaker-tools+involves%3Aagoose77+updated%3A2025-12-23..2026-01-10&type=Issues)
18
+
19
+ <!-- <END NEW CHANGELOG ENTRY> -->
20
+
5
21
  ## 0.1.3
6
22
 
7
23
  ([Full Changelog](https://github.com/agoose77/gennaker-tools/compare/c2dd80b54b1294fd7c581c9f1ca9241b02338093...3c9e5e267bd3b2d002290e79e9949a370bdeac79))
@@ -27,8 +43,6 @@
27
43
 
28
44
  [@agoose77](https://github.com/search?q=repo%3Aagoose77%2Fgennaker-tools+involves%3Aagoose77+updated%3A2025-07-24..2025-12-23&type=Issues) | [@renovate](https://github.com/search?q=repo%3Aagoose77%2Fgennaker-tools+involves%3Arenovate+updated%3A2025-07-24..2025-12-23&type=Issues)
29
45
 
30
- <!-- <END NEW CHANGELOG ENTRY> -->
31
-
32
46
  ## 0.1.2
33
47
 
34
48
  ([Full Changelog](https://github.com/agoose77/gennaker-tools/compare/v0.1.1...b7c19f098d01aced82088abd2524a0f3b1377b04))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gennaker-tools
3
- Version: 0.1.3
3
+ Version: 0.1.4
4
4
  Summary: A JupyterLab extension to provide a restart-and-run-to-selected command variant that clears non-executed cell outputs.
5
5
  Project-URL: Homepage, https://github.com/agoose77/gennaker-tools
6
6
  Project-URL: Bug Tracker, https://github.com/agoose77/gennaker-tools/issues
@@ -1,4 +1,4 @@
1
1
  # This file is auto-generated by Hatchling. As such, do not:
2
2
  # - modify
3
3
  # - track in version control e.g. be sure to add to .gitignore
4
- __version__ = VERSION = '0.1.3'
4
+ __version__ = VERSION = '0.1.4'
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gennaker-tools",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "A JupyterLab extension to provide a restart-and-run-to-selected command variant that clears non-executed cell outputs.",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -99,7 +99,7 @@
99
99
  "outputDir": "gennaker_tools/labextension",
100
100
  "schemaDir": "schema",
101
101
  "_build": {
102
- "load": "static/remoteEntry.3e78bb25784889ba8b31.js",
102
+ "load": "static/remoteEntry.b3c1c8e6f30bc57694cf.js",
103
103
  "extension": "./extension",
104
104
  "style": "./style"
105
105
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gennaker-tools",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "A JupyterLab extension to provide a restart-and-run-to-selected command variant that clears non-executed cell outputs.",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -7,11 +7,13 @@
7
7
  "id": "jp-mainmenu-run",
8
8
  "items": [
9
9
  {
10
- "command": "stateless:clear-restart-run-to-selected",
10
+ "command": "gennaker-tools:restart-run-stateless",
11
11
  "rank": 80
12
12
  }
13
13
  ]
14
14
  }
15
15
  ]
16
- }
16
+ },
17
+ "additionalProperties": false,
18
+ "type": "object"
17
19
  }
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkgennaker_tools=self.webpackChunkgennaker_tools||[]).push([[509],{509:(e,t,a)=>{a.r(t),a.d(t,{default:()=>b,reloadPlugin:()=>u,snippetsPlugin:()=>d,statelessRunPlugin:()=>p});var n,o=a(389),r=a(827),s=a(591),l=a(460),i=a(505);!function(e){e.restartRunStateless="gennaker-tools:restart-run-stateless",e.resetJupyterLab="gennaker-tools:reset-jupyterlab"}(n||(n={}));const p={id:"gennaker-tools:stateless-run",description:"A JupyterLab extension.",autoStart:!0,requires:[r.ICommandPalette,o.INotebookTracker],optional:[s.ITranslator],activate:(e,t,a,o)=>{const r=(null!=o?o:s.nullTranslator).load("jupyterlab"),{commands:l,shell:i}=e;console.log("JupyterLab plugin gennaker-tools:stateless-run is activated!"),l.addCommand(n.restartRunStateless,{label:"Restart Kernel, Clear Outputs, and Run All Above Selected Cell",caption:"Clear all outputs, restart kernel, and run all cells above the selected cell",isEnabled:()=>null!==a.currentWidget&&a.currentWidget===i.currentWidget,execute:async e=>{const t=e.origin;console.log(`${n.restartRunStateless} has been called from... ${t}.`),"init"!==t&&await l.execute("apputils:run-all-enabled",{commands:["notebook:clear-all-cell-outputs","notebook:restart-and-run-to-selected"]})}});const p=r.__("Notebook Operations");t.addItem({command:n.restartRunStateless,category:p,args:{origin:"from palette"}})}},u={id:"gennaker-tools:reload",description:"A JupyterLab extension.",autoStart:!0,requires:[r.ICommandPalette],optional:[s.ITranslator],activate:(e,t,a)=>{console.log("JupyterLab plugin gennaker-tools:reload is activated!");const{commands:o}=e,r=(null!=a?a:s.nullTranslator).load("jupyterlab");o.addCommand(n.resetJupyterLab,{label:"Reset JupyterLab",caption:"Reset JupyterLab",isEnabled:()=>!0,execute:e=>{"init"!==e.origin&&window.location.reload()}});const l=r.__("Reset");t.addItem({command:n.resetJupyterLab,category:l,args:{origin:"from palette"}})}},c={properties:{snippets:{type:"array",title:"Codemirror snippets",description:"Snippets of the form accepted by Codemirrors snippetCompletion",items:{type:"object",properties:{type:{type:"string",enum:["class","constant","enum","function","interface","keyword","method","namespace","property","text","type","variable"]},body:{type:"string"},label:{type:"string"}},required:["type","body","label"]}}},additionalProperties:!1,type:"object"},d={id:"gennaker-tools:snippets",description:"A JupyterLab extension.",autoStart:!0,requires:[l.IEditorExtensionRegistry],optional:[],activate:(e,t)=>{console.log("JupyterLab plugin gennaker-tools:snippets is activated!"),t.addExtension(Object.freeze({name:"gennaker-tools:snippets",factory:()=>l.EditorExtensionRegistry.createConfigurableExtension(e=>(0,i.autocompletion)({override:[(0,i.completeFromList)(e.snippets.map(e=>{const{body:t,...a}=e;return(0,i.snippetCompletion)(t,a)}))]})),default:{snippets:[]},schema:c}))}},b=[p,u,d]}}]);
@@ -1 +1 @@
1
- var _JUPYTERLAB;(()=>{"use strict";var e,r,t,o,n,a,i,u,l,s,f,d,c,p,h,v,g,m,b,y,w,k,S,j={842:(e,r,t)=>{var o={"./index":()=>t.e(509).then(()=>()=>t(509)),"./extension":()=>t.e(509).then(()=>()=>t(509)),"./style":()=>t.e(728).then(()=>()=>t(728))},n=(e,r)=>(t.R=r,r=t.o(o,e)?o[e]():Promise.resolve().then(()=>{throw new Error('Module "'+e+'" does not exist in container.')}),t.R=void 0,r),a=(e,r)=>{if(t.S){var o="default",n=t.S[o];if(n&&n!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return t.S[o]=e,t.I(o,r)}};t.d(r,{get:()=>n,init:()=>a})}},E={};function P(e){var r=E[e];if(void 0!==r)return r.exports;var t=E[e]={id:e,exports:{}};return j[e](t,t.exports,P),t.exports}P.m=j,P.c=E,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+"."+{509:"289abdc89cdc2da51b88",728:"c3ac4b62173ea8b3c44b",747:"28975bdde163d0eaf6e0"}[e]+".js?v="+{509:"289abdc89cdc2da51b88",728:"c3ac4b62173ea8b3c44b",747:"28975bdde163d0eaf6e0"}[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="gennaker-tools:",P.l=(t,o,n,a)=>{if(e[t])e[t].push(o);else{var i,u;if(void 0!==n)for(var l=document.getElementsByTagName("script"),s=0;s<l.length;s++){var f=l[s];if(f.getAttribute("src")==t||f.getAttribute("data-webpack")==r+n){i=f;break}}i||(u=!0,(i=document.createElement("script")).charset="utf-8",P.nc&&i.setAttribute("nonce",P.nc),i.setAttribute("data-webpack",r+n),i.src=t),e[t]=[o];var d=(r,o)=>{i.onerror=i.onload=null,clearTimeout(c);var n=e[t];if(delete e[t],i.parentNode&&i.parentNode.removeChild(i),n&&n.forEach(e=>e(o)),r)return r(o)},c=setTimeout(d.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=d.bind(null,i.onerror),i.onload=d.bind(null,i.onload),u&&document.head.appendChild(i)}},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,o)=>{o||(o=[]);var n=r[t];if(n||(n=r[t]={}),!(o.indexOf(n)>=0)){if(o.push(n),e[t])return e[t];P.o(P.S,t)||(P.S[t]={});var a=P.S[t],i="gennaker-tools",u=(e,r,t,o)=>{var n=a[e]=a[e]||{},u=n[r];(!u||!u.loaded&&(!o!=!u.eager?o:i>u.from))&&(n[r]={get:t,from:i,eager:!!o})},l=[];return"default"===t&&(u("@codemirror/autocomplete","6.19.1",()=>Promise.all([P.e(747),P.e(949)]).then(()=>()=>P(747))),u("gennaker-tools","0.1.3",()=>P.e(509).then(()=>()=>P(509)))),e[t]=l.length?Promise.all(l).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 o=t.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=t[o--].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),o=t[1]?r(t[1]):[];return t[2]&&(o.length++,o.push.apply(o,r(t[2]))),t[3]&&(o.push([]),o.push.apply(o,r(t[3]))),o},o=(e,r)=>{e=t(e),r=t(r);for(var o=0;;){if(o>=e.length)return o<r.length&&"u"!=(typeof r[o])[0];var n=e[o],a=(typeof n)[0];if(o>=r.length)return"u"==a;var i=r[o],u=(typeof i)[0];if(a!=u)return"o"==a&&"n"==u||"s"==u||"u"==a;if("o"!=a&&"u"!=a&&n!=i)return n<i;o++}},n=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 o=1,a=1;a<e.length;a++)o--,t+="u"==(typeof(u=e[a]))[0]?"-":(o>0?".":"")+(o=2,u);return t}var i=[];for(a=1;a<e.length;a++){var u=e[a];i.push(0===u?"not("+l()+")":1===u?"("+l()+" || "+l()+")":2===u?i.pop()+" "+i.pop():n(u))}return l();function l(){return i.pop().replace(/^\((.+)\)$/,"$1")}},a=(e,r)=>{if(0 in e){r=t(r);var o=e[0],n=o<0;n&&(o=-o-1);for(var i=0,u=1,l=!0;;u++,i++){var s,f,d=u<e.length?(typeof e[u])[0]:"";if(i>=r.length||"o"==(f=(typeof(s=r[i]))[0]))return!l||("u"==d?u>o&&!n:""==d!=n);if("u"==f){if(!l||"u"!=d)return!1}else if(l)if(d==f)if(u<=o){if(s!=e[u])return!1}else{if(n?s>e[u]:s<e[u])return!1;s!=e[u]&&(l=!1)}else if("s"!=d&&"n"!=d){if(n||u<=o)return!1;l=!1,u--}else{if(u<=o||f<d!=n)return!1;l=!1}else"s"!=d&&"n"!=d&&(l=!1,u--)}}var c=[],p=c.pop.bind(c);for(i=1;i<e.length;i++){var h=e[i];c.push(1==h?p()|p():2==h?p()&p():h?a(h,r):!p())}return!!p()},i=(e,r)=>e&&P.o(e,r),u=e=>(e.loaded=1,e.get()),l=e=>Object.keys(e).reduce((r,t)=>(e[t].eager&&(r[t]=e[t]),r),{}),s=(e,r,t,n)=>{var i=n?l(e[r]):e[r];return(r=Object.keys(i).reduce((e,r)=>!a(t,r)||e&&!o(e,r)?e:r,0))&&i[r]},f=(e,r,t)=>{var n=t?l(e[r]):e[r];return Object.keys(n).reduce((e,r)=>!e||!n[e].loaded&&o(e,r)?r:e,0)},d=(e,r,t,o)=>"Unsatisfied version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" (required "+n(o)+")",c=(e,r,t,o,a)=>{var i=e[t];return"No satisfying version ("+n(o)+")"+(a?" for eager consumption":"")+" of shared module "+t+" found in shared scope "+r+".\nAvailable versions: "+Object.keys(i).map(e=>e+" from "+i[e].from).join(", ")},p=e=>{throw new Error(e)},h=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},g=(e,r,t)=>t?t():((e,r)=>p("Shared module "+r+" doesn't exist in shared scope "+e))(e,r),m=(v=e=>function(r,t,o,n,a){var i=P.I(r);return i&&i.then&&!o?i.then(e.bind(e,r,P.S[r],t,!1,n,a)):e(r,P.S[r],t,o,n,a)})((e,r,t,o,n,a)=>{if(!i(r,t))return g(e,t,a);var l=s(r,t,n,o);return l?u(l):a?a():void p(c(r,e,t,n,o))}),b=v((e,r,t,o,n,l)=>{if(!i(r,t))return g(e,t,l);var s=f(r,t,o);return a(n,s)||h(d(r,t,s,n)),u(r[t][s])}),y={},w={389:()=>b("default","@jupyterlab/notebook",!1,[1,4,5,1]),460:()=>b("default","@jupyterlab/codemirror",!1,[1,4,5,1]),505:()=>m("default","@codemirror/autocomplete",!1,[1,6,0,1],()=>Promise.all([P.e(747),P.e(949)]).then(()=>()=>P(747))),591:()=>b("default","@jupyterlab/translation",!1,[1,4,5,1]),827:()=>b("default","@jupyterlab/apputils",!1,[1,4,6,1]),24:()=>b("default","@codemirror/view",!1,[1,6,9,6]),84:()=>b("default","@codemirror/language",!1,[1,6,0,0]),195:()=>b("default","@codemirror/state",!1,[1,6,2,0])},k={509:[389,460,505,591,827],949:[24,84,195]},S={},P.f.consumes=(e,r)=>{P.o(k,e)&&k[e].forEach(e=>{if(P.o(y,e))return r.push(y[e]);if(!S[e]){var t=r=>{y[e]=0,P.m[e]=t=>{delete P.c[e],t.exports=r()}};S[e]=!0;var o=r=>{delete y[e],P.m[e]=t=>{throw delete P.c[e],r}};try{var n=w[e]();n.then?r.push(y[e]=n.then(t).catch(o)):t(n)}catch(e){o(e)}}})},(()=>{var e={204:0};P.f.j=(r,t)=>{var o=P.o(e,r)?e[r]:void 0;if(0!==o)if(o)t.push(o[2]);else if(949!=r){var n=new Promise((t,n)=>o=e[r]=[t,n]);t.push(o[2]=n);var a=P.p+P.u(r),i=new Error;P.l(a,t=>{if(P.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var n=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+n+": "+a+")",i.name="ChunkLoadError",i.type=n,i.request=a,o[1](i)}},"chunk-"+r,r)}else e[r]=0};var r=(r,t)=>{var o,n,[a,i,u]=t,l=0;if(a.some(r=>0!==e[r])){for(o in i)P.o(i,o)&&(P.m[o]=i[o]);u&&u(P)}for(r&&r(t);l<a.length;l++)n=a[l],P.o(e,n)&&e[n]&&e[n][0](),e[n]=0},t=self.webpackChunkgennaker_tools=self.webpackChunkgennaker_tools||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),P.nc=void 0;var T=P(842);(_JUPYTERLAB=void 0===_JUPYTERLAB?{}:_JUPYTERLAB)["gennaker-tools"]=T})();
1
+ var _JUPYTERLAB;(()=>{"use strict";var e,r,t,o,n,a,i,u,l,s,f,d,c,p,h,v,g,b,m,y,w,k,S,j={842:(e,r,t)=>{var o={"./index":()=>t.e(509).then(()=>()=>t(509)),"./extension":()=>t.e(509).then(()=>()=>t(509)),"./style":()=>t.e(728).then(()=>()=>t(728))},n=(e,r)=>(t.R=r,r=t.o(o,e)?o[e]():Promise.resolve().then(()=>{throw new Error('Module "'+e+'" does not exist in container.')}),t.R=void 0,r),a=(e,r)=>{if(t.S){var o="default",n=t.S[o];if(n&&n!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return t.S[o]=e,t.I(o,r)}};t.d(r,{get:()=>n,init:()=>a})}},E={};function P(e){var r=E[e];if(void 0!==r)return r.exports;var t=E[e]={id:e,exports:{}};return j[e](t,t.exports,P),t.exports}P.m=j,P.c=E,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+"."+{509:"4ba7e0c1be6d39a3ec07",728:"c3ac4b62173ea8b3c44b",747:"28975bdde163d0eaf6e0"}[e]+".js?v="+{509:"4ba7e0c1be6d39a3ec07",728:"c3ac4b62173ea8b3c44b",747:"28975bdde163d0eaf6e0"}[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="gennaker-tools:",P.l=(t,o,n,a)=>{if(e[t])e[t].push(o);else{var i,u;if(void 0!==n)for(var l=document.getElementsByTagName("script"),s=0;s<l.length;s++){var f=l[s];if(f.getAttribute("src")==t||f.getAttribute("data-webpack")==r+n){i=f;break}}i||(u=!0,(i=document.createElement("script")).charset="utf-8",P.nc&&i.setAttribute("nonce",P.nc),i.setAttribute("data-webpack",r+n),i.src=t),e[t]=[o];var d=(r,o)=>{i.onerror=i.onload=null,clearTimeout(c);var n=e[t];if(delete e[t],i.parentNode&&i.parentNode.removeChild(i),n&&n.forEach(e=>e(o)),r)return r(o)},c=setTimeout(d.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=d.bind(null,i.onerror),i.onload=d.bind(null,i.onload),u&&document.head.appendChild(i)}},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,o)=>{o||(o=[]);var n=r[t];if(n||(n=r[t]={}),!(o.indexOf(n)>=0)){if(o.push(n),e[t])return e[t];P.o(P.S,t)||(P.S[t]={});var a=P.S[t],i="gennaker-tools",u=(e,r,t,o)=>{var n=a[e]=a[e]||{},u=n[r];(!u||!u.loaded&&(!o!=!u.eager?o:i>u.from))&&(n[r]={get:t,from:i,eager:!!o})},l=[];return"default"===t&&(u("@codemirror/autocomplete","6.19.1",()=>Promise.all([P.e(747),P.e(949)]).then(()=>()=>P(747))),u("gennaker-tools","0.1.4",()=>P.e(509).then(()=>()=>P(509)))),e[t]=l.length?Promise.all(l).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 o=t.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=t[o--].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),o=t[1]?r(t[1]):[];return t[2]&&(o.length++,o.push.apply(o,r(t[2]))),t[3]&&(o.push([]),o.push.apply(o,r(t[3]))),o},o=(e,r)=>{e=t(e),r=t(r);for(var o=0;;){if(o>=e.length)return o<r.length&&"u"!=(typeof r[o])[0];var n=e[o],a=(typeof n)[0];if(o>=r.length)return"u"==a;var i=r[o],u=(typeof i)[0];if(a!=u)return"o"==a&&"n"==u||"s"==u||"u"==a;if("o"!=a&&"u"!=a&&n!=i)return n<i;o++}},n=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 o=1,a=1;a<e.length;a++)o--,t+="u"==(typeof(u=e[a]))[0]?"-":(o>0?".":"")+(o=2,u);return t}var i=[];for(a=1;a<e.length;a++){var u=e[a];i.push(0===u?"not("+l()+")":1===u?"("+l()+" || "+l()+")":2===u?i.pop()+" "+i.pop():n(u))}return l();function l(){return i.pop().replace(/^\((.+)\)$/,"$1")}},a=(e,r)=>{if(0 in e){r=t(r);var o=e[0],n=o<0;n&&(o=-o-1);for(var i=0,u=1,l=!0;;u++,i++){var s,f,d=u<e.length?(typeof e[u])[0]:"";if(i>=r.length||"o"==(f=(typeof(s=r[i]))[0]))return!l||("u"==d?u>o&&!n:""==d!=n);if("u"==f){if(!l||"u"!=d)return!1}else if(l)if(d==f)if(u<=o){if(s!=e[u])return!1}else{if(n?s>e[u]:s<e[u])return!1;s!=e[u]&&(l=!1)}else if("s"!=d&&"n"!=d){if(n||u<=o)return!1;l=!1,u--}else{if(u<=o||f<d!=n)return!1;l=!1}else"s"!=d&&"n"!=d&&(l=!1,u--)}}var c=[],p=c.pop.bind(c);for(i=1;i<e.length;i++){var h=e[i];c.push(1==h?p()|p():2==h?p()&p():h?a(h,r):!p())}return!!p()},i=(e,r)=>e&&P.o(e,r),u=e=>(e.loaded=1,e.get()),l=e=>Object.keys(e).reduce((r,t)=>(e[t].eager&&(r[t]=e[t]),r),{}),s=(e,r,t,n)=>{var i=n?l(e[r]):e[r];return(r=Object.keys(i).reduce((e,r)=>!a(t,r)||e&&!o(e,r)?e:r,0))&&i[r]},f=(e,r,t)=>{var n=t?l(e[r]):e[r];return Object.keys(n).reduce((e,r)=>!e||!n[e].loaded&&o(e,r)?r:e,0)},d=(e,r,t,o)=>"Unsatisfied version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" (required "+n(o)+")",c=(e,r,t,o,a)=>{var i=e[t];return"No satisfying version ("+n(o)+")"+(a?" for eager consumption":"")+" of shared module "+t+" found in shared scope "+r+".\nAvailable versions: "+Object.keys(i).map(e=>e+" from "+i[e].from).join(", ")},p=e=>{throw new Error(e)},h=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},g=(e,r,t)=>t?t():((e,r)=>p("Shared module "+r+" doesn't exist in shared scope "+e))(e,r),b=(v=e=>function(r,t,o,n,a){var i=P.I(r);return i&&i.then&&!o?i.then(e.bind(e,r,P.S[r],t,!1,n,a)):e(r,P.S[r],t,o,n,a)})((e,r,t,o,n,a)=>{if(!i(r,t))return g(e,t,a);var l=s(r,t,n,o);return l?u(l):a?a():void p(c(r,e,t,n,o))}),m=v((e,r,t,o,n,l)=>{if(!i(r,t))return g(e,t,l);var s=f(r,t,o);return a(n,s)||h(d(r,t,s,n)),u(r[t][s])}),y={},w={389:()=>m("default","@jupyterlab/notebook",!1,[1,4,5,1]),460:()=>m("default","@jupyterlab/codemirror",!1,[1,4,5,1]),505:()=>b("default","@codemirror/autocomplete",!1,[1,6,0,1],()=>Promise.all([P.e(747),P.e(949)]).then(()=>()=>P(747))),591:()=>m("default","@jupyterlab/translation",!1,[1,4,5,1]),827:()=>m("default","@jupyterlab/apputils",!1,[1,4,6,1]),24:()=>m("default","@codemirror/view",!1,[1,6,9,6]),84:()=>m("default","@codemirror/language",!1,[1,6,0,0]),195:()=>m("default","@codemirror/state",!1,[1,6,2,0])},k={509:[389,460,505,591,827],949:[24,84,195]},S={},P.f.consumes=(e,r)=>{P.o(k,e)&&k[e].forEach(e=>{if(P.o(y,e))return r.push(y[e]);if(!S[e]){var t=r=>{y[e]=0,P.m[e]=t=>{delete P.c[e],t.exports=r()}};S[e]=!0;var o=r=>{delete y[e],P.m[e]=t=>{throw delete P.c[e],r}};try{var n=w[e]();n.then?r.push(y[e]=n.then(t).catch(o)):t(n)}catch(e){o(e)}}})},(()=>{var e={204:0};P.f.j=(r,t)=>{var o=P.o(e,r)?e[r]:void 0;if(0!==o)if(o)t.push(o[2]);else if(949!=r){var n=new Promise((t,n)=>o=e[r]=[t,n]);t.push(o[2]=n);var a=P.p+P.u(r),i=new Error;P.l(a,t=>{if(P.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var n=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+n+": "+a+")",i.name="ChunkLoadError",i.type=n,i.request=a,o[1](i)}},"chunk-"+r,r)}else e[r]=0};var r=(r,t)=>{var o,n,[a,i,u]=t,l=0;if(a.some(r=>0!==e[r])){for(o in i)P.o(i,o)&&(P.m[o]=i[o]);u&&u(P)}for(r&&r(t);l<a.length;l++)n=a[l],P.o(e,n)&&e[n]&&e[n][0](),e[n]=0},t=self.webpackChunkgennaker_tools=self.webpackChunkgennaker_tools||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),P.nc=void 0;var T=P(842);(_JUPYTERLAB=void 0===_JUPYTERLAB?{}:_JUPYTERLAB)["gennaker-tools"]=T})();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gennaker-tools",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "A JupyterLab extension to provide a restart-and-run-to-selected command variant that clears non-executed cell outputs.",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -7,11 +7,13 @@
7
7
  "id": "jp-mainmenu-run",
8
8
  "items": [
9
9
  {
10
- "command": "stateless:clear-restart-run-to-selected",
10
+ "command": "gennaker-tools:restart-run-stateless",
11
11
  "rank": 80
12
12
  }
13
13
  ]
14
14
  }
15
15
  ]
16
- }
16
+ },
17
+ "additionalProperties": false,
18
+ "type": "object"
17
19
  }
@@ -16,8 +16,10 @@ import {
16
16
  } from '@codemirror/autocomplete';
17
17
  import type { Completion } from '@codemirror/autocomplete';
18
18
 
19
- const RESTART_RUN_STATELESS = 'gennaker-tools:restart-run-stateless';
20
- const RESET_JUPYTERLAB = 'gennaker-tools:reset-jupyterlab';
19
+ namespace CommandIDs {
20
+ export const restartRunStateless = 'gennaker-tools:restart-run-stateless';
21
+ export const resetJupyterLab = 'gennaker-tools:reset-jupyterlab';
22
+ }
21
23
 
22
24
  /**
23
25
  * Initialization data for the gennaker-tools extension.
@@ -37,18 +39,17 @@ export const statelessRunPlugin: JupyterFrontEndPlugin<void> = {
37
39
  const trans = (translator ?? nullTranslator).load('jupyterlab');
38
40
  const { commands, shell } = app;
39
41
 
40
- console.log('JupyterLab extension gennaker-tools is activated!');
42
+ console.log('JupyterLab plugin gennaker-tools:stateless-run is activated!');
41
43
  // Add a command
42
44
 
43
45
  const isEnabled = () => {
44
- console.log('enabed', { tracker, shell });
45
46
  return (
46
47
  tracker.currentWidget !== null &&
47
48
  tracker.currentWidget === shell.currentWidget
48
49
  );
49
50
  };
50
51
 
51
- commands.addCommand(RESTART_RUN_STATELESS, {
52
+ commands.addCommand(CommandIDs.restartRunStateless, {
52
53
  label: 'Restart Kernel, Clear Outputs, and Run All Above Selected Cell',
53
54
  caption:
54
55
  'Clear all outputs, restart kernel, and run all cells above the selected cell',
@@ -56,7 +57,7 @@ export const statelessRunPlugin: JupyterFrontEndPlugin<void> = {
56
57
  execute: async (args: any) => {
57
58
  const orig = args['origin'];
58
59
  console.log(
59
- `${RESTART_RUN_STATELESS} has been called from... ${orig}.`
60
+ `${CommandIDs.restartRunStateless} has been called from... ${orig}.`
60
61
  );
61
62
  if (orig !== 'init') {
62
63
  // Clear all outputs
@@ -73,7 +74,7 @@ export const statelessRunPlugin: JupyterFrontEndPlugin<void> = {
73
74
  // Add the command to the command palette
74
75
  const category = trans.__('Notebook Operations');
75
76
  palette.addItem({
76
- command: RESTART_RUN_STATELESS,
77
+ command: CommandIDs.restartRunStateless,
77
78
  category,
78
79
  args: { origin: 'from palette' }
79
80
  });
@@ -94,10 +95,12 @@ export const reloadPlugin: JupyterFrontEndPlugin<void> = {
94
95
  palette: ICommandPalette,
95
96
  translator: ITranslator | null
96
97
  ) => {
98
+ console.log('JupyterLab plugin gennaker-tools:reload is activated!');
99
+
97
100
  const { commands } = app;
98
101
  const trans = (translator ?? nullTranslator).load('jupyterlab');
99
102
 
100
- commands.addCommand(RESET_JUPYTERLAB, {
103
+ commands.addCommand(CommandIDs.resetJupyterLab, {
101
104
  label: 'Reset JupyterLab',
102
105
  caption: 'Reset JupyterLab',
103
106
  isEnabled: () => true,
@@ -112,7 +115,7 @@ export const reloadPlugin: JupyterFrontEndPlugin<void> = {
112
115
  // Add the command to the command palette
113
116
  const category = trans.__('Reset');
114
117
  palette.addItem({
115
- command: RESET_JUPYTERLAB,
118
+ command: CommandIDs.resetJupyterLab,
116
119
  category,
117
120
  args: { origin: 'from palette' }
118
121
  });
@@ -171,6 +174,7 @@ export const snippetsPlugin: JupyterFrontEndPlugin<void> = {
171
174
  requires: [IEditorExtensionRegistry],
172
175
  optional: [],
173
176
  activate: (app: JupyterFrontEnd, registry: IEditorExtensionRegistry) => {
177
+ console.log('JupyterLab plugin gennaker-tools:snippets is activated!');
174
178
  registry.addExtension(
175
179
  Object.freeze({
176
180
  name: 'gennaker-tools:snippets',
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkgennaker_tools=self.webpackChunkgennaker_tools||[]).push([[509],{509:(e,t,o)=>{o.r(t),o.d(t,{default:()=>b,reloadPlugin:()=>c,snippetsPlugin:()=>m,statelessRunPlugin:()=>d});var n=o(389),a=o(827),r=o(591),s=o(460),l=o(505);const i="gennaker-tools:restart-run-stateless",p="gennaker-tools:reset-jupyterlab",d={id:"gennaker-tools:stateless-run",description:"A JupyterLab extension.",autoStart:!0,requires:[a.ICommandPalette,n.INotebookTracker],optional:[r.ITranslator],activate:(e,t,o,n)=>{const a=(null!=n?n:r.nullTranslator).load("jupyterlab"),{commands:s,shell:l}=e;console.log("JupyterLab extension gennaker-tools is activated!"),s.addCommand(i,{label:"Restart Kernel, Clear Outputs, and Run All Above Selected Cell",caption:"Clear all outputs, restart kernel, and run all cells above the selected cell",isEnabled:()=>(console.log("enabed",{tracker:o,shell:l}),null!==o.currentWidget&&o.currentWidget===l.currentWidget),execute:async e=>{const t=e.origin;console.log(`${i} has been called from... ${t}.`),"init"!==t&&await s.execute("apputils:run-all-enabled",{commands:["notebook:clear-all-cell-outputs","notebook:restart-and-run-to-selected"]})}});const p=a.__("Notebook Operations");t.addItem({command:i,category:p,args:{origin:"from palette"}})}},c={id:"gennaker-tools:reload",description:"A JupyterLab extension.",autoStart:!0,requires:[a.ICommandPalette],optional:[r.ITranslator],activate:(e,t,o)=>{const{commands:n}=e,a=(null!=o?o:r.nullTranslator).load("jupyterlab");n.addCommand(p,{label:"Reset JupyterLab",caption:"Reset JupyterLab",isEnabled:()=>!0,execute:e=>{"init"!==e.origin&&window.location.reload()}});const s=a.__("Reset");t.addItem({command:p,category:s,args:{origin:"from palette"}})}},u={properties:{snippets:{type:"array",title:"Codemirror snippets",description:"Snippets of the form accepted by Codemirrors snippetCompletion",items:{type:"object",properties:{type:{type:"string",enum:["class","constant","enum","function","interface","keyword","method","namespace","property","text","type","variable"]},body:{type:"string"},label:{type:"string"}},required:["type","body","label"]}}},additionalProperties:!1,type:"object"},m={id:"gennaker-tools:snippets",description:"A JupyterLab extension.",autoStart:!0,requires:[s.IEditorExtensionRegistry],optional:[],activate:(e,t)=>{t.addExtension(Object.freeze({name:"gennaker-tools:snippets",factory:()=>s.EditorExtensionRegistry.createConfigurableExtension(e=>(0,l.autocompletion)({override:[(0,l.completeFromList)(e.snippets.map(e=>{const{body:t,...o}=e;return(0,l.snippetCompletion)(t,o)}))]})),default:{snippets:[]},schema:u}))}},b=[d,c,m]}}]);
File without changes
File without changes
File without changes
File without changes
File without changes