jupyterlab-genv


Namejupyterlab-genv JSON
Version 0.4.0 PyPI version JSON
download
home_page
SummaryA JupyterLab extension for managing GPU environments using genv.
upload_time2024-02-19 11:36:57
maintainer
docs_urlNone
author
requires_python>=3.7
licenseBSD 3-Clause License Copyright (c) 2022, Raz Rotenberg All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
keywords jupyter jupyterlab jupyterlab3
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # GPU Environment Management for JupyterLab [![Join the community at https://join.slack.com/t/genvcommunity/shared_invite/zt-1i70tphdc-DmFgK5yr3HFI8Txx1yFXBw](https://img.shields.io/badge/Slack-genv-ff007f?logo=slack)](https://join.slack.com/t/genvcommunity/shared_invite/zt-1i70tphdc-DmFgK5yr3HFI8Txx1yFXBw) [![Join the chat at https://gitter.im/run-ai-genv/community](https://badges.gitter.im/run-ai-genv/community.svg)](https://gitter.im/run-ai-genv/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

[![Github Actions Status](https://github.com/run-ai/jupyterlab_genv/workflows/Build/badge.svg)](https://github.com/run-ai/jupyterlab_genv/actions/workflows/build.yml)

A JupyterLab extension for managing GPU environments using [genv](https://github.com/run-ai/genv).

The [_genv_](https://github.com/run-ai/genv) extension lets you interactively control, configure and monitor the GPU resources that your Jupyter Notebooks are using.

![Overview](/resources/readme/overview.gif)

## 🏃🏻 Be an early runner in the genv community!

[<img src="https://img.shields.io/badge/Slack-Join%20the%20community!-ff007f?style=for-the-badge&logo=slack&logoColor=ff007f" height="30" />](https://join.slack.com/t/genvcommunity/shared_invite/zt-1i70tphdc-DmFgK5yr3HFI8Txx1yFXBw)

Join our Slack channel with the creators of _genv_ and start building your models faster!

- Installation and setup support as well as best practice tips and tricks directly for your use-case
- Discuss possible features
- Monthly coffee breaks to get to know the rest of the community

Looking forward to seeing you as a part of the community!

## Table of Contents

- [Getting Started](#getting-started)
- [Installation](#installation)
  - [Conda](#conda)
  - [Pip](#pip)
  - [Install _genv_ Kernels](#install-genv-kernels)
- [Usage](#usage)
  - [Activate Your Environment](#activate-your-environment)
  - [Attach GPUs to Your Environment](#attach-gpus-to-your-environment)
  - [See Devices and Environments](#see-devices-and-environments)
- [Development](#development)
- [Publish](#publish)
  - [PyPI](#pypi)
  - [Conda](#conda-1)

## Getting Started

Read the _genv_ [reference](https://github.com/run-ai/genv#usage) to get started.

## Installation

### Requirements

JupyterLab >= 3.0

### Conda

If you are using [Conda](https://docs.conda.io/en/latest/), it is best to install the `jupyterlab_genv` [package](https://anaconda.org/conda-forge/jupyterlab_genv) from the channel [conda-forge](https://conda-forge.org/):

```bash
conda install -c conda-forge jupyterlab_genv
```

### Pip

Alternatively, you can install `jupyterlab_genv` from [PyPI](https://pypi.org/project/jupyterlab-genv/) using `pip`:

```bash
pip install jupyterlab_genv
```

### Install _genv_ Kernels

After installing `jupyterlab_genv`, you will need to install _genv_ Jupyter kernels using:

```bash
python -m jupyterlab_genv install
```

## Usage

### Activate Your Environment

To activate your environment, you will have to select a _genv_ [kernel](#install-genv-kernels).

Then, click the `GPUs` button on the Jupyter Notebook toolbar.
A dialog should pop up where you can choose either to create a new environment for your Jupyter Notebook, or to use an existing one.

Then, you can open a terminal activated in your environment.
From there you will be able to configure the environment and attach devices.

![Activate](/resources/readme/activate.gif)

### Attach GPUs to Your Environment

Configuring the environment and attaching devices is done from the _genv_ terminal.

Make sure to restart your kernel after running the command in the terminal for it to take effect.

![Attach](/resources/readme/attach.gif)

### See Devices and Environments

You can open the devices and environments widgets to see information.

Open the command palette (`Command/Ctrl Shift C`) and type `GPUs`.

![Commands](/resources/readme/commands.gif)

## Development

### Setup

You will need to create a virtual environment once using the command:

```bash
conda create -n jupyterlab_genv --override-channels --strict-channel-priority -c conda-forge -c nodefaults jupyterlab=3 cookiecutter nodejs jupyter-packaging git
```

Then, activate the virtual environment when you want to work on the project:

```bash
conda activate jupyterlab_genv
```

### Install

Use the following commands to install the Python package and enable it in JupyterLab:

```bash
# Install package in development mode
pip install -e .
# Link your development version of the extension with JupyterLab
jupyter labextension develop . --overwrite
# Server extension must be manually installed in develop mode
jupyter server extension enable jupyterlab_genv
```

If you make any changes you will need to rebuild the extension Typescript source using:

```
jlpm build
```

Alternatively, you can watch the source directory using:

```
jlpm watch
```

With the `jlpm watch` command running, every saved change will immediately be built locally and available in your running JupyterLab. Refresh JupyterLab to load the change in your browser (you may need to wait several seconds for the extension to be rebuilt).

### Run

Run JupyterLab using the command:

```bash
jupyter lab
```

> Running `SHELL=bash jupyter lab --no-browser` is even better

### Uninstall

```bash
# Server extension must be manually disabled in develop mode
jupyter server extension disable jupyterlab_genv
pip uninstall jupyterlab_genv
```

In development mode, you will also need to remove the symlink created by `jupyter labextension develop` command.
To find its location, you can run `jupyter labextension list` to figure out where the `labextensions` folder is located.
Then you can remove the symlink named `jupyterlab_genv` within that folder.

### Reference

#### List all kernel provisioners

```bash
jupyter kernelspec provisioners
```

#### Install a kernel provisioner

To add a kernel provisioner to a kernel spec, edit its `kernel.json` file.
For example, to install a kernel provisioner for the `python3` kernel spec, run:

```bash
vim $CONDA_PREFIX/share/jupyter/kernels/python3/kernel.json
```

And add:

```
"metadata": {
  "kernel_provisioner": {
    "provisioner_name": "genv-provisioner"
  }
}
```

#### List all available kernel specs

```bash
ls -la $CONDA_PREFIX/share/jupyter/kernels/
```

#### List all running kernels

```bash
ls -la $(jupyter --runtime-dir)/kernel-*.json
```

#### List Jupyter server extensions

```bash
jupyter server extension list
```

#### List JupyterLab extensions

```bash
jupyter labextension list
```

## Publish

The `jupyterlab_genv` package is manually published to both [PyPI](https://pypi.org/project/jupyterlab-genv/) and [conda-forge](https://anaconda.org/conda-forge/jupyterlab_genv).

We do not publish the frontend part as an npm package because the Python package is a prebuilt server extension, and the frontend part alone is useless.

Also make sure to update the [changelog](./CHANGELOG.md) ([here's](https://keepachangelog.com/en/1.0.0/#how) how) and lint the project by running `npm run lint`.

### Bump Version

The [cookiecutter template](https://github.com/jupyterlab/extension-cookiecutter-ts) uses `tbump` for bumping the version.
However, for some reason this does not work at the moment, and we bump the version manually.

Search for the current version in the project files and replace the relevant instances.
Here is a list of files that you should update:

- [package.json](package.json#L3)
- [package-lock.json](package-lock.json#L3)
- [pyproject.toml](pyproject.toml#L7) (also [here](pyproject.toml#L84) for future `tbump` support)
- [jupyterlab_genv/\_version.py](jupyterlab_genv/_version.py#L6)

After pushing these changes, create a release on [GitHub](https://github.com/run-ai/jupyterlab_genv/releases).

### PyPI

#### Prerequisites

```bash
pip install build twine tbump
```

#### Create a Python Package

Create a Python source package (`.tar.gz`) and the binary package (`.whl`) in the `dist/` directory using:

```bash
python -m build
```

> `python setup.py sdist bdist_wheel` is deprecated and will not work for this package.

Then, upload the package to [PyPI](https://pypi.org/project/jupyterlab-genv/) using:

```bash
twine upload dist/*
```

> We upload to PyPI with the organizational user [runai](https://pypi.org/user/runai/)

### Conda

The Conda package is managed using its [feedstock](https://github.com/conda-forge/jupyterlab_genv-feedstock).

After publishing to [PyPI](#pypi), update the [version](https://github.com/conda-forge/jupyterlab_genv-feedstock/blob/main/recipe/meta.yaml#L2) and [sha256](https://github.com/conda-forge/jupyterlab_genv-feedstock/blob/main/recipe/meta.yaml#L10) fields in the recipe `meta.yaml` file.

A few minutes after pushing these changes, you should be able to see that the Conda [package](https://anaconda.org/conda-forge/jupyterlab_genv) version was updated.

> You can get the SHA256 hash from [PyPI](https://pypi.org/project/jupyterlab-genv/#files)

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "jupyterlab-genv",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "Jupyter,JupyterLab,JupyterLab3",
    "author": "",
    "author_email": "Raz Rotenberg <raz.rotenberg@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/4a/08/eba01ba12ccde17b31e23f00a4ad839e49c30e1a85c930a99707618373ea/jupyterlab_genv-0.4.0.tar.gz",
    "platform": null,
    "description": "# GPU Environment Management for JupyterLab [![Join the community at https://join.slack.com/t/genvcommunity/shared_invite/zt-1i70tphdc-DmFgK5yr3HFI8Txx1yFXBw](https://img.shields.io/badge/Slack-genv-ff007f?logo=slack)](https://join.slack.com/t/genvcommunity/shared_invite/zt-1i70tphdc-DmFgK5yr3HFI8Txx1yFXBw) [![Join the chat at https://gitter.im/run-ai-genv/community](https://badges.gitter.im/run-ai-genv/community.svg)](https://gitter.im/run-ai-genv/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n[![Github Actions Status](https://github.com/run-ai/jupyterlab_genv/workflows/Build/badge.svg)](https://github.com/run-ai/jupyterlab_genv/actions/workflows/build.yml)\n\nA JupyterLab extension for managing GPU environments using [genv](https://github.com/run-ai/genv).\n\nThe [_genv_](https://github.com/run-ai/genv) extension lets you interactively control, configure and monitor the GPU resources that your Jupyter Notebooks are using.\n\n![Overview](/resources/readme/overview.gif)\n\n## \ud83c\udfc3\ud83c\udffb Be an early runner in the genv community!\n\n[<img src=\"https://img.shields.io/badge/Slack-Join%20the%20community!-ff007f?style=for-the-badge&logo=slack&logoColor=ff007f\" height=\"30\" />](https://join.slack.com/t/genvcommunity/shared_invite/zt-1i70tphdc-DmFgK5yr3HFI8Txx1yFXBw)\n\nJoin our Slack channel with the creators of _genv_ and start building your models faster!\n\n- Installation and setup support as well as best practice tips and tricks directly for your use-case\n- Discuss possible features\n- Monthly coffee breaks to get to know the rest of the community\n\nLooking forward to seeing you as a part of the community!\n\n## Table of Contents\n\n- [Getting Started](#getting-started)\n- [Installation](#installation)\n  - [Conda](#conda)\n  - [Pip](#pip)\n  - [Install _genv_ Kernels](#install-genv-kernels)\n- [Usage](#usage)\n  - [Activate Your Environment](#activate-your-environment)\n  - [Attach GPUs to Your Environment](#attach-gpus-to-your-environment)\n  - [See Devices and Environments](#see-devices-and-environments)\n- [Development](#development)\n- [Publish](#publish)\n  - [PyPI](#pypi)\n  - [Conda](#conda-1)\n\n## Getting Started\n\nRead the _genv_ [reference](https://github.com/run-ai/genv#usage) to get started.\n\n## Installation\n\n### Requirements\n\nJupyterLab >= 3.0\n\n### Conda\n\nIf you are using [Conda](https://docs.conda.io/en/latest/), it is best to install the `jupyterlab_genv` [package](https://anaconda.org/conda-forge/jupyterlab_genv) from the channel [conda-forge](https://conda-forge.org/):\n\n```bash\nconda install -c conda-forge jupyterlab_genv\n```\n\n### Pip\n\nAlternatively, you can install `jupyterlab_genv` from [PyPI](https://pypi.org/project/jupyterlab-genv/) using `pip`:\n\n```bash\npip install jupyterlab_genv\n```\n\n### Install _genv_ Kernels\n\nAfter installing `jupyterlab_genv`, you will need to install _genv_ Jupyter kernels using:\n\n```bash\npython -m jupyterlab_genv install\n```\n\n## Usage\n\n### Activate Your Environment\n\nTo activate your environment, you will have to select a _genv_ [kernel](#install-genv-kernels).\n\nThen, click the `GPUs` button on the Jupyter Notebook toolbar.\nA dialog should pop up where you can choose either to create a new environment for your Jupyter Notebook, or to use an existing one.\n\nThen, you can open a terminal activated in your environment.\nFrom there you will be able to configure the environment and attach devices.\n\n![Activate](/resources/readme/activate.gif)\n\n### Attach GPUs to Your Environment\n\nConfiguring the environment and attaching devices is done from the _genv_ terminal.\n\nMake sure to restart your kernel after running the command in the terminal for it to take effect.\n\n![Attach](/resources/readme/attach.gif)\n\n### See Devices and Environments\n\nYou can open the devices and environments widgets to see information.\n\nOpen the command palette (`Command/Ctrl Shift C`) and type `GPUs`.\n\n![Commands](/resources/readme/commands.gif)\n\n## Development\n\n### Setup\n\nYou will need to create a virtual environment once using the command:\n\n```bash\nconda create -n jupyterlab_genv --override-channels --strict-channel-priority -c conda-forge -c nodefaults jupyterlab=3 cookiecutter nodejs jupyter-packaging git\n```\n\nThen, activate the virtual environment when you want to work on the project:\n\n```bash\nconda activate jupyterlab_genv\n```\n\n### Install\n\nUse the following commands to install the Python package and enable it in JupyterLab:\n\n```bash\n# Install package in development mode\npip install -e .\n# Link your development version of the extension with JupyterLab\njupyter labextension develop . --overwrite\n# Server extension must be manually installed in develop mode\njupyter server extension enable jupyterlab_genv\n```\n\nIf you make any changes you will need to rebuild the extension Typescript source using:\n\n```\njlpm build\n```\n\nAlternatively, you can watch the source directory using:\n\n```\njlpm watch\n```\n\nWith the `jlpm watch` command running, every saved change will immediately be built locally and available in your running JupyterLab. Refresh JupyterLab to load the change in your browser (you may need to wait several seconds for the extension to be rebuilt).\n\n### Run\n\nRun JupyterLab using the command:\n\n```bash\njupyter lab\n```\n\n> Running `SHELL=bash jupyter lab --no-browser` is even better\n\n### Uninstall\n\n```bash\n# Server extension must be manually disabled in develop mode\njupyter server extension disable jupyterlab_genv\npip uninstall jupyterlab_genv\n```\n\nIn development mode, you will also need to remove the symlink created by `jupyter labextension develop` command.\nTo find its location, you can run `jupyter labextension list` to figure out where the `labextensions` folder is located.\nThen you can remove the symlink named `jupyterlab_genv` within that folder.\n\n### Reference\n\n#### List all kernel provisioners\n\n```bash\njupyter kernelspec provisioners\n```\n\n#### Install a kernel provisioner\n\nTo add a kernel provisioner to a kernel spec, edit its `kernel.json` file.\nFor example, to install a kernel provisioner for the `python3` kernel spec, run:\n\n```bash\nvim $CONDA_PREFIX/share/jupyter/kernels/python3/kernel.json\n```\n\nAnd add:\n\n```\n\"metadata\": {\n  \"kernel_provisioner\": {\n    \"provisioner_name\": \"genv-provisioner\"\n  }\n}\n```\n\n#### List all available kernel specs\n\n```bash\nls -la $CONDA_PREFIX/share/jupyter/kernels/\n```\n\n#### List all running kernels\n\n```bash\nls -la $(jupyter --runtime-dir)/kernel-*.json\n```\n\n#### List Jupyter server extensions\n\n```bash\njupyter server extension list\n```\n\n#### List JupyterLab extensions\n\n```bash\njupyter labextension list\n```\n\n## Publish\n\nThe `jupyterlab_genv` package is manually published to both [PyPI](https://pypi.org/project/jupyterlab-genv/) and [conda-forge](https://anaconda.org/conda-forge/jupyterlab_genv).\n\nWe do not publish the frontend part as an npm package because the Python package is a prebuilt server extension, and the frontend part alone is useless.\n\nAlso make sure to update the [changelog](./CHANGELOG.md) ([here's](https://keepachangelog.com/en/1.0.0/#how) how) and lint the project by running `npm run lint`.\n\n### Bump Version\n\nThe [cookiecutter template](https://github.com/jupyterlab/extension-cookiecutter-ts) uses `tbump` for bumping the version.\nHowever, for some reason this does not work at the moment, and we bump the version manually.\n\nSearch for the current version in the project files and replace the relevant instances.\nHere is a list of files that you should update:\n\n- [package.json](package.json#L3)\n- [package-lock.json](package-lock.json#L3)\n- [pyproject.toml](pyproject.toml#L7) (also [here](pyproject.toml#L84) for future `tbump` support)\n- [jupyterlab_genv/\\_version.py](jupyterlab_genv/_version.py#L6)\n\nAfter pushing these changes, create a release on [GitHub](https://github.com/run-ai/jupyterlab_genv/releases).\n\n### PyPI\n\n#### Prerequisites\n\n```bash\npip install build twine tbump\n```\n\n#### Create a Python Package\n\nCreate a Python source package (`.tar.gz`) and the binary package (`.whl`) in the `dist/` directory using:\n\n```bash\npython -m build\n```\n\n> `python setup.py sdist bdist_wheel` is deprecated and will not work for this package.\n\nThen, upload the package to [PyPI](https://pypi.org/project/jupyterlab-genv/) using:\n\n```bash\ntwine upload dist/*\n```\n\n> We upload to PyPI with the organizational user [runai](https://pypi.org/user/runai/)\n\n### Conda\n\nThe Conda package is managed using its [feedstock](https://github.com/conda-forge/jupyterlab_genv-feedstock).\n\nAfter publishing to [PyPI](#pypi), update the [version](https://github.com/conda-forge/jupyterlab_genv-feedstock/blob/main/recipe/meta.yaml#L2) and [sha256](https://github.com/conda-forge/jupyterlab_genv-feedstock/blob/main/recipe/meta.yaml#L10) fields in the recipe `meta.yaml` file.\n\nA few minutes after pushing these changes, you should be able to see that the Conda [package](https://anaconda.org/conda-forge/jupyterlab_genv) version was updated.\n\n> You can get the SHA256 hash from [PyPI](https://pypi.org/project/jupyterlab-genv/#files)\n",
    "bugtrack_url": null,
    "license": "BSD 3-Clause License  Copyright (c) 2022, Raz Rotenberg All rights reserved.  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.",
    "summary": "A JupyterLab extension for managing GPU environments using genv.",
    "version": "0.4.0",
    "project_urls": {
        "Homepage": "https://github.com/run-ai/jupyterlab_genv"
    },
    "split_keywords": [
        "jupyter",
        "jupyterlab",
        "jupyterlab3"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8dd7b1f6296b55aa522e43468fa1c54c16af34f4a24f337f7961086374f98631",
                "md5": "7d603c54f53b40ac110851dbebccbdb5",
                "sha256": "df75ca42defbca9abe4a05a8df09d587ee6a77382b58386587525ec2478d0663"
            },
            "downloads": -1,
            "filename": "jupyterlab_genv-0.4.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7d603c54f53b40ac110851dbebccbdb5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 88190,
            "upload_time": "2024-02-19T11:36:54",
            "upload_time_iso_8601": "2024-02-19T11:36:54.693539Z",
            "url": "https://files.pythonhosted.org/packages/8d/d7/b1f6296b55aa522e43468fa1c54c16af34f4a24f337f7961086374f98631/jupyterlab_genv-0.4.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4a08eba01ba12ccde17b31e23f00a4ad839e49c30e1a85c930a99707618373ea",
                "md5": "8dd4c4a7e82e8cf4ee0661fdc64a6874",
                "sha256": "9db811955c8d23bc404adf0840275c083d97913be19c965e9f4a3c6d2ae7a3f6"
            },
            "downloads": -1,
            "filename": "jupyterlab_genv-0.4.0.tar.gz",
            "has_sig": false,
            "md5_digest": "8dd4c4a7e82e8cf4ee0661fdc64a6874",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 3747487,
            "upload_time": "2024-02-19T11:36:57",
            "upload_time_iso_8601": "2024-02-19T11:36:57.945440Z",
            "url": "https://files.pythonhosted.org/packages/4a/08/eba01ba12ccde17b31e23f00a4ad839e49c30e1a85c930a99707618373ea/jupyterlab_genv-0.4.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-19 11:36:57",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "run-ai",
    "github_project": "jupyterlab_genv",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "jupyterlab-genv"
}
        
Elapsed time: 0.19743s