You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by bu...@apache.org on 2011/03/10 00:29:52 UTC

svn commit: r786777 [1/5] - in /websites/staging/chemistry/trunk/content/python/docs: ./ _sources/ _static/

Author: buildbot
Date: Wed Mar  9 23:29:51 2011
New Revision: 786777

Log:
Staging update by buildbot

Added:
    websites/staging/chemistry/trunk/content/python/docs/
    websites/staging/chemistry/trunk/content/python/docs/_sources/
    websites/staging/chemistry/trunk/content/python/docs/_sources/about.txt
    websites/staging/chemistry/trunk/content/python/docs/_sources/code.txt
    websites/staging/chemistry/trunk/content/python/docs/_sources/devguide.txt
    websites/staging/chemistry/trunk/content/python/docs/_sources/docs.txt
    websites/staging/chemistry/trunk/content/python/docs/_sources/examples.txt
    websites/staging/chemistry/trunk/content/python/docs/_sources/index.txt
    websites/staging/chemistry/trunk/content/python/docs/_sources/install.txt
    websites/staging/chemistry/trunk/content/python/docs/_sources/sample-data.txt
    websites/staging/chemistry/trunk/content/python/docs/_sources/tests.txt
    websites/staging/chemistry/trunk/content/python/docs/_static/
    websites/staging/chemistry/trunk/content/python/docs/_static/basic.css
    websites/staging/chemistry/trunk/content/python/docs/_static/default.css
    websites/staging/chemistry/trunk/content/python/docs/_static/doctools.js
    websites/staging/chemistry/trunk/content/python/docs/_static/file.png   (with props)
    websites/staging/chemistry/trunk/content/python/docs/_static/jquery.js
    websites/staging/chemistry/trunk/content/python/docs/_static/minus.png   (with props)
    websites/staging/chemistry/trunk/content/python/docs/_static/plus.png   (with props)
    websites/staging/chemistry/trunk/content/python/docs/_static/pygments.css
    websites/staging/chemistry/trunk/content/python/docs/_static/searchtools.js
    websites/staging/chemistry/trunk/content/python/docs/about.html
    websites/staging/chemistry/trunk/content/python/docs/code.html
    websites/staging/chemistry/trunk/content/python/docs/devguide.html
    websites/staging/chemistry/trunk/content/python/docs/docs.html
    websites/staging/chemistry/trunk/content/python/docs/examples.html
    websites/staging/chemistry/trunk/content/python/docs/genindex.html
    websites/staging/chemistry/trunk/content/python/docs/index.html
    websites/staging/chemistry/trunk/content/python/docs/install.html
    websites/staging/chemistry/trunk/content/python/docs/modindex.html
    websites/staging/chemistry/trunk/content/python/docs/objects.inv
    websites/staging/chemistry/trunk/content/python/docs/sample-data.html
    websites/staging/chemistry/trunk/content/python/docs/search.html
    websites/staging/chemistry/trunk/content/python/docs/searchindex.js
    websites/staging/chemistry/trunk/content/python/docs/tests.html

Added: websites/staging/chemistry/trunk/content/python/docs/_sources/about.txt
==============================================================================
--- websites/staging/chemistry/trunk/content/python/docs/_sources/about.txt (added)
+++ websites/staging/chemistry/trunk/content/python/docs/_sources/about.txt Wed Mar  9 23:29:51 2011
@@ -0,0 +1,66 @@
+..
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+
+About the CMIS Python Library
+=============================
+The goal of this project is to create a CMIS client for Python that can be used to work with any CMIS-compliant repository.
+
+The library is being developed with the following guidelines:
+ * Developers using this API should be able to work with CMIS domain objects without having to worry about the underlying implementation details.
+ * The library will use the Resftul AtomPub Binding.
+ * The library will conform to the `CMIS spec <http://docs.oasisopen.org/cmis/CMIS/v1.0/cd06/cmis-spec-v1.0.pdf>`_ as closely as possible. Several public CMIS repositories are being used to test the API. 
+ * The library should have no hard-coded URL's. It should be able to get everything it needs regarding how to work with the CMIS service from the CMIS service URL response and subsequent calls.
+ * There shouldn't have to be a vendor-specific version of this library. The goal is for it to be interoperable with CMIS-compliant providers.
+
+Quick Example
+-------------
+This should give you an idea of how easy and natural it is to work with the API:
+  >>> cmisClient = cmislib.CmisClient('http://localhost:8080/alfresco/s/cmis', 'admin', 'admin')
+  >>> repo = cmisClient.defaultRepository
+  >>> rootFolder = repo.rootFolder
+  >>> children = rootFolder.getChildren()
+  >>> newFolder = rootFolder.createFolder('testDeleteFolder folder')
+  >>> props = newFolder.properties
+  >>> newFolder.delete()
+
+To-Do's
+-------
+Miscellaneous
+ * createDocumentFromSource
+ * getProperties filter
+ * getContentStream stream id
+ * Document.move (WIP)
+
+Renditions
+ * getRenditions
+
+Change history
+ * change token
+
+Unfiling/multifiling support
+ * addObject (WIP)
+ * removeObject (WIP)
+ * createDocument without a parent folder (unfiled) (WIP)
+ * getObjectParents (WIP)
+
+Policies
+ * Policy object
+ * createPolicy
+ * applyPolicy
+ * removePolicy
+ * getAppliedPolicies

