vantage6


Namevantage6 JSON
Version 4.9.0 PyPI version JSON
download
home_pagehttps://github.com/vantage6/vantage6
Summaryvantage6 command line interface
upload_time2025-01-15 13:52:02
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords
VCS
bugtrack_url
requirements aniso8601 appdirs attrs backcall bcrypt bidict blinker cffi charset-normalizer click colorama contextlib2 cryptography decorator docker flasgger flask Flask-Cors Flask-JWT-Extended Flask-Mail flask-marshmallow Flask-Principal Flask-RESTful Flask-SocketIO gevent greenlet idna ipython isodate itsdangerous jedi jinja2 jsonschema kombu MarkupSafe marshmallow marshmallow-sqlalchemy mistune numpy oauthlib pandas parso pickleshare prompt-toolkit pure-eval pycparser pyfiglet Pygments PyJWT pyotp pyparsing pyrsistent python-dateutil python-engineio python-socketio pytz PyYAML qrcode questionary rdflib requests requests-oauthlib rich schema six SPARQLWrapper SQLAlchemy traitlets urllib3 wcwidth websocket-client werkzeug zope.event zope.interface
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <h1 align="center">
  <br>
  <a href="https://vantage6.ai"><img src="https://github.com/IKNL/guidelines/blob/master/resources/logos/vantage6.png?raw=true" alt="vantage6" width="350"></a>
</h1>

<h3 align=center> A Privacy Enhancing Technology (PET) Operations platform</h3>
<h3 align="center">

<!-- Badges go here-->

