vantage6 3.0.0__tar.gz → 4.13.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. vantage6-4.13.6/PKG-INFO +238 -0
  2. vantage6-4.13.6/setup.py +79 -0
  3. vantage6-4.13.6/tests_cli/test_client_script.py +23 -0
  4. {vantage6-3.0.0/tests → vantage6-4.13.6/tests_cli}/test_example.py +0 -1
  5. {vantage6-3.0.0/tests → vantage6-4.13.6/tests_cli}/test_node_cli.py +184 -151
  6. {vantage6-3.0.0/tests → vantage6-4.13.6/tests_cli}/test_server_cli.py +61 -60
  7. vantage6-4.13.6/tests_cli/test_wizard.py +140 -0
  8. vantage6-4.13.6/vantage6/cli/__init__.py +3 -0
  9. vantage6-4.13.6/vantage6/cli/_version.py +23 -0
  10. vantage6-4.13.6/vantage6/cli/algorithm/create.py +193 -0
  11. vantage6-4.13.6/vantage6/cli/algorithm/update.py +50 -0
  12. vantage6-4.13.6/vantage6/cli/algostore/attach.py +49 -0
  13. vantage6-4.13.6/vantage6/cli/algostore/files.py +17 -0
  14. vantage6-4.13.6/vantage6/cli/algostore/list.py +15 -0
  15. vantage6-4.13.6/vantage6/cli/algostore/new.py +61 -0
  16. vantage6-4.13.6/vantage6/cli/algostore/remove.py +52 -0
  17. vantage6-4.13.6/vantage6/cli/algostore/start.py +107 -0
  18. vantage6-4.13.6/vantage6/cli/algostore/stop.py +60 -0
  19. vantage6-4.13.6/vantage6/cli/cli.py +166 -0
  20. vantage6-4.13.6/vantage6/cli/common/decorator.py +105 -0
  21. vantage6-4.13.6/vantage6/cli/common/start.py +306 -0
  22. vantage6-4.13.6/vantage6/cli/common/utils.py +167 -0
  23. vantage6-4.13.6/vantage6/cli/configuration_manager.py +133 -0
  24. vantage6-4.13.6/vantage6/cli/configuration_wizard.py +625 -0
  25. vantage6-4.13.6/vantage6/cli/context/__init__.py +87 -0
  26. vantage6-4.13.6/vantage6/cli/context/algorithm_store.py +128 -0
  27. vantage6-4.13.6/vantage6/cli/context/base_server.py +89 -0
  28. vantage6-4.13.6/vantage6/cli/context/node.py +265 -0
  29. vantage6-4.13.6/vantage6/cli/context/server.py +151 -0
  30. vantage6-4.13.6/vantage6/cli/dev/create.py +696 -0
  31. vantage6-4.13.6/vantage6/cli/dev/data/km_dataset.csv +2401 -0
  32. vantage6-4.13.6/vantage6/cli/dev/data/olympic_athletes_2016.csv +2425 -0
  33. vantage6-4.13.6/vantage6/cli/dev/remove.py +111 -0
  34. vantage6-4.13.6/vantage6/cli/dev/start.py +123 -0
  35. vantage6-4.13.6/vantage6/cli/dev/stop.py +47 -0
  36. vantage6-4.13.6/vantage6/cli/dev/utils.py +24 -0
  37. vantage6-4.13.6/vantage6/cli/globals.py +76 -0
  38. vantage6-4.13.6/vantage6/cli/node/attach.py +74 -0
  39. vantage6-4.13.6/vantage6/cli/node/clean.py +48 -0
  40. vantage6-4.13.6/vantage6/cli/node/common/__init__.py +135 -0
  41. vantage6-4.13.6/vantage6/cli/node/create_private_key.py +178 -0
  42. vantage6-4.13.6/vantage6/cli/node/files.py +42 -0
  43. vantage6-4.13.6/vantage6/cli/node/list.py +56 -0
  44. vantage6-4.13.6/vantage6/cli/node/new.py +59 -0
  45. vantage6-4.13.6/vantage6/cli/node/remove.py +111 -0
  46. vantage6-4.13.6/vantage6/cli/node/restart.py +128 -0
  47. vantage6-4.13.6/vantage6/cli/node/set_api_key.py +55 -0
  48. vantage6-4.13.6/vantage6/cli/node/start.py +343 -0
  49. vantage6-4.13.6/vantage6/cli/node/stop.py +129 -0
  50. vantage6-4.13.6/vantage6/cli/node/version.py +61 -0
  51. vantage6-4.13.6/vantage6/cli/prometheus/monitoring_manager.py +146 -0
  52. vantage6-4.13.6/vantage6/cli/prometheus/prometheus.yml +5 -0
  53. vantage6-4.13.6/vantage6/cli/rabbitmq/__init__.py +0 -0
  54. vantage6-4.13.6/vantage6/cli/rabbitmq/definitions.py +26 -0
  55. vantage6-4.13.6/vantage6/cli/rabbitmq/queue_manager.py +218 -0
  56. vantage6-4.13.6/vantage6/cli/rabbitmq/rabbitmq.config +8 -0
  57. vantage6-4.13.6/vantage6/cli/server/attach.py +63 -0
  58. vantage6-4.13.6/vantage6/cli/server/common/__init__.py +68 -0
  59. vantage6-4.13.6/vantage6/cli/server/files.py +16 -0
  60. vantage6-4.13.6/vantage6/cli/server/import_.py +150 -0
  61. vantage6-4.13.6/vantage6/cli/server/list.py +15 -0
  62. vantage6-4.13.6/vantage6/cli/server/new.py +60 -0
  63. vantage6-4.13.6/vantage6/cli/server/remove.py +52 -0
  64. vantage6-4.13.6/vantage6/cli/server/shell.py +53 -0
  65. vantage6-4.13.6/vantage6/cli/server/start.py +314 -0
  66. vantage6-4.13.6/vantage6/cli/server/stop.py +126 -0
  67. vantage6-4.13.6/vantage6/cli/server/version.py +36 -0
  68. vantage6-4.13.6/vantage6/cli/template/algo_store_config.j2 +23 -0
  69. vantage6-4.13.6/vantage6/cli/template/node_config.j2 +36 -0
  70. vantage6-4.13.6/vantage6/cli/template/server_config.j2 +35 -0
  71. vantage6-4.13.6/vantage6/cli/template/server_import_config.j2 +33 -0
  72. vantage6-4.13.6/vantage6/cli/test/algo_test_scripts/algo_test_arguments.py +33 -0
  73. vantage6-4.13.6/vantage6/cli/test/algo_test_scripts/algo_test_script.py +88 -0
  74. vantage6-4.13.6/vantage6/cli/test/client_script.py +150 -0
  75. vantage6-4.13.6/vantage6/cli/test/common/diagnostic_runner.py +196 -0
  76. vantage6-4.13.6/vantage6/cli/test/feature_tester.py +97 -0
  77. vantage6-4.13.6/vantage6/cli/test/integration_test.py +122 -0
  78. vantage6-4.13.6/vantage6/cli/utils.py +101 -0
  79. vantage6-4.13.6/vantage6.egg-info/PKG-INFO +238 -0
  80. vantage6-4.13.6/vantage6.egg-info/SOURCES.txt +85 -0
  81. vantage6-4.13.6/vantage6.egg-info/entry_points.txt +5 -0
  82. vantage6-4.13.6/vantage6.egg-info/requires.txt +18 -0
  83. vantage6-4.13.6/vantage6.egg-info/top_level.txt +2 -0
  84. vantage6-3.0.0/PKG-INFO +0 -11
  85. vantage6-3.0.0/README.md +0 -131
  86. vantage6-3.0.0/setup.py +0 -65
  87. vantage6-3.0.0/tests/test_wizard.py +0 -92
  88. vantage6-3.0.0/vantage6/cli/__init__.py +0 -1
  89. vantage6-3.0.0/vantage6/cli/_version.py +0 -20
  90. vantage6-3.0.0/vantage6/cli/configuration_manager.py +0 -92
  91. vantage6-3.0.0/vantage6/cli/configuration_wizard.py +0 -219
  92. vantage6-3.0.0/vantage6/cli/context.py +0 -139
  93. vantage6-3.0.0/vantage6/cli/globals.py +0 -32
  94. vantage6-3.0.0/vantage6/cli/node.py +0 -710
  95. vantage6-3.0.0/vantage6/cli/server.py +0 -627
  96. vantage6-3.0.0/vantage6.egg-info/PKG-INFO +0 -11
  97. vantage6-3.0.0/vantage6.egg-info/SOURCES.txt +0 -22
  98. vantage6-3.0.0/vantage6.egg-info/entry_points.txt +0 -4
  99. vantage6-3.0.0/vantage6.egg-info/requires.txt +0 -13
  100. vantage6-3.0.0/vantage6.egg-info/top_level.txt +0 -2
  101. {vantage6-3.0.0 → vantage6-4.13.6}/setup.cfg +0 -0
  102. {vantage6-3.0.0/tests → vantage6-4.13.6/tests_cli}/__init__.py +0 -0
  103. {vantage6-3.0.0 → vantage6-4.13.6}/vantage6/cli/__build__ +0 -0
  104. {vantage6-3.0.0 → vantage6-4.13.6}/vantage6.egg-info/dependency_links.txt +0 -0
