From: <jd...@us...> - 2008-06-03 20:57:06
|
Revision: 5379 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5379&view=rev Author: jdh2358 Date: 2008-06-03 13:57:02 -0700 (Tue, 03 Jun 2008) Log Message: ----------- added sphinx template for doc unit Added Paths: ----------- trunk/py4science/examples/sphinx_template/ trunk/py4science/examples/sphinx_template/README.txt trunk/py4science/examples/sphinx_template/_static/ trunk/py4science/examples/sphinx_template/_templates/ trunk/py4science/examples/sphinx_template/build/ trunk/py4science/examples/sphinx_template/conf.py trunk/py4science/examples/sphinx_template/index.rst trunk/py4science/examples/sphinx_template/make.py trunk/py4science/examples/sphinx_template/model/ trunk/py4science/examples/sphinx_template/model/index.rst trunk/py4science/examples/sphinx_template/model/introduction.rst trunk/py4science/examples/sphinx_template/model/next_steps.rst trunk/py4science/examples/sphinx_template/model/sphinx_helpers.rst trunk/py4science/examples/sphinx_template/simulations/ trunk/py4science/examples/sphinx_template/simulations/code/ trunk/py4science/examples/sphinx_template/simulations/code/elegant.py trunk/py4science/examples/sphinx_template/simulations/code/hairy.py trunk/py4science/examples/sphinx_template/simulations/code/make.py trunk/py4science/examples/sphinx_template/simulations/finale.rst trunk/py4science/examples/sphinx_template/simulations/index.rst trunk/py4science/examples/sphinx_template/simulations/introduction.rst trunk/py4science/examples/sphinx_template/simulations/preliminary.rst Added: trunk/py4science/examples/sphinx_template/README.txt =================================================================== --- trunk/py4science/examples/sphinx_template/README.txt (rev 0) +++ trunk/py4science/examples/sphinx_template/README.txt 2008-06-03 20:57:02 UTC (rev 5379) @@ -0,0 +1,26 @@ +sphinx template sampledoc +========================= + +This is the top level build directory for the sphinx sampledoc +documentation. All of the documentation is written using sphinx, a +python documentation system built on top of ReST. This directory +contains + + +* model - A document describing a model + +* simulations - A document describing the simulations -- contains a + code subdir with python scripts and a make.py file to build them + into PNGs + +* make.py - the build script to build the html or PDF docs. Do + `python make.py html` or `python make.py latex` for PDF + +* index.rst - the top level include document for sampledocs document + +* conf.py - the sphinx configuration + +* _static - used by the sphinx build system + +* _templates - used by the sphinx build system + Added: trunk/py4science/examples/sphinx_template/conf.py =================================================================== --- trunk/py4science/examples/sphinx_template/conf.py (rev 0) +++ trunk/py4science/examples/sphinx_template/conf.py 2008-06-03 20:57:02 UTC (rev 5379) @@ -0,0 +1,161 @@ +# -*- coding: utf-8 -*- +# +# sampledoc documentation build configuration file, created by +# sphinx-quickstart on Tue Jun 3 12:40:24 2008. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# The contents of this file are pickled, so don't put values in the namespace +# that aren't pickleable (module imports are okay, they're removed automatically). +# +# All configuration values have a default value; values that are commented out +# serve to show the default value. + +import sys, os + +# If your extensions are in another directory, add it here. If the directory +# is relative to the documentation root, use os.path.abspath to make it +# absolute, like shown here. +#sys.path.append(os.path.abspath('some/directory')) + +# General configuration +# --------------------- + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +#extensions = [] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The master toctree document. +master_doc = 'index' + +# General substitutions. +project = 'sampledoc' +copyright = '2008, John D. Hunter, Cast of Thousands' + +# The default replacements for |version| and |release|, also used in various +# other places throughout the built documents. +# +# The short X.Y version. +version = '0.1' +# The full version, including alpha/beta/rc tags. +release = '0.1' + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +today_fmt = '%B %d, %Y' + +# List of documents that shouldn't be included in the build. +#unused_docs = [] + +# List of directories, relative to source directories, that shouldn't be searched +# for source files. +#exclude_dirs = [] + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + + +# Options for HTML output +# ----------------------- + +# The style sheet to use for HTML and HTML Help pages. A file of that name +# must exist either in Sphinx' static/ path, or in one of the custom paths +# given in html_static_path. +html_style = 'default.css' + +# The name for this set of Sphinx documents. If None, it defaults to +# "<project> v<release> documentation". +#html_title = None + +# The name of an image file (within the static path) to place at the top of +# the sidebar. +#html_logo = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_use_modindex = True + +# If true, the reST sources are included in the HTML build as _sources/<name>. +#html_copy_source = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a <link> tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = '' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'sampledoc' + + +# Options for LaTeX output +# ------------------------ + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, document class [howto/manual]). +latex_documents = [ + ('index', 'sampledoc.tex', 'sampledoc Documentation', 'John D. Hunter, Cast of Thousands', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_use_modindex = True Added: trunk/py4science/examples/sphinx_template/index.rst =================================================================== --- trunk/py4science/examples/sphinx_template/index.rst (rev 0) +++ trunk/py4science/examples/sphinx_template/index.rst 2008-06-03 20:57:02 UTC (rev 5379) @@ -0,0 +1,23 @@ +.. sampledoc documentation master file, created by sphinx-quickstart on Tue Jun 3 12:40:24 2008. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to sampledoc's documentation! +===================================== + +Contents: + +.. toctree:: + :maxdepth: 2 + + model/index.rst + simulations/index.rst + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + Added: trunk/py4science/examples/sphinx_template/make.py =================================================================== --- trunk/py4science/examples/sphinx_template/make.py (rev 0) +++ trunk/py4science/examples/sphinx_template/make.py 2008-06-03 20:57:02 UTC (rev 5379) @@ -0,0 +1,71 @@ +#!/usr/bin/env python +import fileinput +import glob +import os +import shutil +import sys + +def check_build(): + build_dirs = ['build', 'build/doctrees', 'build/html', 'build/latex', + '_static', '_templates'] + for d in build_dirs: + try: + os.mkdir(d) + except OSError: + pass + +def figs(): + os.system('cd simulations/code/ && python make.py') + +def html(): + check_build() + figs() + os.system('sphinx-build -b html -d build/doctrees . build/html') + +def latex(): + check_build() + figs() + if sys.platform != 'win32': + # LaTeX format. + os.system('sphinx-build -b latex -d build/doctrees . build/latex') + + # Produce pdf. + os.chdir('build/latex') + + # Copying the makefile produced by sphinx... + os.system('pdflatex sampledoc.tex') + os.system('pdflatex sampledoc.tex') + os.system('makeindex -s python.ist sampledoc.idx') + os.system('makeindex -s python.ist modsampledoc.idx') + os.system('pdflatex sampledoc.tex') + + os.chdir('../..') + else: + print 'latex build has not been tested on windows' + +def clean(): + shutil.rmtree('build') + +def all(): + figs() + html() + latex() + + +funcd = {'figs':figs, + 'html':html, + 'latex':latex, + 'clean':clean, + 'all':all, + } + + +if len(sys.argv)>1: + for arg in sys.argv[1:]: + func = funcd.get(arg) + if func is None: + raise SystemExit('Do not know how to handle %s; valid args are'%( + arg, funcd.keys())) + func() +else: + all() Added: trunk/py4science/examples/sphinx_template/model/index.rst =================================================================== --- trunk/py4science/examples/sphinx_template/model/index.rst (rev 0) +++ trunk/py4science/examples/sphinx_template/model/index.rst 2008-06-03 20:57:02 UTC (rev 5379) @@ -0,0 +1,14 @@ +.. _model-index: + +############## +My Fancy Model +############## + +:Release: |version| +:Date: |today| + +.. toctree:: + + introduction.rst + next_steps.rst + sphinx_helpers.rst Added: trunk/py4science/examples/sphinx_template/model/introduction.rst =================================================================== --- trunk/py4science/examples/sphinx_template/model/introduction.rst (rev 0) +++ trunk/py4science/examples/sphinx_template/model/introduction.rst 2008-06-03 20:57:02 UTC (rev 5379) @@ -0,0 +1,23 @@ +.. _model-introduction: + +****************** +Model Introduction +****************** + +Wherein I describe my fancy model + +.. _other-models: + +Other Models +============ + +Where in I describe + +* model A + +* model B + +* model C + +and why they all suck + Added: trunk/py4science/examples/sphinx_template/model/next_steps.rst =================================================================== --- trunk/py4science/examples/sphinx_template/model/next_steps.rst (rev 0) +++ trunk/py4science/examples/sphinx_template/model/next_steps.rst 2008-06-03 20:57:02 UTC (rev 5379) @@ -0,0 +1,8 @@ +.. _next-steps: + +********** +Next steps +********** + +Wherein I describe my next steps + Added: trunk/py4science/examples/sphinx_template/model/sphinx_helpers.rst =================================================================== --- trunk/py4science/examples/sphinx_template/model/sphinx_helpers.rst (rev 0) +++ trunk/py4science/examples/sphinx_template/model/sphinx_helpers.rst 2008-06-03 20:57:02 UTC (rev 5379) @@ -0,0 +1,127 @@ +.. _sphinx_helpers: + +****************** +Sphinx Cheat Sheet +****************** + +Wherein I show by example how to do some things in Sphinx (you can see +a literal version of this file below in :ref:`sphinx-literal`) + + +.. _making-a-list: + +Making a list +============= + +It is easy to make lists in rest + +Bullet points +------------- + +This is a subsection making bullet points + +* point A + +* point B + +* point C + + +Enumerated points +------------------ + +This is a subsection making numbered points + +#. point A + +#. point B + +#. point C + + +.. _making-a-table: + +Making a table +============== + +This shows you how to make a table -- if you only want to make a list see :ref:`making-a-list`. + +================== ============ +Name Age +================== ============ +John D Hunter 40 +Cast of Thousands 41 +And Still More 42 +================== ============ + +.. _making-links: + +Making links +============ + +It is easy to make a link to `yahoo <http://yahoo.com>`_ or to some +section inside this document (see :ref:`making-a-table`) or another +document (see :ref:`final-results`). + +.. _formatting-text: + +Formatting text +=============== + +You use inline markup to make text *italics*, **bold**, or ``monotype``. + +You can represent code blocks fairly easily:: + + import numpy as np + x = np.random.rand(12) + +Or literally include code: + +.. literalinclude:: ../simulations/code/elegant.py + + +.. _emacs-helpers: + +Emacs helpers +============= + +There is an emacs mode `rst.el +<http://docutils.sourceforge.net/tools/editors/emacs/rst.el>`_ which +automates many important ReST tasks like building and updateing +table-of-contents, and promoting or demoting section headings. Here +is the basic ``.emacs`` configuration:: + + (require 'rst) + (setq auto-mode-alist + (append '(("\\.txt$" . rst-mode) + ("\\.rst$" . rst-mode) + ("\\.rest$" . rst-mode)) auto-mode-alist)) + + +Some helpful functions:: + + C-c TAB - rst-toc-insert + + Insert table of contents at point + + C-c C-u - rst-toc-update + + Update the table of contents at point + + C-c C-l rst-shift-region-left + + Shift region to the left + + C-c C-r rst-shift-region-right + + Shift region to the right + + +.. _sphinx-literal: + +This file +========= + +.. literalinclude:: sphinx_helpers.rst + + Added: trunk/py4science/examples/sphinx_template/simulations/code/elegant.py =================================================================== --- trunk/py4science/examples/sphinx_template/simulations/code/elegant.py (rev 0) +++ trunk/py4science/examples/sphinx_template/simulations/code/elegant.py 2008-06-03 20:57:02 UTC (rev 5379) @@ -0,0 +1,4 @@ +import matplotlib.pyplot as plt +plt.plot([1,2,3], [4,5,6]) +plt.ylabel('some more numbers') + Added: trunk/py4science/examples/sphinx_template/simulations/code/hairy.py =================================================================== --- trunk/py4science/examples/sphinx_template/simulations/code/hairy.py (rev 0) +++ trunk/py4science/examples/sphinx_template/simulations/code/hairy.py 2008-06-03 20:57:02 UTC (rev 5379) @@ -0,0 +1,4 @@ +import matplotlib.pyplot as plt +plt.plot([1,2,3]) +plt.ylabel('some numbers') + Added: trunk/py4science/examples/sphinx_template/simulations/code/make.py =================================================================== --- trunk/py4science/examples/sphinx_template/simulations/code/make.py (rev 0) +++ trunk/py4science/examples/sphinx_template/simulations/code/make.py 2008-06-03 20:57:02 UTC (rev 5379) @@ -0,0 +1,58 @@ +#!/usr/bin/env python +import sys, os, glob +import matplotlib +import IPython.Shell +matplotlib.rcdefaults() +matplotlib.use('Agg') + +mplshell = IPython.Shell.MatplotlibShell('mpl') + +def figs(): + print 'making figs' + import matplotlib.pyplot as plt + for fname in glob.glob('*.py'): + if fname==__file__: continue + basename, ext = os.path.splitext(fname) + outfile = '%s.png'%basename + + if os.path.exists(outfile): + print ' already have %s'%outfile + continue + else: + print ' building %s'%fname + plt.close('all') # we need to clear between runs + mplshell.magic_run(basename) + plt.savefig('%s.png'%basename) + print 'all figures made' + + +def clean(): + patterns = ['#*', '*~', '*.png', '*pyc'] + for pattern in patterns: + for fname in glob.glob(pattern): + os.remove(fname) + print 'all clean' + + + +def all(): + figs() + +funcd = {'figs':figs, + 'clean':clean, + 'all':all, + } + +if len(sys.argv)>1: + for arg in sys.argv[1:]: + func = funcd.get(arg) + if func is None: + raise SystemExit('Do not know how to handle %s; valid args are'%( + arg, funcd.keys())) + func() +else: + all() + + + + Added: trunk/py4science/examples/sphinx_template/simulations/finale.rst =================================================================== --- trunk/py4science/examples/sphinx_template/simulations/finale.rst (rev 0) +++ trunk/py4science/examples/sphinx_template/simulations/finale.rst 2008-06-03 20:57:02 UTC (rev 5379) @@ -0,0 +1,17 @@ +.. _final-results: + +************* +Final Results +************* + + +After much head scratching, I wrote this big elegant piece of code + +.. literalinclude:: code/elegant.py + +which produced this elegant figure + +.. image:: code/elegant.png + :scale: 50 + + Added: trunk/py4science/examples/sphinx_template/simulations/index.rst =================================================================== --- trunk/py4science/examples/sphinx_template/simulations/index.rst (rev 0) +++ trunk/py4science/examples/sphinx_template/simulations/index.rst 2008-06-03 20:57:02 UTC (rev 5379) @@ -0,0 +1,15 @@ +.. _simulations-index: + +######################### +My Stupendous Simulations +######################### + +:Release: |version| +:Date: |today| + +.. toctree:: + + introduction.rst + preliminary.rst + finale.rst + Added: trunk/py4science/examples/sphinx_template/simulations/introduction.rst =================================================================== --- trunk/py4science/examples/sphinx_template/simulations/introduction.rst (rev 0) +++ trunk/py4science/examples/sphinx_template/simulations/introduction.rst 2008-06-03 20:57:02 UTC (rev 5379) @@ -0,0 +1,24 @@ +.. _simulations-introduction: + +******************** +Simulations overview +******************** + +Wherein I describe my fancy code and libraries to implement my fancy model (:ref:`model-introduction`) + +.. _python-libraries: + +The python libraries +==================== + +Why `matplotlib <http://matplotlib.sf.net>`_ rules + +.. _data-sources: + +The data sources +==================== + +Now how much would you pay? + + + Added: trunk/py4science/examples/sphinx_template/simulations/preliminary.rst =================================================================== --- trunk/py4science/examples/sphinx_template/simulations/preliminary.rst (rev 0) +++ trunk/py4science/examples/sphinx_template/simulations/preliminary.rst 2008-06-03 20:57:02 UTC (rev 5379) @@ -0,0 +1,17 @@ +.. _preliminary-tests: + +***************** +Preliminary tests +***************** + +I wrote this big hairy piece of code + +.. literalinclude:: code/hairy.py + + +which produced this lovely figure + +.. image:: code/hairy.png + :scale: 50 + + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |