diff options
Diffstat (limited to 'docs/nb_run_conv')
-rwxr-xr-x | docs/nb_run_conv | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/docs/nb_run_conv b/docs/nb_run_conv new file mode 100755 index 0000000..ad5e432 --- /dev/null +++ b/docs/nb_run_conv @@ -0,0 +1,82 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" + +Convert sphinx gallery notebook from empty to image filled + +Created on Fri Sep 1 16:43:45 2017 + +@author: rflamary +""" + +import sys +import json +import glob +import hashlib +import subprocess + +import os + +cache_file='cache_nbrun' + +path_doc='source/auto_examples/' +path_nb='../notebooks/' + +def load_json(fname): + try: + f=open(fname) + nb=json.load(f) + f.close() + except (OSError, IOError) : + nb={} + return nb + +def save_json(fname,nb): + f=open(fname,'w') + f.write(json.dumps(nb)) + f.close() + + +def md5(fname): + hash_md5 = hashlib.md5() + with open(fname, "rb") as f: + for chunk in iter(lambda: f.read(4096), b""): + hash_md5.update(chunk) + return hash_md5.hexdigest() + +def to_update(fname,cache): + if fname in cache: + if md5(path_doc+fname)==cache[fname]: + res=False + else: + res=True + else: + res=True + + return res + +def update(fname,cache): + + # jupyter nbconvert --to notebook --execute mynotebook.ipynb --output targte + subprocess.check_call(['cp',path_doc+fname,path_nb]) + print(' '.join(['jupyter','nbconvert','--to','notebook','--ExecutePreprocessor.timeout=600','--execute',path_nb+fname,'--inplace'])) + subprocess.check_call(['jupyter','nbconvert','--to','notebook','--ExecutePreprocessor.timeout=600','--execute',path_nb+fname,'--inplace']) + cache[fname]=md5(path_doc+fname) + + + +cache=load_json(cache_file) + +lst_file=glob.glob(path_doc+'*.ipynb') + +lst_file=[os.path.basename(name) for name in lst_file] + +for fname in lst_file: + if to_update(fname,cache): + print('Updating file: {}'.format(fname)) + update(fname,cache) + save_json(cache_file,cache) + + + + |