2691: Create api documentation with sphinx

svn: r12704
This commit is contained in:
Benny Malengier
2009-06-24 21:56:07 +00:00
parent 1042bb3fe2
commit a52bc62be9
68 changed files with 2203 additions and 1161 deletions

88
docs/Makefile Normal file
View File

@@ -0,0 +1,88 @@
# Makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d _build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
.PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
clean:
-rm -rf _build/*
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) _build/html
@echo
@echo "Build finished. The HTML pages are in _build/html."
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) _build/dirhtml
@echo
@echo "Build finished. The HTML pages are in _build/dirhtml."
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) _build/pickle
@echo
@echo "Build finished; now you can process the pickle files."
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) _build/json
@echo
@echo "Build finished; now you can process the JSON files."
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) _build/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in _build/htmlhelp."
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) _build/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in _build/qthelp, like this:"
@echo "# qcollectiongenerator _build/qthelp/Gramps.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile _build/qthelp/Gramps.qhc"
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) _build/latex
@echo
@echo "Build finished; the LaTeX files are in _build/latex."
@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
"run these through (pdf)latex."
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) _build/changes
@echo
@echo "The overview file is in _build/changes."
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) _build/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in _build/linkcheck/output.txt."
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) _build/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in _build/doctest/output.txt."

72
docs/README.txt Normal file
View File

@@ -0,0 +1,72 @@
Installation and building the docs
==================================
You need to install sphinx. Assuming you have installed the python setuptools, just do:
sudo easy_install sphinx
Once installed, go to the docs directory, and do:
make html
Which will produce the html output in docs/_build/html
Documention Guidelines
=======================
Doc strings in python files should be written in reStructured text: http://docutils.sourceforge.net/docs/user/rst/quickref.html
The typical docstring for GRAMPS should look like this:
"""Brief synopsis
This is a longer explanation, which may include *italics* or **bold**, or
a link to another method :meth:`~gen.lib.person.Person.get_handle`
Then, you need to provide optional subsection in this order (just to be
consistent and have a uniform documentation, nothing prevent you to switch
the order).
:param arg1: the first value
:type arg1: int or float or :class:`~gen.lib.baseobj.BaseObject`
:param arg2: the second value
:type arg2: int or float
:param arg3: the third value
:returns: arg1/arg2 +arg3
:rtype: float, this is the return type
:Examples:
>>> import template
>>> a = MainClass()
>>> a.function2(1,1,1)
2
:note:
can be useful to emphasize
important feature
:See Also:
:class:`MainClass1`
:Warnings:
arg2 must be non-zero.
:Todo:
check that arg2 is non zero.
"""
For a class, use :cvar variable: for class variaable, :ivar variable: for instance class
variable, .. attribute:: attribute: for attributes, ....
See http://sphinx.pocoo.org/markup/desc.html and http://sphinx.pocoo.org/markup/inline.html
Tips and Tricks
===============
Change in many files something:
perl -pi -w -e "s/L{PersonRef}/:class:\`\~gen.lib.personref.PersonRef\`/g;" *.py
here L{PersonRef} is changed in :class:`~gen.lib.personref.PersonRef
`

42
docs/api.rst Normal file
View File

@@ -0,0 +1,42 @@
##################
Code Documentation
##################
*GRAMPS* provides several general API. The most important is the *gen* module, providing access to all code that can be of interest outside of the GRAMPS program.
The :mod:`gen` Module
=======================
.. automodule:: gen
Contents:
.. toctree::
:maxdepth: 2
gen/gen_lib
gen/gen_db
gen/gen_proxy
gen/gen_utils
The GRAMPS Application
========================
Contents:
.. toctree::
:maxdepth: 2
corecli/cli
coregui/gui
utils
Usefull snippets
===================
Contents:
.. toctree::
:maxdepth: 2
html

202
docs/conf.py Normal file
View File

@@ -0,0 +1,202 @@
# -*- coding: utf-8 -*-
#
# Gramps documentation build configuration file, created by
# sphinx-quickstart on Sat Jun 20 00:07:37 2009.
#
# This file is execfile()d with the current directory set to its containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
import sys, os
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path 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('.'))
#documentation in root/docs, allow import from root/src where GRAMPS modules life
sourcedir = (os.path.abspath('.')).split(os.sep)[:-1] + ['src']
sys.path.append((os.sep).join(sourcedir))
#make it possible to add plugins --> walk the plugin dir and add to sys.path.append
for (dirpath, dirnames, filenames) in os.walk((os.sep).join(sourcedir + ['plugins'])):
# add the directory to the python search path
sys.path.append(dirpath)
# -- 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 = ['sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx.ext.coverage']
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix of source filenames.
source_suffix = '.rst'
# The encoding of source files.
#source_encoding = 'utf-8'
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = u'Gramps'
copyright = u'2009, The Gramps Project'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = '3.2'
# The full version, including alpha/beta/rc tags.
release = '3.2.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#language = None
# 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 directory, that shouldn't be searched
# for source files.
exclude_trees = ['_build']
# The reST default role (used for this markup: `text`) to use for all documents.
#default_role = None
# 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'
# A list of ignored prefixes for module index sorting.
#modindex_common_prefix = []
# -- Options for HTML output ---------------------------------------------------
# The theme to use for HTML and HTML Help pages. Major themes that come with
# Sphinx are currently 'default' and 'sphinxdoc'.
html_theme = 'default'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#html_theme_options = {}
# Add any paths that contain custom themes here, relative to this directory.
#html_theme_path = []
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
#html_title = None
# A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
#html_logo = None
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
#html_favicon = 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 false, no index is generated.
#html_use_index = True
# If true, the index is split into individual pages for each letter.
#html_split_index = False
# If true, links to the reST sources are added to the pages.
#html_show_sourcelink = 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 = 'Grampsdoc'
# -- 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, documentclass [howto/manual]).
latex_documents = [
('index', 'Gramps.tex', u'Gramps Documentation',
u'The Gramps Project', '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

4
docs/corecli/cli.rst Normal file
View File

@@ -0,0 +1,4 @@
The :mod:`cli` Module
=====================
Todo

4
docs/coregui/gui.rst Normal file
View File

@@ -0,0 +1,4 @@
The :mod:`gui` Module
=====================
Todo

4
docs/developer_guide.rst Normal file
View File

@@ -0,0 +1,4 @@
Developer Guide
===============
Please consult the API documentation, and the development part of `our wiki <http://gramps-project.org>`_\ .

9
docs/gen/gen_db.rst Normal file
View File

@@ -0,0 +1,9 @@
##########################
The :mod:`gen.db` Module
##########################
Contents:
.. automodule:: gen.db
**TODO**

483
docs/gen/gen_lib.rst Normal file
View File

@@ -0,0 +1,483 @@
##########################
The :mod:`gen.lib` Module
##########################
Contents:
.. automodule:: gen.lib
*****************************
Base objects
*****************************
BaseObject
====================================
.. automodule:: gen.lib.baseobj
.. autoclass:: gen.lib.baseobj.BaseObject
:members:
:undoc-members:
:show-inheritance:
RefBase
====================================
.. automodule:: gen.lib.refbase
.. autoclass:: RefBase
:members:
:undoc-members:
:show-inheritance:
PrivacyBase
====================================
.. automodule:: gen.lib.privacybase
.. autoclass:: PrivacyBase
:members:
:undoc-members:
:show-inheritance:
SourceBase
====================================
.. automodule:: gen.lib.srcbase
.. autoclass:: SourceBase
:members:
:undoc-members:
:show-inheritance:
NoteBase
====================================
.. automodule:: gen.lib.notebase
.. autoclass:: NoteBase
:members:
:undoc-members:
:show-inheritance:
MediaBase
====================================
.. automodule:: gen.lib.mediabase
.. autoclass:: MediaBase
:members:
:undoc-members:
:show-inheritance:
PlaceBase
====================================
.. automodule:: gen.lib.placebase
.. autoclass:: PlaceBase
:members:
:undoc-members:
:show-inheritance:
LocationBase
====================================
.. automodule:: gen.lib.locationbase
.. autoclass:: LocationBase
:members:
:undoc-members:
:show-inheritance:
AddressBase
====================================
.. automodule:: gen.lib.addressbase
.. autoclass:: AddressBase
:members:
:undoc-members:
:show-inheritance:
AttributeBase
====================================
.. automodule:: gen.lib.attrbase
.. autoclass:: AttributeBase
:members:
:undoc-members:
:show-inheritance:
DateBase
====================================
.. automodule:: gen.lib.datebase
.. autoclass:: DateBase
:members:
:undoc-members:
:show-inheritance:
UrlBase
====================================
.. automodule:: gen.lib.urlbase
.. autoclass:: UrlBase
:members:
:undoc-members:
:show-inheritance:
*****************************
Primary objects
*****************************
BasicPrimaryObject
====================================
.. automodule:: gen.lib.primaryobj
.. autoclass:: BasicPrimaryObject
:members:
:undoc-members:
:show-inheritance:
PrimaryObject
====================================
.. autoclass:: PrimaryObject
:members:
:undoc-members:
:show-inheritance:
Person
====================================
.. automodule:: gen.lib.person
.. autoclass:: Person
:members:
:undoc-members:
:show-inheritance:
Family
====================================
.. automodule:: gen.lib.family
.. autoclass:: Family
:members:
:undoc-members:
:show-inheritance:
Event
====================================
.. automodule:: gen.lib.event
.. autoclass:: Event
:members:
:undoc-members:
:show-inheritance:
Place
====================================
.. automodule:: gen.lib.place
.. autoclass:: Place
:members:
:undoc-members:
:show-inheritance:
Source
====================================
.. automodule:: gen.lib.src
.. autoclass:: Source
:members:
:undoc-members:
:show-inheritance:
Media Object
====================================
.. automodule:: gen.lib.mediaobj
.. autoclass:: MediaObject
:members:
:undoc-members:
:show-inheritance:
Repository
====================================
.. automodule:: gen.lib.repo
.. autoclass:: Repository
:members:
:undoc-members:
:show-inheritance:
Note
====================================
.. automodule:: gen.lib.note
.. autoclass:: Note
:members:
:undoc-members:
:show-inheritance:
*****************************
Secondary objects
*****************************
Secondary Object
====================================
.. automodule:: gen.lib.secondaryobj
.. autoclass:: SecondaryObject
:members:
:undoc-members:
:show-inheritance:
Address
====================================
.. automodule:: gen.lib.address
.. autoclass:: Address
:members:
:undoc-members:
:show-inheritance:
Location
====================================
.. automodule:: gen.lib.location
.. autoclass:: Location
:members:
:undoc-members:
:show-inheritance:
Attribute
====================================
.. automodule:: gen.lib.attribute
.. autoclass:: Attribute
:members:
:undoc-members:
:show-inheritance:
LdsOrd
====================================
.. automodule:: gen.lib.ldsord
.. autoclass:: LdsOrd
:members:
:undoc-members:
:show-inheritance:
Name
====================================
.. automodule:: gen.lib.name
.. autoclass:: Name
:members:
:undoc-members:
:show-inheritance:
Url
====================================
.. automodule:: gen.lib.url
.. autoclass:: Url
:members:
:undoc-members:
:show-inheritance:
*****************************
Reference objects
*****************************
PersonRef
====================================
.. automodule:: gen.lib.personref
.. autoclass:: PersonRef
:members:
:undoc-members:
:show-inheritance:
ChildRef
====================================
.. automodule:: gen.lib.childref
.. autoclass:: ChildRef
:members:
:undoc-members:
:show-inheritance:
EventRef
====================================
.. automodule:: gen.lib.eventref
.. autoclass:: EventRef
:members:
:undoc-members:
:show-inheritance:
MediaRef
====================================
.. automodule:: gen.lib.mediaref
.. autoclass:: MediaRef
:members:
:undoc-members:
:show-inheritance:
SourceRef
====================================
.. automodule:: gen.lib.srcref
.. autoclass:: SourceRef
:members:
:undoc-members:
:show-inheritance:
RepoRef
====================================
.. automodule:: gen.lib.reporef
.. autoclass:: RepoRef
:members:
:undoc-members:
:show-inheritance:
*****************************
Date objects
*****************************
.. automodule:: gen.lib.date
Date
====================================
.. autoclass:: Date
:members:
:undoc-members:
:show-inheritance:
Span
====================================
.. autoclass:: Span
:members:
:undoc-members:
:show-inheritance:
DateError
====================================
.. autoexception:: DateError
*****************************
Text objects
*****************************
StyledTextTag
===================
.. automodule:: gen.lib.styledtexttag
.. autoclass:: StyledTextTag
:members:
:undoc-members:
:show-inheritance:
StyledText
===========
.. automodule:: gen.lib.styledtext
.. autoclass:: StyledText
:members:
:undoc-members:
:show-inheritance:
*****************************
Meta data
*****************************
GenderStats
============
.. automodule:: gen.lib.genderstats
.. autoclass:: GenderStats
:members:
:undoc-members:
:show-inheritance:
Researcher
===========
.. automodule:: gen.lib.researcher
.. autoclass:: Researcher
:members:
:undoc-members:
:show-inheritance:
*****************************
Type classes
*****************************
.. automodule:: gen.lib.grampstype
.. autoclass:: GrampsTypeMeta
:members:
:undoc-members:
:show-inheritance:
GrampsType
===========
.. autoclass:: GrampsType
:members:
:undoc-members:
:show-inheritance:
NameType
===========
.. automodule:: gen.lib.nametype
:members:
:undoc-members:
:show-inheritance:
AttributeType
=============
.. automodule:: gen.lib.attrtype
:members:
:undoc-members:
:show-inheritance:
UrlType
========
.. automodule:: gen.lib.urltype
:members:
:undoc-members:
:show-inheritance:
ChildRefType
=============
.. automodule:: gen.lib.childreftype
:members:
:undoc-members:
:show-inheritance:
RepositoryType
==============
.. automodule:: gen.lib.repotype
:members:
:undoc-members:
:show-inheritance:
EventType
===========
.. automodule:: gen.lib.eventtype
.. autoclass:: EventType
:members:
:undoc-members:
:show-inheritance:
FamilyRelType
=============
.. automodule:: gen.lib.familyreltype
:members:
:undoc-members:
:show-inheritance:
SourceMediaType
================
.. automodule:: gen.lib.srcmediatype
:members:
:undoc-members:
:show-inheritance:
EventRoleType
==============
.. automodule:: gen.lib.eventroletype
:members:
:undoc-members:
:show-inheritance:
MarkerType
==========
.. automodule:: gen.lib.markertype
:members:
:undoc-members:
:show-inheritance:
NoteType
=========
.. automodule:: gen.lib.notetype
:members:
:undoc-members:
:show-inheritance:
StyledTextTagType
==================
.. automodule:: gen.lib.styledtexttagtype
:members:
:undoc-members:
:show-inheritance:

9
docs/gen/gen_proxy.rst Normal file
View File

@@ -0,0 +1,9 @@
############################
The :mod:`gen.proxy` Module
############################
Contents:
.. automodule:: gen.proxy
**TODO**

9
docs/gen/gen_utils.rst Normal file
View File

@@ -0,0 +1,9 @@
############################
The :mod:`gen.utils` Module
############################
Contents:
.. automodule:: gen.utils
**TODO**

11
docs/html.rst Normal file
View File

@@ -0,0 +1,11 @@
##########################
The :class:`Html` Class
##########################
Contents:
.. automodule:: libhtml
.. autoclass:: Html
:members:
:undoc-members:
:show-inheritance:

24
docs/index.rst Normal file
View File

@@ -0,0 +1,24 @@
.. Gramps documentation master file, created by
sphinx-quickstart on Sat Jun 20 00:07:37 2009.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to Gramps's documentation!
==================================
Contents:
.. toctree::
:maxdepth: 2
user_guide
developer_guide
api
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

4
docs/user_guide.rst Normal file
View File

@@ -0,0 +1,4 @@
User Guide
==========
Please consult the manual which you find on `our wiki <http://www.gramps-project.org/wiki/index.php?title=User_manual>`_\ .

12
docs/utils.rst Normal file
View File

@@ -0,0 +1,12 @@
############################
The :mod:`Utils` Module
############################
Contents:
.. automodule:: Utils
:members:
:undoc-members:
:show-inheritance: