##// END OF EJS Templates
cleanup kernelspec loading...
cleanup kernelspec loading - kernel_selector.set_kernel validates selection and triggers 'spec_changed.Kernel'. It does not start the session anymore. - notebook calls kernel_selector.set_kernel when: - kernelspec is in notebook metadata - session is loaded (e.g. no kernelspec metadata) - notebook starts session, loads metadata on spec_changed.kernel The only case where starting the session is not triggered by spec_changed is on notebook load with no kernel metadata

File last commit:

r19731:f9465d7f
r19886:9443bd65
Show More
tasks.py
108 lines | 3.6 KiB | text/x-python | PythonLexer
MinRK
use invoke instead of fabric...
r18351 """invoke task file to build CSS"""
Matthias BUSSONNIER
migrate from make to fabric
r9299
Min RK
friendlier error messages when invoke/lessc are missing...
r19731 from __future__ import print_function
Matthias BUSSONNIER
migrate from make to fabric
r9299 import os
Min RK
friendlier error messages when invoke/lessc are missing...
r19731 import sys
MinRK
pin lessc to 1.4...
r15059 from distutils.version import LooseVersion as V
from subprocess import check_output
Matthias BUSSONNIER
migrate from make to fabric
r9299
Min RK
friendlier error messages when invoke/lessc are missing...
r19731 from invoke import task, run
from invoke.runner import Result
from invoke.exceptions import Failure
MinRK
add IPython-only CSS...
r11337 pjoin = os.path.join
Matthias BUSSONNIER
migrate from make to fabric
r9299 static_dir = 'static'
MinRK
`fab css` checks whether it needs to do anything...
r17344 components_dir = pjoin(static_dir, 'components')
here = os.path.dirname(__file__)
Matthias BUSSONNIER
migrate from make to fabric
r9299
Min RK
pin less to 2.x...
r19435 min_less_version = '2.0'
max_less_version = '3.0' # exclusive if string
MinRK
add IPython-only CSS...
r11337
Min RK
friendlier error messages when invoke/lessc are missing...
r19731
def _fail(msg=''):
"""Fail a task, logging a message to stderr
raises a special Failure Exception from invoke.
"""
if msg:
print(msg, file=sys.stderr)
# raising a Failure allows us to avoid a traceback
# we only care about exited, but stdout, stderr, pty are required args
raise Failure(Result(stdout='', stderr='', pty=False, exited=1))
MinRK
`fab css` checks whether it needs to do anything...
r17344 def _need_css_update():
"""Does less need to run?"""
static_path = pjoin(here, static_dir)
css_targets = [
pjoin(static_path, 'style', '%s.min.css' % name)
for name in ('style', 'ipython')
]
css_maps = [t + '.map' for t in css_targets]
targets = css_targets + css_maps
if not all(os.path.exists(t) for t in targets):
# some generated files don't exist
return True
earliest_target = sorted(os.stat(t).st_mtime for t in targets)[0]
# check if any .less files are newer than the generated targets
for (dirpath, dirnames, filenames) in os.walk(static_path):
for f in filenames:
if f.endswith('.less'):
path = pjoin(static_path, dirpath, f)
timestamp = os.stat(path).st_mtime
if timestamp > earliest_target:
return True
return False
MinRK
use invoke instead of fabric...
r18351 @task
MinRK
`fab css` checks whether it needs to do anything...
r17344 def css(minify=False, verbose=False, force=False):
Matthias BUSSONNIER
migrate from make to fabric
r9299 """generate the css from less files"""
MinRK
`fab css` checks whether it needs to do anything...
r17344 # minify implies force because it's not the default behavior
if not force and not minify and not _need_css_update():
print("css up-to-date")
return
MinRK
add IPython-only CSS...
r11337 for name in ('style', 'ipython'):
source = pjoin('style', "%s.less" % name)
target = pjoin('style', "%s.min.css" % name)
Jason Grout
Upgrade less and generate sourcemap files
r17290 sourcemap = pjoin('style', "%s.min.css.map" % name)
_compile_less(source, target, sourcemap, minify, verbose)
Brian E. Granger
Adding files that I mised in the last commit.
r10713
Min RK
friendlier error messages when invoke/lessc are missing...
r19731
Jason Grout
Upgrade less and generate sourcemap files
r17290 def _compile_less(source, target, sourcemap, minify=True, verbose=False):
MinRK
add IPython-only CSS...
r11337 """Compile a less file by source and target relative to static_dir"""
MinRK
use invoke instead of fabric...
r18351 min_flag = '-x' if minify else ''
ver_flag = '--verbose' if verbose else ''
MinRK
pin lessc to 1.4...
r15059
Min RK
friendlier error messages when invoke/lessc are missing...
r19731 install = "(npm install -g 'less@<{}')".format(max_less_version)
Jason Grout
Upgrade less and generate sourcemap files
r17290 # pin less to version number from above
Aron Ahmadia
Better lessc detection/handling....
r16291 try:
out = check_output(['lessc', '--version'])
except OSError as err:
Min RK
friendlier error messages when invoke/lessc are missing...
r19731 _fail("Unable to find lessc. Rebuilding css requires less >= {0} and < {1} {2}".format(
min_less_version, max_less_version, install
))
MinRK
pin lessc to 1.4...
r15059 out = out.decode('utf8', 'replace')
less_version = out.split()[1]
Bussonnier Matthias
use less variable for rounded corner...
r19124 if min_less_version and V(less_version) < V(min_less_version):
Min RK
friendlier error messages when invoke/lessc are missing...
r19731 _fail("lessc too old: {} < {} {}".format(
less_version, min_less_version, install,
))
Bussonnier Matthias
use less variable for rounded corner...
r19124 if max_less_version and V(less_version) >= V(max_less_version):
Min RK
friendlier error messages when invoke/lessc are missing...
r19731 _fail("lessc too new: {} >= {} {}".format(
less_version, max_less_version, install,
))
MinRK
pin lessc to 1.4...
r15059
MinRK
`fab css` checks whether it needs to do anything...
r17344 static_path = pjoin(here, static_dir)
MinRK
use invoke instead of fabric...
r18351 cwd = os.getcwd()
try:
os.chdir(static_dir)
run('lessc {min_flag} {ver_flag} --source-map={sourcemap} --source-map-basepath={static_path} --source-map-rootpath="../" {source} {target}'.format(**locals()),
echo=True,
)
finally:
os.chdir(cwd)
Matthias BUSSONNIER
migrate from make to fabric
r9299