forked from mwouts/jupytext
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
114 lines (104 loc) · 3.87 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
from os import path
from io import open
import re
from setuptools import setup, find_packages
from jupyter_packaging import (
create_cmdclass,
install_npm,
ensure_targets,
combine_commands,
)
this_directory = path.abspath(path.dirname(__file__))
with open(path.join(this_directory, "README.md"), encoding="utf-8") as f:
# replace Markdown links (docs/[NAME].md with (https://jupytext.readthedocs.io/en/latest/[NAME].html
long_description = re.sub(
r"\(docs/([A-Za-z-_]*).md",
"(https://jupytext.readthedocs.io/en/latest/\\1.html",
f.read(),
)
with open(path.join(this_directory, "jupytext/version.py")) as f:
version_file = f.read()
version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", version_file, re.M)
version = version_match.group(1)
lab_path = path.join(this_directory, "jupytext", "labextension")
nb_path = path.join(this_directory, "jupytext", "nbextension")
jupyter_config_path = path.join(this_directory, "jupyter-config")
notebook_config_path = path.join(jupyter_config_path, "jupyter_notebook_config.d")
jupyter_server_config_path = path.join(jupyter_config_path, "jupyter_server_config.d")
nbconfig_path = path.join(jupyter_config_path, "nbconfig", "notebook.d")
data_files_spec = [
# Install labextension
("share/jupyter/labextensions/jupyterlab-jupytext", lab_path, "**"),
("share/jupyter/labextensions/jupyterlab-jupytext", this_directory, "install.json"),
# Install nbextension
("share/jupyter/nbextensions/jupytext", nb_path, "**"),
("share/jupyter/nbextensions/jupytext", nbconfig_path, "jupytext.json"),
# Install config files
(
"etc/jupyter/jupyter_server_config.d",
jupyter_server_config_path,
"jupytext.json",
),
("etc/jupyter/jupyter_notebook_config.d", notebook_config_path, "jupytext.json"),
("etc/jupyter/nbconfig/notebook.d", nbconfig_path, "jupytext.json"),
]
# Representative files that should exist after a successful build
jstargets = [
path.join(lab_path, "package.json"),
]
cmdclass = create_cmdclass(
"jsdeps", package_data_spec={"jupytext": ["nbextension/**"]}, data_files_spec=data_files_spec
)
cmdclass["jsdeps"] = combine_commands(
install_npm(
path.join(this_directory, "packages", "labextension"),
build_cmd="build:prod",
npm=["jlpm"],
),
ensure_targets(jstargets),
)
setup(
name="jupytext",
version=version,
author="Marc Wouts",
author_email="marc.wouts@gmail.com",
description="Jupyter notebooks as Markdown documents, "
"Julia, Python or R scripts",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/mwouts/jupytext",
packages=find_packages(exclude=["tests"]),
cmdclass=cmdclass,
entry_points={"console_scripts": ["jupytext = jupytext.cli:jupytext"]},
tests_require=["pytest"],
install_requires=[
"markdown-it-py~=0.5.2; python_version >= '3.6'",
"nbformat>=4.0.0",
"pyyaml",
"toml",
'mock; python_version<"3"',
],
extras_require={
# left for back-compatibility
"myst": [],
"toml": ["toml"],
"rst2md": ["sphinx-gallery~=0.7.0"],
},
license="MIT",
classifiers=[
"Development Status :: 5 - Production/Stable",
"License :: OSI Approved :: MIT License",
"Environment :: Console",
"Framework :: Jupyter",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"Topic :: Text Processing :: Markup",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
],
)