Skip to content
This repository
Browse code

Got distutils in order.

  • Loading branch information...
commit 5f70f4f4b71c63e0ea343b5dda7fbb33cc53f44f 1 parent 2ad9c69
Jacob Joaquin authored July 22, 2009

Showing 35 changed files with 4,297 additions and 6 deletions. Show diff stats Hide diff stats

  1. 68  MANIFEST
  2. 3  MANIFEST.in
  3. 5  _doc_source/Makefile
  4. BIN  _doc_source/build/doctrees/csd_sco_event.doctree
  5. BIN  _doc_source/build/doctrees/environment.pickle
  6. 4  _doc_source/source/conf.py
  7. BIN  dist/csd-0.0.3.1.tar.gz
  8. 4  docs/.buildinfo
  9. 44  docs/_sources/bugs.txt
  10. 46  docs/_sources/commandline.txt
  11. 38  docs/_sources/csd_sco_event.txt
  12. 56  docs/_sources/demo/index.txt
  13. 150  docs/_sources/glossary.txt
  14. 79  docs/_sources/index.txt
  15. 405  docs/_static/basic.css
  16. 210  docs/_static/default.css
  17. 232  docs/_static/doctools.js
  18. BIN  docs/_static/file.png
  19. 32  docs/_static/jquery.js
  20. BIN  docs/_static/minus.png
  21. BIN  docs/_static/plus.png
  22. 61  docs/_static/pygments.css
  23. 467  docs/_static/searchtools.js
  24. 165  docs/bugs.html
  25. 156  docs/commandline.html
  26. 576  docs/csd_sco_event.html
  27. 464  docs/demo/index.html
  28. 308  docs/genindex.html
  29. 230  docs/glossary.html
  30. 196  docs/index.html
  31. 154  docs/modindex.html
  32. 46  docs/objects.inv
  33. 97  docs/search.html
  34. 1  docs/searchindex.js
  35. 6  setup.py
68  MANIFEST
@@ -6,3 +6,71 @@ csd/sco/__init__.py
6 6
 csd/sco/element/__init__.py
7 7
 csd/sco/event/__init__.py
8 8
 csd/sco/selection/__init__.py
  9
+demo/arpeggiator.py
  10
+demo/arpeggiator.sco
  11
+demo/carry.py
  12
+demo/carry.sco
  13
+demo/foo.py
  14
+demo/pfunc.py
  15
+demo/pfunc.sco
  16
+demo/s_spacer.py
  17
+demo/s_spacer.sco
  18
+demo/sco_align.py
  19
+demo/sco_align.sco
  20
+demo/score_from_csd.csd
  21
+demo/score_from_csd.py
  22
+demo/swap_columns.py
  23
+demo/swap_columns.sco
  24
+demo/swap_pan_position.sco
  25
+docs/.buildinfo
  26
+docs/bugs.html
  27
+docs/commandline.html
  28
+docs/csd_sco_event.html
  29
+docs/genindex.html
  30
+docs/glossary.html
  31
+docs/index.html
  32
+docs/modindex.html
  33
+docs/objects.inv
  34
+docs/search.html
  35
+docs/searchindex.js
  36
+docs/_sources/bugs.txt
  37
+docs/_sources/commandline.txt
  38
+docs/_sources/csd_sco_event.txt
  39
+docs/_sources/glossary.txt
  40
+docs/_sources/index.txt
  41
+docs/_sources/demo/index.txt
  42
+docs/_static/basic.css
  43
+docs/_static/default.css
  44
+docs/_static/doctools.js
  45
+docs/_static/file.png
  46
+docs/_static/jquery.js
  47
+docs/_static/minus.png
  48
+docs/_static/plus.png
  49
+docs/_static/pygments.css
  50
+docs/_static/searchtools.js
  51
+docs/demo/index.html
  52
+tests/csd.sco.element.is_valid.py
  53
+tests/csd.sco.element.is_valid_pfield.py
  54
+tests/csd.sco.element.token_type.py
  55
+tests/csd.sco.event.get.py
  56
+tests/csd.sco.event.get_pfield_list.py
  57
+tests/csd.sco.event.get_trailing_comment.py
  58
+tests/csd.sco.event.insert.py
  59
+tests/csd.sco.event.match.py
  60
+tests/csd.sco.event.number_of_pfields.py
  61
+tests/csd.sco.event.pop.py
  62
+tests/csd.sco.event.push.py
  63
+tests/csd.sco.event.remove.py
  64
+tests/csd.sco.event.sanitize.py
  65
+tests/csd.sco.event.set.py
  66
+tests/csd.sco.event.split.py
  67
+tests/csd.sco.event.statement_spacer.py
  68
+tests/csd.sco.event.swap.py
  69
+tests/csd.sco.event.tokenize.py
  70
+tests/csd.sco.map_.py
  71
+tests/csd.sco.merge.py
  72
+tests/csd.sco.select.py
  73
+tests/csd.sco.select_all.py
  74
+tests/csd.sco.selection.operate_numeric.py
  75