[![Release](https://github.com/vantage6/vantage6/actions/workflows/release.yml/badge.svg)](https://github.com/vantage6/vantage6/actions/workflows/release.yml)
[![PyPI vantage6](https://badge.fury.io/py/vantage6.svg)](https://badge.fury.io/py/vantage6)
[![Unittests](https://github.com/vantage6/vantage6/actions/workflows/unit_tests.yml/badge.svg)](https://github.com/vantage6/vantage6/actions/workflows/unit_tests.yml)
[![Coverage Status](https://coveralls.io/repos/github/vantage6/vantage6/badge.svg?branch=main)](https://coveralls.io/github/vantage6/vantage6?branch=main)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/2e60ac3b3f284620805f7399cba317be)](https://app.codacy.com/gh/vantage6/vantage6/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
[![DOI](https://zenodo.org/badge/492818831.svg)](https://zenodo.org/badge/latestdoi/492818831)
[![Discord](https://img.shields.io/discord/643526403207331841)](https://discord.gg/yAyFf6Y)
[![Research software directory](https://img.shields.io/badge/rsd-vantage6-deepskyblue)](https://research-software-directory.org/software/vantage6)


</h3>

<p align="center">
  <a href="#books-quickstart">Quickstart</a> •
  <a href="#project-structure">Project structure</a> •
  <a href="#gift_heart-join-the-community">Join the community</a> •
  <a href="#scroll-license">License</a> •
  <a href="#black_nib-code-of-conduct">Code of conduct</a> •
  <a href="#black_nib-references">References</a>
</p>

---

This repository is contains all the **vantage6** infrastructure source code. The **vantage6** technology enables to manage and deploy privacy enhancing technologies like Federated Learning (FL) and Multi-Party Computation (MPC). Please visit our [website](https://vantage6.ai) to learn more!

You can find more (user) documentation at [readthedocs](https://docs.vantage6.ai). If you have any questions, suggestions or just want to chat about federated learning: join our [Discord)](https://discord.gg/yAyFf6Y) channel.

## Infrastructure overview

![Vantage6 architecture overview](docs/images/overview-infrastructure.png)

_A High level overview of the vantage6 infrastructure. Vantage6 has both a
client-server and peer-to-peer architecture. The client is used by the researcher to
create (PET) computation requests. It is also used to manage users, organizations and
collaborations. The server contains users, organizations, collaborations, tasks and
their results. It provides a central access point for both the clients and nodes. The
nodes have access to privacy sensitive data and handle computation requests retrieved
from the server. Computation request are executed as separate containers on the node.
These containers are connected to containers at other nodes by a VPN network._

## :books: Quickstart

### Requirements

The **vantage6** infrastructure is delivered in Docker images. To run these images, you
need to have [Docker](https://docs.docker.com/get-docker/) installed. To install the
latest version of the vantage6 CLI, you need to have
[Python](https://www.python.org/downloads/), we recommend using an environment manager
like [mini-conda](https://docs.conda.io/en/latest/miniconda.html).

Install the latest version of the vantage6 CLI by using:

```bash
pip install vantage6
```

This install the `v6` commands, which allows you to manage your nodes and servers. To view all available options, run:

```bash
v6 --help
```

For example you can create a local test setup by using:

```bash
v6 dev create-demo-network
```

This creates a local network with a server and two nodes. You can start the network by running:

```bash
v6 dev start-demo-network
```

This will start the server and nodes in the background. You can view the logs by running:

```bash
# View node logs
v6 node attach

# View server logs
v6 server attach
```

From here you can use the [vantage6-client](https://pypi.org/project/vantage6-client)
to interact with the server. The demo network has a pre-configured organization with
the following credentials:

- Username: `dev_admin`
- Password: `password`

For example, you can create a new organization by running:

```python
from vantage6.client import Client

client = Client('http://127.0.0.1', 7601, '/api', log_level='debug')
client.authenticate('dev_admin', 'password')
client.setup_encryption(None)

client.organization.create(
    name='My organization',
    address1='My address',
    address2='My address',
    zipcode='1234AB',
    country='The Netherlands',
    domain='my-organization.com'
)
```

You can find more (user) documentation at [readthedocs](https://docs.vantage6.ai)

## Project structure

### PYPI packages

This repository is home to 6 PyPi packages:

- [vantage6](https://pypi.org/project/vantage6) -> _CLI for managing node and server instances_
- [vantage6-client](https://pypi.org/project/vantage6-client) -> _Python client for interacting with the vantage6-server_
- [vantage6-algorithm-tools](https://pypi.org/project/vantage6-algorithm-tools) -> _Python tools to facilitate algorithm development_
- [vantage6-node](https://pypi.org/project/vantage6-node) -> _Node application package_
- [vantage6-server](https://pypi.org/project/vantage6-server) -> _Server application package_
- [vantage6-algorithm-store](https://pypi.org/project/vantage6-algorithm-store) -> _Algorithm store application package_
- [vantage6-common](https://pypi.org/project/vantage6-common) -> _Package with common vantage6 functions_
- [vantage6-backend-common](https://pypi.org/project/vantage6-backend-common) -> _Package with functions common to central server and algorithm store_

**Note that when using vantage6 you do not install the _server_ and _node_ packages. These are delivered to you in Docker images.**

This repository also hosts the code for the vantage6 user interface (UI). The UI
is an Angular web application that can be used to interact with the vantage6 server
easily.

### Docker images

The vantage6 infrastructure is delivered in Docker images. All Docker images are stored
in our private [Harbor](https://goharbor.io/) registry. The most important images are:

- `harbor2.vantage6.ai/infrastructure/node:VERSION` -> _Node application Docker image_
- `harbor2.vantage6.ai/infrastructure/server:VERSION` -> _Server application Docker image_
- `harbor2.vantage6.ai/infrastructure/ui:VERSION` -> _User interface Docker image_
- `harbor2.vantage6.ai/infrastructure/algorithm-store:VERSION` -> _Algorithm store Docker image_

with `VERSION` being the full semantic version of the vantage6 infrastructure, e.g.
`4.0.0` or `4.1.0rc0`.

Several other images are used to support the infrastructure:

- `harbor2.vantage6.ai/infrastructure/infrastructure-base:VERSION` -> _Base image for the infrastructure_
- `harbor2.vantage6.ai/infrastructure/squid:VERSION` -> _Squid proxy image used for the whitelisting service_
- `harbor2.vantage6.ai/infrastructure/alpine` -> _Alpine image used for vpn traffic forwarding_
- `harbor2.vantage6.ai/infrastructure/vpn-client` -> _VPN image used to connect to the VPN_
- `harbor2.vantage6.ai/infrastructure/vpn-configurator` -> _VPN image used for initialization_
- `harbor2.vantage6.ai/infrastructure/ssh-tunnel` -> _SSH tunnel image used for connecting algorithms to external services_

And finally there are some images released for algorithm development:

- `harbor2.vantage6.ai/infrastructure/algorithm-base:MAJOR.MINOR` -> _Base image for algorithm development_
- `harbor2.vantage6.ai/infrastructure/algorithm-ohdsi-base:MAJOR.MINOR` -> _Extended algorithm base image for OHDSI algorithm development_

## :gift_heart: Join the community!

We hope to continue developing, improving, and supporting **vantage6** with the help of 
the federated learning community. If you are interested in contributing, first of all, 
thank you! Second, please take a look at our 
[contributing guidelines](https://docs.vantage6.ai/en/main/devops/contribute.html) 
and our [code of conduct](CODE_OF_CONDUCT.md).

<a href="https://github.com/vantage6/vantage6/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=vantage6/vantage6" />
</a>

## :scroll: License

This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.

## :black_nib: Code of Conduct

Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). **By participating in any way in this project you agree to abide by its terms.**

## :black_nib: References

If you are using **vantage6**, please cite this repository as well as the accompanying papers as follows:

> - F. Martin, M. Sieswerda, H. Alradhi, et al. vantage6. Available at https://doi.org/10.5281/zenodo.7221216. Accessed on MONTH, 20XX.
> - A. Moncada-Torres, F. Martin, M. Sieswerda, J. van Soest, G. Gelijnse. VANTAGE6: an open source priVAcy preserviNg federaTed leArninG infrastructurE for Secure Insight eXchange. AMIA Annual Symposium Proceedings, 2020, p. 870-877. [[BibTeX](https://arturomoncadatorres.com/bibtex/moncada-torres2020vantage6.txt), [PDF](https://vantage6.ai/vantage6/)]
> - D. Smits\*, B. van Beusekom\*, F. Martin, L. Veen, G. Geleijnse, A. Moncada-Torres, An Improved Infrastructure for Privacy-Preserving Analysis of Patient Data, Proceedings of the International Conference of Informatics, Management, and Technology in Healthcare (ICIMTH), vol. 25, 2022, p. 144-147. [[BibTeX](https://arturomoncadatorres.com/bibtex/smits2022improved.txt), [PDF](https://ebooks.iospress.nl/volumearticle/60190)]

---

<p align="center">
  <a href="https://vantage6.ai">vantage6.ai</a> •
  <a href="https://discord.gg/yAyFf6Y">Discord</a> •
  <a href="https://vantage6.discourse.group/">Discourse</a> •
  <a href="https://docs.vantage6.ai">User documentation</a>
</p>

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/vantage6/vantage6",
    "name": "vantage6",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": null,
    "author": null,
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/e0/e9/18bc5f0bcc2c39a301f2563ca8e2534f2ece8d5f1325df019fb040a441f9/vantage6-4.9.0.tar.gz",
    "platform": null,
    "description": "<h1 align=\"center\">\n  <br>\n  <a href=\"https://vantage6.ai\"><img src=\"https://github.com/IKNL/guidelines/blob/master/resources/logos/vantage6.png?raw=true\" alt=\"vantage6\" width=\"350\"></a>\n</h1>\n\n<h3 align=center> A Privacy Enhancing Technology (PET) Operations platform</h3>\n<h3 align=\"center\">\n\n<!-- Badges go here-->\n\n[![Release](https://github.com/vantage6/vantage6/actions/workflows/release.yml/badge.svg)](https://github.com/vantage6/vantage6/actions/workflows/release.yml)\n[![PyPI vantage6](https://badge.fury.io/py/vantage6.svg)](https://badge.fury.io/py/vantage6)\n[![Unittests](https://github.com/vantage6/vantage6/actions/workflows/unit_tests.yml/badge.svg)](https://github.com/vantage6/vantage6/actions/workflows/unit_tests.yml)\n[![Coverage Status](https://coveralls.io/repos/github/vantage6/vantage6/badge.svg?branch=main)](https://coveralls.io/github/vantage6/vantage6?branch=main)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/2e60ac3b3f284620805f7399cba317be)](https://app.codacy.com/gh/vantage6/vantage6/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)\n[![DOI](https://zenodo.org/badge/492818831.svg)](https://zenodo.org/badge/latestdoi/492818831)\n[![Discord](https://img.shields.io/discord/643526403207331841)](https://discord.gg/yAyFf6Y)\n[![Research software directory](https://img.shields.io/badge/rsd-vantage6-deepskyblue)](https://research-software-directory.org/software/vantage6)\n\n\n</h3>\n\n<p align=\"center\">\n  <a href=\"#books-quickstart\">Quickstart</a> \u2022\n  <a href=\"#project-structure\">Project structure</a> \u2022\n  <a href=\"#gift_heart-join-the-community\">Join the community</a> \u2022\n  <a href=\"#scroll-license\">License</a> \u2022\n  <a href=\"#black_nib-code-of-conduct\">Code of conduct</a> \u2022\n  <a href=\"#black_nib-references\">References</a>\n</p>\n\n---\n\nThis repository is contains all the **vantage6** infrastructure source code. The **vantage6** technology enables to manage and deploy privacy enhancing technologies like Federated Learning (FL) and Multi-Party Computation (MPC). Please visit our [website](https://vantage6.ai) to learn more!\n\nYou can find more (user) documentation at [readthedocs](https://docs.vantage6.ai). If you have any questions, suggestions or just want to chat about federated learning: join our [Discord)](https://discord.gg/yAyFf6Y) channel.\n\n## Infrastructure overview\n\n![Vantage6 architecture overview](docs/images/overview-infrastructure.png)\n\n_A High level overview of the vantage6 infrastructure. Vantage6 has both a\nclient-server and peer-to-peer architecture. The client is used by the researcher to\ncreate (PET) computation requests. It is also used to manage users, organizations and\ncollaborations. The server contains users, organizations, collaborations, tasks and\ntheir results. It provides a central access point for both the clients and nodes. The\nnodes have access to privacy sensitive data and handle computation requests retrieved\nfrom the server. Computation request are executed as separate containers on the node.\nThese containers are connected to containers at other nodes by a VPN network._\n\n## :books: Quickstart\n\n### Requirements\n\nThe **vantage6** infrastructure is delivered in Docker images. To run these images, you\nneed to have [Docker](https://docs.docker.com/get-docker/) installed. To install the\nlatest version of the vantage6 CLI, you need to have\n[Python](https://www.python.org/downloads/), we recommend using an environment manager\nlike [mini-conda](https://docs.conda.io/en/latest/miniconda.html).\n\nInstall the latest version of the vantage6 CLI by using:\n\n```bash\npip install vantage6\n```\n\nThis install the `v6` commands, which allows you to manage your nodes and servers. To view all available options, run:\n\n```bash\nv6 --help\n```\n\nFor example you can create a local test setup by using:\n\n```bash\nv6 dev create-demo-network\n```\n\nThis creates a local network with a server and two nodes. You can start the network by running:\n\n```bash\nv6 dev start-demo-network\n```\n\nThis will start the server and nodes in the background. You can view the logs by running:\n\n```bash\n# View node logs\nv6 node attach\n\n# View server logs\nv6 server attach\n```\n\nFrom here you can use the [vantage6-client](https://pypi.org/project/vantage6-client)\nto interact with the server. The demo network has a pre-configured organization with\nthe following credentials:\n\n- Username: `dev_admin`\n- Password: `password`\n\nFor example, you can create a new organization by running:\n\n```python\nfrom vantage6.client import Client\n\nclient = Client('http://127.0.0.1', 7601, '/api', log_level='debug')\nclient.authenticate('dev_admin', 'password')\nclient.setup_encryption(None)\n\nclient.organization.create(\n    name='My organization',\n    address1='My address',\n    address2='My address',\n    zipcode='1234AB',\n    country='The Netherlands',\n    domain='my-organization.com'\n)\n```\n\nYou can find more (user) documentation at [readthedocs](https://docs.vantage6.ai)\n\n## Project structure\n\n### PYPI packages\n\nThis repository is home to 6 PyPi packages:\n\n- [vantage6](https://pypi.org/project/vantage6) -> _CLI for managing node and server instances_\n- [vantage6-client](https://pypi.org/project/vantage6-client) -> _Python client for interacting with the vantage6-server_\n- [vantage6-algorithm-tools](https://pypi.org/project/vantage6-algorithm-tools) -> _Python tools to facilitate algorithm development_\n- [vantage6-node](https://pypi.org/project/vantage6-node) -> _Node application package_\n- [vantage6-server](https://pypi.org/project/vantage6-server) -> _Server application package_\n- [vantage6-algorithm-store](https://pypi.org/project/vantage6-algorithm-store) -> _Algorithm store application package_\n- [vantage6-common](https://pypi.org/project/vantage6-common) -> _Package with common vantage6 functions_\n- [vantage6-backend-common](https://pypi.org/project/vantage6-backend-common) -> _Package with functions common to central server and algorithm store_\n\n**Note that when using vantage6 you do not install the _server_ and _node_ packages. These are delivered to you in Docker images.**\n\nThis repository also hosts the code for the vantage6 user interface (UI). The UI\nis an Angular web application that can be used to interact with the vantage6 server\neasily.\n\n### Docker images\n\nThe vantage6 infrastructure is delivered in Docker images. All Docker images are stored\nin our private [Harbor](https://goharbor.io/) registry. The most important images are:\n\n- `harbor2.vantage6.ai/infrastructure/node:VERSION` -> _Node application Docker image_\n- `harbor2.vantage6.ai/infrastructure/server:VERSION` -> _Server application Docker image_\n- `harbor2.vantage6.ai/infrastructure/ui:VERSION` -> _User interface Docker image_\n- `harbor2.vantage6.ai/infrastructure/algorithm-store:VERSION` -> _Algorithm store Docker image_\n\nwith `VERSION` being the full semantic version of the vantage6 infrastructure, e.g.\n`4.0.0` or `4.1.0rc0`.\n\nSeveral other images are used to support the infrastructure:\n\n- `harbor2.vantage6.ai/infrastructure/infrastructure-base:VERSION` -> _Base image for the infrastructure_\n- `harbor2.vantage6.ai/infrastructure/squid:VERSION` -> _Squid proxy image used for the whitelisting service_\n- `harbor2.vantage6.ai/infrastructure/alpine` -> _Alpine image used for vpn traffic forwarding_\n- `harbor2.vantage6.ai/infrastructure/vpn-client` -> _VPN image used to connect to the VPN_\n- `harbor2.vantage6.ai/infrastructure/vpn-configurator` -> _VPN image used for initialization_\n- `harbor2.vantage6.ai/infrastructure/ssh-tunnel` -> _SSH tunnel image used for connecting algorithms to external services_\n\nAnd finally there are some images released for algorithm development:\n\n- `harbor2.vantage6.ai/infrastructure/algorithm-base:MAJOR.MINOR` -> _Base image for algorithm development_\n- `harbor2.vantage6.ai/infrastructure/algorithm-ohdsi-base:MAJOR.MINOR` -> _Extended algorithm base image for OHDSI algorithm development_\n\n## :gift_heart: Join the community!\n\nWe hope to continue developing, improving, and supporting **vantage6** with the help of \nthe federated learning community. If you are interested in contributing, first of all, \nthank you! Second, please take a look at our \n[contributing guidelines](https://docs.vantage6.ai/en/main/devops/contribute.html) \nand our [code of conduct](CODE_OF_CONDUCT.md).\n\n<a href=\"https://github.com/vantage6/vantage6/graphs/contributors\">\n  <img src=\"https://contrib.rocks/image?repo=vantage6/vantage6\" />\n</a>\n\n## :scroll: License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n## :black_nib: Code of Conduct\n\nPlease note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). **By participating in any way in this project you agree to abide by its terms.**\n\n## :black_nib: References\n\nIf you are using **vantage6**, please cite this repository as well as the accompanying papers as follows:\n\n> - F. Martin, M. Sieswerda, H. Alradhi, et al. vantage6. Available at https://doi.org/10.5281/zenodo.7221216. Accessed on MONTH, 20XX.\n> - A. Moncada-Torres, F. Martin, M. Sieswerda, J. van Soest, G. Gelijnse. VANTAGE6: an open source priVAcy preserviNg federaTed leArninG infrastructurE for Secure Insight eXchange. AMIA Annual Symposium Proceedings, 2020, p. 870-877. [[BibTeX](https://arturomoncadatorres.com/bibtex/moncada-torres2020vantage6.txt), [PDF](https://vantage6.ai/vantage6/)]\n> - D. Smits\\*, B. van Beusekom\\*, F. Martin, L. Veen, G. Geleijnse, A. Moncada-Torres, An Improved Infrastructure for Privacy-Preserving Analysis of Patient Data, Proceedings of the International Conference of Informatics, Management, and Technology in Healthcare (ICIMTH), vol. 25, 2022, p. 144-147. [[BibTeX](https://arturomoncadatorres.com/bibtex/smits2022improved.txt), [PDF](https://ebooks.iospress.nl/volumearticle/60190)]\n\n---\n\n<p align=\"center\">\n  <a href=\"https://vantage6.ai\">vantage6.ai</a> \u2022\n  <a href=\"https://discord.gg/yAyFf6Y\">Discord</a> \u2022\n  <a href=\"https://vantage6.discourse.group/\">Discourse</a> \u2022\n  <a href=\"https://docs.vantage6.ai\">User documentation</a>\n</p>\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "vantage6 command line interface",
    "version": "4.9.0",
    "project_urls": {
        "Homepage": "https://github.com/vantage6/vantage6"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3d15768fd56b6cd3b75042d7de36d29975bb07ca67a6c230184a88b7708e4a16",
                "md5": "9ae61bb480b79829b23334d4068bbfbb",
                "sha256": "31cc8f9163a3c7ee469991a0b600fc7279a75d2f2b6e32e81712627c16d8f48b"
            },
            "downloads": -1,
            "filename": "vantage6-4.9.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9ae61bb480b79829b23334d4068bbfbb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 110756,
            "upload_time": "2025-01-15T13:52:01",
            "upload_time_iso_8601": "2025-01-15T13:52:01.257144Z",
            "url": "https://files.pythonhosted.org/packages/3d/15/768fd56b6cd3b75042d7de36d29975bb07ca67a6c230184a88b7708e4a16/vantage6-4.9.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e0e918bc5f0bcc2c39a301f2563ca8e2534f2ece8d5f1325df019fb040a441f9",
                "md5": "e32cd99139e824e40dcae48ff84747be",
                "sha256": "59fabc3388b02c4b612b0209d35c201783326adc0cde9aedc50be88f35d2c48d"
            },
            "downloads": -1,
            "filename": "vantage6-4.9.0.tar.gz",
            "has_sig": false,
            "md5_digest": "e32cd99139e824e40dcae48ff84747be",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 84974,
            "upload_time": "2025-01-15T13:52:02",
            "upload_time_iso_8601": "2025-01-15T13:52:02.695220Z",
            "url": "https://files.pythonhosted.org/packages/e0/e9/18bc5f0bcc2c39a301f2563ca8e2534f2ece8d5f1325df019fb040a441f9/vantage6-4.9.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-15 13:52:02",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "vantage6",
    "github_project": "vantage6",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "aniso8601",
            "specs": [
                [
                    "==",
                    "9.0.1"
                ]
            ]
        },
        {
            "name": "appdirs",
            "specs": [
                [
                    "==",
                    "1.4.4"
                ]
            ]
        },
        {
            "name": "attrs",
            "specs": [
                [
                    "==",
                    "22.2.0"
                ]
            ]
        },
        {
            "name": "backcall",
            "specs": [
                [
                    "==",
                    "0.2.0"
                ]
            ]
        },
        {
            "name": "bcrypt",
            "specs": [
                [
                    "==",
                    "4.0.1"
                ]
            ]
        },
        {
            "name": "bidict",
            "specs": [
                [
                    "==",
                    "0.22.1"
                ]
            ]
        },
        {
            "name": "blinker",
            "specs": [
                [
                    "==",
                    "1.6.2"
                ]
            ]
        },
        {
            "name": "cffi",
            "specs": [
                [
                    "==",
                    "1.15.1"
                ]
            ]
        },
        {
            "name": "charset-normalizer",
            "specs": [
                [
                    "==",
                    "3.0.1"
                ]
            ]
        },
        {
            "name": "click",
            "specs": [
                [
                    "==",
                    "8.1.3"
                ]
            ]
        },
        {
            "name": "colorama",
            "specs": [
                [
                    "==",
                    "0.4.6"
                ]
            ]
        },
        {
            "name": "contextlib2",
            "specs": [
                [
                    "==",
                    "21.6.0"
                ]
            ]
        },
        {
            "name": "cryptography",
            "specs": [
                [
                    "==",
                    "43.0.1"
                ]
            ]
        },
        {
            "name": "decorator",
            "specs": [
                [
                    "==",
                    "5.1.1"
                ]
            ]
        },
        {
            "name": "docker",
            "specs": [
                [
                    "==",
                    "7.1.0"
                ]
            ]
        },
        {
            "name": "flasgger",
            "specs": [
                [
                    "==",
                    "0.9.5"
                ]
            ]
        },
        {
            "name": "flask",
            "specs": [
                [
                    "==",
                    "2.2.5"
                ]
            ]
        },
        {
            "name": "Flask-Cors",
            "specs": [
                [
                    "==",
                    "5.0.0"
                ]
            ]
        },
        {
            "name": "Flask-JWT-Extended",
            "specs": [
                [
                    "==",
                    "4.4.4"
                ]
            ]
        },
        {
            "name": "Flask-Mail",
            "specs": [
                [
                    "==",
                    "0.9.1"
                ]
            ]
        },
        {
            "name": "flask-marshmallow",
            "specs": [
                [
                    "==",
                    "0.15.0"
                ]
            ]
        },
        {
            "name": "Flask-Principal",
            "specs": [
                [
                    "==",
                    "0.4.0"
                ]
            ]
        },
        {
            "name": "Flask-RESTful",
            "specs": [
                [
                    "==",
                    "0.3.10"
                ]
            ]
        },
        {
            "name": "Flask-SocketIO",
            "specs": [
                [
                    "==",
                    "5.3.6"
                ]
            ]
        },
        {
            "name": "gevent",
            "specs": [
                [
                    "==",
                    "23.9.1"
                ]
            ]
        },
        {
            "name": "greenlet",
            "specs": [
                [
                    "==",
                    "2.0.2"
                ]
            ]
        },
        {
            "name": "idna",
            "specs": [
                [
                    "==",
                    "3.7"
                ]
            ]
        },
        {
            "name": "ipython",
            "specs": [
                [
                    "==",
                    "8.10.0"
                ]
            ]
        },
        {
            "name": "isodate",
            "specs": [
                [
                    "==",
                    "0.6.1"
                ]
            ]
        },
        {
            "name": "itsdangerous",
            "specs": [
                [
                    "==",
                    "2.1.2"
                ]
            ]
        },
        {
            "name": "jedi",
            "specs": [
                [
                    "==",
                    "0.18.2"
                ]
            ]
        },
        {
            "name": "jinja2",
            "specs": [
                [
                    "==",
                    "3.1.4"
                ]
            ]
        },
        {
            "name": "jsonschema",
            "specs": [
                [
                    "==",
                    "4.17.3"
                ]
            ]
        },
        {
            "name": "kombu",
            "specs": [
                [
                    "==",
                    "5.2.4"
                ]
            ]
        },
        {
            "name": "MarkupSafe",
            "specs": [
                [
                    "==",
                    "2.1.2"
                ]
            ]
        },
        {
            "name": "marshmallow",
            "specs": [
                [
                    "==",
                    "3.20.2"
                ]
            ]
        },
        {
            "name": "marshmallow-sqlalchemy",
            "specs": [
                [
                    "==",
                    "0.15.0"
                ]
            ]
        },
        {
            "name": "mistune",
            "specs": [
                [
                    "==",
                    "2.0.4"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    "==",
                    "1.24.2"
                ]
            ]
        },
        {
            "name": "oauthlib",
            "specs": [
                [
                    "==",
                    "3.2.2"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    ">=",
                    "1.5.3"
                ]
            ]
        },
        {
            "name": "parso",
            "specs": [
                [
                    "==",
                    "0.8.3"
                ]
            ]
        },
        {
            "name": "pickleshare",
            "specs": [
                [
                    "==",
                    "0.7.5"
                ]
            ]
        },
        {
            "name": "prompt-toolkit",
            "specs": [
                [
                    "==",
                    "3.0.36"
                ]
            ]
        },
        {
            "name": "pure-eval",
            "specs": [
                [
                    "==",
                    "0.2.2"
                ]
            ]
        },
        {
            "name": "pycparser",
            "specs": [
                [
                    "==",
                    "2.21"
                ]
            ]
        },
        {
            "name": "pyfiglet",
            "specs": [
                [
                    "==",
                    "0.8.post1"
                ]
            ]
        },
        {
            "name": "Pygments",
            "specs": [
                [
                    "==",
                    "2.15.0"
                ]
            ]
        },
        {
            "name": "PyJWT",
            "specs": [
                [
                    "==",
                    "2.6.0"
                ]
            ]
        },
        {
            "name": "pyotp",
            "specs": [
                [
                    "==",
                    "2.8.0"
                ]
            ]
        },
        {
            "name": "pyparsing",
            "specs": [
                [
                    "==",
                    "3.0.9"
                ]
            ]
        },
        {
            "name": "pyrsistent",
            "specs": [
                [
                    "==",
                    "0.19.3"
                ]
            ]
        },
        {
            "name": "python-dateutil",
            "specs": [
                [
                    "==",
                    "2.8.2"
                ]
            ]
        },
        {
            "name": "python-engineio",
            "specs": [
                [
                    "==",
                    "4.3.4"
                ]
            ]
        },
        {
            "name": "python-socketio",
            "specs": [
                [
                    "==",
                    "5.7.2"
                ]
            ]
        },
        {
            "name": "pytz",
            "specs": [
                [
                    "==",
                    "2022.7.1"
                ]
            ]
        },
        {
            "name": "PyYAML",
            "specs": [
                [
                    "==",
                    "6.0.1"
                ]
            ]
        },
        {
            "name": "qrcode",
            "specs": [
                [
                    "==",
                    "7.3.1"
                ]
            ]
        },
        {
            "name": "questionary",
            "specs": [
                [
                    "==",
                    "1.10.0"
                ]
            ]
        },
        {
            "name": "rdflib",
            "specs": [
                [
                    "==",
                    "6.2.0"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.32.3"
                ]
            ]
        },
        {
            "name": "requests-oauthlib",
            "specs": [
                [
                    "==",
                    "1.3.1"
                ]
            ]
        },
        {
            "name": "rich",
            "specs": [
                [
                    "==",
                    "13.5.2"
                ]
            ]
        },
        {
            "name": "schema",
            "specs": [
                [
                    "==",
                    "0.7.5"
                ]
            ]
        },
        {
            "name": "six",
            "specs": [
                [
                    "==",
                    "1.16.0"
                ]
            ]
        },
        {
            "name": "SPARQLWrapper",
            "specs": [
                [
                    "==",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "SQLAlchemy",
            "specs": [
                [
                    "==",
                    "1.4.46"
                ]
            ]
        },
        {
            "name": "traitlets",
            "specs": [
                [
                    "==",
                    "5.8.1"
                ]
            ]
        },
        {
            "name": "urllib3",
            "specs": [
                [
                    "==",
                    "1.26.19"
                ]
            ]
        },
        {
            "name": "wcwidth",
            "specs": [
                [
                    "==",
                    "0.2.6"
                ]
            ]
        },
        {
            "name": "websocket-client",
            "specs": [
                [
                    "==",
                    "1.5.0"
                ]
            ]
        },
        {
            "name": "werkzeug",
            "specs": [
                [
                    "==",
                    "3.0.6"
                ]
            ]
        },
        {
            "name": "zope.event",
            "specs": [
                [
                    "==",
                    "4.6"
                ]
            ]
        },
        {
            "name": "zope.interface",
            "specs": [
                [
                    "==",
                    "5.5.2"
                ]
            ]
        }
    ],
    "lcname": "vantage6"
}
        
Elapsed time: 1.18249s