Hello Johannes, I will take a look at this approach, which looks more oriented to batch processing rather the interactive processing I do now.
However, right off the bat there are a few difficulties. The way my workflow looks like right now: - Open data analysis IPython notebook (from within IPython Jupyter notebook home tab) - change input variables (from which the path to the source files is calculated) - run a few cells manually first to see if the output makes sense. Adjust some parameters of the analysis - run notebook to completion, which includes saving the copy and the HTML version - repeat from second step for additional data sets I guess I can create another program or script that generates the needed command lines and then executes them. Will I be able to watch the output of the notebook in real time? DG On Wednesday, February 8, 2017 at 2:28:57 AM UTC-8, Johannes Feist wrote: > > Just in case you don't know about it, it sounds to me like this would be > easier to do with nbconvert, using the execute preprocessor (which runs the > notebook and saves it). E.g., you could do (from the command line) > jupyter nbconvert --to notebook --execute mynotebook.ipynb --output > Analysis/mynotebook.ipynb > and then convert that executed notebook to html (output goes to the same > folder): > jupyter nbconvert --to html Analysis/mynotebook.ipynb > > Documentation is at > http://nbconvert.readthedocs.io/en/stable/usage.html#convert-notebook > > Johannes > > On Wed, Feb 8, 2017 at 5:40 AM DG <[email protected] <javascript:>> > wrote: > >> OK, here's where it comes from. >> >> I have a data analysis script, residing in my Documents folder. The >> script reads raw data files on a server share. It creates a subfolder >> "Analysis" and puts a bunch of tables and plots in that folder. At the end >> of the script, I want to: >> 1. Save a copy of the executed notebook (.ipynb format) in the same >> subfolder, and >> 2. Save an HTML version of it, also in the same subfolder >> >> This should be trivial to do but unfortunately it's not. (It's sad that >> such a wonderful tool is so lacking in terms of introspection). I currently >> handle those two tasks as follows. To create a copy of the notebook, I use >> shutil.copy(nb_path,os.path.join(Save_dir,nb_filename)) >> To save an HTML copy, I use: >> !jupyter nbconvert '$nb_path' --output '$nfname' >> >> Both of those require to know the path of the notebook currently running. >> After much googling, I settled on this: >> >> connection_file_path = kernel.get_connection_file() >> connection_file = os.path.basename(connection_file_path) >> kernel_id = connection_file.split('-', 1)[1].split('.')[0] >> sessions = json.load(urllib2.urlopen('http://127.0.0.1:8888/api/sessions' >> )) >> for sess in sessions: >> if sess['kernel']['id'] == kernel_id: >> nb_rel_path = (sess['notebook']['path']) >> break >> res = !echo ~ >> nb_path = os.path.join(res[0],nb_rel_path) >> >> This normally works, but the other day I had another server running, so >> naturally the second server's port was set to 8889 instead of 8888, >> therefore breaking my script. >> >> There are two other problems. Sometimes the saved .ipynb is not complete. >> The last few cells are saved without the output. The sure way to save a >> complete notebook is to manually hit the Save button, then re-run the cell >> with the file copy command. So I looked for something as simple as issuing >> a "Save" command, but that also I could not find. >> >> The second problem is that code snipped does not seem to work in >> Windows... >> >> >> On Tuesday, February 7, 2017 at 3:46:33 AM UTC-8, takowl wrote: >> >>> On 6 February 2017 at 23:42, DG <[email protected]> wrote: >>> >>>> Hello, can anybody please show a way to get the port number of the >>>> server connection in an IPython notebook command? I could not easily find >>>> this in the documentation. >>> >>> >>> By design, kernel code doesn't know about the notebook you're running it >>> from. You can get a list of all running servers >>> (notebook.notebookapp.list_running_servers()), but that doesn't indicate >>> which one is handling the current code. >>> >>> As Matthias suggested, please tell us a bit more about why you want to >>> do this: we may be able to point you to a better option. >>> >>> Thomas >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "Project Jupyter" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/jupyter/192cebe0-4e5a-4250-9a80-22018744f419%40googlegroups.com >> >> <https://groups.google.com/d/msgid/jupyter/192cebe0-4e5a-4250-9a80-22018744f419%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > -- > > Johannes Feist > Departamento de Física Teórica de la Materia Condensada > Universidad Autónoma de Madrid > [email protected] <javascript:> > -- You received this message because you are subscribed to the Google Groups "Project Jupyter" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jupyter/ee3f36ec-349f-453b-ae09-5f177dd08237%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
