[yt-svn] commit/yt: MatthewTurk: Back-porting notebook upload to stable
Bitbucket
commits-noreply at bitbucket.org
Tue Oct 9 14:10:31 PDT 2012
1 new commit in yt:
https://bitbucket.org/yt_analysis/yt/changeset/fd840d83bd32/
changeset: fd840d83bd32
branch: stable
user: MatthewTurk
date: 2012-10-09 23:10:24
summary: Back-porting notebook upload to stable
affected #: 2 files
diff -r f22174bd62d5b5c140b19bb38c99d20f34b037ee -r fd840d83bd32fe1a23910a6184fa7e0bf2e531db yt/utilities/command_line.py
--- a/yt/utilities/command_line.py
+++ b/yt/utilities/command_line.py
@@ -1188,6 +1188,40 @@
import yt.utilities.lodgeit as lo
lo.main( None, download=args.number )
+class YTNotebookUploadCmd(YTCommand):
+ args = (dict(short="file", type=str),)
+ description = \
+ """
+ Upload an IPython notebook to hub.yt-project.org.
+ """
+
+ name = "upload_notebook"
+ def __call__(self, args):
+ filename = args.file
+ if not os.path.isfile(filename):
+ raise IOError(filename)
+ if not filename.endswith(".ipynb"):
+ print "File must be an IPython notebook!"
+ return 1
+ import json
+ try:
+ t = json.loads(open(filename).read())['metadata']['name']
+ except (ValueError, KeyError):
+ print "File does not appear to be an IPython notebook."
+ from yt.utilities.minimal_representation import MinimalNotebook
+ mn = MinimalNotebook(filename, t)
+ rv = mn.upload()
+ print "Upload successful!"
+ print
+ print "To access your raw notebook go here:"
+ print
+ print " %s" % (rv['url'])
+ print
+ print "To view your notebook go here:"
+ print
+ print " %s" % (rv['url'].replace("/go/", "/nb/"))
+ print
+
class YTPlotCmd(YTCommand):
args = ("width", "unit", "bn", "proj", "center",
"zlim", "axis", "field", "weight", "skip",
diff -r f22174bd62d5b5c140b19bb38c99d20f34b037ee -r fd840d83bd32fe1a23910a6184fa7e0bf2e531db yt/utilities/minimal_representation.py
--- a/yt/utilities/minimal_representation.py
+++ b/yt/utilities/minimal_representation.py
@@ -216,3 +216,22 @@
metadata = self._attrs
chunks = []
return (metadata, ("chunks", []))
+
+class MinimalNotebook(MinimalRepresentation):
+ type = "notebook"
+ _attr_list = ("title",)
+
+ def __init__(self, filename, title = None):
+ # First we read in the data
+ if not os.path.isfile(filename):
+ raise IOError(filename)
+ self.data = open(filename).read()
+ if title is None:
+ title = json.loads(self.data)['metadata']['name']
+ self.title = title
+ self.data = na.fromstring(self.data, dtype='c')
+
+ def _generate_post(self):
+ metadata = self._attrs
+ chunks = [ ("notebook", self.data) ]
+ return (metadata, ("chunks", chunks))
Repository URL: https://bitbucket.org/yt_analysis/yt/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
More information about the yt-svn
mailing list