Added: websites/staging/chemistry/trunk/content/python/docs/_sources/code.txt
==============================================================================
--- websites/staging/chemistry/trunk/content/python/docs/_sources/code.txt (added)
+++ websites/staging/chemistry/trunk/content/python/docs/_sources/code.txt Wed Mar  9 23:29:51 2011
@@ -0,0 +1,56 @@
+..
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+
+Code
+====
+
+The :mod:`cmislib.model` Module
+-------------------------------
+
+The :mod:`cmislib.model` Module contains all the CMIS domain objects. The ones you will work with are listed as top level package elements. When working with the repository, the first thing you need to do is grab an instance of :class:`cmislib.CmisClient`, passing it the repository endpoint URL, username, and password.
+
+>>> cmisClient = cmislib.CmisClient('http://localhost:8080/alfresco/s/cmis', 'admin', 'admin')
+
+From there you can get the default repository...
+
+>>> repo = cmisClient.defaultRepository
+
+or a specific repository if you know the repository ID.
+
+>>> repo = cmisClient.getRepository('83beb297-a6fa-4ac5-844b-98c871c0eea9')
+
+Once you have that, you're off to the races. Use the :class:`cmislib.Repository` class to create new :class:`cmislib.Folder` and :class:`cmislib.Document` objects, perform searches, etc.
+
+.. automodule:: cmislib.model
+   :members:
+
+The :mod:`cmislib.net` Module
+-----------------------------
+
+The :mod:`cmislib.net` Module contains the classes used by :mod:`cmislib.model.CmisClient` to communicate with the CMIS repository. The most important of which is :class:`cmislib.net.RESTService`.
+
+.. automodule:: cmislib.net
+   :members: RESTService
+   
+The :mod:`tests.cmislib` Module
+-------------------------------
+
+The :mod:`tests.cmislibtest` Module contains unit tests for all classes and methods in :mod:`cmislib.model`. See :ref:`tests` for more information on running tests.
+
+.. automodule:: tests.cmislibtest
+   :members:

Added: websites/staging/chemistry/trunk/content/python/docs/_sources/devguide.txt
==============================================================================
--- websites/staging/chemistry/trunk/content/python/docs/_sources/devguide.txt (added)
+++ websites/staging/chemistry/trunk/content/python/docs/_sources/devguide.txt Wed Mar  9 23:29:51 2011
@@ -0,0 +1,63 @@
+..
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+
+===============
+Developer Guide
+===============
+
+This page is for people who wish to contribute code to this project.
+
+Developer Setup
+---------------
+Check out the source from head, switch to the source code's root directory, then run:
+  python setup.py develop
+  
+That will set up this project's src directory in the easy-install.pth file in site-packages.
+
+Release Process
+---------------
+
+Checklist:
+ #. All newly-added code has a unit test
+ #. All tests pass cleanly (or have good reasons for not passing)
+ #. Change setup.cfg to have the appropriate tag ('dev', for example, or '' for a stable release)
+ #. Change setup.py to have the appropriate version number
+ #. All changes checked in
+ #. pep8 runs without much complaint
+     * pep8 --ignore=E501,W601 --repeat model.py
+
+ #. pylint runs without much complaint
+     * pylint --disable-msg=C0103,R0904,R0913,C0301,W0511 cmislibtest.py
+
+ #. Inline comments updated with changes
+ #. Sphinx doc updated with changes
+ #. Docs built cleanly
+     * cd src/doc/src/
+     * make html
+
+ #. Setuptools build
+     * python setup.py bdist sdist
+     * Use release script to sign files
+
+ #. Copy files to Apache, start vote
+ #. If vote passes, copy files to Apache dist
+ #. Upload files to Pypi
+ #. Tag the release in Subversion
+ #. Check the `cheesecake <http://pycheesecake.org/>`_ score
+     * python cheesecake_index --name=cmislib
+

Added: websites/staging/chemistry/trunk/content/python/docs/_sources/docs.txt
==============================================================================
--- websites/staging/chemistry/trunk/content/python/docs/_sources/docs.txt (added)
+++ websites/staging/chemistry/trunk/content/python/docs/_sources/docs.txt Wed Mar  9 23:29:51 2011
@@ -0,0 +1,37 @@
+..
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+
+Documentation
+=============
+
+This documentation was generated with `Sphinx <http://sphinx.pocoo.org/>`_. To install Sphinx on Mac OS X using Macports:
+
+MAC OS X::
+
+    sudo port install py26-sphinx
+
+Once you've got Sphinx installed, if you need to regenerate the documentation::
+
+    cd /path/to/cmislib/src/doc/src
+    Run either:    
+    	sphinx-build -b html -d ../build/.doctrees . ../build
+	make html
+
+The generated HTML will be placed in doc/build::
+
+    firefox file:///path/to/cmislib/src/doc/build/index.html

Added: websites/staging/chemistry/trunk/content/python/docs/_sources/examples.txt
==============================================================================
--- websites/staging/chemistry/trunk/content/python/docs/_sources/examples.txt (added)
+++ websites/staging/chemistry/trunk/content/python/docs/_sources/examples.txt Wed Mar  9 23:29:51 2011
@@ -0,0 +1,137 @@
+..
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+
+.. _examples:
+
+========
+Examples
+========
+There's nothing in cmislib that is specific to any particular vendor. Once you give it your CMIS provider's service URL and some credentials, it figures out where to go from there.
+
+Let's look at some examples using Alfresco's public CMIS repository.
+
+-----------------------
+Get a Repository object
+-----------------------
+
+ #. From the command-line, start the Python shell by typing `python` then hit enter.
+ #. Import the CmisClient:
+
+    >>> from cmislib import CmisClient
+
+ #. Point the CmisClient at the repository's service URL 
+
+    >>> client = CmisClient('http://cmis.alfresco.com/s/cmis', 'admin', 'admin')
+
+ #. Get the default repository for the service
+
+    >>> repo = client.defaultRepository
+    >>> repo.id
+    u'83beb297-a6fa-4ac5-844b-98c871c0eea9'
+
+ #. Get the repository's properties. This for-loop spits out everything cmislib knows about the repo.
+
+    >>> repo.name
+    u'Main Repository'
+    >>> info = repo.info
+    >>> for k,v in info.items():
+        ...     print "%s:%s" % (k,v)
+        ...
+        cmisSpecificationTitle:Version 1.0 Committee Draft 04
+        cmisVersionSupported:1.0
+        repositoryDescription:None
+        productVersion:3.2.0 (r2 2440)
+        rootFolderId:workspace://SpacesStore/aa1ecedf-9551-49c5-831a-0502bb43f348
+        repositoryId:83beb297-a6fa-4ac5-844b-98c871c0eea9
+        repositoryName:Main Repository
+        vendorName:Alfresco
+        productName:Alfresco Repository (Community)
+
+-------------------
+Folders & Documents
+-------------------
+
+Once you've got the Repository object you can start working with folders.
+
+ #. Create a new folder in the root. You should name yours something unique.
+
+    >>> root = repo.rootFolder
+    >>> someFolder = root.createFolder('someFolder')
+    >>> someFolder.id
+    u'workspace://SpacesStore/91f344ef-84e7-43d8-b379-959c0be7e8fc'
+
+ #. Then, you can create some content:
+
+    >>> someFile = open('test.txt', 'r')
+    >>> someDoc = someFolder.createDocument('Test Document', contentFile=someFile)
+
+ #. And, if you want, you can dump the properties of the newly-created document (this is a partial list):
+
+    >>> props = someDoc.properties
+    >>> for k,v in props.items():
+    ...     print '%s:%s' % (k,v)
+    ...
+    cmis:contentStreamMimeType:text/plain
+    cmis:creationDate:2009-12-18T10:59:26.667-06:00
+    cmis:baseTypeId:cmis:document
+    cmis:isLatestMajorVersion:false
+    cmis:isImmutable:false
+    cmis:isMajorVersion:false
+    cmis:objectId:workspace://SpacesStore/2cf36ad5-92b0-4731-94a4-9f3fef25b479
+
+----------------------------------
+Searching For & Retrieving Objects
+----------------------------------
+
+There are several different ways to grab an object:
+ * You can run a CMIS query
+ * You can ask the repository to give you one for a specific path or object ID
+ * You can traverse the repository using a folder's children and/or descendants
+ 
+ #. Let's find the doc we just created with a full-text search.
+  
+    .. note::
+       Note that I'm currently seeing a problem with Alfresco in which the CMIS service returns one less result than what's really there):
+
+    >>> results = repo.query("select * from cmis:document where contains('test')")
+    >>> for result in results:
+    ...     print result.name
+    ...
+    Test Document2
+    example test script.js
+
+ #. Alternatively, you can also get objects by their their path, like this:
+
+    >>> someDoc = repo.getObjectByPath('/someFolder/Test Document')
+    >>> someDoc.id
+    u'workspace://SpacesStore/2cf36ad5-92b0-4731-94a4-9f3fef25b479'
+
+ #. Or their object ID, like this:
+ 
+    >>> someDoc = repo.getObject('workspace://SpacesStore/2cf36ad5-92b0-4731-94a4-9f3fef25b479')
+    >>> someDoc.name
+    u'Test Document'
+ 
+ #. Folder objects have getChildren() and getDescendants() methods that will return a list of :class:`CmisObject` objects:
+ 
+	>>> children= someFolder.getChildren()
+	>>> for child in children:
+	...     print child.name
+	... 
+	Test Document
+	Test Document2  

