|
1 | | -######################################################################################################################## |
2 | | -### Do not forget to adjust the following variables to your own plugin. |
| 1 | +import setuptools |
3 | 2 |
|
4 | | -# The plugin's identifier, has to be unique |
5 | | -plugin_identifier = "mfa_totp" |
6 | | - |
7 | | -# The plugin's python package, should be "octoprint_<plugin identifier>", has to be unique |
8 | | -plugin_package = "octoprint_mfa_totp" |
9 | | - |
10 | | -# The plugin's human readable name. Can be overwritten within OctoPrint's internal data via __plugin_name__ in the |
11 | | -# plugin module |
12 | | -plugin_name = "OctoPrint-MfaTotp" |
13 | | - |
14 | | -# The plugin's version. Can be overwritten within OctoPrint's internal data via __plugin_version__ in the plugin module |
15 | | -plugin_version = "1.0.0" |
16 | | - |
17 | | -# The plugin's description. Can be overwritten within OctoPrint's internal data via __plugin_description__ in the plugin |
18 | | -# module |
19 | | -plugin_description = ( |
20 | | - """Plugin to support TOTP based Two Factor Authentication in OctoPrint.""" |
21 | | -) |
22 | | - |
23 | | -# The plugin's author. Can be overwritten within OctoPrint's internal data via __plugin_author__ in the plugin module |
24 | | -plugin_author = "Gina Häußge" |
25 | | - |
26 | | -# The plugin's author's mail address. |
27 | | -plugin_author_email = "gina@octoprint.org" |
28 | | - |
29 | | -# The plugin's homepage URL. Can be overwritten within OctoPrint's internal data via __plugin_url__ in the plugin module |
30 | | -plugin_url = "https://github.com/OctoPrint/OctoPrint-MfaTotp" |
31 | | - |
32 | | -# The plugin's license. Can be overwritten within OctoPrint's internal data via __plugin_license__ in the plugin module |
33 | | -plugin_license = "AGPLv3" |
34 | | - |
35 | | -# Any additional requirements besides OctoPrint should be listed here |
36 | | -plugin_requires = ["pyotp>=2.9.0,<3"] |
37 | | - |
38 | | -### -------------------------------------------------------------------------------------------------------------------- |
39 | | -### More advanced options that you usually shouldn't have to touch follow after this point |
40 | | -### -------------------------------------------------------------------------------------------------------------------- |
41 | | - |
42 | | -# Additional package data to install for this plugin. The subfolders "templates", "static" and "translations" will |
43 | | -# already be installed automatically if they exist. Note that if you add something here you'll also need to update |
44 | | -# MANIFEST.in to match to ensure that python setup.py sdist produces a source distribution that contains all your |
45 | | -# files. This is sadly due to how python's setup.py works, see also http://stackoverflow.com/a/14159430/2028598 |
46 | | -plugin_additional_data = [] |
47 | | - |
48 | | -# Any additional python packages you need to install with your plugin that are not contained in <plugin_package>.* |
49 | | -plugin_additional_packages = [] |
50 | | - |
51 | | -# Any python packages within <plugin_package>.* you do NOT want to install with your plugin |
52 | | -plugin_ignored_packages = [] |
53 | | - |
54 | | -# Additional parameters for the call to setuptools.setup. If your plugin wants to register additional entry points, |
55 | | -# define dependency links or other things like that, this is the place to go. Will be merged recursively with the |
56 | | -# default setup parameters as provided by octoprint_setuptools.create_plugin_setup_parameters using |
57 | | -# octoprint.util.dict_merge. |
58 | | -# |
59 | | -# Example: |
60 | | -# plugin_requires = ["someDependency==dev"] |
61 | | -# additional_setup_parameters = {"dependency_links": ["https://github.com/someUser/someRepo/archive/master.zip#egg=someDependency-dev"]} |
62 | | -# "python_requires": ">=3,<4" blocks installation on Python 2 systems, to prevent confused users and provide a helpful error. |
63 | | -# Remove it if you would like to support Python 2 as well as 3 (not recommended). |
64 | | -additional_setup_parameters = {"python_requires": ">=3,<4"} |
65 | | - |
66 | | -######################################################################################################################## |
67 | | - |
68 | | -from setuptools import setup # noqa: I001 |
69 | | - |
70 | | -try: |
71 | | - import octoprint_setuptools |
72 | | -except: # noqa: E722 |
73 | | - print( |
74 | | - "Could not import OctoPrint's setuptools, are you sure you are running that under " |
75 | | - "the same python installation that OctoPrint is installed under?" |
76 | | - ) |
77 | | - import sys |
78 | | - |
79 | | - sys.exit(-1) |
80 | | - |
81 | | -setup_parameters = octoprint_setuptools.create_plugin_setup_parameters( |
82 | | - identifier=plugin_identifier, |
83 | | - package=plugin_package, |
84 | | - name=plugin_name, |
85 | | - version=plugin_version, |
86 | | - description=plugin_description, |
87 | | - author=plugin_author, |
88 | | - mail=plugin_author_email, |
89 | | - url=plugin_url, |
90 | | - license=plugin_license, |
91 | | - requires=plugin_requires, |
92 | | - additional_packages=plugin_additional_packages, |
93 | | - ignored_packages=plugin_ignored_packages, |
94 | | - additional_data=plugin_additional_data, |
95 | | -) |
96 | | - |
97 | | -if len(additional_setup_parameters): |
98 | | - |
99 | | - def leaf_merge(a, b): |
100 | | - for k, v in b.items(): |
101 | | - if k in a and isinstance(a[k], dict) and isinstance(v, dict): |
102 | | - leaf_merge(a[k], v) |
103 | | - else: |
104 | | - a[k] = v |
105 | | - |
106 | | - leaf_merge(setup_parameters, additional_setup_parameters) |
107 | | - |
108 | | -setup(**setup_parameters) |
| 3 | +# we define the license string like this to be backwards compatible to setuptools<77 |
| 4 | +setuptools.setup(license="AGPL-3.0-or-later") |
0 commit comments