text: #!/usr/bin/env python
  # coding: utf-8
  
  # Copyright (c) Jupyter Development Team.
  # Distributed under the terms of the Modified BSD License.
  
  #-----------------------------------------------------------------------------
  # Minimal Python version sanity check (from IPython/Jupyterhub)
  #-----------------------------------------------------------------------------
  from __future__ import print_function
  
  import os
  import sys
  
  from setuptools import 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            = ['oauthenticator'],
      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        = "jupyter@googlegroups.com",
      url                 = "https://jupyter.org",
      license             = "BSD",
      platforms           = "Linux, Mac OS X",
      keywords            = ['Interactive', 'Interpreter', 'Shell', 'Web'],
      python_requires     = ">=3.5",
      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',
              'local-mediawiki = oauthenticator.mediawiki:LocalMWOAuthenticator',
  
              '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)
  
  
  def main():
      setup(**setup_args)
  
  if __name__ == '__main__':
      main()
  