Added: websites/staging/chemistry/trunk/content/python/docs/_sources/index.txt
==============================================================================
--- websites/staging/chemistry/trunk/content/python/docs/_sources/index.txt (added)
+++ websites/staging/chemistry/trunk/content/python/docs/_sources/index.txt Wed Mar  9 23:29:51 2011
@@ -0,0 +1,47 @@
+..
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+
+.. CMIS Library documentation master file, created by
+   sphinx-quickstart on Thu Dec 10 10:12:43 2009.
+   You can adapt this file completely to your liking, but it should at least
+   contain the root `toctree` directive.
+
+Welcome to CMIS Library's documentation!
+========================================
+
+Contents:
+
+.. toctree::
+   :maxdepth: 2
+
+   about.rst
+   install.rst
+   examples.rst
+   code.rst
+   devguide.rst
+   tests.rst
+   docs.rst
+   sample-data.rst
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+

Added: websites/staging/chemistry/trunk/content/python/docs/_sources/install.txt
==============================================================================
--- websites/staging/chemistry/trunk/content/python/docs/_sources/install.txt (added)
+++ websites/staging/chemistry/trunk/content/python/docs/_sources/install.txt Wed Mar  9 23:29:51 2011
@@ -0,0 +1,39 @@
+..
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+
+Installation
+============
+
+Requirements
+------------
+These requirements must be met:
+ - Python 2.6.x
+ - CMIS provider compliant with CMIS 1.0
+
+Steps
+-----
+ #. If you don't have `Python <http://www.python.org>`_ installed already, do so.
+ #. If you don't have `setuptools <http://pypi.python.org/pypi/setuptools>`_ installed already, do so.
+ #. Once setuptools is installed, type `easy_install cmislib`
+ #. That's it! 
+
+Once you do that, you should be able to fire up Python on the command-line and import cmislib successfully.
+
+  >>> from cmislib import CmisClient, Repository, Folder
+
+To validate everything is working, run some :ref:`tests` or walk through some :ref:`examples`.

Added: websites/staging/chemistry/trunk/content/python/docs/_sources/sample-data.txt
==============================================================================
--- websites/staging/chemistry/trunk/content/python/docs/_sources/sample-data.txt (added)
+++ websites/staging/chemistry/trunk/content/python/docs/_sources/sample-data.txt Wed Mar  9 23:29:51 2011
@@ -0,0 +1,24 @@
+..
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+
+Sample Data
+===========
+
+The /path/to/cmislib/src/data directory contains some sample XML responses from a CMIS service. These are for sample and development purposes and can safely be ignored if you are an end-user of the library.
+
+In some cases there are two files for the same response. For example, 'types.xml' came from Alfresco while 'types.chemistry.xml' came from the simple Apache Chemistry test server.

Added: websites/staging/chemistry/trunk/content/python/docs/_sources/tests.txt
==============================================================================
--- websites/staging/chemistry/trunk/content/python/docs/_sources/tests.txt (added)
+++ websites/staging/chemistry/trunk/content/python/docs/_sources/tests.txt Wed Mar  9 23:29:51 2011
@@ -0,0 +1,43 @@
+..
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+
+.. _tests:
+
+=====
+Tests
+=====
+
+This code includes unit tests. To run the tests::
+
+   cd /path/to/cmislib/tests
+   Edit settings.py
+   Set REPOSITORY_URL, USERNAME, PASSWORD
+   Optionally, set TEST_ROOT_PATH and other settings to meet your needs
+   python cmislibtest.py
+
+.. note::
+   http://cmis.alfresco.com is a freely-available, hosted CMIS service. If you want to use that for testing, the URL is http://cmis.alfresco.com/s/cmis and the username and password are admin/admin. See the wiki for other known CMIS test servers.
+
+If everything goes well, you should see::
+
+   Ran X tests in 3.607s
+
+   OK
+
+.. note::
+  Depending on the implementation of the CMIS provider, you may see errors or failures instead of 'OK'.