@@ -0,0 +1,238 @@
1
+ Metadata-Version: 2.4
2
+ Name: vantage6
3
+ Version: 4.13.6
4
+ Summary: vantage6 command line interface
5
+ Home-page: https://github.com/vantage6/vantage6
6
+ Requires-Python: >=3.10
7
+ Description-Content-Type: text/markdown
8
+ Requires-Dist: click==8.1.3
9
+ Requires-Dist: colorama==0.4.6
10
+ Requires-Dist: copier==9.11.3
11
+ Requires-Dist: docker==7.1.0
12
+ Requires-Dist: ipython==8.10.0
13
+ Requires-Dist: jinja2==3.1.6
14
+ Requires-Dist: pandas>=1.5.3
15
+ Requires-Dist: questionary==2.1.1
16
+ Requires-Dist: rich==13.5.2
17
+ Requires-Dist: schema==0.7.5
18
+ Requires-Dist: SQLAlchemy==1.4.46
19
+ Requires-Dist: vantage6-common==4.13.6
20
+ Requires-Dist: vantage6-client==4.13.6
21
+ Provides-Extra: dev
22
+ Requires-Dist: coverage==6.4.4; extra == "dev"
23
+ Requires-Dist: black; extra == "dev"
24
+ Requires-Dist: pre-commit; extra == "dev"
25
+ Dynamic: description
26
+ Dynamic: description-content-type
27
+ Dynamic: home-page
28
+ Dynamic: provides-extra
29
+ Dynamic: requires-dist
30
+ Dynamic: requires-python
31
+ Dynamic: summary
32
+
33
+ <h1 align="center">
34
+ <br>
35
+ <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>
36
+ </h1>
37
+
38
+ <h3 align=center> A Privacy Enhancing Technology (PET) Operations platform</h3>
39
+ <h3 align="center">
40
+
41
+ <!-- Badges go here-->
42
+
43
+ [![Release](https://github.com/vantage6/vantage6/actions/workflows/release.yml/badge.svg)](https://github.com/vantage6/vantage6/actions/workflows/release.yml)
44
+ [![PyPI vantage6](https://badge.fury.io/py/vantage6.svg)](https://badge.fury.io/py/vantage6)
45
+ [![Unittests](https://github.com/vantage6/vantage6/actions/workflows/unit_tests.yml/badge.svg)](https://github.com/vantage6/vantage6/actions/workflows/unit_tests.yml)
46
+ [![Coverage Status](https://coveralls.io/repos/github/vantage6/vantage6/badge.svg?branch=main)](https://coveralls.io/github/vantage6/vantage6?branch=main)
47
+ [![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)
48
+ [![DOI](https://zenodo.org/badge/492818831.svg)](https://zenodo.org/badge/latestdoi/492818831)
49
+ [![Discord](https://img.shields.io/discord/643526403207331841)](https://discord.gg/yAyFf6Y)
50
+ [![Research software directory](https://img.shields.io/badge/rsd-vantage6-deepskyblue)](https://research-software-directory.org/software/vantage6)
51
+
52
+
53
+ </h3>
54
+
55
+ <p align="center">
56
+ <a href="#books-quickstart">Quickstart</a> •
57
+ <a href="#project-structure">Project structure</a> •
58
+ <a href="#gift_heart-join-the-community">Join the community</a> •
59
+ <a href="#scroll-license">License</a> •
60
+ <a href="#black_nib-code-of-conduct">Code of conduct</a> •
61
+ <a href="#black_nib-references">References</a>
62
+ </p>
63
+
64
+ ---
65
+
66
+ 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!
67
+
68
+ 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.
69
+
70
+ ## Infrastructure overview
71
+
72
+ ![Vantage6 architecture overview](docs/images/overview-infrastructure.png)
73
+
74
+ _A High level overview of the vantage6 infrastructure. Vantage6 has both a
75
+ client-server and peer-to-peer architecture. The client is used by the researcher to
76
+ create (PET) computation requests. It is also used to manage users, organizations and
77
+ collaborations. The server contains users, organizations, collaborations, tasks and
78
+ their results. It provides a central access point for both the clients and nodes. The
79
+ nodes have access to privacy sensitive data and handle computation requests retrieved
80
+ from the server. Computation request are executed as separate containers on the node.
81
+ These containers are connected to containers at other nodes by a VPN network._
82
+
83
+ ## :books: Quickstart
84
+
85
+ ### Requirements
86
+
87
+ The **vantage6** infrastructure is delivered in Docker images. To run these images, you
88
+ need to have [Docker](https://docs.docker.com/get-docker/) installed. To install the
89
+ latest version of the vantage6 CLI, you need to have
90
+ [Python](https://www.python.org/downloads/), we recommend using an environment manager
91
+ like [mini-conda](https://docs.conda.io/en/latest/miniconda.html).
92
+
93
+ Install the latest version of the vantage6 CLI by using:
94
+
95
+ ```bash
96
+ pip install vantage6
97
+ ```
98
+
99
+ This install the `v6` commands, which allows you to manage your nodes and servers. To view all available options, run:
100
+
101
+ ```bash
102
+ v6 --help
103
+ ```
104
+
105
+ For example you can create a local test setup by using:
106
+
107
+ ```bash
108
+ v6 dev create-demo-network
109
+ ```
110
+
111
+ This creates a local network with a server and two nodes. You can start the network by running:
112
+
113
+ ```bash
114
+ v6 dev start-demo-network
115
+ ```
116
+
117
+ This will start the server and nodes in the background. You can view the logs by running:
118
+
119
+ ```bash
120
+ # View node logs
121
+ v6 node attach
122
+
123
+ # View server logs
124
+ v6 server attach
125
+ ```
126
+
127
+ From here you can use the [vantage6-client](https://pypi.org/project/vantage6-client)
128
+ to interact with the server. The demo network has a pre-configured organization with
129
+ the following credentials:
130
+
131
+ - Username: `dev_admin`
132
+ - Password: `password`
133
+
134
+ For example, you can create a new organization by running:
135
+
136
+ ```python
137
+ from vantage6.client import Client
138
+
139
+ client = Client('http://127.0.0.1', 7601, '/api', log_level='debug')
140
+ client.authenticate('dev_admin', 'password')
141
+ client.setup_encryption(None)
142
+
143
+ client.organization.create(
144
+ name='My organization',
145
+ address1='My address',
146
+ address2='My address',
147
+ zipcode='1234AB',
148
+ country='The Netherlands',
149
+ domain='my-organization.com'
150
+ )
151
+ ```
152
+
153
+ You can find more (user) documentation at [readthedocs](https://docs.vantage6.ai)
154
+
155
+ ## Project structure
156
+
157
+ ### PYPI packages
158
+
159
+ This repository is home to 6 PyPi packages:
160
+
161
+ - [vantage6](https://pypi.org/project/vantage6) -> _CLI for managing node and server instances_
162
+ - [vantage6-client](https://pypi.org/project/vantage6-client) -> _Python client for interacting with the vantage6-server_
163
+ - [vantage6-algorithm-tools](https://pypi.org/project/vantage6-algorithm-tools) -> _Python tools to facilitate algorithm development_
164
+ - [vantage6-node](https://pypi.org/project/vantage6-node) -> _Node application package_
165
+ - [vantage6-server](https://pypi.org/project/vantage6-server) -> _Server application package_
166
+ - [vantage6-algorithm-store](https://pypi.org/project/vantage6-algorithm-store) -> _Algorithm store application package_
167
+ - [vantage6-common](https://pypi.org/project/vantage6-common) -> _Package with common vantage6 functions_
168
+ - [vantage6-backend-common](https://pypi.org/project/vantage6-backend-common) -> _Package with functions common to central server and algorithm store_
169
+
170
+ **Note that when using vantage6 you do not install the _server_ and _node_ packages. These are delivered to you in Docker images.**
171
+
172
+ This repository also hosts the code for the vantage6 user interface (UI). The UI
173
+ is an Angular web application that can be used to interact with the vantage6 server
174
+ easily.
175
+
176
+ ### Docker images
177
+
178
+ The vantage6 infrastructure is delivered in Docker images. All Docker images are stored
179
+ in our private [Harbor](https://goharbor.io/) registry. The most important images are:
180
+
181
+ - `harbor2.vantage6.ai/infrastructure/node:VERSION` -> _Node application Docker image_
182
+ - `harbor2.vantage6.ai/infrastructure/server:VERSION` -> _Server application Docker image_
183
+ - `harbor2.vantage6.ai/infrastructure/ui:VERSION` -> _User interface Docker image_
184
+ - `harbor2.vantage6.ai/infrastructure/algorithm-store:VERSION` -> _Algorithm store Docker image_
185
+
186
+ with `VERSION` being the full semantic version of the vantage6 infrastructure, e.g.
187
+ `4.0.0` or `4.1.0rc0`.
188
+
189
+ Several other images are used to support the infrastructure:
190
+
191
+ - `harbor2.vantage6.ai/infrastructure/infrastructure-base:VERSION` -> _Base image for the infrastructure_
192
+ - `harbor2.vantage6.ai/infrastructure/squid:VERSION` -> _Squid proxy image used for the whitelisting service_
193
+ - `harbor2.vantage6.ai/infrastructure/alpine` -> _Alpine image used for vpn traffic forwarding_
194
+ - `harbor2.vantage6.ai/infrastructure/vpn-client` -> _VPN image used to connect to the VPN_
195
+ - `harbor2.vantage6.ai/infrastructure/vpn-configurator` -> _VPN image used for initialization_
196
+ - `harbor2.vantage6.ai/infrastructure/ssh-tunnel` -> _SSH tunnel image used for connecting algorithms to external services_
197
+
198
+ And finally there are some images released for algorithm development:
199
+
200
+ - `harbor2.vantage6.ai/infrastructure/algorithm-base:MAJOR.MINOR` -> _Base image for algorithm development_
201
+ - `harbor2.vantage6.ai/infrastructure/algorithm-ohdsi-base:MAJOR.MINOR` -> _Extended algorithm base image for OHDSI algorithm development_
202
+
203
+ ## :gift_heart: Join the community!
204
+
205
+ We hope to continue developing, improving, and supporting **vantage6** with the help of
206
+ the federated learning community. If you are interested in contributing, first of all,
207
+ thank you! Second, please take a look at our
208
+ [contributing guidelines](https://docs.vantage6.ai/en/main/devops/contribute.html)
209
+ and our [code of conduct](CODE_OF_CONDUCT.md).
210
+
211
+ <a href="https://github.com/vantage6/vantage6/graphs/contributors">
212
+ <img src="https://contrib.rocks/image?repo=vantage6/vantage6" />
213
+ </a>
214
+
215
+ ## :scroll: License
216
+
217
+ This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
218
+
219
+ ## :black_nib: Code of Conduct
220
+
221
+ 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.**
222
+
223
+ ## :black_nib: References
224
+
225
+ If you are using **vantage6**, please cite this repository as well as the accompanying papers as follows:
226
+
227
+ > - F. Martin, M. Sieswerda, H. Alradhi, et al. vantage6. Available at https://doi.org/10.5281/zenodo.7221216. Accessed on MONTH, 20XX.
228
+ > - 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/)]
229
+ > - 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)]
230
+
231
+ ---
232
+
233
+ <p align="center">
234
+ <a href="https://vantage6.ai">vantage6.ai</a> •
235
+ <a href="https://discord.gg/yAyFf6Y">Discord</a> •
236
+ <a href="https://vantage6.discourse.group/">Discourse</a> •
237
+ <a href="https://docs.vantage6.ai">User documentation</a>
238
+ </p>
@@ -0,0 +1,79 @@
1
+ import codecs
2
+ import os
3
+ from codecs import open
4
+ from os import path
5
+ from pathlib import Path
6
+
7
+ from setuptools import find_namespace_packages, setup
8
+
9
+ # get current directory
10
+ here = Path(path.abspath(path.dirname(__file__)))
11
+ parent_dir = here.parent.absolute()
12
+
13
+ # get the long description from the README file
14
+ with codecs.open(path.join(parent_dir, "README.md"), encoding="utf-8") as f:
15
+ long_description = f.read()
16
+
17
+ # Read the API version from disk. This file should be located in the package
18
+ # folder, since it's also used to set the pkg.__version__ variable.
19
+ version_path = os.path.join(here, "vantage6", "cli", "_version.py")
20
+ version_ns = {"__file__": version_path}
21
+ with open(version_path) as f:
22
+ exec(f.read(), {}, version_ns)
23
+
24
+
25
+ # setup the package
26
+ setup(
27
+ name="vantage6",
28
+ version=version_ns["__version__"],
29
+ description="vantage6 command line interface",
30
+ long_description=long_description,
31
+ long_description_content_type="text/markdown",
32
+ url="https://github.com/vantage6/vantage6",
33
+ packages=find_namespace_packages(),
34
+ python_requires=">=3.10",
35
+ install_requires=[
36
+ "click==8.1.3",
37
+ "colorama==0.4.6",
38
+ "copier==9.11.3",
39
+ "docker==7.1.0",
40
+ "ipython==8.10.0",
41
+ "jinja2==3.1.6",
42
+ "pandas>=1.5.3",
43
+ "questionary==2.1.1",
44
+ "rich==13.5.2",
45
+ "schema==0.7.5",
46
+ "SQLAlchemy==1.4.46",
47
+ f"vantage6-common == {version_ns['__version__']}",
48
+ f"vantage6-client == {version_ns['__version__']}",
49
+ ],
50
+ extras_require={
51
+ "dev": [
52
+ "coverage==6.4.4",
53
+ "black",
54
+ "pre-commit",
55
+ ]
56
+ },
57
+ package_data={
58
+ "vantage6.cli": [
59
+ "__build__",
60
+ "rabbitmq/rabbitmq.config",
61
+ "template/node_config.j2",
62
+ "template/server_config.j2",
63
+ "template/server_import_config.j2",
64
+ "template/algo_store_config.j2",
65
+ "dev/data/olympic_athletes_2016.csv",
66
+ "dev/data/km_dataset.csv",
67
+ "prometheus/prometheus.yml",
68
+ ],
69
+ },
70
+ entry_points={
71
+ "console_scripts": [
72
+ "v6=vantage6.cli.cli:cli_complete",
73
+ # TODO v5+ remove vnode/vserver/vdev aliases (?)
74
+ "vnode=vantage6.cli.cli:cli_node",
75
+ "vserver=vantage6.cli.cli:cli_server",
76
+ "vdev=vantage6.cli.cli:cli_dev",
77
+ ]
78
+ },
79
+ )
@@ -0,0 +1,23 @@
1
+ from click import UsageError
2
+ from vantage6.cli.test.client_script import cli_test_client_script
3
+
4
+ import click
5
+ import unittest
6
+
7
+
8
+ class TestScriptTest(unittest.TestCase):
9
+ def test_script_incorrect_usage(self):
10
+ ctx = click.Context(cli_test_client_script)
11
+
12
+ with self.assertRaises(UsageError):
13
+ ctx.invoke(
14
+ cli_test_client_script,
15
+ script="path/to/script.py",
16
+ task_arguments="{'my_arg': 1}",
17
+ )
18
+
19
+ with self.assertRaises(UsageError):
20
+ ctx.invoke(
21
+ cli_test_client_script,
22
+ task_arguments="not_a_json",
23
+ )
@@ -2,7 +2,6 @@ import unittest
2
2
 
3
3
 
4
4
  class ExampleTest(unittest.TestCase):
5
-
6
5
  def test_example(self):
7
6
  self.assertTrue(True)
8
7
  self.assertFalse(False)