ratt-ru / radiopadre

(Radio) Python Astronomy Data Reductions Examiner
MIT License
10 stars 0 forks source link

Add a charting library (Bokeh) #75

Closed Athanaseus closed 4 years ago

Athanaseus commented 4 years ago

Currently, a radiopadre environment or container comes with matplotlib. I propose that an additional visualization library in particular bokeh==1.4 be included too. It is an interactive visualization library that targets modern web browsers for presentation. It provides elegant graphics and it can help anyone who would like to quickly and easily create interactive plots within the radiopadre workspace.

o-smirnov commented 4 years ago

I say just go ahead and add bokeh to requirements.txt. OK so it's gonna make the default container slightly bigger, but it's a generally useful and stable package, so I have no problem including it in the standard shipping list.

Something more general to think about, what do we do about more exotic packages? Leave it to the user to add them by hand and roll their own custom containers?

Athanaseus commented 4 years ago

Something more general to think about, what do we do about more exotic packages? Leave it to the user to add them by hand and roll their own custom containers?

Actually that becomes a better solution, that is, override the default container with a more user customised one. Do we have that option to specify our own image?

o-smirnov commented 4 years ago

Yep, the very unconventionally named --docker-image option. :)

Athanaseus commented 4 years ago

Roger that. Can I roll with that for now then later all these "exotic" user packages can be absorbed into the default if they become conventional?

o-smirnov commented 4 years ago

Sure.

o-smirnov commented 4 years ago

Feel free to add bokeh to requirements and commit to the pre9 branch @Athanaseus. Are you sure you want to fix a version for it?

Athanaseus commented 4 years ago

Ohk thanks, bokeh added 78beb55. It's now part of the requirements, not sure if you would perhaps prefer it as an extra requirement. i.e. pip install radiopadre[plotting] # to include plotting libraries

Athanaseus commented 4 years ago

I also made my own custom docker image but I get the following error when building:

(venv) ramaila@stills:~/working/PicA/output5$ run-radiopadre std-progress-report-Copy1.ipynb --nbconvert --docker-image athanasues/radiopadre
radiopadre.client [0.01s]: Welcome to the radiopadre client!
radiopadre.client [0.02s]:   command line specifies DOCKER_IMAGE = athanasues/radiopadre
radiopadre.client [0.02s]:   command line specifies NBCONVERT = True
radiopadre.client: Using /usr/bin/singularity for container mode
radiopadre.client: Starting new session in container radiopadre-ramaila-51dc63f0e690439ab28aef00d47acb31
radiopadre.client:   Selected ports: 1055:1058:1059:1060:1062:1055:1058:1059:1060:1062
radiopadre.client:   Session ID/notebook token is '803a487309bf46b4abe99e9e2ad2d3a3'
radiopadre.client:   Container name: radiopadre-ramaila-51dc63f0e690439ab28aef00d47acb31
radiopadre.client: You appear to have logged in via ssh.
radiopadre.client: You're logged in via ssh, so I'm not opening a web browser for you.
radiopadre.client: Please manually browse to the URL printed by Jupyter below. You will probably want to employ ssh
radiopadre.client: port forwarding if you want to browse this notebook from your own machine.
radiopadre.client: False std-progress-report-Copy1.ipynb std-progress-report-Copy1.ipynb
radiopadre.client: WARNING:   rebuilding singularity image /home/ramaila/.radiopadre/athanasues_radiopadre.singularity.img from docker://athanasues/radiopadre
radiopadre.client: WARNING:   (This may take a few minutes....)
radiopadre.client: running /usr/bin/singularity build /home/ramaila/.radiopadre/athanasues_radiopadre.singularity.img docker://athanasues/radiopadre
Docker image path: index.docker.io/athanasues/radiopadre:latest
ERROR UNAUTHORIZED: authentication required
ERROR Check existence, naming, and permissions
Cleaning up...
Traceback (most recent call last):
  File "/home/ramaila/.radiopadre/venv/bin/run-radiopadre", line 7, in <module>
    exec(compile(f.read(), __file__, 'exec'))
  File "/home/ramaila/gitPackages/radiopadre-client/bin/run-radiopadre", line 291, in <module>
    radiopadre_client.server.run_radiopadre_server(command, arguments, notebook_path, workdir=options.workdir)
  File "/home/ramaila/gitPackages/radiopadre-client/radiopadre_client/server.py", line 292, in run_radiopadre_server
    backend.update_installation()
  File "/home/ramaila/gitPackages/radiopadre-client/radiopadre_client/backends/singularity.py", line 47, in update_installation
    subprocess.check_call(cmd)
  File "/usr/lib/python3.6/subprocess.py", line 311, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/singularity', 'build', '/home/ramaila/.radiopadre/athanasues_radiopadre.singularity.img', 'docker://athanasues/radiopadre']' returned non-zero exit status 1.
o-smirnov commented 4 years ago

Looks like a dockerhub/singularity problem. Try the build command

/usr/bin/singularity build /home/ramaila/.radiopadre/athanasues_radiopadre.singularity.img docker://athanasues/radiopadre

On its own. I notice your name is misspelt?

o-smirnov commented 4 years ago

Fixed it somewhere.