Added: websites/staging/chemistry/trunk/content/python/docs/_static/basic.css
==============================================================================
--- websites/staging/chemistry/trunk/content/python/docs/_static/basic.css (added)
+++ websites/staging/chemistry/trunk/content/python/docs/_static/basic.css Wed Mar  9 23:29:51 2011
@@ -0,0 +1,405 @@
+/**
+ * Sphinx stylesheet -- basic theme
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ */
+
+/* -- main layout ----------------------------------------------------------- */
+
+div.clearer {
+    clear: both;
+}
+
+/* -- relbar ---------------------------------------------------------------- */
+
+div.related {
+    width: 100%;
+    font-size: 90%;
+}
+
+div.related h3 {
+    display: none;
+}
+
+div.related ul {
+    margin: 0;
+    padding: 0 0 0 10px;
+    list-style: none;
+}
+
+div.related li {
+    display: inline;
+}
+
+div.related li.right {
+    float: right;
+    margin-right: 5px;
+}
+
+/* -- sidebar --------------------------------------------------------------- */
+
+div.sphinxsidebarwrapper {
+    padding: 10px 5px 0 10px;
+}
+
+div.sphinxsidebar {
+    float: left;
+    width: 230px;
+    margin-left: -100%;
+    font-size: 90%;
+}
+
+div.sphinxsidebar ul {
+    list-style: none;
+}
+
+div.sphinxsidebar ul ul,
+div.sphinxsidebar ul.want-points {
+    margin-left: 20px;
+    list-style: square;
+}
+
+div.sphinxsidebar ul ul {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+div.sphinxsidebar form {
+    margin-top: 10px;
+}
+
+div.sphinxsidebar input {
+    border: 1px solid #98dbcc;
+    font-family: sans-serif;
+    font-size: 1em;
+}
+
+img {
+    border: 0;
+}
+
+/* -- search page ----------------------------------------------------------- */
+
+ul.search {
+    margin: 10px 0 0 20px;
+    padding: 0;
+}
+
+ul.search li {
+    padding: 5px 0 5px 20px;
+    background-image: url(file.png);
+    background-repeat: no-repeat;
+    background-position: 0 7px;
+}
+
+ul.search li a {
+    font-weight: bold;
+}
+
+ul.search li div.context {
+    color: #888;
+    margin: 2px 0 0 30px;
+    text-align: left;
+}
+
+ul.keywordmatches li.goodmatch a {
+    font-weight: bold;
+}
+
+/* -- index page ------------------------------------------------------------ */
+
+table.contentstable {
+    width: 90%;
+}
+
+table.contentstable p.biglink {
+    line-height: 150%;
+}
+
+a.biglink {
+    font-size: 1.3em;
+}
+
+span.linkdescr {
+    font-style: italic;
+    padding-top: 5px;
+    font-size: 90%;
+}
+
+/* -- general index --------------------------------------------------------- */
+
+table.indextable td {
+    text-align: left;
+    vertical-align: top;
+}
+
+table.indextable dl, table.indextable dd {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+table.indextable tr.pcap {
+    height: 10px;
+}
+
+table.indextable tr.cap {
+    margin-top: 10px;
+    background-color: #f2f2f2;
+}
+
+img.toggler {
+    margin-right: 3px;
+    margin-top: 3px;
+    cursor: pointer;
+}
+
+/* -- general body styles --------------------------------------------------- */
+
+a.headerlink {
+    visibility: hidden;
+}
+
+h1:hover > a.headerlink,
+h2:hover > a.headerlink,
+h3:hover > a.headerlink,
+h4:hover > a.headerlink,
+h5:hover > a.headerlink,
+h6:hover > a.headerlink,
+dt:hover > a.headerlink {
+    visibility: visible;
+}
+
+div.body p.caption {
+    text-align: inherit;
+}
+
+div.body td {
+    text-align: left;
+}
+
+.field-list ul {
+    padding-left: 1em;
+}
+
+.first {
+    margin-top: 0 !important;
+}
+
+p.rubric {
+    margin-top: 30px;
+    font-weight: bold;
+}
+
+/* -- sidebars -------------------------------------------------------------- */
+
+div.sidebar {
+    margin: 0 0 0.5em 1em;
+    border: 1px solid #ddb;
+    padding: 7px 7px 0 7px;
+    background-color: #ffe;
+    width: 40%;
+    float: right;
+}
+
+p.sidebar-title {
+    font-weight: bold;
+}
+
+/* -- topics ---------------------------------------------------------------- */
+
+div.topic {
+    border: 1px solid #ccc;
+    padding: 7px 7px 0 7px;
+    margin: 10px 0 10px 0;
+}
+
+p.topic-title {
+    font-size: 1.1em;
+    font-weight: bold;
+    margin-top: 10px;
+}
+
+/* -- admonitions ----------------------------------------------------------- */
+
+div.admonition {
+    margin-top: 10px;
+    margin-bottom: 10px;
+    padding: 7px;
+}
+
+div.admonition dt {
+    font-weight: bold;
+}
+
+div.admonition dl {
+    margin-bottom: 0;
+}
+
+p.admonition-title {
+    margin: 0px 10px 5px 0px;
+    font-weight: bold;
+}
+
+div.body p.centered {
+    text-align: center;
+    margin-top: 25px;
+}
+
+/* -- tables ---------------------------------------------------------------- */
+
+table.docutils {
+    border: 0;
+    border-collapse: collapse;
+}
+
+table.docutils td, table.docutils th {
+    padding: 1px 8px 1px 0;
+    border-top: 0;
+    border-left: 0;
+    border-right: 0;
+    border-bottom: 1px solid #aaa;
+}
+
+table.field-list td, table.field-list th {
+    border: 0 !important;
+}
+
+table.footnote td, table.footnote th {
+    border: 0 !important;
+}
+
+th {
+    text-align: left;
+    padding-right: 5px;
+}
+
+/* -- other body styles ----------------------------------------------------- */
+
+dl {
+    margin-bottom: 15px;
+}
+
+dd p {
+    margin-top: 0px;
+}
+
+dd ul, dd table {
+    margin-bottom: 10px;
+}
+
+dd {
+    margin-top: 3px;
+    margin-bottom: 10px;
+    margin-left: 30px;
+}
+
+dt:target, .highlight {
+    background-color: #fbe54e;
+}
+
+dl.glossary dt {
+    font-weight: bold;
+    font-size: 1.1em;
+}
+
+.field-list ul {
+    margin: 0;
+    padding-left: 1em;
+}
+
+.field-list p {
+    margin: 0;
+}
+
+.refcount {
+    color: #060;
+}
+
+.optional {
+    font-size: 1.3em;
+}
+
+.versionmodified {
+    font-style: italic;
+}
+
+.system-message {
+    background-color: #fda;
+    padding: 5px;
+    border: 3px solid red;
+}
+
+.footnote:target  {
+    background-color: #ffa
+}
+
+/* -- code displays --------------------------------------------------------- */
+
+pre {
+    overflow: auto;
+}
+
+td.linenos pre {
+    padding: 5px 0px;
+    border: 0;
+    background-color: transparent;
+    color: #aaa;
+}
+
+table.highlighttable {
+    margin-left: 0.5em;
+}
+
+table.highlighttable td {
+    padding: 0 0.5em 0 0.5em;
+}
+
+tt.descname {
+    background-color: transparent;
+    font-weight: bold;
+    font-size: 1.2em;
+}
+
+tt.descclassname {
+    background-color: transparent;
+}
+
+tt.xref, a tt {
+    background-color: transparent;
+    font-weight: bold;
+}
+
+h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
+    background-color: transparent;
+}
+
+/* -- math display ---------------------------------------------------------- */
+
+img.math {
+    vertical-align: middle;
+}
+
+div.body div.math p {
+    text-align: center;
+}
+
+span.eqno {
+    float: right;
+}
+
+/* -- printout stylesheet --------------------------------------------------- */
+
+@media print {
+    div.document,
+    div.documentwrapper,
+    div.bodywrapper {
+        margin: 0;
+        width: 100%;
+    }
+
+    div.sphinxsidebar,
+    div.related,
+    div.footer,
+    #top-link {
+        display: none;
+    }
+}

