-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsetup.py
129 lines (108 loc) · 3.8 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
"""
Setup Module to setup Python Handlers for the nbgallery extension.
"""
import os
from os.path import join as pjoin
import distutils.cmd
from jupyter_packaging import (
create_cmdclass, install_npm, ensure_targets,
combine_commands, get_version
)
import setuptools
class CleanCommand(distutils.cmd.Command):
description = "Cleans out build and intermediate files"
user_options = []
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
cmd_list = dict(
labextensions="find . -name labextension -type d -print0 | xargs -0 rm -rf",
build="rm -rf build;",
dist="rm -rf dist;",
yarn="rm -rf node_modules && rm yarn.lock",
egginfo="rm -rf *.egg-info;"
)
for key, cmd in cmd_list.items():
os.system(cmd)
HERE = os.path.abspath(os.path.dirname(__file__))
# The name of the project
name = "jupyterlab_nbgallery"
# Ensure a valid python version
setuptools.python_requires=">=3.8"
# Get the version
version = get_version(pjoin(name, "_version.py"))
lab_path = pjoin(HERE, "labextension")
# Representative files that should exist after a successful build
jstargets = [
pjoin(HERE, "environment-life", "lib", "index.js"),
pjoin(HERE, "environment-registration", "lib", "index.js"),
pjoin(HERE, "autodownload", "lib", "index.js"),
pjoin(HERE, "gallerymenu", "lib", "index.js"),
pjoin(HERE, "instrumentation", "lib", "index.js"),
pjoin(HERE, "inject-uuid", "lib", "index.js"),
pjoin(HERE, "userpreferences", "lib", "index.js"),
]
package_data_spec = {
name: [
"*"
]
}
data_files_spec = [
("share/jupyter/labextensions/@jupyterlab-nbgallery", lab_path, "autodownload/**"),
("share/jupyter/labextensions/@jupyterlab-nbgallery",
lab_path, "environment-life/**"),
("share/jupyter/labextensions/@jupyterlab-nbgallery",
lab_path, "environment-registration/**"),
("share/jupyter/labextensions/@jupyterlab-nbgallery", lab_path, "gallerymenu/**"),
("share/jupyter/labextensions/@jupyterlab-nbgallery", lab_path, "inject-uuid/**"),
("share/jupyter/labextensions/@jupyterlab-nbgallery",
lab_path, "instrumentation/**"),
("share/jupyter/labextensions/@jupyterlab-nbgallery",
lab_path, "userpreferences/**"),
("etc/jupyter/jupyter_server_config.d",
"jupyter-config", "jupyterlab_nbgallery.json"),
]
cmdclass = create_cmdclass("jsdeps",
package_data_spec=package_data_spec,
data_files_spec=data_files_spec
)
cmdclass["jsdeps"] = combine_commands(
install_npm(HERE, build_cmd="build-ext", npm=["jlpm"]),
ensure_targets(jstargets),
)
cmdclass["clean"] = CleanCommand
with open("README.md", "r") as fh:
long_description = fh.read()
setup_args = dict(
name=name,
version=version,
url="https://github.com/nbgallery/lab-extensions",
author="NBGallery",
description="A JupyterLab Extension for NBGallery integration",
long_description=long_description,
long_description_content_type="text/markdown",
cmdclass=cmdclass,
packages=setuptools.find_packages(),
install_requires=[
"jupyterlab>=4.0.0",
"jupyter_server>=2"
],
zip_safe=False,
include_package_data=True,
license="MIT",
platforms="Linux, Mac OS X, Windows",
keywords=["Jupyter", "JupyterLab"],
classifiers=[
"License :: OSI Approved :: BSD License",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Framework :: Jupyter",
],
)
if __name__ == '__main__':
setuptools.setup(**setup_args)