dependabot[bot] on npm_and_yarn
Bump normalize-url from 4.5.0 t… (compare)
npm run build(see https://github.com/jupyter-widgets/widget-cookiecutter/blob/master/%7B%7Bcookiecutter.github_project_name%7D%7D/js/package.json#L25)
setup.py(the one generated from the cookiecutter)
What I'm still not really clear about is how the server side processes work. So, node.js is one process, this handles all the client browser / server interaction. Does this then spin up a python process for jupyter kernel, and does this spin up another python process for the user notebook code?
So, for a single running notebook, how many python processes are there? Is it like this, where (...) are processes and [...] are communication? :
(client web browser)
<-> [web sockets]
<-> (kernel python process)
<-> (user python notebook code)
K + F*Nwhere
Kis some constant,
Fis the multiplicity of the kernel (e.g does it launch a child process or run in-process) and
Nis the number of notebooks
ipyleafletin a dev environment (Python 3.8.10, JupyterLab 3.0.16), with no luck. After
pip install -e .(from the current master branch),
jupyter labextension develop ipyleafletfails with
ValueError: /home/maxime/miniconda3/envs/jlab-ipyleaflet/share/jupyter/labextensions/jupyter-leaflet exists and is not a symlink. So I've tried to run
jupyter labextension develop --overwrite .since it's recommended elsewhere (by ipympl for instance), this indicated that
jupyter_packaginghad to be installed, which I did, but trying again raised another error:
pkg_resources.extern.packaging.requirements.InvalidRequirement: Parse error at "'entered'": Expected stringEnd. Am I doing something wrong?
pkg_resources.extern.packaging.requirements.InvalidRequirement: Parse error at "'entered'": Expected stringEnd
jupyter labextension develop --overwrite .that shows it?
jupyter labextension develop --overwrite . setup.py:43: DeprecatedWarning: create_cmdclass is deprecated as of 0.8 and will be removed in 1.0. " Use `wrap_installers` to handle prebuild steps in cmdclass. Use `get_data_files` to handle data files. Use `include_package_data=True` and `MANIFEST.in` for package data. cmdclass = create_cmdclass('jsdeps', data_files_spec=data_files_spec) setup.py:45: DeprecatedWarning: install_npm is deprecated as of 0.8 and will be removed in 1.0. Use `npm_builder` and `wrap_installers` install_npm(js_dir, npm=["yarn"], build_cmd='build:extensions'), ensure_targets(jstargets), An error occured. pkg_resources.extern.packaging.requirements.InvalidRequirement: Parse error at "'entered'": Expected stringEnd
jupyter labextension developscript will run
setup.pyand extract the name of the package from it, but because the ipyleaflet setup.py logs some stuffs (https://github.com/jupyter-widgets/ipyleaflet/blob/master/setup.py#L23),
jupyter labextension developwill try to setup a dev install of the
"setup.py entered"package (that's not a package ahah)
npm run buildor
yarn run build. It happens that the "build" script just run
webpack(not sure about the correct terminology here), which only builds the nbextension (not lab).
yarn run "build:extensions"builds both extensions. I'd like to watch changes automatically, is
jupyter labextension watch .the recommended way?
yarn run buildwould be prefered now
It happens that the "build" script just run webpack (not sure about the correct terminology here), which only builds the nbextension (not lab). yarn run "build:extensions"
Indeed. The build script should run
jupyter labextension build . too IMO
I'd like to watch changes automatically, is jupyter labextension watch . the recommended way?
Yes! Same, I think we should add this command to the
Hi, can you help me understanding what I am doing wronmg here:
import ipywidgets as widgets from IPython.display import display class print_button(object): def __init__(self, m=None, index=None): self.button = widgets.Button(description="Click Me!") self.index = index def on_button_clicked(self): return self.index def get_button(self): self.button.on_click(self.on_button_clicked()) return HBox([self.button])
When I call it, the
print_button(index=1).get_button() the callback returns:
TypeError Traceback (most recent call last) TypeError: 'NoneType' object is not callable