Added: websites/staging/chemistry/trunk/content/python/docs/_static/default.css
==============================================================================
--- websites/staging/chemistry/trunk/content/python/docs/_static/default.css (added)
+++ websites/staging/chemistry/trunk/content/python/docs/_static/default.css Wed Mar  9 23:29:51 2011
@@ -0,0 +1,210 @@
+/**
+ * Sphinx stylesheet -- default theme
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ */
+
+@import url("basic.css");
+
+/* -- page layout ----------------------------------------------------------- */
+
+body {
+    font-family: sans-serif;
+    font-size: 100%;
+    background-color: #11303d;
+    color: #000;
+    margin: 0;
+    padding: 0;
+}
+
+div.document {
+    background-color: #1c4e63;
+}
+
+div.documentwrapper {
+    float: left;
+    width: 100%;
+}
+
+div.bodywrapper {
+    margin: 0 0 0 230px;
+}
+
+div.body {
+    background-color: #ffffff;
+    color: #000000;
+    padding: 0 20px 30px 20px;
+}
+
+div.footer {
+    color: #ffffff;
+    width: 100%;
+    padding: 9px 0 9px 0;
+    text-align: center;
+    font-size: 75%;
+}
+
+div.footer a {
+    color: #ffffff;
+    text-decoration: underline;
+}
+
+div.related {
+    background-color: #133f52;
+    line-height: 30px;
+    color: #ffffff;
+}
+
+div.related a {
+    color: #ffffff;
+}
+
+div.sphinxsidebar {
+}
+
+div.sphinxsidebar h3 {
+    font-family: 'Trebuchet MS', sans-serif;
+    color: #ffffff;
+    font-size: 1.4em;
+    font-weight: normal;
+    margin: 0;
+    padding: 0;
+}
+
+div.sphinxsidebar h3 a {
+    color: #ffffff;
+}
+
+div.sphinxsidebar h4 {
+    font-family: 'Trebuchet MS', sans-serif;
+    color: #ffffff;
+    font-size: 1.3em;
+    font-weight: normal;
+    margin: 5px 0 0 0;
+    padding: 0;
+}
+
+div.sphinxsidebar p {
+    color: #ffffff;
+}
+
+div.sphinxsidebar p.topless {
+    margin: 5px 10px 10px 10px;
+}
+
+div.sphinxsidebar ul {
+    margin: 10px;
+    padding: 0;
+    color: #ffffff;
+}
+
+div.sphinxsidebar a {
+    color: #98dbcc;
+}
+
+div.sphinxsidebar input {
+    border: 1px solid #98dbcc;
+    font-family: sans-serif;
+    font-size: 1em;
+}
+
+/* -- body styles ----------------------------------------------------------- */
+
+a {
+    color: #355f7c;
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: underline;
+}
+
+div.body p, div.body dd, div.body li {
+    text-align: justify;
+    line-height: 130%;
+}
+
+div.body h1,
+div.body h2,
+div.body h3,
+div.body h4,
+div.body h5,
+div.body h6 {
+    font-family: 'Trebuchet MS', sans-serif;
+    background-color: #f2f2f2;
+    font-weight: normal;
+    color: #20435c;
+    border-bottom: 1px solid #ccc;
+    margin: 20px -20px 10px -20px;
+    padding: 3px 0 3px 10px;
+}
+
+div.body h1 { margin-top: 0; font-size: 200%; }
+div.body h2 { font-size: 160%; }
+div.body h3 { font-size: 140%; }
+div.body h4 { font-size: 120%; }
+div.body h5 { font-size: 110%; }
+div.body h6 { font-size: 100%; }
+
+a.headerlink {
+    color: #c60f0f;
+    font-size: 0.8em;
+    padding: 0 4px 0 4px;
+    text-decoration: none;
+}
+
+a.headerlink:hover {
+    background-color: #c60f0f;
+    color: white;
+}
+
+div.body p, div.body dd, div.body li {
+    text-align: justify;
+    line-height: 130%;
+}
+
+div.admonition p.admonition-title + p {
+    display: inline;
+}
+
+div.note {
+    background-color: #eee;
+    border: 1px solid #ccc;
+}
+
+div.seealso {
+    background-color: #ffc;
+    border: 1px solid #ff6;
+}
+
+div.topic {
+    background-color: #eee;
+}
+
+div.warning {
+    background-color: #ffe4e4;
+    border: 1px solid #f66;
+}
+
+p.admonition-title {
+    display: inline;
+}
+
+p.admonition-title:after {
+    content: ":";
+}
+
+pre {
+    padding: 5px;
+    background-color: #eeffcc;
+    color: #333333;
+    line-height: 120%;
+    border: 1px solid #ac9;
+    border-left: none;
+    border-right: none;
+}
+
+tt {
+    background-color: #ecf0f3;
+    padding: 0 1px 0 1px;
+    font-size: 0.95em;
+}
\ No newline at end of file