+tests/csd.sco.selection.replace.py
  76
+tests/csd.sco.selection.swap.py
3  MANIFEST.in
... ...
@@ -0,0 +1,3 @@
  1
+include demo/*.py demo/*.sco demo/*.csd demo/*.orc
  2
+include tests/*.py
  3
+recursive-include docs *
5  _doc_source/Makefile
@@ -34,6 +34,11 @@ html:
34 34
 	@echo
35 35
 	@echo "Build finished. The HTML pages are in build/html."
36 36
 
  37
+html_docs:
  38
+	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) ../docs
  39
+	@echo
  40
+	@echo "Build finished. The HTML pages are in docs/."
  41
+
37 42
 dirhtml:
38 43
 	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) build/dirhtml
39 44
 	@echo
BIN  _doc_source/build/doctrees/csd_sco_event.doctree
Binary file not shown
BIN  _doc_source/build/doctrees/environment.pickle
Binary file not shown
4  _doc_source/source/conf.py
@@ -160,7 +160,7 @@
160 160
 #html_file_suffix = ''
161 161
 
162 162
 # Output file base name for HTML help builder.
163  
-htmlhelp_basename = 'scoparsedoc'
  163
+htmlhelp_basename = 'csd'
164 164
 
165 165
 
166 166
 # -- Options for LaTeX output --------------------------------------------------
@@ -174,7 +174,7 @@
174 174
 # Grouping the document tree into LaTeX files. List of tuples
175 175
 # (source start file, target name, title, author, documentclass [howto/manual]).
176 176
 latex_documents = [
177  
-  ('index', 'scoparse.tex', u'scoparse Documentation',
  177
+  ('index', 'csd.tex', u'csd Documentation',
178 178
    u'Jacob Joaquin', 'manual'),
179 179
 ]
180 180
 
BIN  dist/csd-0.0.3.1.tar.gz
Binary file not shown
4  docs/.buildinfo
... ...
@@ -0,0 +1,4 @@
  1
+# Sphinx build info version 1
  2
+# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
  3
+config: ae7f6641b04fca639aeeac756a41c814
  4
+tags: fbb0d17656682115ca4d033fb2f83ba1
44  docs/_sources/bugs.txt
... ...
@@ -0,0 +1,44 @@
  1
+Bugs
  2
+=====
  3
+
  4
+* In some of the test scores, there are some score string examples using
  5
+  single quotes.  Single quotes are not supported by the score.
  6
+
  7
+* Test-cases need to be written for demos.
  8
+
  9
+* Jython 2.5 fails some tests.
  10
+
  11
+* The python interpreter didn't like passing a selection generated with
  12
+  csd.sco.select_all() to csd.sco.operate_numeric().
  13
+
  14
+Planned Changes
  15
+===============
  16
+
  17
+* Error checking, exceptions, and warnings - *Oh my!!*
  18
+* Need to get an online repository.  At least a somewhat official site.
  19
+* Need to make auto-installation happen.  Eggs?
  20
+* Tutorials on how to build custom scripts using this package.
  21
+* Spell check docs.
  22
+* Elements become atoms?
  23
+* Need a better name than pf_function.
  24
+* Need to use better names for pfield and pfield_list, as some of the
  25
+  terms currently trip over each other. pfield, pfield_index,
  26
+  pfield_index_list, etc...
  27
+* When dealing with dicts, make sure they are sorted. Had an issue with
  28
+  csd.sco.operate_numeric().
  29
+* selection functions needs a contracterual flow.
  30
+
  31
+    When a function receives a selection, a value in a key_index may
  32
+    contain multiple lines, and thus, the receiving function must
  33
+    operate on it.
  34
+    
  35
+    The value should be treated as a value_score.  A string containing
  36
+    one or more events.  Thus, it should be split.
  37
+    
  38
+    After the split, it can be processed.
  39
+    
  40
+    Before replacing the orignal value_score, the split needs to be
  41
+    joined, creating a single string, with newlines as evenet
  42
+    delimiters.
  43
+    
  44
+    
46  docs/_sources/commandline.txt
... ...
@@ -0,0 +1,46 @@
  1
+Command-line Operations
  2
+=======================
  3
+
  4
+Pasteboard Trick (for OS X)
  5
+---------------------------
  6
+
  7
+OS X comes with two commands that can easily aid in the process of
  8
+using these demo scripts in your work flow: ``pbpaste`` and ``pbcopy``.
  9
+These paste and copy the contents of the pasteboard in the OS X
  10
+Terminal.
  11
+
  12
+To use in a workflow, highlight a section of score you want to process,
  13
+copy the selection, type the following into the Terminal::
  14
+
  15
+    $ pbpaste | ./align.py | pbcopy
  16
+
  17
+Go back to your text editor, and with the section of score code still
  18
+highlighted, paste.  The highlighted test will be replaced with your
  19
+newly processed score.
  20
+   
  21
+Pipe Chain Trick
  22
+----------------
  23
+
  24
+It is possible to chain pipes in series to process scores with
  25
+multiple scripts in one swoop.  The following command does two things.
  26
+First, it sums the values of pfields 4 in instrument 2 events with
  27
+0.99999 with sum.py.  The output is then piped into align.py, making
  28
+the columns tidy and neat::
  29
+    
  30
+    $ cat arpeggiator.sco | ./arpeggiator.py -si -i1 -p4 -v'0.1 0.444 0.9922' | ./sco_align.py
  31
+
  32
+
  33
+.. highlight:: none
  34
+    
  35
+Arpeggiated and aligned::
  36
+    
  37
+    i 1 0 0.25 0.1    7.00
  38
+    i 1 + .    0.444  .
  39
+    i 1 + .    0.9922 .
  40
+    i 1 + .    0.1    .
  41
+    i 1 + .    0.444  .
  42
+    i 1 + .    0.9922 .
  43
+    i 1 + .    0.1    .
  44
+    i 1 + .    0.444  .
  45
+
  46
+
38  docs/_sources/csd_sco_event.txt
... ...
@@ -0,0 +1,38 @@
  1
+###############
  2
+The csd Package
  3
+###############
  4
+
  5
+csd
  6
+---
  7
+
  8
+.. automodule:: csd
  9
+   :members:
  10
+
  11
+sco
  12
+---
  13
+
  14
+.. automodule:: csd.sco
  15
+   :members:
  16
+   
  17
+event
  18
+-----
  19
+
  20
+The event module parses single score events.  In almost all cases,
  21
+when you are parsing an event, you are dealing with score elements,
  22
+such as pfield data, comments and whitespace.
  23
+
  24
+.. automodule:: csd.sco.event
  25
+   :members:
  26
+
  27
+element
  28
+-------
  29
+
  30
+.. automodule:: csd.sco.element
  31
+   :members:
  32
+
  33
+selection
  34
+---------
  35
+
  36
+.. automodule:: csd.sco.selection
  37
+   :members:
  38
+
56  docs/_sources/demo/index.txt
... ...
@@ -0,0 +1,56 @@
  1
+#####
  2
+Demos
  3
+#####
  4
+
  5
+These are examples of what can be built with the score module.
  6
+
  7
+Demo scripts are located in ``/demo/``.
  8
+
  9
+.. note:: Demos have only been tested using Apple's
  10
+    Python 2.5.1.  Further testing will need to be done in other
  11
+    versions of Python.
  12
+
  13
+.. warning:: These are to be considered unstable releases until they
  14
+    are properly tested and bug checked.
  15
+
  16
+arpeggiator
  17
+-----------
  18
+
  19
+.. automodule:: arpeggiator
  20
+   :members:
  21
+
  22
+carry
  23
+-----
  24
+
  25
+.. automodule:: carry
  26
+   :members:
  27
+
  28
+pfunc
  29
+-----
  30
+
  31
+.. automodule:: pfunc
  32
+   :members:
  33
+
  34
+s_spacer
  35
+---------------
  36
+
  37
+.. automodule:: s_spacer
  38
+   :members:
  39
+
  40
+sco_align
  41
+---------
  42
+
  43
+.. automodule:: sco_align
  44
+   :members:
  45
+
  46
+score_from_csd
  47
+--------------
  48
+.. automodule:: score_from_csd
  49
+   :members:
  50
+   
  51
+swap_columns
  52
+------------
  53
+
  54
+.. automodule:: swap_columns
  55
+   :members:
  56
+
150  docs/_sources/glossary.txt
... ...
@@ -0,0 +1,150 @@
  1
+.. _glossary:
  2
+
  3
+Glossary
  4
+========
  5
+
  6
+.. glossary::
  7
+
  8
+    csd
  9
+        #. A Csound unified file format that combines a Csound orc file
  10
+           and a Csound sco file into a single document.
  11
+          
  12
+        #. This package.
  13
+        
  14
+        #. In context of a function parameter, csd is a string that
  15
+           contains the contents of a Csound unified file.
  16
+          
  17
+        #. The top level module in the csd package.
  18
+        
  19
+    element
  20
+        Any :term:`event` data.  Can be numeric, an expression, macro,
  21
+        string, comment, a continuous block of space, carry, etc.
  22
+    
  23
+    event
  24
+        A single :term:`score` event. e.g. ``i 1 0 4 1.0 440  ; A440``.
  25
+    
  26
+    expression
  27
+        A Csound score expression, which is containted within brackets.
  28
+        e.g. ``[~ * 440 + 440]``
  29
+                
  30
+    identifier
  31
+        The unique name of index that indicates a specific instrument or
  32
+        f-table, and immediately proceeds a :term:`statement`. For example,
  33
+        ``33`` is the identifier in ``i 33 0 11``.
  34
+    
  35
+    literal
  36
+        A literal is any valid :term:`pfield data type`, such as:
  37
+        :term:`numeric`, :term:`expression`, macro, string, or
  38
+        preprocessor symbol.
  39
+    
  40
+    numeric
  41
+        A number.  Csound does not distinguish between ints and
  42
+        floats.  The term numeric refers to both.
  43
+        
  44
+    pattern
  45
+        A pattern is a python dict that has been repurposed to describe
  46
+        the conditions for matching against an :term:`event`.
  47
+
  48
+        Pattern syntax::
  49
+            
  50
+            {pfield_index: ((string | numeric) | [(string | numeric), *]), *}
  51
+
  52
+        The format is very precise, and must follow strict rules. The
  53
+        key is an integer that refers to the index of a pfield. The
  54
+        value is either a string, :term:`numeric`, or a list of strings
  55
+        and numbers. The values are used to compare against a
  56
+        :term:`pfield data type` from within an event.
  57
+        
  58
+        This system only works with pfield data types.  Whitespace and
  59
+        comments are not recognized.  If matching against a numeric
  60
+        type, the pattern matcher does distinguish between an integer
  61
+        and a floating point number.  i.e. 440 is not 440.0.
  62
+        
  63
+        Pattern examples::
  64
+            
  65
+            {0: 'i'}                   # All i-events
  66
+            {0: 'f'}                   # All f-tables
  67
+            {0: ['i', 'f']}            # All i-events and f-tables
  68
+            {0: 'i', 1: 33}            # All i-events for instr 33
  69
+            {0: 'i', 1: range(5, 11))  # All i-events for instrs 5 through 10
  70
+            {5: 440}                   # Events that contains 440 in pfield 5
  71
+        
  72
+    pfunction
  73
+        A function for operating on pfield values used in conjuction
  74
+        with csd.sco.operate_numeric. or csd.sco.map_().
  75
+        
  76
+        The first argument ``x`` is required, and is used as the pfield
  77
+        value in the function.  A pfunction supports any number of
  78
+        additional optional arguments.
  79
+        
  80
+        Example::
  81
+            
  82
+            def multiply(x, y):
  83
+                return x * y
  84
+            
  85
+            print csd.sco.map_(score, {0: 'i'}, 5, multiply, 3.0)
  86
+    
  87
+    pfield        
  88
+        A pfield, or parameter field, refers to a value as part of a
  89
+        :term:`event`.
  90
+            
  91
+    pfield data type
  92
+        Includes: :term:`statement`, :term:`numeric`, macro,
  93
+        :term:`expression`, string, and preprocessor symbols.
  94
+
  95
+    pfield_list
  96
+        A pfield_list is either a single pfield value or a list of
  97
+        pfield values.
  98
+        
  99
+        i.e. value, [value], or [value, value, ...].
  100
+        
  101
+        A pfield_list does not support a recursive list structure, i.e
  102
+        as [value, [value]].
  103
+        
  104
+    selection
  105
+        A selection is a :term:`score` reformatted into a repurposed
  106
+        python dict that stores collected :term:`event` strings with
  107
+        their respective indexes.
  108
+       
  109
+        Selection syntax::
  110
+            
  111
+            {event_index: (event | [event, *]), *}
  112
+            
  113
+        The purpose of a selection is to be able to pull specific events
  114
+        from a :term:`score` and for processing.
  115
+        
  116
+        Selections are created with the select functions in csd.sco.
  117
+        Once they are processed, they must be recombined with the
  118
+        original score with the merge function.
  119
+            
  120
+    score
  121
+        #. The part of a Csound program that controls and plays a
  122
+           Csound orchestra.
  123
+        
  124
+        #. In context of a function, a score is a string of Csound
  125
+           score events.
  126
+               
  127
+    statement
  128
+        A statement is Csound score command that begins an active score
  129
+        :term:`event`.
  130
+        
  131
+        Statements include: (from the `Csound manual <http://www.csounds.com/manual/html/ScoreStatements.html>`_)
  132
+        
  133
+            * a - Advance score time by a specified amount
  134
+            * b - Resets the clock
  135
+            * e - Marks the end of the last section of the score
  136
+            * f - Causes a GEN subroutine to place values in a stored
  137
+              function table
  138
+            * i - Makes an instrument active at a specific time and for
  139
+              a certain duration
  140
+            * m - Sets a named mark in the score
  141
+            * n - Repeats a section
  142
+            * q - Used to quiet an instrument
  143
+            * r - Starts a repeated section
  144
+            * s - Marks the end of a section
  145
+            * t - Sets the tempo
  146
+            * v - Provides for locally variable time warping of score
  147
+              events
  148
+            * x - Skip the rest of the current section
  149
+
  150
+            
79  docs/_sources/index.txt
... ...
@@ -0,0 +1,79 @@
  1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2
+Csound CSD Package Documentation
  3
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  4
+
  5
+.. toctree::
  6
+   :maxdepth: 2
  7
+
  8
+   The csd Package <csd_sco_event.rst>
  9
+   demo/index.rst
  10
+   commandline.rst
  11
+   bugs.rst
  12
+   glossary.rst
  13
+
  14
+   
  15
+About
  16
+-----
  17
+
  18
+CSD is a Python package designed to allow simple text manipulation of
  19
+Csound code.
  20
+
  21
+The purpose of this package is to make life easier for Csounders. As of
  22
+now, several demo scripts built with CSD are included as part of the
  23
+package, albeit not thoroughly tested. With these scripts, you will be
  24
+able to automatically align your score code, do simple score
  25
+arpeggiations, replace repeated pfield values with the carry
  26
+preprocessor symbol (.), etc.
  27
+
  28
+At the moment, the focus is on score manipulation, though room has been
  29
+made in the package structure to accommodate for future orchestra
  30
+processing.
  31
+
  32
+In order to use the demo scripts, you'll need to use the command-line.
  33
+However, using these scripts in applications may be possible in the
  34
+future.  If you are a developer of a Csound front-end, Csound based-app,
  35
+or are just looking to extend the capabilities of your favorites text
  36
+editor, let me know so we can start the process of figuring out our
  37
+respective needs to make this happen. I'm open to any and all ideas from
  38
+anyone.
  39
+
  40
+This package is currently still very early in the development cycle,
  41
+though quickly approaching a beta release.  The scripts have been tested
  42
+primarily with Apple's Python 2.5.1.
  43
+
  44
+.. warning::  Use these at your own risk. CSD should be
  45
+   considered experimental.
  46
+
  47
+Information
  48
+-----------
  49
+
  50
+Csound CSD Package
  51
+
  52
+By Jacob Joaquin
  53
+
  54
+jacobjoaquin@gmail.com
  55
+
  56
+http://www.thumbuki.com/
  57
+
  58
+http://jacobjoaquin.tumblr.com/
  59
+
  60
+http://twitter.com/JacobJoaquin
  61
+
  62
+copyright (c) Jacob Joaquin 2009
  63
+
  64
+
  65
+License
  66
+-------
  67
+GNU Lesser General Public License
  68
+
  69
+Version 3, 29 June 2007
  70
+
  71
+http://http://www.gnu.org/licenses/lgpl.html
  72
+
  73
+Indices and tables
  74
+==================
  75
+
  76
+* :ref:`genindex`
  77
+* :ref:`modindex`
  78
+* :ref:`search`
  79
+
405  docs/_static/basic.css
... ...
@@ -0,0 +1,405 @@
  1
+/**
  2
+ * Sphinx stylesheet -- basic theme
  3
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  4
+ */
  5
