1#!/usr/bin/env python
2
3# Copyright (c) Jupyter Development Team.
4# Distributed under the terms of the Modified BSD License.
5
6import os
7
8from setuptools import setup
9
10# the name of the package
11name = 'nbclient'
12
13local_path = os.path.dirname(__file__)
14# Fix for tox which manipulates execution pathing
15if not local_path:
16    local_path = '.'
17here = os.path.abspath(local_path)
18
19
20def read(path):
21    with open(path) as fhandle:
22        return fhandle.read()
23
24
25def read_reqs(fname):
26    req_path = os.path.join(here, fname)
27    return [req.strip() for req in read(req_path).splitlines() if req.strip()]
28
29
30long_description = read(os.path.join(os.path.dirname(__file__), "README.md"))
31requirements = read(os.path.join(os.path.dirname(__file__), "requirements.txt"))
32dev_reqs = read_reqs(os.path.join(os.path.dirname(__file__), 'requirements-dev.txt'))
33doc_reqs = read_reqs(os.path.join(os.path.dirname(__file__), 'docs/requirements-doc.txt'))
34extras_require = {"test": dev_reqs, "dev": dev_reqs, "sphinx": doc_reqs}
35
36setup(
37    name=name,
38    author='Jupyter Development Team',
39    author_email='jupyter@googlegroups.com',
40    url='https://jupyter.org',
41    description=(
42        "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor."
43    ),
44    long_description=long_description,
45    long_description_content_type='text/markdown',
46    packages=['nbclient'],
47    include_package_data=True,
48    python_requires=">=3.6.1",
49    install_requires=requirements,
50    extras_require=extras_require,
51    entry_points={
52        'console_scripts': [
53            'jupyter-execute = nbclient.cli:main',
54        ],
55    },
56    project_urls={
57        'Documentation': 'https://nbclient.readthedocs.io',
58        'Funding': 'https://numfocus.org/',
59        'Source': 'https://github.com/jupyter/nbclient',
60        'Tracker': 'https://github.com/jupyter/nbclient/issues',
61    },
62    license='BSD',
63    platforms="Linux, Mac OS X, Windows",
64    keywords=['jupyter', 'pipeline', 'notebook', 'executor'],
65    classifiers=[
66        'Intended Audience :: Developers',
67        'Intended Audience :: System Administrators',
68        'Intended Audience :: Science/Research',
69        'License :: OSI Approved :: BSD License',
70        'Programming Language :: Python',
71        'Programming Language :: Python :: 3',
72        'Programming Language :: Python :: 3.6',
73        'Programming Language :: Python :: 3.7',
74        'Programming Language :: Python :: 3.8',
75        'Programming Language :: Python :: 3.9',
76    ],
77)
78