Added: websites/staging/chemistry/trunk/content/python/docs/_static/doctools.js
==============================================================================
--- websites/staging/chemistry/trunk/content/python/docs/_static/doctools.js (added)
+++ websites/staging/chemistry/trunk/content/python/docs/_static/doctools.js Wed Mar  9 23:29:51 2011
@@ -0,0 +1,232 @@
+/// XXX: make it cross browser
+
+/**
+ * make the code below compatible with browsers without
+ * an installed firebug like debugger
+ */
+if (!window.console || !console.firebug) {
+  var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
+      "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
+  window.console = {};
+  for (var i = 0; i < names.length; ++i)
+    window.console[names[i]] = function() {}
+}
+
+/**
+ * small helper function to urldecode strings
+ */
+jQuery.urldecode = function(x) {
+  return decodeURIComponent(x).replace(/\+/g, ' ');
+}
+
+/**
+ * small helper function to urlencode strings
+ */
+jQuery.urlencode = encodeURIComponent;
+
+/**
+ * This function returns the parsed url parameters of the
+ * current request. Multiple values per key are supported,
+ * it will always return arrays of strings for the value parts.
+ */
+jQuery.getQueryParameters = function(s) {
+  if (typeof s == 'undefined')
+    s = document.location.search;
+  var parts = s.substr(s.indexOf('?') + 1).split('&');
+  var result = {};
+  for (var i = 0; i < parts.length; i++) {
+    var tmp = parts[i].split('=', 2);
+    var key = jQuery.urldecode(tmp[0]);
+    var value = jQuery.urldecode(tmp[1]);
+    if (key in result)
+      result[key].push(value);
+    else
+      result[key] = [value];
+  }
+  return result;
+}
+
+/**
+ * small function to check if an array contains
+ * a given item.
+ */
+jQuery.contains = function(arr, item) {
+  for (var i = 0; i < arr.length; i++) {
+    if (arr[i] == item)
+      return true;
+  }
+  return false;
+}
+
+/**
+ * highlight a given string on a jquery object by wrapping it in
+ * span elements with the given class name.
+ */
+jQuery.fn.highlightText = function(text, className) {
+  function highlight(node) {
+    if (node.nodeType == 3) {
+      var val = node.nodeValue;
+      var pos = val.toLowerCase().indexOf(text);
+      if (pos >= 0 && !jQuery.className.has(node.parentNode, className)) {
+        var span = document.createElement("span");
+        span.className = className;
+        span.appendChild(document.createTextNode(val.substr(pos, text.length)));
+        node.parentNode.insertBefore(span, node.parentNode.insertBefore(
+          document.createTextNode(val.substr(pos + text.length)),
+          node.nextSibling));
+        node.nodeValue = val.substr(0, pos);
+      }
+    }
+    else if (!jQuery(node).is("button, select, textarea")) {
+      jQuery.each(node.childNodes, function() {
+        highlight(this)
+      });
+    }
+  }
+  return this.each(function() {
+    highlight(this);
+  });
+}
+
+/**
+ * Small JavaScript module for the documentation.
+ */
+var Documentation = {
+
+  init : function() {
+    this.fixFirefoxAnchorBug();
+    this.highlightSearchWords();
+    this.initModIndex();
+  },
+
+  /**
+   * i18n support
+   */
+  TRANSLATIONS : {},
+  PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; },
+  LOCALE : 'unknown',
+
+  // gettext and ngettext don't access this so that the functions
+  // can savely bound to a different name (_ = Documentation.gettext)
+  gettext : function(string) {
+    var translated = Documentation.TRANSLATIONS[string];
+    if (typeof translated == 'undefined')
+      return string;
+    return (typeof translated == 'string') ? translated : translated[0];
+  },
+
+  ngettext : function(singular, plural, n) {
+    var translated = Documentation.TRANSLATIONS[singular];
+    if (typeof translated == 'undefined')
+      return (n == 1) ? singular : plural;
+    return translated[Documentation.PLURALEXPR(n)];
+  },
+
+  addTranslations : function(catalog) {
+    for (var key in catalog.messages)
+      this.TRANSLATIONS[key] = catalog.messages[key];
+    this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
+    this.LOCALE = catalog.locale;
+  },
+
+  /**
+   * add context elements like header anchor links
+   */
+  addContextElements : function() {
+    $('div[id] > :header:first').each(function() {
+      $('<a class="headerlink">\u00B6</a>').
+      attr('href', '#' + this.id).
+      attr('title', _('Permalink to this headline')).
+      appendTo(this);
+    });
+    $('dt[id]').each(function() {
+      $('<a class="headerlink">\u00B6</a>').
+      attr('href', '#' + this.id).
+      attr('title', _('Permalink to this definition')).
+      appendTo(this);
+    });
+  },
+
+  /**
+   * workaround a firefox stupidity
+   */
+  fixFirefoxAnchorBug : function() {
+    if (document.location.hash && $.browser.mozilla)
+      window.setTimeout(function() {
+        document.location.href += '';
+      }, 10);
+  },
+
+  /**
+   * highlight the search words provided in the url in the text
+   */
+  highlightSearchWords : function() {
+    var params = $.getQueryParameters();
+    var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
+    if (terms.length) {
+      var body = $('div.body');
+      window.setTimeout(function() {
+        $.each(terms, function() {
+          body.highlightText(this.toLowerCase(), 'highlight');
+        });
+      }, 10);
+      $('<li class="highlight-link"><a href="javascript:Documentation.' +
+        'hideSearchWords()">' + _('Hide Search Matches') + '</a></li>')
+          .appendTo($('.sidebar .this-page-menu'));
+    }
+  },
+
+  /**
+   * init the modindex toggle buttons
+   */
+  initModIndex : function() {
+    var togglers = $('img.toggler').click(function() {
+      var src = $(this).attr('src');
+      var idnum = $(this).attr('id').substr(7);
+      console.log($('tr.cg-' + idnum).toggle());
+      if (src.substr(-9) == 'minus.png')
+        $(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
+      else
+        $(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
+    }).css('display', '');
+    if (DOCUMENTATION_OPTIONS.COLLAPSE_MODINDEX) {
+        togglers.click();
+    }
+  },
+
+  /**
+   * helper function to hide the search marks again
+   */
+  hideSearchWords : function() {
+    $('.sidebar .this-page-menu li.highlight-link').fadeOut(300);
+    $('span.highlight').removeClass('highlight');
+  },
+
+  /**
+   * make the url absolute
+   */
+  makeURL : function(relativeURL) {
+    return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
+  },
+
+  /**
+   * get the current relative url
+   */
+  getCurrentURL : function() {
+    var path = document.location.pathname;
+    var parts = path.split(/\//);
+    $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
+      if (this == '..')
+        parts.pop();
+    });
+    var url = parts.join('/');
+    return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
+  }
+};
+
+// quick alias for translations
+_ = Documentation.gettext;
+
+$(document).ready(function() {
+  Documentation.init();
+});

Added: websites/staging/chemistry/trunk/content/python/docs/_static/file.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/chemistry/trunk/content/python/docs/_static/file.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream