1#!/usr/bin/env python 2# coding: utf-8 3 4# Copyright (c) Jupyter Development Team. 5# Distributed under the terms of the Modified BSD License. 6from os.path import join as pjoin 7import json 8import os 9import os.path as osp 10import sys 11 12from setuptools import setup 13 14NAME = "jupyterlab" 15HERE = osp.dirname(osp.abspath(__file__)) 16 17ensured_targets = [ 18 'static/package.json', 19 'schemas/@jupyterlab/shortcuts-extension/shortcuts.json', 20 'themes/@jupyterlab/theme-light-extension/index.css' 21] 22ensured_targets = [osp.join(HERE, NAME, t) for t in ensured_targets] 23 24data_files_spec = [ 25 ('share/jupyter/lab/static', f'{NAME}/static', '**'), 26 ('share/jupyter/lab/schemas', f'{NAME}/schemas', '**'), 27 ('share/jupyter/lab/themes', f'{NAME}/themes', '**'), 28 ('etc/jupyter/jupyter_server_config.d', 29 'jupyter-config/jupyter_server_config.d', f'{NAME}.json'), 30 ('etc/jupyter/jupyter_notebook_config.d', 31 'jupyter-config/jupyter_notebook_config.d', f'{NAME}.json'), 32] 33 34def post_dist(): 35 from packaging.version import Version 36 from jupyter_packaging import get_version 37 38 target = pjoin(HERE, NAME, 'static', 'package.json') 39 with open(target) as fid: 40 version = json.load(fid)['jupyterlab']['version'] 41 42 if Version(version) != Version(get_version(f'{NAME}/_version.py')): 43 raise ValueError('Version mismatch, please run `build:update`') 44 45 46try: 47 from jupyter_packaging import wrap_installers, npm_builder, get_data_files 48 49 npm = ['node', pjoin(HERE, NAME, 'staging', 'yarn.js')] 50 # In develop mode, just run yarn 51 builder = npm_builder(build_cmd=None, npm=npm, force=True) 52 cmdclass = wrap_installers(post_develop=builder, post_dist=post_dist, ensured_targets=ensured_targets) 53 54 55 setup_args = dict( 56 cmdclass=cmdclass, 57 data_files=get_data_files(data_files_spec) 58 ) 59except ImportError: 60 setup_args = dict() 61 62 63if __name__ == '__main__': 64 setup(**setup_args) 65