[Yt-svn] commit/yt: 2 new changesets
Bitbucket
commits-noreply at bitbucket.org
Fri Aug 26 12:57:59 PDT 2011
2 new changesets in yt:
http://bitbucket.org/yt_analysis/yt/changeset/3a8f9200a040/
changeset: 3a8f9200a040
branch: yt
user: samskillman
date: 2011-08-26 21:56:51
summary: Adding scale and scale_units to the magnetic_field callback, changing to keyword arguments in QuiverCallback
affected #: 1 file (173 bytes)
--- a/yt/visualization/plot_modifications.py Thu Aug 25 09:58:54 2011 -0600
+++ b/yt/visualization/plot_modifications.py Fri Aug 26 13:56:51 2011 -0600
@@ -81,18 +81,20 @@
else:
xv = "%s-velocity" % (x_names[plot.data.axis])
yv = "%s-velocity" % (y_names[plot.data.axis])
- qcb = QuiverCallback(xv, yv, self.factor, self.scale, self.scale_units)
+ qcb = QuiverCallback(xv, yv, self.factor, scale=self.scale, scale_units=self.scale_units)
return qcb(plot)
class MagFieldCallback(PlotCallback):
_type_name = "magnetic_field"
- def __init__(self, factor=16):
+ def __init__(self, factor=16, scale=None, scale_units=None):
"""
Adds a 'quiver' plot of magnetic field to the plot, skipping all but
every *factor* datapoint
"""
PlotCallback.__init__(self)
self.factor = factor
+ self.scale = scale
+ self.scale_units = scale_units
def __call__(self, plot):
# Instantiation of these is cheap
@@ -101,12 +103,12 @@
else:
xv = "B%s" % (x_names[plot.data.axis])
yv = "B%s" % (y_names[plot.data.axis])
- qcb = QuiverCallback(xv, yv, self.factor)
+ qcb = QuiverCallback(xv, yv, self.factor, scale=self.scale, scale_units=self.scale_units)
return qcb(plot)
class QuiverCallback(PlotCallback):
_type_name = "quiver"
- def __init__(self, field_x, field_y, factor, scale, scale_units):
+ def __init__(self, field_x, field_y, factor, scale=None, scale_units=None):
"""
Adds a 'quiver' plot to any plot, using the *field_x* and *field_y*
from the associated data, skipping every *factor* datapoints
http://bitbucket.org/yt_analysis/yt/changeset/d99984e815a4/
changeset: d99984e815a4
branch: yt
user: samskillman
date: 2011-08-26 21:57:33
summary: merging.
affected #: 1 file (624 bytes)
--- a/yt/utilities/command_line.py Fri Aug 26 13:56:51 2011 -0600
+++ b/yt/utilities/command_line.py Fri Aug 26 13:57:33 2011 -0600
@@ -330,13 +330,44 @@
cmdln.Cmdln.__init__(self, *args, **kwargs)
cmdln.Cmdln.do_help.aliases.append("h")
- def do_loop(self, subcmd, opts, *args):
+ def do_update(self, subcmd, opts):
"""
- Interactive loop
+ Update the yt installation to the most recent version
+ ${cmd_usage}
${cmd_option_list}
"""
- self.cmdloop()
+ import pkg_resources
+ yt_provider = pkg_resources.get_provider("yt")
+ path = os.path.dirname(yt_provider.module_path)
+ print
+ print "yt module located at:"
+ print " %s" % (path)
+ update_supp = False
+ if "YT_DEST" in os.environ:
+ spath = os.path.join(
+ os.environ["YT_DEST"], "src", "yt-supplemental")
+ if os.path.isdir(spath):
+ print "The supplemental repositories are located at:"
+ print " %s" % (spath)
+ update_supp = True
+ vstring = None
+ if "site-packages" not in path:
+ vstring = _get_hg_version(path)
+ print
+ print "The current version of the code is:"
+ print
+ print "---"
+ print vstring.strip()
+ print "---"
+ print
+ print "This installation CAN be automatically updated."
+ print "Updated successfully."
+ else:
+ print
+ print "YT site-packages not in path, so you must"
+ print "update this installation manually."
+ print
@cmdln.option("-u", "--update-source", action="store_true",
default = False,
@@ -346,7 +377,7 @@
help="File into which the current revision number will be stored")
def do_instinfo(self, subcmd, opts):
"""
- ${cmd_name}: Get some information about the yt installation
+ Get some information about the yt installation
${cmd_usage}
${cmd_option_list}
@@ -388,7 +419,7 @@
def do_load(self, subcmd, opts, arg):
"""
- Load a single dataset into an IPython instance.
+ Load a single dataset into an IPython instance
${cmd_option_list}
"""
@@ -427,7 +458,7 @@
'halos','halo_hop_style','halo_radius','halo_radius_units'])
def do_halos(self, subcmd, opts, arg):
"""
- Run HaloProfiler on one dataset.
+ Run HaloProfiler on one dataset
${cmd_option_list}
"""
@@ -442,55 +473,6 @@
if opts.make_projections:
hp.make_projections()
- @add_cmd_options(["maxw", "minw", "proj", "axis", "field", "weight",
- "zlim", "nframes", "output", "cmap", "uboxes", "dex",
- "text"])
- def do_zoomin(self, subcmd, opts, arg):
- """
- Create a set of zoomin frames
-
- ${cmd_option_list}
- """
- pf = _fix_pf(arg)
- min_width = opts.min_width * pf.h.get_smallest_dx()
- if opts.axis == 4:
- axes = range(3)
- else:
- axes = [opts.axis]
- pc = PlotCollection(pf)
- for ax in axes:
- if opts.projection: p = pc.add_projection(opts.field, ax,
- weight_field=opts.weight)
- else: p = pc.add_slice(opts.field, ax)
- if opts.unit_boxes: p.modify["units"](factor=8)
- if opts.text is not None:
- p.modify["text"](
- (0.02, 0.05), opts.text.replace(r"\n", "\n"),
- text_args=dict(size="medium", color="w"))
- pc.set_width(opts.max_width,'1')
- # Check the output directory
- if not os.path.isdir(opts.output):
- os.mkdir(opts.output)
- # Figure out our zoom factor
- # Recall that factor^nframes = min_width / max_width
- # so factor = (log(min/max)/log(nframes))
- mylog.info("min_width: %0.3e max_width: %0.3e nframes: %0.3e",
- min_width, opts.max_width, opts.nframes)
- factor=10**(math.log10(min_width/opts.max_width)/opts.nframes)
- mylog.info("Zoom factor: %0.3e", factor)
- w = 1.0
- for i in range(opts.nframes):
- mylog.info("Setting width to %0.3e", w)
- mylog.info("Saving frame %06i",i)
- pc.set_width(w,"1")
- if opts.zlim:
- pc.set_zlim(*opts.zlim)
- if opts.dex:
- pc.set_zlim('min', None, opts.dex)
- pc.set_cmap(opts.cmap)
- pc.save(os.path.join(opts.output,"%s_frame%06i" % (pf,i)))
- w = factor**i
-
@add_cmd_options(["width", "unit", "bn", "proj", "center",
"zlim", "axis", "field", "weight", "skip",
"cmap", "output", "grids", "time"])
@@ -600,7 +582,7 @@
"%s (%0.5e years): %0.5e at %s\n" % (pf, t, v, c))
@add_cmd_options([])
- def do_analyze(self, subcmd, opts, arg):
+ def _do_analyze(self, subcmd, opts, arg):
"""
Produce a set of analysis for a given output. This includes
HaloProfiler results with r200, as per the recipe file in the cookbook,
@@ -692,7 +674,7 @@
help="File to output to; else, print.")
def do_pastebin(self, subcmd, opts, arg):
"""
- Post a script to an anonymous pastebin.
+ Post a script to an anonymous pastebin
Usage: yt pastebin [options] <script>
@@ -721,7 +703,7 @@
help="File to output to; else, print.")
def do_pasteboard_grab(self, subcmd, opts, username, paste_id):
"""
- Download from your or another user's pasteboard.
+ Download from your or another user's pasteboard
${cmd_usage}
${cmd_option_list}
@@ -1157,7 +1139,7 @@
help="Add a debugging mode for cell execution")
def do_serve(self, subcmd, opts):
"""
- Run the Web GUI
+ Run the Web GUI Reason
"""
# We have to do a couple things.
# First, we check that YT_DEST is set.
@@ -1208,7 +1190,7 @@
port=int(opts.port), repl=hr)
- def do_remote(self, subcmd, opts):
+ def _do_remote(self, subcmd, opts):
import getpass, sys, socket, time, webbrowser
import yt.utilities.pexpect as pex
@@ -1427,7 +1409,44 @@
req = urllib2.Request(uri, data)
rv = urllib2.urlopen(req).read()
print rv
-
+
+ def do_upload_image(self, subcmd, opts, filename):
+ """
+ Upload an image to imgur.com. Must be PNG.
+
+ ${cmd_usage}
+ ${cmd_option_list}
+ """
+ if not filename.endswith(".png"):
+ print "File must be a PNG file!"
+ return 1
+ import base64, json, pprint
+ image_data = base64.b64encode(open(filename).read())
+ api_key = 'f62d550859558f28c4c214136bc797c7'
+ parameters = {'key':api_key, 'image':image_data, type:'base64',
+ 'caption': "",
+ 'title': "%s uploaded by yt" % filename}
+ data = urllib.urlencode(parameters)
+ req = urllib2.Request('http://api.imgur.com/2/upload.json', data)
+ try:
+ response = urllib2.urlopen(req).read()
+ except urllib2.HTTPError as e:
+ print "ERROR", e
+ return {'uploaded':False}
+ rv = json.loads(response)
+ if 'upload' in rv and 'links' in rv['upload']:
+ print
+ print "Image successfully uploaded! You can find it at:"
+ print " %s" % (rv['upload']['links']['imgur_page'])
+ print
+ print "If you'd like to delete it, visit this page:"
+ print " %s" % (rv['upload']['links']['delete_page'])
+ print
+ else:
+ print
+ print "Something has gone wrong! Here is the server response:"
+ print
+ pprint.pprint(rv)
def run_main():
for co in ["--parallel", "--paste"]:
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