-
Notifications
You must be signed in to change notification settings - Fork 368
/
Copy pathsetup.py
136 lines (117 loc) · 4.96 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#!/usr/bin/env python
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
# -----------------------------------------------------------------------------
# Minimal Python version sanity check (from IPython/Jupyterhub)
# -----------------------------------------------------------------------------
import os
import sys
from setuptools import find_packages, setup
from setuptools.command.bdist_egg import bdist_egg
class bdist_egg_disabled(bdist_egg):
"""Disabled version of bdist_egg
Prevents setup.py install from performing setuptools' default easy_install,
which it should never ever do.
"""
def run(self):
sys.exit(
"Aborting implicit building of eggs. Use `pip install .` to install from source."
)
pjoin = os.path.join
here = os.path.abspath(os.path.dirname(__file__))
# Get the current package version.
version_ns = {}
with open(pjoin(here, 'oauthenticator', '_version.py')) as f:
exec(f.read(), {}, version_ns)
setup_args = dict(
name='oauthenticator',
packages=find_packages(),
version=version_ns['__version__'],
description="OAuthenticator: Authenticate JupyterHub users with common OAuth providers",
long_description=open("README.md").read(),
long_description_content_type="text/markdown",
author="Jupyter Development Team",
author_email="[email protected]",
url="https://jupyter.org",
license="BSD",
platforms="Linux, Mac OS X",
keywords=['Interactive', 'Interpreter', 'Shell', 'Web'],
python_requires=">=3.7",
include_package_data=True,
entry_points={
'jupyterhub.authenticators': [
'auth0 = oauthenticator.auth0:Auth0OAuthenticator',
'local-auth0 = oauthenticator.auth0:LocalAuth0OAuthenticator',
'azuread = oauthenticator.azuread:AzureAdOAuthenticator',
'local-azuread = oauthenticator.azuread:LocalAzureAdOAuthenticator',
'bitbucket = oauthenticator.bitbucket:BitbucketOAuthenticator',
'local-bitbucket = oauthenticator.bitbucket:LocalBitbucketOAuthenticator',
'cilogon = oauthenticator.cilogon:CILogonOAuthenticator',
'local-cilogon = oauthenticator.cilogon:LocalCILogonOAuthenticator',
'generic-oauth = oauthenticator.generic:GenericOAuthenticator',
'local-generic-oauth = oauthenticator.generic:LocalGenericOAuthenticator',
'github = oauthenticator.github:GitHubOAuthenticator',
'local-github = oauthenticator.github:LocalGitHubOAuthenticator',
'gitlab = oauthenticator.gitlab:GitLabOAuthenticator',
'local-gitlab = oauthenticator.gitlab:LocalGitLabOAuthenticator',
'globus = oauthenticator.globus:GlobusOAuthenticator',
'local-globus = oauthenticator.globus:LocalGlobusOAuthenticator',
'google = oauthenticator.google:GoogleOAuthenticator',
'local-google = oauthenticator.google:LocalGoogleOAuthenticator',
'mediawiki = oauthenticator.mediawiki:MWOAuthenticator',
'okpy = oauthenticator.okpy:OkpyOAuthenticator',
'local-okpy = oauthenticator.okpy:LocalOkpyOAuthenticator',
'openshift = oauthenticator.openshift:OpenShiftOAuthenticator',
'local-openshift = oauthenticator.openshift:LocalOpenShiftOAuthenticator',
],
},
classifiers=[
'Intended Audience :: Developers',
'Intended Audience :: System Administrators',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: BSD License',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
],
)
setup_args['cmdclass'] = {
'bdist_egg': bdist_egg if 'bdist_egg' in sys.argv else bdist_egg_disabled,
}
setup_args['install_requires'] = install_requires = []
with open('requirements.txt') as f:
for line in f.readlines():
req = line.strip()
if not req or req.startswith(('-e', '#')):
continue
install_requires.append(req)
setup_args['extras_require'] = {
# azuread is required for use of AzureADOAuthenticator
'azuread': ['pyjwt>=2'],
# googlegroups is required for use of GoogleOAuthenticator configured with
# either admin_google_groups and/or allowed_google_groups.
'googlegroups': [
'google-api-python-client',
'google-auth-oauthlib',
],
# mediawiki is required for use of MWOAuthenticator
'mediawiki': ['mwoauth>=0.3.8'],
# test is required to run tests, and includes all authenticator specific
# dependencies above.
'test': [
'pytest>=2.8',
'pytest-asyncio',
'pytest-cov',
'requests-mock',
# dependencies from azuread:
'pyjwt>=2',
# dependencies from googlegroups:
'google-api-python-client',
'google-auth-oauthlib',
# dependencies from mediawiki:
'mwoauth>=0.3.8',
],
}
def main():
setup(**setup_args)
if __name__ == '__main__':
main()