diff --git a/docker/Dockerfile b/docker/Dockerfile deleted file mode 100644 index 3b8482a503ff6802c13466afeb92140d09812466..0000000000000000000000000000000000000000 --- a/docker/Dockerfile +++ /dev/null @@ -1,35 +0,0 @@ -FROM jupyter/minimal-notebook -USER root - -RUN mkdir /software -WORKDIR /software - -RUN wget 'https://www.paraview.org/files/v5.7/ParaView-5.7.0-osmesa-MPI-Linux-Python3.7-64bit.tar.gz' \ - && tar xf ParaView-5.7.0-osmesa-MPI-Linux-Python3.7-64bit.tar.gz \ - && rm ParaView-5.7.0-osmesa-MPI-Linux-Python3.7-64bit.tar.gz - -ENV PATH="/software/ParaView-5.7.0-osmesa-MPI-Linux-Python3.7-64bit/bin:${PATH}" -RUN apt-get update && apt-get -y install openssh-server net-tools \ - && rm -rf /var/lib/apt/lists/* - -USER $NB_UID -WORKDIR /home/$NB_USER/work - -COPY --chown=1000:100 pvlink /home/$NB_USER/.jupyter/pvlink -COPY --chown=1000:100 pv_server.py /home/$NB_USER/work/ -COPY --chown=1000:100 remoterenderer_test.ipynb /home/$NB_USER/work/ - -RUN pip install service_identity \ - voila \ - ipyvuetify voila-vuetify \ - /home/$NB_USER/.jupyter/pvlink \ - && jupyter labextension install --no-build \ - @jupyter-widgets/jupyterlab-manager \ - @jupyter-voila/jupyterlab-preview \ - jupyter-vuetify \ - /home/$NB_USER/.jupyter/pvlink/js \ - && jupyter lab build && jupyter lab clean \ - && npm cache clean --force \ - && rm -rf $CONDA_DIR/share/jupyter/lab/staging \ - && rm -rf /home/$NB_USER/.cache/yarn \ - && rm -rf /home/$NB_USER/.node-gyp \ No newline at end of file diff --git a/docker/pv_server.py b/docker/pv_server.py deleted file mode 100644 index d429c47016b11519b113d35c138c9fbc2be45744..0000000000000000000000000000000000000000 --- a/docker/pv_server.py +++ /dev/null @@ -1,62 +0,0 @@ -# add paraview modules -import sys -sys.path.append('/home/grosch/Devel/install/ParaView-v5.6.0/build/lib/python3.6/site-packages/') - -# import to process args -import os - -# import paraview modules. -from paraview.web import pv_wslink -from paraview.web import protocols as pv_protocols - -from paraview import simple -from wslink import server - -try: - import argparse -except ImportError: - # since Python 2.6 and earlier don't have argparse, we simply provide - # the source for the same as _argparse and we use it instead. - from vtk.util import _argparse as argparse - -# ============================================================================= -# Create custom PVServerProtocol class to handle clients requests -# ============================================================================= - -class _DemoServer(pv_wslink.PVServerProtocol): - authKey = "wslink-secret" - def initialize(self): - # Bring used components - self.registerVtkWebProtocol(pv_protocols.ParaViewWebMouseHandler()) - self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPort()) - self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPortImageDelivery()) - self.updateSecret(_DemoServer.authKey) - - # Disable interactor-based render calls - simple.GetRenderView().EnableRenderOnInteraction = 0 - simple.GetRenderView().Background = [0,0,0] - cone = simple.Cone() - simple.Show(cone) - simple.Render() - - # Update interaction mode - pxm = simple.servermanager.ProxyManager() - interactionProxy = pxm.GetProxy('settings', 'RenderViewInteractionSettings') - interactionProxy.Camera3DManipulators = ['Rotate', 'Pan', 'Zoom', 'Pan', 'Roll', 'Pan', 'Zoom', 'Rotate', 'Zoom'] - -# ============================================================================= -# Main: Parse args and start server -# ============================================================================= - -if __name__ == "__main__": - # Create argument parser - parser = argparse.ArgumentParser(description="ParaViewWeb Demo") - - # Add default arguments - server.add_arguments(parser) - - # Extract arguments - args = parser.parse_args() - - # Start server - server.start_webserver(options=args, protocol=_DemoServer) \ No newline at end of file diff --git a/docker/pvlink/MANIFEST.in b/docker/pvlink/MANIFEST.in deleted file mode 100644 index a5ba7c1212ed3cbf612464a290d05db4a796c8fa..0000000000000000000000000000000000000000 --- a/docker/pvlink/MANIFEST.in +++ /dev/null @@ -1,2 +0,0 @@ -recursive-include pvlink/static *.* -include pvlink.json diff --git a/docker/pvlink/README.md b/docker/pvlink/README.md deleted file mode 100644 index d24623785198c7583b558ebb0f7e976ebad028de..0000000000000000000000000000000000000000 --- a/docker/pvlink/README.md +++ /dev/null @@ -1,35 +0,0 @@ -pvlink -=============================== - -Displays the ParaviewWeb RemoteRenderer in a Jupyter Notebook - -Installation ------------- - -To install use pip: - - $ pip install pvlink - $ jupyter nbextension enable --py --sys-prefix pvlink - -To install for jupyterlab - - $ jupyter labextension install pvlink - -For a development installation (requires npm), - - $ git clone https://github.com//pvlink.git - $ cd pvlink - $ pip install -e . - $ jupyter nbextension install --py --symlink --sys-prefix pvlink - $ jupyter nbextension enable --py --sys-prefix pvlink - $ jupyter labextension install js - -When actively developing your extension, build Jupyter Lab with the command: - - $ jupyter lab --watch - -This take a minute or so to get started, but then allows you to hot-reload your javascript extension. -To see a change, save your javascript, watch the terminal for an update. - -Note on first `jupyter lab --watch`, you may need to touch a file to get Jupyter Lab to open. - diff --git a/docker/pvlink/RELEASE.md b/docker/pvlink/RELEASE.md deleted file mode 100644 index d6bc7932c158377af05f436e11468dccc7ec070f..0000000000000000000000000000000000000000 --- a/docker/pvlink/RELEASE.md +++ /dev/null @@ -1,20 +0,0 @@ -- To release a new version of pvlink on PyPI: - -Update _version.py (set release version, remove 'dev') -git add the _version.py file and git commit -`python setup.py sdist upload` -`python setup.py bdist_wheel upload` -`git tag -a X.X.X -m 'comment'` -Update _version.py (add 'dev' and increment minor) -git add and git commit -git push -git push --tags - -- To release a new version of pvlink on NPM: - -``` -# clean out the `dist` and `node_modules` directories -git clean -fdx -npm install -npm publish -``` \ No newline at end of file diff --git a/docker/pvlink/js/README.md b/docker/pvlink/js/README.md deleted file mode 100644 index a2d42d8fbc010645bbc3768e2071ef06f75bb46c..0000000000000000000000000000000000000000 --- a/docker/pvlink/js/README.md +++ /dev/null @@ -1,11 +0,0 @@ -Displays the ParaviewWeb RemoteRenderer in a Jupyter Notebook - -Package Install ---------------- - -**Prerequisites** -- [node](http://nodejs.org/) - -```bash -npm install --save pvlink -``` diff --git a/docker/pvlink/js/lib/embed.js b/docker/pvlink/js/lib/embed.js deleted file mode 100644 index 84c6809d485106d85af765bfb60ac3293b4cb078..0000000000000000000000000000000000000000 --- a/docker/pvlink/js/lib/embed.js +++ /dev/null @@ -1,9 +0,0 @@ -// Entry point for the unpkg bundle containing custom model definitions. -// -// It differs from the notebook bundle in that it does not need to define a -// dynamic baseURL for the static assets and may load some css that would -// already be loaded by the notebook otherwise. - -// Export widget models and views, and the npm package version number. -module.exports = require('./remoterenderer.js'); -module.exports['version'] = require('../package.json').version; diff --git a/docker/pvlink/js/lib/extension.js b/docker/pvlink/js/lib/extension.js deleted file mode 100644 index bdbe3e4ca3e18b468c60e8025a73fea332971f04..0000000000000000000000000000000000000000 --- a/docker/pvlink/js/lib/extension.js +++ /dev/null @@ -1,25 +0,0 @@ -// This file contains the javascript that is run when the notebook is loaded. -// It contains some requirejs configuration and the `load_ipython_extension` -// which is required for any notebook extension. -// -// Some static assets may be required by the custom widget javascript. The base -// url for the notebook is not known at build time and is therefore computed -// dynamically. -__webpack_public_path__ = document.querySelector('body').getAttribute('data-base-url') + 'nbextensions/pvlink'; - - -// Configure requirejs -if (window.require) { - window.require.config({ - map: { - "*" : { - "pvlink": "nbextensions/pvlink/index", - } - } - }); -} - -// Export the required load_ipython_extension -module.exports = { - load_ipython_extension: function() {} -}; diff --git a/docker/pvlink/js/lib/index.js b/docker/pvlink/js/lib/index.js deleted file mode 100644 index 8c04d96da084ffef45f7f012e6c2755888ff3d54..0000000000000000000000000000000000000000 --- a/docker/pvlink/js/lib/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Export widget models and views, and the npm package version number. -module.exports = require('./remoterenderer.js'); -module.exports['version'] = require('../package.json').version; diff --git a/docker/pvlink/js/lib/labplugin.js b/docker/pvlink/js/lib/labplugin.js deleted file mode 100644 index d5318e98dcfc0ea740c7c6916b4b4d929009c520..0000000000000000000000000000000000000000 --- a/docker/pvlink/js/lib/labplugin.js +++ /dev/null @@ -1,16 +0,0 @@ -var plugin = require('./index'); -var base = require('@jupyter-widgets/base'); - -module.exports = { - id: 'pvlink', - requires: [base.IJupyterWidgetRegistry], - activate: function(app, widgets) { - widgets.registerWidget({ - name: 'pvlink', - version: plugin.version, - exports: plugin - }); - }, - autoStart: true -}; - diff --git a/docker/pvlink/js/lib/remoterenderer.js b/docker/pvlink/js/lib/remoterenderer.js deleted file mode 100644 index 8fc7f085e032dcb44fea4bba794f56a9a3158d19..0000000000000000000000000000000000000000 --- a/docker/pvlink/js/lib/remoterenderer.js +++ /dev/null @@ -1,73 +0,0 @@ -var widgets = require('@jupyter-widgets/base'); -var _ = require('lodash'); - -import ParaViewWebClient from 'paraviewweb/src/IO/WebSocket/ParaViewWebClient'; -import RemoteRenderer from 'paraviewweb/src/NativeUI/Canvas/RemoteRenderer'; -import SizeHelper from "paraviewweb/src/Common/Misc/SizeHelper"; -import SmartConnect from 'wslink/src/SmartConnect'; - -export var RemoteRendererModel = widgets.DOMWidgetModel.extend({ - defaults: _.extend(widgets.DOMWidgetModel.prototype.defaults(), { - _model_name: 'RemoteRendererModel', - _view_name: 'RemoteRendererView', - _model_module: 'pvlink', - _view_module: 'pvlink', - _model_module_version: '0.1.0', - _view_module_version: '0.1.0', - }) -}); - -export var RemoteRendererView = widgets.DOMWidgetView.extend({ - render: function () { - var that = this; - - // div to hold the canvas of the RemoteRenderer. - var render_div = document.createElement('div'); - render_div.style.height = '100%'; - render_div.style.width = '100%'; - this.el.appendChild(render_div); - - /* Get configuration for SmartConnect. - * SmartConnect will establish a direct - * WebSocket connection using Autobahn. - */ - var config = { - sessionURL: this.model.get('sessionURL'), - secret: this.model.get('authKey') - }; - var smartConnect = SmartConnect.newInstance({ config: config }); - - smartConnect.onConnectionReady(function (connection) { - // Create the RemoteRenderer - var pvwClient = ParaViewWebClient.createClient(connection, [ - 'MouseHandler', - 'ViewPort', - 'ViewPortImageDelivery'] - ); - var renderer = new RemoteRenderer(pvwClient); - renderer.setContainer(render_div); - renderer.setView(that.model.get('viewID')); - renderer.onImageReady(function () { - // Resize when the renderer is placed within a widget. - if (that.el.style.width != '100%') { - that.el.style.width = '100%'; - renderer.resize(); - } - console.log("We are good."); - }); - - // Handle size changes when the entire window is resized. - SizeHelper.onSizeChange(function () { - renderer.resize(); - }); - SizeHelper.startListening(); - - // Explicit render called from python side. - that.model.on('change:_update', function () { - renderer.render(true); - }, that); - }); - - smartConnect.connect(); - }, -}); diff --git a/docker/pvlink/js/package.json b/docker/pvlink/js/package.json deleted file mode 100644 index 6a4417948970b58eb43e8393f1ad6640b80f6c80..0000000000000000000000000000000000000000 --- a/docker/pvlink/js/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "pvlink", - "version": "0.1.0", - "description": "Displays the ParaviewWeb RemoteRenderer in a Jupyter Notebook", - "author": "Alice Grosch", - "main": "lib/index.js", - "repository": { - "type": "git", - "url": "https://github.com//pvlink.git" - }, - "keywords": [ - "jupyter", - "widgets", - "ipython", - "ipywidgets", - "jupyterlab-extension" - ], - "files": [ - "lib/**/*.js", - "dist/*.js" - ], - "scripts": { - "clean": "rimraf dist/", - "prepublish": "webpack", - "build": "webpack", - "watch": "webpack --watch --mode=development", - "test": "echo \"Error: no test specified\" && exit 1" - }, - "devDependencies": { - "webpack": "^3.5.5", - "rimraf": "^2.6.1" - }, - "dependencies": { - "@jupyter-widgets/base": "^1.1 || ^2", - "lodash": "^4.17.4", - "hammerjs": "^2.0.8", - "monologue.js": "^0.3.5", - "paraviewweb": "^3.2.12", - "wslink": "^0.1.12" - }, - "jupyterlab": { - "extension": "lib/labplugin" - } -} diff --git a/docker/pvlink/js/webpack.config.js b/docker/pvlink/js/webpack.config.js deleted file mode 100644 index 372bbe234cdc00cb05c77ebb80b94cdc5597b084..0000000000000000000000000000000000000000 --- a/docker/pvlink/js/webpack.config.js +++ /dev/null @@ -1,72 +0,0 @@ -var path = require('path'); -var version = require('./package.json').version; - -// Custom webpack rules are generally the same for all webpack bundles, hence -// stored in a separate local variable. -var rules = [ - { test: /\.css$/, use: ['style-loader', 'css-loader']} -] - - -module.exports = [ - {// Notebook extension - // - // This bundle only contains the part of the JavaScript that is run on - // load of the notebook. This section generally only performs - // some configuration for requirejs, and provides the legacy - // "load_ipython_extension" function which is required for any notebook - // extension. - // - entry: './lib/extension.js', - output: { - filename: 'extension.js', - path: path.resolve(__dirname, '..', 'pvlink', 'static'), - libraryTarget: 'amd' - } - }, - {// Bundle for the notebook containing the custom widget views and models - // - // This bundle contains the implementation for the custom widget views and - // custom widget. - // It must be an amd module - // - entry: './lib/index.js', - output: { - filename: 'index.js', - path: path.resolve(__dirname, '..', 'pvlink', 'static'), - libraryTarget: 'amd' - }, - devtool: 'source-map', - module: { - rules: rules - }, - externals: ['@jupyter-widgets/base'] - }, - {// Embeddable pvlink bundle - // - // This bundle is generally almost identical to the notebook bundle - // containing the custom widget views and models. - // - // The only difference is in the configuration of the webpack public path - // for the static assets. - // - // It will be automatically distributed by unpkg to work with the static - // widget embedder. - // - // The target bundle is always `dist/index.js`, which is the path required - // by the custom widget embedder. - // - entry: './lib/embed.js', - output: { - filename: 'index.js', - path: path.resolve(__dirname, 'dist'), - libraryTarget: 'amd', - publicPath: 'https://unpkg.com/pvlink@' + version + '/dist/' - }, - devtool: 'source-map', - module: { - rules: rules - }, - externals: ['@jupyter-widgets/base'] - } -]; diff --git a/docker/pvlink/pvlink.json b/docker/pvlink/pvlink.json deleted file mode 100644 index ce45f56f6b937a77442d9c1530747c16508750b3..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "load_extensions": { - "pvlink/extension": true - } -} diff --git a/docker/pvlink/pvlink/MANIFEST.in b/docker/pvlink/pvlink/MANIFEST.in deleted file mode 100644 index a5ba7c1212ed3cbf612464a290d05db4a796c8fa..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/MANIFEST.in +++ /dev/null @@ -1,2 +0,0 @@ -recursive-include pvlink/static *.* -include pvlink.json diff --git a/docker/pvlink/pvlink/README.md b/docker/pvlink/pvlink/README.md deleted file mode 100644 index d24623785198c7583b558ebb0f7e976ebad028de..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/README.md +++ /dev/null @@ -1,35 +0,0 @@ -pvlink -=============================== - -Displays the ParaviewWeb RemoteRenderer in a Jupyter Notebook - -Installation ------------- - -To install use pip: - - $ pip install pvlink - $ jupyter nbextension enable --py --sys-prefix pvlink - -To install for jupyterlab - - $ jupyter labextension install pvlink - -For a development installation (requires npm), - - $ git clone https://github.com//pvlink.git - $ cd pvlink - $ pip install -e . - $ jupyter nbextension install --py --symlink --sys-prefix pvlink - $ jupyter nbextension enable --py --sys-prefix pvlink - $ jupyter labextension install js - -When actively developing your extension, build Jupyter Lab with the command: - - $ jupyter lab --watch - -This take a minute or so to get started, but then allows you to hot-reload your javascript extension. -To see a change, save your javascript, watch the terminal for an update. - -Note on first `jupyter lab --watch`, you may need to touch a file to get Jupyter Lab to open. - diff --git a/docker/pvlink/pvlink/RELEASE.md b/docker/pvlink/pvlink/RELEASE.md deleted file mode 100644 index d6bc7932c158377af05f436e11468dccc7ec070f..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/RELEASE.md +++ /dev/null @@ -1,20 +0,0 @@ -- To release a new version of pvlink on PyPI: - -Update _version.py (set release version, remove 'dev') -git add the _version.py file and git commit -`python setup.py sdist upload` -`python setup.py bdist_wheel upload` -`git tag -a X.X.X -m 'comment'` -Update _version.py (add 'dev' and increment minor) -git add and git commit -git push -git push --tags - -- To release a new version of pvlink on NPM: - -``` -# clean out the `dist` and `node_modules` directories -git clean -fdx -npm install -npm publish -``` \ No newline at end of file diff --git a/docker/pvlink/pvlink/__init__.py b/docker/pvlink/pvlink/__init__.py deleted file mode 100644 index cb1c0b2cc962d83068190085d8d66ba7e11f4d72..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -from ._version import version_info, __version__ - -from .remoterenderer import * - -def _jupyter_nbextension_paths(): - return [{ - 'section': 'notebook', - 'src': 'static', - 'dest': 'pvlink', - 'require': 'pvlink/extension' - }] diff --git a/docker/pvlink/pvlink/_version.py b/docker/pvlink/pvlink/_version.py deleted file mode 100644 index ed74cad81423128d33c830d30531df907ca88a33..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/_version.py +++ /dev/null @@ -1,6 +0,0 @@ -version_info = (0, 1, 0, 'alpha', 0) - -_specifier_ = {'alpha': 'a', 'beta': 'b', 'candidate': 'rc', 'final': ''} - -__version__ = '%s.%s.%s%s'%(version_info[0], version_info[1], version_info[2], - '' if version_info[3]=='final' else _specifier_[version_info[3]]+str(version_info[4])) diff --git a/docker/pvlink/pvlink/js/README.md b/docker/pvlink/pvlink/js/README.md deleted file mode 100644 index a2d42d8fbc010645bbc3768e2071ef06f75bb46c..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/js/README.md +++ /dev/null @@ -1,11 +0,0 @@ -Displays the ParaviewWeb RemoteRenderer in a Jupyter Notebook - -Package Install ---------------- - -**Prerequisites** -- [node](http://nodejs.org/) - -```bash -npm install --save pvlink -``` diff --git a/docker/pvlink/pvlink/js/lib/embed.js b/docker/pvlink/pvlink/js/lib/embed.js deleted file mode 100644 index 84c6809d485106d85af765bfb60ac3293b4cb078..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/js/lib/embed.js +++ /dev/null @@ -1,9 +0,0 @@ -// Entry point for the unpkg bundle containing custom model definitions. -// -// It differs from the notebook bundle in that it does not need to define a -// dynamic baseURL for the static assets and may load some css that would -// already be loaded by the notebook otherwise. - -// Export widget models and views, and the npm package version number. -module.exports = require('./remoterenderer.js'); -module.exports['version'] = require('../package.json').version; diff --git a/docker/pvlink/pvlink/js/lib/extension.js b/docker/pvlink/pvlink/js/lib/extension.js deleted file mode 100644 index bdbe3e4ca3e18b468c60e8025a73fea332971f04..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/js/lib/extension.js +++ /dev/null @@ -1,25 +0,0 @@ -// This file contains the javascript that is run when the notebook is loaded. -// It contains some requirejs configuration and the `load_ipython_extension` -// which is required for any notebook extension. -// -// Some static assets may be required by the custom widget javascript. The base -// url for the notebook is not known at build time and is therefore computed -// dynamically. -__webpack_public_path__ = document.querySelector('body').getAttribute('data-base-url') + 'nbextensions/pvlink'; - - -// Configure requirejs -if (window.require) { - window.require.config({ - map: { - "*" : { - "pvlink": "nbextensions/pvlink/index", - } - } - }); -} - -// Export the required load_ipython_extension -module.exports = { - load_ipython_extension: function() {} -}; diff --git a/docker/pvlink/pvlink/js/lib/index.js b/docker/pvlink/pvlink/js/lib/index.js deleted file mode 100644 index 8c04d96da084ffef45f7f012e6c2755888ff3d54..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/js/lib/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Export widget models and views, and the npm package version number. -module.exports = require('./remoterenderer.js'); -module.exports['version'] = require('../package.json').version; diff --git a/docker/pvlink/pvlink/js/lib/labplugin.js b/docker/pvlink/pvlink/js/lib/labplugin.js deleted file mode 100644 index d5318e98dcfc0ea740c7c6916b4b4d929009c520..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/js/lib/labplugin.js +++ /dev/null @@ -1,16 +0,0 @@ -var plugin = require('./index'); -var base = require('@jupyter-widgets/base'); - -module.exports = { - id: 'pvlink', - requires: [base.IJupyterWidgetRegistry], - activate: function(app, widgets) { - widgets.registerWidget({ - name: 'pvlink', - version: plugin.version, - exports: plugin - }); - }, - autoStart: true -}; - diff --git a/docker/pvlink/pvlink/js/lib/remoterenderer.js b/docker/pvlink/pvlink/js/lib/remoterenderer.js deleted file mode 100644 index 8fc7f085e032dcb44fea4bba794f56a9a3158d19..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/js/lib/remoterenderer.js +++ /dev/null @@ -1,73 +0,0 @@ -var widgets = require('@jupyter-widgets/base'); -var _ = require('lodash'); - -import ParaViewWebClient from 'paraviewweb/src/IO/WebSocket/ParaViewWebClient'; -import RemoteRenderer from 'paraviewweb/src/NativeUI/Canvas/RemoteRenderer'; -import SizeHelper from "paraviewweb/src/Common/Misc/SizeHelper"; -import SmartConnect from 'wslink/src/SmartConnect'; - -export var RemoteRendererModel = widgets.DOMWidgetModel.extend({ - defaults: _.extend(widgets.DOMWidgetModel.prototype.defaults(), { - _model_name: 'RemoteRendererModel', - _view_name: 'RemoteRendererView', - _model_module: 'pvlink', - _view_module: 'pvlink', - _model_module_version: '0.1.0', - _view_module_version: '0.1.0', - }) -}); - -export var RemoteRendererView = widgets.DOMWidgetView.extend({ - render: function () { - var that = this; - - // div to hold the canvas of the RemoteRenderer. - var render_div = document.createElement('div'); - render_div.style.height = '100%'; - render_div.style.width = '100%'; - this.el.appendChild(render_div); - - /* Get configuration for SmartConnect. - * SmartConnect will establish a direct - * WebSocket connection using Autobahn. - */ - var config = { - sessionURL: this.model.get('sessionURL'), - secret: this.model.get('authKey') - }; - var smartConnect = SmartConnect.newInstance({ config: config }); - - smartConnect.onConnectionReady(function (connection) { - // Create the RemoteRenderer - var pvwClient = ParaViewWebClient.createClient(connection, [ - 'MouseHandler', - 'ViewPort', - 'ViewPortImageDelivery'] - ); - var renderer = new RemoteRenderer(pvwClient); - renderer.setContainer(render_div); - renderer.setView(that.model.get('viewID')); - renderer.onImageReady(function () { - // Resize when the renderer is placed within a widget. - if (that.el.style.width != '100%') { - that.el.style.width = '100%'; - renderer.resize(); - } - console.log("We are good."); - }); - - // Handle size changes when the entire window is resized. - SizeHelper.onSizeChange(function () { - renderer.resize(); - }); - SizeHelper.startListening(); - - // Explicit render called from python side. - that.model.on('change:_update', function () { - renderer.render(true); - }, that); - }); - - smartConnect.connect(); - }, -}); diff --git a/docker/pvlink/pvlink/js/package.json b/docker/pvlink/pvlink/js/package.json deleted file mode 100644 index 1fab78cf58533be0fcbb6446ddc67ec1d888ced6..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/js/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "pvlink", - "version": "0.1.0", - "description": "Displays the ParaviewWeb RemoteRenderer in a Jupyter Notebook", - "author": "Alice Grosch", - "main": "lib/index.js", - "repository": { - "type": "git", - "url": "https://github.com//pvlink.git" - }, - "keywords": [ - "jupyter", - "widgets", - "ipython", - "ipywidgets", - "jupyterlab-extension" - ], - "files": [ - "lib/**/*.js", - "dist/*.js" - ], - "scripts": { - "clean": "rimraf dist/", - "prepublish": "webpack", - "build": "webpack", - "watch": "webpack --watch --mode=development", - "test": "echo \"Error: no test specified\" && exit 1" - }, - "devDependencies": { - "webpack": "^3.5.5", - "rimraf": "^2.6.1", - "hammerjs": "^2.0.8", - "monologue.js": "^0.3.5" - }, - "dependencies": { - "@jupyter-widgets/base": "^1.1 || ^2", - "lodash": "^4.17.4", - "paraviewweb": "^3.2.12", - "wslink": "^0.1.12" - }, - "jupyterlab": { - "extension": "lib/labplugin" - } -} diff --git a/docker/pvlink/pvlink/js/webpack.config.js b/docker/pvlink/pvlink/js/webpack.config.js deleted file mode 100644 index 372bbe234cdc00cb05c77ebb80b94cdc5597b084..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/js/webpack.config.js +++ /dev/null @@ -1,72 +0,0 @@ -var path = require('path'); -var version = require('./package.json').version; - -// Custom webpack rules are generally the same for all webpack bundles, hence -// stored in a separate local variable. -var rules = [ - { test: /\.css$/, use: ['style-loader', 'css-loader']} -] - - -module.exports = [ - {// Notebook extension - // - // This bundle only contains the part of the JavaScript that is run on - // load of the notebook. This section generally only performs - // some configuration for requirejs, and provides the legacy - // "load_ipython_extension" function which is required for any notebook - // extension. - // - entry: './lib/extension.js', - output: { - filename: 'extension.js', - path: path.resolve(__dirname, '..', 'pvlink', 'static'), - libraryTarget: 'amd' - } - }, - {// Bundle for the notebook containing the custom widget views and models - // - // This bundle contains the implementation for the custom widget views and - // custom widget. - // It must be an amd module - // - entry: './lib/index.js', - output: { - filename: 'index.js', - path: path.resolve(__dirname, '..', 'pvlink', 'static'), - libraryTarget: 'amd' - }, - devtool: 'source-map', - module: { - rules: rules - }, - externals: ['@jupyter-widgets/base'] - }, - {// Embeddable pvlink bundle - // - // This bundle is generally almost identical to the notebook bundle - // containing the custom widget views and models. - // - // The only difference is in the configuration of the webpack public path - // for the static assets. - // - // It will be automatically distributed by unpkg to work with the static - // widget embedder. - // - // The target bundle is always `dist/index.js`, which is the path required - // by the custom widget embedder. - // - entry: './lib/embed.js', - output: { - filename: 'index.js', - path: path.resolve(__dirname, 'dist'), - libraryTarget: 'amd', - publicPath: 'https://unpkg.com/pvlink@' + version + '/dist/' - }, - devtool: 'source-map', - module: { - rules: rules - }, - externals: ['@jupyter-widgets/base'] - } -]; diff --git a/docker/pvlink/pvlink/pv_server.py b/docker/pvlink/pvlink/pv_server.py deleted file mode 100644 index d429c47016b11519b113d35c138c9fbc2be45744..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/pv_server.py +++ /dev/null @@ -1,62 +0,0 @@ -# add paraview modules -import sys -sys.path.append('/home/grosch/Devel/install/ParaView-v5.6.0/build/lib/python3.6/site-packages/') - -# import to process args -import os - -# import paraview modules. -from paraview.web import pv_wslink -from paraview.web import protocols as pv_protocols - -from paraview import simple -from wslink import server - -try: - import argparse -except ImportError: - # since Python 2.6 and earlier don't have argparse, we simply provide - # the source for the same as _argparse and we use it instead. - from vtk.util import _argparse as argparse - -# ============================================================================= -# Create custom PVServerProtocol class to handle clients requests -# ============================================================================= - -class _DemoServer(pv_wslink.PVServerProtocol): - authKey = "wslink-secret" - def initialize(self): - # Bring used components - self.registerVtkWebProtocol(pv_protocols.ParaViewWebMouseHandler()) - self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPort()) - self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPortImageDelivery()) - self.updateSecret(_DemoServer.authKey) - - # Disable interactor-based render calls - simple.GetRenderView().EnableRenderOnInteraction = 0 - simple.GetRenderView().Background = [0,0,0] - cone = simple.Cone() - simple.Show(cone) - simple.Render() - - # Update interaction mode - pxm = simple.servermanager.ProxyManager() - interactionProxy = pxm.GetProxy('settings', 'RenderViewInteractionSettings') - interactionProxy.Camera3DManipulators = ['Rotate', 'Pan', 'Zoom', 'Pan', 'Roll', 'Pan', 'Zoom', 'Rotate', 'Zoom'] - -# ============================================================================= -# Main: Parse args and start server -# ============================================================================= - -if __name__ == "__main__": - # Create argument parser - parser = argparse.ArgumentParser(description="ParaViewWeb Demo") - - # Add default arguments - server.add_arguments(parser) - - # Extract arguments - args = parser.parse_args() - - # Start server - server.start_webserver(options=args, protocol=_DemoServer) \ No newline at end of file diff --git a/docker/pvlink/pvlink/pvlink.json b/docker/pvlink/pvlink/pvlink.json deleted file mode 100644 index ce45f56f6b937a77442d9c1530747c16508750b3..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/pvlink.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "load_extensions": { - "pvlink/extension": true - } -} diff --git a/docker/pvlink/pvlink/pvlink/__init__.py b/docker/pvlink/pvlink/pvlink/__init__.py deleted file mode 100644 index cb1c0b2cc962d83068190085d8d66ba7e11f4d72..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/pvlink/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -from ._version import version_info, __version__ - -from .remoterenderer import * - -def _jupyter_nbextension_paths(): - return [{ - 'section': 'notebook', - 'src': 'static', - 'dest': 'pvlink', - 'require': 'pvlink/extension' - }] diff --git a/docker/pvlink/pvlink/pvlink/_version.py b/docker/pvlink/pvlink/pvlink/_version.py deleted file mode 100644 index ed74cad81423128d33c830d30531df907ca88a33..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/pvlink/_version.py +++ /dev/null @@ -1,6 +0,0 @@ -version_info = (0, 1, 0, 'alpha', 0) - -_specifier_ = {'alpha': 'a', 'beta': 'b', 'candidate': 'rc', 'final': ''} - -__version__ = '%s.%s.%s%s'%(version_info[0], version_info[1], version_info[2], - '' if version_info[3]=='final' else _specifier_[version_info[3]]+str(version_info[4])) diff --git a/docker/pvlink/pvlink/pvlink/remoterenderer.py b/docker/pvlink/pvlink/pvlink/remoterenderer.py deleted file mode 100644 index 0f5937846cf4015962adf10f0de88493531dd6f7..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/pvlink/remoterenderer.py +++ /dev/null @@ -1,34 +0,0 @@ -import ipywidgets as widgets -from traitlets import Unicode, Int - -@widgets.register -class RemoteRenderer(widgets.DOMWidget): - """ParaviewWeb RemoteRenderer for the Jupyter Notebook.""" - _view_name = Unicode('RemoteRendererView').tag(sync=True) - _model_name = Unicode('RemoteRendererModel').tag(sync=True) - _view_module = Unicode('pvlink').tag(sync=True) - _model_module = Unicode('pvlink').tag(sync=True) - _view_module_version = Unicode('^0.1.0').tag(sync=True) - _model_module_version = Unicode('^0.1.0').tag(sync=True) - - # URL to establish a websocket connection to. - sessionURL = Unicode('ws://localhost:8080/ws').tag(sync=True) - # Authentication key for clients to connect to the WebSocket. - authKey = Unicode('wslink-secret').tag(sync=True) - # ViewID of the view to connect to (only relevant - # if multiple views exist on the server side). - viewID = Unicode("-1").tag(sync=True) - # Placeholder to force rendering updates on change. - _update = Int(0).tag(sync=True) - - - def __init__(self, sessionURL='ws://localhost:8080/ws', authKey='wslink-secret', viewID='-1', *args, **kwargs): - super(RemoteRenderer, self).__init__(*args, **kwargs) - self.sessionURL = sessionURL - self.authKey = authKey - self.viewID = viewID - - - def update_render(self): - """Explicit call for the renderer on the javascript side to render.""" - self._update += 1 \ No newline at end of file diff --git a/docker/pvlink/pvlink/remoterenderer.py b/docker/pvlink/pvlink/remoterenderer.py deleted file mode 100644 index 0f5937846cf4015962adf10f0de88493531dd6f7..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/remoterenderer.py +++ /dev/null @@ -1,34 +0,0 @@ -import ipywidgets as widgets -from traitlets import Unicode, Int - -@widgets.register -class RemoteRenderer(widgets.DOMWidget): - """ParaviewWeb RemoteRenderer for the Jupyter Notebook.""" - _view_name = Unicode('RemoteRendererView').tag(sync=True) - _model_name = Unicode('RemoteRendererModel').tag(sync=True) - _view_module = Unicode('pvlink').tag(sync=True) - _model_module = Unicode('pvlink').tag(sync=True) - _view_module_version = Unicode('^0.1.0').tag(sync=True) - _model_module_version = Unicode('^0.1.0').tag(sync=True) - - # URL to establish a websocket connection to. - sessionURL = Unicode('ws://localhost:8080/ws').tag(sync=True) - # Authentication key for clients to connect to the WebSocket. - authKey = Unicode('wslink-secret').tag(sync=True) - # ViewID of the view to connect to (only relevant - # if multiple views exist on the server side). - viewID = Unicode("-1").tag(sync=True) - # Placeholder to force rendering updates on change. - _update = Int(0).tag(sync=True) - - - def __init__(self, sessionURL='ws://localhost:8080/ws', authKey='wslink-secret', viewID='-1', *args, **kwargs): - super(RemoteRenderer, self).__init__(*args, **kwargs) - self.sessionURL = sessionURL - self.authKey = authKey - self.viewID = viewID - - - def update_render(self): - """Explicit call for the renderer on the javascript side to render.""" - self._update += 1 \ No newline at end of file diff --git a/docker/pvlink/pvlink/remoterenderer_test.ipynb b/docker/pvlink/pvlink/remoterenderer_test.ipynb deleted file mode 100644 index 420e318f3369a9a75e225a34af4a54f9d6bef3c8..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/remoterenderer_test.ipynb +++ /dev/null @@ -1,103 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "from pvlink import RemoteRenderer" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "b3d897da337443239c15f5346e046e55", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "RemoteRenderer()" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "renderer = RemoteRenderer()\n", - "# renderer" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "from ipywidgets import Box" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "4428cc6539af4c0eb23f822bd10873df", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Box(children=(RemoteRenderer(),), layout=Layout(height='500px'))" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "out = Box(children=[renderer])\n", - "out.layout.height = '500px'\n", - "out" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.9" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/docker/pvlink/pvlink/setup.cfg b/docker/pvlink/pvlink/setup.cfg deleted file mode 100644 index 3c6e79cf31da1c0433d2fa666bf50b53f6359f26..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[bdist_wheel] -universal=1 diff --git a/docker/pvlink/pvlink/setup.py b/docker/pvlink/pvlink/setup.py deleted file mode 100644 index fd55fd4ce7de4856a85fed780ad87b9d488e6958..0000000000000000000000000000000000000000 --- a/docker/pvlink/pvlink/setup.py +++ /dev/null @@ -1,180 +0,0 @@ -from __future__ import print_function -from setuptools import setup, find_packages, Command -from setuptools.command.sdist import sdist -from setuptools.command.build_py import build_py -from setuptools.command.egg_info import egg_info -from subprocess import check_call -import os -import sys -import platform - -here = os.path.dirname(os.path.abspath(__file__)) -node_root = os.path.join(here, 'js') -is_repo = os.path.exists(os.path.join(here, '.git')) - -npm_path = os.pathsep.join([ - os.path.join(node_root, 'node_modules', '.bin'), - os.environ.get('PATH', os.defpath), -]) - -from distutils import log -log.set_verbosity(log.DEBUG) -log.info('setup.py entered') -log.info('$PATH=%s' % os.environ['PATH']) - -LONG_DESCRIPTION = 'Displays the ParaviewWeb RemoteRenderer in a Jupyter Notebook' - -def js_prerelease(command, strict=False): - """decorator for building minified js/css prior to another command""" - class DecoratedCommand(command): - def run(self): - jsdeps = self.distribution.get_command_obj('jsdeps') - if not is_repo and all(os.path.exists(t) for t in jsdeps.targets): - # sdist, nothing to do - command.run(self) - return - - try: - self.distribution.run_command('jsdeps') - except Exception as e: - missing = [t for t in jsdeps.targets if not os.path.exists(t)] - if strict or missing: - log.warn('rebuilding js and css failed') - if missing: - log.error('missing files: %s' % missing) - raise e - else: - log.warn('rebuilding js and css failed (not a problem)') - log.warn(str(e)) - command.run(self) - update_package_data(self.distribution) - return DecoratedCommand - -def update_package_data(distribution): - """update package_data to catch changes during setup""" - build_py = distribution.get_command_obj('build_py') - # distribution.package_data = find_package_data() - # re-init build_py options which load package_data - build_py.finalize_options() - - -class NPM(Command): - description = 'install package.json dependencies using npm' - - user_options = [] - - node_modules = os.path.join(node_root, 'node_modules') - - targets = [ - os.path.join(here, 'pvlink', 'static', 'extension.js'), - os.path.join(here, 'pvlink', 'static', 'index.js') - ] - - def initialize_options(self): - pass - - def finalize_options(self): - pass - - def get_npm_name(self): - npmName = 'npm'; - if platform.system() == 'Windows': - npmName = 'npm.cmd'; - - return npmName; - - def has_npm(self): - npmName = self.get_npm_name(); - try: - check_call([npmName, '--version']) - return True - except: - return False - - def should_run_npm_install(self): - package_json = os.path.join(node_root, 'package.json') - node_modules_exists = os.path.exists(self.node_modules) - return self.has_npm() - - def run(self): - has_npm = self.has_npm() - if not has_npm: - log.error("`npm` unavailable. If you're running this command using sudo, make sure `npm` is available to sudo") - - env = os.environ.copy() - env['PATH'] = npm_path - - if self.should_run_npm_install(): - log.info("Installing build dependencies with npm. This may take a while...") - npmName = self.get_npm_name(); - check_call([npmName, 'install'], cwd=node_root, stdout=sys.stdout, stderr=sys.stderr) - os.utime(self.node_modules, None) - - for t in self.targets: - if not os.path.exists(t): - msg = 'Missing file: %s' % t - if not has_npm: - msg += '\nnpm is required to build a development version of a widget extension' - raise ValueError(msg) - - # update package data in case this created new files - update_package_data(self.distribution) - -version_ns = {} -with open(os.path.join(here, 'pvlink', '_version.py')) as f: - exec(f.read(), {}, version_ns) - -setup_args = { - 'name': 'pvlink', - 'version': version_ns['__version__'], - 'description': 'Displays the ParaviewWeb RemoteRenderer in a Jupyter Notebook', - 'long_description': LONG_DESCRIPTION, - 'include_package_data': True, - 'data_files': [ - ('share/jupyter/nbextensions/pvlink', [ - 'pvlink/static/extension.js', - 'pvlink/static/index.js', - 'pvlink/static/index.js.map', - ],), - ('etc/jupyter/nbconfig/notebook.d' ,['pvlink.json']) - ], - 'install_requires': [ - 'ipywidgets>=7.0.0', - 'wslink>=0.1.11', - 'twisted>=19.2.1', - ], - 'packages': find_packages(), - 'zip_safe': False, - 'cmdclass': { - 'build_py': js_prerelease(build_py), - 'egg_info': js_prerelease(egg_info), - 'sdist': js_prerelease(sdist, strict=True), - 'jsdeps': NPM, - }, - - 'author': 'Alice Grosch', - 'author_email': 'a.grosch@fz-juelich.de', - 'url': 'https://github.com//pvlink', - 'keywords': [ - 'ipython', - 'jupyter', - 'widgets', - ], - 'classifiers': [ - 'Development Status :: 4 - Beta', - 'Framework :: IPython', - 'Intended Audience :: Developers', - 'Intended Audience :: Science/Research', - 'Topic :: Multimedia :: Graphics', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.3', - 'Programming Language :: Python :: 3.4', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - ], -} - -setup(**setup_args) diff --git a/docker/pvlink/setup.cfg b/docker/pvlink/setup.cfg deleted file mode 100644 index 3c6e79cf31da1c0433d2fa666bf50b53f6359f26..0000000000000000000000000000000000000000 --- a/docker/pvlink/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[bdist_wheel] -universal=1 diff --git a/docker/pvlink/setup.py b/docker/pvlink/setup.py deleted file mode 100644 index fd55fd4ce7de4856a85fed780ad87b9d488e6958..0000000000000000000000000000000000000000 --- a/docker/pvlink/setup.py +++ /dev/null @@ -1,180 +0,0 @@ -from __future__ import print_function -from setuptools import setup, find_packages, Command -from setuptools.command.sdist import sdist -from setuptools.command.build_py import build_py -from setuptools.command.egg_info import egg_info -from subprocess import check_call -import os -import sys -import platform - -here = os.path.dirname(os.path.abspath(__file__)) -node_root = os.path.join(here, 'js') -is_repo = os.path.exists(os.path.join(here, '.git')) - -npm_path = os.pathsep.join([ - os.path.join(node_root, 'node_modules', '.bin'), - os.environ.get('PATH', os.defpath), -]) - -from distutils import log -log.set_verbosity(log.DEBUG) -log.info('setup.py entered') -log.info('$PATH=%s' % os.environ['PATH']) - -LONG_DESCRIPTION = 'Displays the ParaviewWeb RemoteRenderer in a Jupyter Notebook' - -def js_prerelease(command, strict=False): - """decorator for building minified js/css prior to another command""" - class DecoratedCommand(command): - def run(self): - jsdeps = self.distribution.get_command_obj('jsdeps') - if not is_repo and all(os.path.exists(t) for t in jsdeps.targets): - # sdist, nothing to do - command.run(self) - return - - try: - self.distribution.run_command('jsdeps') - except Exception as e: - missing = [t for t in jsdeps.targets if not os.path.exists(t)] - if strict or missing: - log.warn('rebuilding js and css failed') - if missing: - log.error('missing files: %s' % missing) - raise e - else: - log.warn('rebuilding js and css failed (not a problem)') - log.warn(str(e)) - command.run(self) - update_package_data(self.distribution) - return DecoratedCommand - -def update_package_data(distribution): - """update package_data to catch changes during setup""" - build_py = distribution.get_command_obj('build_py') - # distribution.package_data = find_package_data() - # re-init build_py options which load package_data - build_py.finalize_options() - - -class NPM(Command): - description = 'install package.json dependencies using npm' - - user_options = [] - - node_modules = os.path.join(node_root, 'node_modules') - - targets = [ - os.path.join(here, 'pvlink', 'static', 'extension.js'), - os.path.join(here, 'pvlink', 'static', 'index.js') - ] - - def initialize_options(self): - pass - - def finalize_options(self): - pass - - def get_npm_name(self): - npmName = 'npm'; - if platform.system() == 'Windows': - npmName = 'npm.cmd'; - - return npmName; - - def has_npm(self): - npmName = self.get_npm_name(); - try: - check_call([npmName, '--version']) - return True - except: - return False - - def should_run_npm_install(self): - package_json = os.path.join(node_root, 'package.json') - node_modules_exists = os.path.exists(self.node_modules) - return self.has_npm() - - def run(self): - has_npm = self.has_npm() - if not has_npm: - log.error("`npm` unavailable. If you're running this command using sudo, make sure `npm` is available to sudo") - - env = os.environ.copy() - env['PATH'] = npm_path - - if self.should_run_npm_install(): - log.info("Installing build dependencies with npm. This may take a while...") - npmName = self.get_npm_name(); - check_call([npmName, 'install'], cwd=node_root, stdout=sys.stdout, stderr=sys.stderr) - os.utime(self.node_modules, None) - - for t in self.targets: - if not os.path.exists(t): - msg = 'Missing file: %s' % t - if not has_npm: - msg += '\nnpm is required to build a development version of a widget extension' - raise ValueError(msg) - - # update package data in case this created new files - update_package_data(self.distribution) - -version_ns = {} -with open(os.path.join(here, 'pvlink', '_version.py')) as f: - exec(f.read(), {}, version_ns) - -setup_args = { - 'name': 'pvlink', - 'version': version_ns['__version__'], - 'description': 'Displays the ParaviewWeb RemoteRenderer in a Jupyter Notebook', - 'long_description': LONG_DESCRIPTION, - 'include_package_data': True, - 'data_files': [ - ('share/jupyter/nbextensions/pvlink', [ - 'pvlink/static/extension.js', - 'pvlink/static/index.js', - 'pvlink/static/index.js.map', - ],), - ('etc/jupyter/nbconfig/notebook.d' ,['pvlink.json']) - ], - 'install_requires': [ - 'ipywidgets>=7.0.0', - 'wslink>=0.1.11', - 'twisted>=19.2.1', - ], - 'packages': find_packages(), - 'zip_safe': False, - 'cmdclass': { - 'build_py': js_prerelease(build_py), - 'egg_info': js_prerelease(egg_info), - 'sdist': js_prerelease(sdist, strict=True), - 'jsdeps': NPM, - }, - - 'author': 'Alice Grosch', - 'author_email': 'a.grosch@fz-juelich.de', - 'url': 'https://github.com//pvlink', - 'keywords': [ - 'ipython', - 'jupyter', - 'widgets', - ], - 'classifiers': [ - 'Development Status :: 4 - Beta', - 'Framework :: IPython', - 'Intended Audience :: Developers', - 'Intended Audience :: Science/Research', - 'Topic :: Multimedia :: Graphics', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.3', - 'Programming Language :: Python :: 3.4', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - ], -} - -setup(**setup_args) diff --git a/docker/remoterenderer_test.ipynb b/docker/remoterenderer_test.ipynb deleted file mode 100644 index e6d7171c7f03e3c0e881562c592393e4b470df47..0000000000000000000000000000000000000000 --- a/docker/remoterenderer_test.ipynb +++ /dev/null @@ -1,86 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "from pvlink import RemoteRenderer" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "renderer = RemoteRenderer()\n", - "# renderer" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "from ipywidgets import Box" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "36e64b966b4d47e49e00bb93c60714aa", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Box(children=(RemoteRenderer(),), layout=Layout(height='500px'))" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "out = Box(children=[renderer])\n", - "out.layout.height = '500px'\n", - "out" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.9" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -}