12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #!/usr/bin/env python
- # coding: utf-8
- # Copyright (c) Jupyter Development Team.
- # Distributed under the terms of the Modified BSD License.
- from os.path import join as pjoin
- import json
- import os
- import os.path as osp
- import sys
- from setuptools import setup
- NAME = "jupyterlab"
- HERE = osp.dirname(osp.abspath(__file__))
- ensured_targets = [
- 'static/package.json',
- 'schemas/@jupyterlab/shortcuts-extension/shortcuts.json',
- 'themes/@jupyterlab/theme-light-extension/index.css'
- ]
- ensured_targets = [osp.join(HERE, NAME, t) for t in ensured_targets]
- data_files_spec = [
- ('share/jupyter/lab/static', f'{NAME}/static', '**'),
- ('share/jupyter/lab/schemas', f'{NAME}/schemas', '**'),
- ('share/jupyter/lab/themes', f'{NAME}/themes', '**'),
- ('etc/jupyter/jupyter_server_config.d',
- 'jupyter-config/jupyter_server_config.d', f'{NAME}.json'),
- ('etc/jupyter/jupyter_notebook_config.d',
- 'jupyter-config/jupyter_notebook_config.d', f'{NAME}.json'),
- ]
- def post_dist():
- from packaging.version import Version
- from jupyter_packaging import get_version
- target = pjoin(HERE, NAME, 'static', 'package.json')
- with open(target) as fid:
- version = json.load(fid)['jupyterlab']['version']
- if Version(version) != Version(get_version(f'{NAME}/_version.py')):
- raise ValueError('Version mismatch, please run `build:update`')
- try:
- from jupyter_packaging import wrap_installers, npm_builder, get_data_files
- npm = ['node', pjoin(HERE, NAME, 'staging', 'yarn.js')]
- # In develop mode, just run yarn
- builder = npm_builder(build_cmd=None, npm=npm, force=True)
- cmdclass = wrap_installers(post_develop=builder, post_dist=post_dist, ensured_targets=ensured_targets)
- setup_args = dict(
- cmdclass=cmdclass,
- data_files=get_data_files(data_files_spec)
- )
- except ImportError:
- setup_args = dict()
- if __name__ == '__main__':
- setup(**setup_args)
|