summaryrefslogtreecommitdiff
path: root/docs/nb_run_conv
diff options
context:
space:
mode:
Diffstat (limited to 'docs/nb_run_conv')
-rwxr-xr-xdocs/nb_run_conv82
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)
+
+
+
+