+
  6
+/* -- main layout ----------------------------------------------------------- */
  7
+
  8
+div.clearer {
  9
+    clear: both;
  10
+}
  11
+
  12
+/* -- relbar ---------------------------------------------------------------- */
  13
+
  14
+div.related {
  15
+    width: 100%;
  16
+    font-size: 90%;
  17
+}
  18
+
  19
+div.related h3 {
  20
+    display: none;
  21
+}
  22
+
  23
+div.related ul {
  24
+    margin: 0;
  25
+    padding: 0 0 0 10px;
  26
+    list-style: none;
  27
+}
  28
+
  29
+div.related li {
  30
+    display: inline;
  31
+}
  32
+
  33
+div.related li.right {
  34
+    float: right;
  35
+    margin-right: 5px;
  36
+}
  37
+
  38
+/* -- sidebar --------------------------------------------------------------- */
  39
+
  40
+div.sphinxsidebarwrapper {
  41
+    padding: 10px 5px 0 10px;
  42
+}
  43
+
  44
+div.sphinxsidebar {
  45
+    float: left;
  46
+    width: 230px;
  47
+    margin-left: -100%;
  48
+    font-size: 90%;
  49
+}
  50
+
  51
+div.sphinxsidebar ul {
  52
+    list-style: none;
  53
+}
  54
+
  55
+div.sphinxsidebar ul ul,
  56
+div.sphinxsidebar ul.want-points {
  57
+    margin-left: 20px;
  58
+    list-style: square;
  59
+}
  60
+
  61
+div.sphinxsidebar ul ul {
  62
+    margin-top: 0;
  63
+    margin-bottom: 0;
  64
+}
  65
+
  66
+div.sphinxsidebar form {
  67
+    margin-top: 10px;
  68
+}
  69
+
  70
+div.sphinxsidebar input {
  71
+    border: 1px solid #98dbcc;
  72
+    font-family: sans-serif;
  73
+    font-size: 1em;
  74
+}
  75
+
  76
+img {
  77
+    border: 0;
  78
+}
  79
+
  80
+/* -- search page ----------------------------------------------------------- */
  81
+
  82
+ul.search {
  83
+    margin: 10px 0 0 20px;
  84
+    padding: 0;
  85
+}
  86
+
  87
+ul.search li {
  88
+    padding: 5px 0 5px 20px;
  89
+    background-image: url(file.png);
  90
+    background-repeat: no-repeat;
  91
+    background-position: 0 7px;
  92
+}
  93
+
  94
+ul.search li a {
  95
+    font-weight: bold;
  96
+}
  97
+
  98
+ul.search li div.context {
  99
+    color: #888;
  100
+    margin: 2px 0 0 30px;
  101
+    text-align: left;
  102
+}
  103
+
  104
+ul.keywordmatches li.goodmatch a {
  105
+    font-weight: bold;
  106
+}
  107
+
  108
+/* -- index page ------------------------------------------------------------ */
  109
+
  110
+table.contentstable {
  111
+    width: 90%;
  112
+}
  113
+
  114
+table.contentstable p.biglink {
  115
+    line-height: 150%;
  116
+}
  117
+
  118
+a.biglink {
  119
+    font-size: 1.3em;
  120
+}
  121
+
  122
+span.linkdescr {
  123
+    font-style: italic;
  124
+    padding-top: 5px;
  125
+    font-size: 90%;
  126
+}
  127
+
  128
+/* -- general index --------------------------------------------------------- */
  129
+
  130
+table.indextable td {
  131
+    text-align: left;
  132
+    vertical-align: top;
  133
+}
  134
+
  135
+table.indextable dl, table.indextable dd {
  136
+    margin-top: 0;
  137
+    margin-bottom: 0;
  138
+}
  139
+
  140
+table.indextable tr.pcap {
  141
+    height: 10px;
  142
+}
  143
+
  144
+table.indextable tr.cap {
  145
+    margin-top: 10px;
  146
+    background-color: #f2f2f2;
  147
+}
  148
+
  149
+img.toggler {
  150
+    margin-right: 3px;
  151
+    margin-top: 3px;
  152
+    cursor: pointer;
  153
+}
  154
+
  155
+/* -- general body styles --------------------------------------------------- */
  156
+
  157
+a.headerlink {
  158
+    visibility: hidden;
  159
+}
  160
+
  161
+h1:hover > a.headerlink,
  162
+h2:hover > a.headerlink,
  163
+h3:hover > a.headerlink,
  164
+h4:hover > a.headerlink,
  165
+h5:hover > a.headerlink,
  166
+h6:hover > a.headerlink,
  167
+dt:hover > a.headerlink {
  168
+    visibility: visible;
  169
+}
  170
+
  171
+div.body p.caption {
  172
+    text-align: inherit;
  173
+}
  174
+
  175
+div.body td {
  176
+    text-align: left;
  177
+}
  178
+
  179
+.field-list ul {
  180
+    padding-left: 1em;
  181
+}
  182
+
  183
+.first {
  184
+    margin-top: 0 !important;
  185
+}
  186
+
  187
+p.rubric {
  188
+    margin-top: 30px;
  189
+    font-weight: bold;
  190
+}
  191
+
  192
+/* -- sidebars -------------------------------------------------------------- */
  193
+
  194
+div.sidebar {
  195
+    margin: 0 0 0.5em 1em;
  196
+    border: 1px solid #ddb;
  197
+    padding: 7px 7px 0 7px;
  198
+    background-color: #ffe;
  199
+    width: 40%;
  200
+    float: right;
  201
+}
  202
+
  203
+p.sidebar-title {
  204
+    font-weight: bold;
  205
+}
  206
+
  207
+/* -- topics ---------------------------------------------------------------- */
  208
+
  209
+div.topic {
  210
+    border: 1px solid #ccc;
  211
+    padding: 7px 7px 0 7px;
  212
+    margin: 10px 0 10px 0;
  213
+}
  214
+
  215
+p.topic-title {
  216
+    font-size: 1.1em;
  217
+    font-weight: bold;
  218
+    margin-top: 10px;
  219
+}
  220
+
  221
+/* -- admonitions ----------------------------------------------------------- */
  222
+
  223
+div.admonition {
  224
+    margin-top: 10px;
  225
+    margin-bottom: 10px;
  226
+    padding: 7px;
  227
+}
  228
+
  229
+div.admonition dt {
  230
+    font-weight: bold;
  231
+}
  232
+
  233
+div.admonition dl {
  234
+    margin-bottom: 0;
  235
+}
  236
+
  237
+p.admonition-title {
  238
+    margin: 0px 10px 5px 0px;
  239
+    font-weight: bold;
  240
+}
  241
+
  242
+div.body p.centered {
  243
+    text-align: center;
  244
+    margin-top: 25px;
  245
+}
  246
+
  247
+/* -- tables ---------------------------------------------------------------- */
  248
+
  249
+table.docutils {
  250
+    border: 0;
  251
+    border-collapse: collapse;
  252
+}
  253
+
  254
+table.docutils td, table.docutils th {
  255
+    padding: 1px 8px 1px 0;
  256
+    border-top: 0;
  257
+    border-left: 0;
  258
+    border-right: 0;
  259
+    border-bottom: 1px solid #aaa;
  260
+}
  261
+
  262
+table.field-list td, table.field-list th {
  263
+    border: 0 !important;
  264
+}
  265
+
  266
+table.footnote td, table.footnote th {
  267
+    border: 0 !important;
  268
+}
  269
+
  270
+th {
  271
+    text-align: left;
  272
+    padding-right: 5px;
  273
+}
  274
+
  275
+/* -- other body styles ----------------------------------------------------- */
  276
+
  277
+dl {
  278
+    margin-bottom: 15px;
  279
+}
  280
+
  281
+dd p {
  282
+    margin-top: 0px;
  283
+}
  284
+
  285
+dd ul, dd table {
  286
+    margin-bottom: 10px;
  287
+}
  288
+
  289
+dd {
  290
+    margin-top: 3px;
  291
+    margin-bottom: 10px;
  292
+    margin-left: 30px;
  293
+}
  294
+
  295
+dt:target, .highlight {
  296
+    background-color: #fbe54e;
  297
+}
  298
+
  299
+dl.glossary dt {
  300
+    font-weight: bold;
  301
+    font-size: 1.1em;
  302
+}
  303
+
  304
+.field-list ul {
  305
+    margin: 0;
  306
+    padding-left: 1em;
  307
+}
  308
+
  309
+.field-list p {
  310
+    margin: 0;
  311
+}
  312
+
  313
+.refcount {
  314
+    color: #060;
  315
+}
  316
+
  317
+.optional {
  318
+    font-size: 1.3em;
  319
+}
  320
+
  321
+.versionmodified {
  322
+    font-style: italic;
  323
+}
  324
+
  325
+.system-message {
  326
+    background-color: #fda;
  327
+    padding: 5px;
  328
+    border: 3px solid red;
  329
+}
  330
+
  331
+.footnote:target  {
  332
+    background-color: #ffa
  333
+}
  334
+
  335
+/* -- code displays --------------------------------------------------------- */
  336
+
  337
+pre {
  338
+    overflow: auto;
  339
+}
  340
+
  341
+td.linenos pre {
  342
+    padding: 5px 0px;
  343
+    border: 0;
  344
+    background-color: transparent;
  345
+    color: #aaa;
  346
+}
  347
+
  348
+table.highlighttable {
  349
+    margin-left: 0.5em;
  350
+}
  351
+
  352
+table.highlighttable td {
  353
+    padding: 0 0.5em 0 0.5em;
  354
+}
  355
+
  356
+tt.descname {
  357
+    background-color: transparent;
  358
+    font-weight: bold;
  359
+    font-size: 1.2em;
  360
+}
  361
+
  362
+tt.descclassname {
  363
+    background-color: transparent;
  364
+}
  365
+
  366
+tt.xref, a tt {
  367
+    background-color: transparent;
  368
+    font-weight: bold;
  369
+}
  370
+
  371
+h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
  372
+    background-color: transparent;
  373
+}
  374
+
  375
+/* -- math display ---------------------------------------------------------- */
  376
+
  377
+img.math {
  378
+    vertical-align: middle;
  379
+}
  380
+
  381
+div.math p {
  382
+    text-align: center;
  383
+}
  384
+
  385
+span.eqno {
  386
+    float: right;
  387
+}
  388
+
  389
+/* -- printout stylesheet --------------------------------------------------- */
  390
+
  391
+@media print {
  392
+    div.document,
  393
+    div.documentwrapper,
  394
+    div.bodywrapper {
  395
+        margin: 0;
  396
+        width: 100%;
  397
+    }
  398
+
  399
+    div.sphinxsidebar,
  400
+    div.related,
  401
+    div.footer,
  402
+    #top-link {
  403
+        display: none;
  404
+    }
  405
+}
210  docs/_static/default.css
... ...
@@ -0,0 +1,210 @@
  1
+/**
  2
+ * Sphinx stylesheet -- default theme
  3
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  4
+ */
  5
+
  6
+@import url("basic.css");
  7
+
  8
+/* -- page layout ----------------------------------------------------------- */
  9
+
  10
+body {
  11
+    font-family: sans-serif;
  12
+    font-size: 100%;
  13
+    background-color: #11303d;
  14
+    color: #000;
  15
+    margin: 0;
  16
+    padding: 0;
  17
+}
  18
+
  19
+div.document {
  20
+    background-color: #1c4e63;
  21
+}
  22
+
  23
+div.documentwrapper {
  24
+    float: left;
  25
+    width: 100%;
  26
+}
  27
+
  28
+div.bodywrapper {
  29
+    margin: 0 0 0 230px;
  30
+}
  31
+
  32
+div.body {
  33
+    background-color: #ffffff;
  34
+    color: #000000;
  35
+    padding: 0 20px 30px 20px;
  36
+}
  37
+
  38
+div.footer {
  39
+    color: #ffffff;
  40
+    width: 100%;
  41
+    padding: 9px 0 9px 0;
  42
+    text-align: center;
  43
+    font-size: 75%;
  44
+}
  45
+
  46
+div.footer a {
  47
+    color: #ffffff;
  48
+    text-decoration: underline;
  49
+}
  50
+
  51
+div.related {
  52
+    background-color: #133f52;
  53
+    line-height: 30px;
  54
+    color: #ffffff;
  55
+}
  56
+
  57
+div.related a {
  58
+    color: #ffffff;
  59
+}
  60
+
  61
+div.sphinxsidebar {
  62
+}
  63
+
  64
+div.sphinxsidebar h3 {
  65
+    font-family: 'Trebuchet MS', sans-serif;
  66
+    color: #ffffff;
  67
+    font-size: 1.4em;
  68
+    font-weight: normal;
  69
+    margin: 0;
  70
+    padding: 0;
  71
+}
  72
+
  73
+div.sphinxsidebar h3 a {
  74
+    color: #ffffff;
  75
+}
  76
+
  77
+div.sphinxsidebar h4 {
  78
+    font-family: 'Trebuchet MS', sans-serif;
  79
+    color: #ffffff;
  80
+    font-size: 1.3em;
  81
+    font-weight: normal;
  82
+    margin: 5px 0 0 0;
  83
+    padding: 0;
  84
+}
  85
+
  86
+div.sphinxsidebar p {
  87
+    color: #ffffff;
  88
+}
  89
+
  90
+div.sphinxsidebar p.topless {
  91
+    margin: 5px 10px 10px 10px;
  92
+}
  93
+
  94
+div.sphinxsidebar ul {
  95
+    margin: 10px;
  96
+    padding: 0;
  97
+    color: #ffffff;
  98
+}
  99
+
  100
+div.sphinxsidebar a {
  101
+    color: #98dbcc;
  102
+}
  103
+
  104
+div.sphinxsidebar input {
  105
+    border: 1px solid #98dbcc;
  106
+    font-family: sans-serif;
  107
+    font-size: 1em;
  108
+}
  109
+
  110
+/* -- body styles ----------------------------------------------------------- */
  111
+
  112
+a {
  113
+    color: #355f7c;
  114
+    text-decoration: none;
  115
+}
  116
+
  117
+a:hover {
  118
+    text-decoration: underline;
  119
+}
  120
+
  121
+div.body p, div.body dd, div.body li {
  122
+    text-align: justify;
  123
+    line-height: 130%;
  124
+}
  125
+
  126
+div.body h1,
  127
+div.body h2,
  128
+div.body h3,
  129
+div.body h4,
  130
+div.body h5,
  131
+div.body h6 {
  132
+    font-family: 'Trebuchet MS', sans-serif;
  133
+    background-color: #f2f2f2;
  134
+    font-weight: normal;
  135
+    color: #20435c;
  136
+    border-bottom: 1px solid #ccc;
  137
+    margin: 20px -20px 10px -20px;
  138
+    padding: 3px 0 3px 10px;
  139
+}
  140
+
  141
+div.body h1 { margin-top: 0; font-size: 200%; }
  142
+div.body h2 { font-size: 160%; }
  143
+div.body h3 { font-size: 140%; }
  144
+div.body h4 { font-size: 120%; }
  145
+div.body h5 { font-size: 110%; }
  146
+div.body h6 { font-size: 100%; }
  147
+
  148
+a.headerlink {
  149
+    color: #c60f0f;
  150
+    font-size: 0.8em;
  151
+    padding: 0 4px 0 4px;
  152
+    text-decoration: none;
  153
+}
  154
+
  155
+a.headerlink:hover {
  156
+    background-color: #c60f0f;
  157
+    color: white;
  158
+}
  159
+
  160
+div.body p, div.body dd, div.body li {
  161
+    text-align: justify;
  162
+    line-height: 130%;
  163
+}
  164
+
  165
+div.admonition p.admonition-title + p {
  166
+    display: inline;
  167
+}
  168
+
  169
+div.note {
  170
+    background-color: #eee;
  171
+    border: 1px solid #ccc;
  172
+}
  173
+
  174
+div.seealso {
  175
+    background-color: #ffc;
  176
+    border: 1px solid #ff6;
  177
+}
  178
+
  179
+div.topic {
  180
+    background-color: #eee;
  181
+}
  182
+
  183
+div.warning {
  184
+    background-color: #ffe4e4;
  185
+    border: 1px solid #f66;
  186
+}
  187
+
  188
+p.admonition-title {
  189
+    display: inline;
  190
+}
  191
+
  192
+p.admonition-title:after {
  193
+    content: ":";
  194
+}
  195
+
  196
+pre {
  197
+    padding: 5px;
  198
+    background-color: #eeffcc;
  199
+    color: #333333;
  200
+    line-height: 120%;
  201
+    border: 1px solid #ac9;
  202
+    border-left: none;
  203
+    border-right: none;
  204
+}
  205
+
  206
+tt {
  207
+    background-color: #ecf0f3;
  208
+    padding: 0 1px 0 1px;
  209
+    font-size: 0.95em;
  210
+}
232  docs/_static/doctools.js
... ...
@@ -0,0 +1,232 @@
  1
+/// XXX: make it cross browser
  2
+
  3
+/**
  4
+ * make the code below compatible with browsers without
  5
+ * an installed firebug like debugger
  6
+ */
  7
+if (!window.console || !console.firebug) {
  8
+  var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
  9
+      "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
  10
+  window.console = {};
  11
+  for (var i = 0; i < names.length; ++i)
  12
+    window.console[names[i]] = function() {}
  13
+}
  14
+
  15
+/**
  16
+ * small helper function to urldecode strings
  17
+ */