SourceForge logo
SourceForge logo
Menu

matplotlib-checkins

Revision: 8780
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8780&view=rev
Author: jdh2358
Date: 2010年11月09日 02:47:24 +0000 (2010年11月09日)
Log Message:
-----------
added context and nofigs options to support context between plot directive code blocks
Modified Paths:
--------------
 branches/v1_0_maint/lib/matplotlib/sphinxext/plot_directive.py
Modified: branches/v1_0_maint/lib/matplotlib/sphinxext/plot_directive.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/sphinxext/plot_directive.py	2010年11月08日 16:35:44 UTC (rev 8779)
+++ branches/v1_0_maint/lib/matplotlib/sphinxext/plot_directive.py	2010年11月09日 02:47:24 UTC (rev 8780)
@@ -42,6 +42,15 @@
 non-ASCII encoding, the encoding must be specified using the
 `:encoding:` option.
 
+If the `:context:` option is plotted, the code will be run in the
+context of all previous plot directives for which the context option
+was specified. This only applies to inline code plot directives, not
+those run from files.
+
+If the ``:nofigs:`` option is specified, the code block will be run,
+but no figures will be inserted. This is usually useful with the
+``:context:`` option.
+
 The set of file formats to generate can be specified with the
 `plot_formats` configuration variable.
 
@@ -176,6 +185,10 @@
 
 template_content_indent = ' '
 
+# the context of the plot for all directives specified with the
+# :context: option
+plot_context = dict()
+
 def out_of_date(original, derived):
 """
 Returns True if derivative is out-of-date wrt original,
@@ -185,17 +198,23 @@
 (os.path.exists(original) and
 os.stat(derived).st_mtime < os.stat(original).st_mtime))
 
-def run_code(plot_path, function_name, plot_code):
+def run_code(plot_path, function_name, plot_code, context=False):
 """
 Import a Python module from a path, and run the function given by
 name, if function_name is not None.
 """
+
 # Change the working directory to the directory of the example, so
 # it can get at its data files, if any. Add its path to sys.path
 # so it can import any helper modules sitting beside it.
+
 if plot_code is not None:
 exec_code = 'import numpy as np; import matplotlib.pyplot as plt\n%s'%plot_code
- exec(exec_code)
+ if context:
+ exec(exec_code, None, plot_context)
+ else:
+ exec(exec_code)
+
 else:
 pwd = os.getcwd()
 path, fname = os.path.split(plot_path)
@@ -251,7 +270,7 @@
 matplotlib.rcParams['figure.figsize'] = (5.5, 4.5)
 
 def render_figures(plot_path, function_name, plot_code, tmpdir, destdir,
- formats):
+ formats, context=False):
 """
 Run a pyplot script and save the low and high res PNGs and a PDF
 in outdir.
@@ -293,9 +312,10 @@
 
 # We didn't find the files, so build them
 
- clear_state()
+ if not context:
+ clear_state()
 try:
- run_code(plot_path, function_name, plot_code)
+ run_code(plot_path, function_name, plot_code, context=context)
 except:
 s = cbook.exception_to_str("Exception running plot %s" % plot_path)
 warnings.warn(s, PlotWarning)
@@ -310,6 +330,16 @@
 
 def _plot_directive(plot_path, basedir, function_name, plot_code, caption,
 options, state_machine):
+ context = options.has_key('context')
+ if context:
+ # remove for figure directive
+ del options['context']
+
+ nofigs = options.has_key('nofigs')
+ if nofigs:
+ # remove for figure directive
+ del options['nofigs']
+
 formats = setup.config.plot_formats
 if type(formats) == str:
 formats = eval(formats)
@@ -356,7 +386,7 @@
 
 # Generate the figures, and return the number of them
 num_figs = render_figures(plot_path, function_name, plot_code, tmpdir,
- destdir, formats)
+ destdir, formats, context=context)
 
 # Now start generating the lines of output
 lines = []
@@ -386,32 +416,33 @@
 else:
 lines = []
 
- if num_figs > 0:
- options = ['%s:%s: %s' % (template_content_indent, key, val)
- for key, val in options.items()]
- options = "\n".join(options)
+ if not nofigs:
+ if num_figs > 0:
+ options = ['%s:%s: %s' % (template_content_indent, key, val)
+ for key, val in options.items()]
+ options = "\n".join(options)
 
- for i in range(num_figs):
- if num_figs == 1:
- outname = basename
- else:
- outname = "%s_%02d" % (basename, i)
+ for i in range(num_figs):
+ if num_figs == 1:
+ outname = basename
+ else:
+ outname = "%s_%02d" % (basename, i)
 
- # Copy the linked-to files to the destination within the build tree,
- # and add a link for them
- links = []
- if plot_code is None:
- links.append('`source code <%(linkdir)s/%(basename)s.py>`__')
- for format, dpi in formats[1:]:
- links.append('`%s <%s/%s.%s>`__' % (format, linkdir, outname, format))
- if len(links):
- links = '[%s]' % (', '.join(links) % locals())
- else:
- links = ''
+ # Copy the linked-to files to the destination within the build tree,
+ # and add a link for them
+ links = []
+ if plot_code is None:
+ links.append('`source code <%(linkdir)s/%(basename)s.py>`__')
+ for format, dpi in formats[1:]:
+ links.append('`%s <%s/%s.%s>`__' % (format, linkdir, outname, format))
+ if len(links):
+ links = '[%s]' % (', '.join(links) % locals())
+ else:
+ links = ''
 
- lines.extend((template % locals()).split('\n'))
- else:
- lines.extend((exception_template % locals()).split('\n'))
+ lines.extend((template % locals()).split('\n'))
+ else:
+ lines.extend((exception_template % locals()).split('\n'))
 
 if len(lines):
 state_machine.insert_input(
@@ -496,6 +527,8 @@
 'align': align,
 'class': directives.class_option,
 'include-source': directives.flag,
+ 'context': directives.flag,
+ 'nofigs': directives.flag,
 'encoding': directives.encoding }
 
 app.add_directive('plot', plot_directive, True, (0, 2, 0), **options)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8895
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8895&view=rev
Author: jdh2358
Date: 2011年01月06日 01:26:23 +0000 (2011年1月06日)
Log Message:
-----------
fix the plot directive
Modified Paths:
--------------
 branches/v1_0_maint/lib/matplotlib/sphinxext/plot_directive.py
Modified: branches/v1_0_maint/lib/matplotlib/sphinxext/plot_directive.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/sphinxext/plot_directive.py	2011年01月05日 22:20:09 UTC (rev 8894)
+++ branches/v1_0_maint/lib/matplotlib/sphinxext/plot_directive.py	2011年01月06日 01:26:23 UTC (rev 8895)
@@ -263,12 +263,10 @@
 
 return len(fig_managers)
 
+
 def clear_state():
 plt.close('all')
- matplotlib.rcdefaults()
- # Set a default figure size that doesn't overflow typical browser
- # windows. The script is free to override it if necessary.
- matplotlib.rcParams['figure.figsize'] = (5.5, 4.5)
+ matplotlib.rc_file_defaults()
 
 def render_figures(plot_path, function_name, plot_code, tmpdir, destdir,
 formats, context=False):
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8917
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8917&view=rev
Author: mdboom
Date: 2011年01月14日 18:15:33 +0000 (2011年1月14日)
Log Message:
-----------
Fix doc build with recent versions of Sphinx (reported by Sandro Tosi)
Modified Paths:
--------------
 branches/v1_0_maint/lib/matplotlib/sphinxext/plot_directive.py
Modified: branches/v1_0_maint/lib/matplotlib/sphinxext/plot_directive.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/sphinxext/plot_directive.py	2011年01月14日 05:42:04 UTC (rev 8916)
+++ branches/v1_0_maint/lib/matplotlib/sphinxext/plot_directive.py	2011年01月14日 18:15:33 UTC (rev 8917)
@@ -346,7 +346,7 @@
 del options['nofigs']
 
 formats = setup.config.plot_formats
- if type(formats) == str:
+ if isinstance(formats, basestring):
 formats = eval(formats)
 
 fname = os.path.basename(plot_path)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /