Skip to content

Commit 5337d89

Browse files
Initial addition of docs.
1 parent d1bc5e0 commit 5337d89

File tree

9 files changed

+542
-0
lines changed

9 files changed

+542
-0
lines changed

docs/Makefile

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Minimal makefile for Sphinx documentation
2+
#
3+
4+
# You can set these variables from the command line.
5+
SPHINXOPTS = -W
6+
SPHINXBUILD = sphinx-build
7+
SOURCEDIR = .
8+
BUILDDIR = _build
9+
10+
DOXYGEN_XML=doxygen/xml
11+
12+
all: ${DOXYGEN_XML}
13+
@$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14+
15+
${DOXYGEN_XML}: ../c/kastore.h
16+
cd doxygen && doxygen
17+
18+
# Put it first so that "make" without argument is like "make help".
19+
help:
20+
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
21+
22+
# .PHONY: help Makefile
23+
24+
# # Catch-all target: route all unknown targets to Sphinx using the new
25+
# # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
26+
# %: Makefile
27+
# @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

docs/c-api.rst

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
.. _sec_c_api:
2+
3+
===================
4+
C API Documentation
5+
===================
6+
7+
This is the C API documentation for kastore.
8+
9+
.. todo:: Give a short example program.
10+
11+
12+
******************
13+
General principles
14+
******************
15+
16+
--------------
17+
Error handling
18+
--------------
19+
20+
Functions return 0 to indicate success or an
21+
:ref:`error code <sec_c_api_error_codes>` to indicate a failure condition.
22+
Thus, the return value of all functions must be checked to ensure safety.
23+
24+
-------------
25+
Array lengths
26+
-------------
27+
28+
The length of arrays is specified in terms of the number of elements not bytes.
29+
30+
*********
31+
Top level
32+
*********
33+
34+
.. doxygenstruct:: kastore_t
35+
36+
.. doxygenfunction:: kastore_open
37+
.. doxygenfunction:: kastore_close
38+
39+
.. doxygenfunction:: kas_strerror
40+
41+
.. _sec_c_api_get:
42+
43+
*************
44+
Get functions
45+
*************
46+
47+
Get functions provide the interface for querying a store. The most general interface
48+
is :c:func:`kastore_get`, but it is usually more convenient to use one of the
49+
:ref:`typed get functions <sec_c_api_typed_get>`.
50+
51+
.. doxygenfunction:: kastore_get
52+
.. doxygenfunction:: kastore_gets
53+
54+
.. _sec_c_api_typed_get:
55+
56+
----------
57+
Typed gets
58+
----------
59+
60+
The functions listed here provide a convenient short-cut for accessing arrays
61+
where the key is a standard NULL terminated C string and the type of the
62+
array is known in advance.
63+
64+
.. doxygengroup:: TYPED_GETS_GROUP
65+
:content-only:
66+
67+
.. _sec_c_api_put:
68+
69+
*************
70+
Put functions
71+
*************
72+
73+
Put functions provide the interface for inserting data into store. The most
74+
general interface is :c:func:`kastore_put` which allows keys to be arbitrary
75+
bytes, but it is usually more convenient to use one of the :ref:`typed put
76+
functions <sec_c_api_typed_put>`.
77+
78+
.. doxygenfunction:: kastore_put
79+
.. doxygenfunction:: kastore_puts
80+
81+
.. _sec_c_api_typed_put:
82+
83+
----------
84+
Typed puts
85+
----------
86+
87+
The functions listed here provide a convenient short-cut for inserting
88+
key-array pairs where the key is a standard NULL terminated C string and the
89+
type of the array is known in advance.
90+
91+
.. doxygengroup:: TYPED_PUTS_GROUP
92+
:content-only:
93+
94+
95+
*********
96+
Constants
97+
*********
98+
99+
.. _sec_c_api_error_codes:
100+
101+
------
102+
Errors
103+
------
104+
105+
.. doxygengroup:: ERROR_GROUP
106+
:content-only:
107+
108+
-----
109+
Types
110+
-----
111+
112+
.. doxygengroup:: TYPE_GROUP
113+
:content-only:
114+
115+
-------------------
116+
Version information
117+
-------------------
118+
119+
.. doxygengroup:: API_VERSION_GROUP
120+
:content-only:
121+
122+
.. doxygengroup:: FILE_VERSION_GROUP
123+
:content-only:
124+
125+
***********************
126+
Miscellaneous functions
127+
***********************
128+
129+
.. doxygenstruct:: kas_version_t
130+
:members:
131+
132+
.. doxygenfunction:: kas_version
133+
134+
.. doxygenfunction:: kas_dynamic_api_init
135+

docs/changelogs.rst

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
.. _sec_changelogs:
2+
3+
==========
4+
Changelogs
5+
==========
6+
7+
******
8+
Python
9+
******
10+
11+
.. include:: ../python/CHANGELOG.rst
12+
13+
*****
14+
C API
15+
*****
16+
17+
.. include:: ../c/CHANGELOG.rst

docs/conf.py

Lines changed: 205 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,205 @@
1+
# -*- coding: utf-8 -*-
2+
#
3+
# Configuration file for the Sphinx documentation builder.
4+
#
5+
# This file does only contain a selection of the most common options. For a
6+
# full list see the documentation:
7+
# http://www.sphinx-doc.org/en/master/config
8+
9+
# -- Path setup --------------------------------------------------------------
10+
11+
# If extensions (or modules to document with autodoc) are in another directory,
12+
# add these directories to sys.path here. If the directory is relative to the
13+
# documentation root, use os.path.abspath to make it absolute, like shown here.
14+
#
15+
import subprocess
16+
import os
17+
import sys
18+
sys.path.insert(0, os.path.abspath('../python'))
19+
20+
read_the_docs_build = os.environ.get('READTHEDOCS', None) == 'True'
21+
if read_the_docs_build:
22+
subprocess.call('cd doxygen; doxygen', shell=True)
23+
24+
25+
# -- Project information -----------------------------------------------------
26+
27+
project = 'kastore'
28+
copyright = '2018, Tskit developers'
29+
author = 'Tskit developers'
30+
31+
# The short X.Y version
32+
version = ''
33+
# The full version, including alpha/beta/rc tags
34+
release = ''
35+
36+
37+
# -- General configuration ---------------------------------------------------
38+
39+
# If your documentation needs a minimal Sphinx version, state it here.
40+
#
41+
# needs_sphinx = '1.0'
42+
43+
# Add any Sphinx extension module names here, as strings. They can be
44+
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
45+
# ones.
46+
extensions = [
47+
'sphinx.ext.autodoc',
48+
'sphinx.ext.intersphinx',
49+
'sphinx.ext.todo',
50+
'breathe',
51+
]
52+
53+
# Add any paths that contain templates here, relative to this directory.
54+
templates_path = ['_templates']
55+
56+
# The suffix(es) of source filenames.
57+
# You can specify multiple suffix as a list of string:
58+
#
59+
# source_suffix = ['.rst', '.md']
60+
source_suffix = '.rst'
61+
62+
# The master toctree document.
63+
master_doc = 'index'
64+
65+
# The language for content autogenerated by Sphinx. Refer to documentation
66+
# for a list of supported languages.
67+
#
68+
# This is also used if you do content translation via gettext catalogs.
69+
# Usually you set "language" from the command line for these cases.
70+
language = None
71+
72+
# List of patterns, relative to source directory, that match files and
73+
# directories to ignore when looking for source files.
74+
# This pattern also affects html_static_path and html_extra_path.
75+
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
76+
77+
# The name of the Pygments (syntax highlighting) style to use.
78+
pygments_style = None
79+
80+
81+
# -- Options for HTML output -------------------------------------------------
82+
83+
# The theme to use for HTML and HTML Help pages. See the documentation for
84+
# a list of builtin themes.
85+
#
86+
html_theme = 'sphinx_rtd_theme'
87+
88+
# Theme options are theme-specific and customize the look and feel of a theme
89+
# further. For a list of options available for each theme, see the
90+
# documentation.
91+
#
92+
# html_theme_options = {}
93+
94+
# Add any paths that contain custom static files (such as style sheets) here,
95+
# relative to this directory. They are copied after the builtin static files,
96+
# so a file named "default.css" will overwrite the builtin "default.css".
97+
html_static_path = ['_static']
98+
99+
# Custom sidebar templates, must be a dictionary that maps document names
100+
# to template names.
101+
#
102+
# The default sidebars (for documents that don't match any pattern) are
103+
# defined by theme itself. Builtin themes are using these templates by
104+
# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
105+
# 'searchbox.html']``.
106+
#
107+
# html_sidebars = {}
108+
109+
110+
# -- Options for HTMLHelp output ---------------------------------------------
111+
112+
# Output file base name for HTML help builder.
113+
htmlhelp_basename = 'kastoredoc'
114+
115+
116+
# -- Options for LaTeX output ------------------------------------------------
117+
118+
latex_elements = {
119+
# The paper size ('letterpaper' or 'a4paper').
120+
#
121+
# 'papersize': 'letterpaper',
122+
123+
# The font size ('10pt', '11pt' or '12pt').
124+
#
125+
# 'pointsize': '10pt',
126+
127+
# Additional stuff for the LaTeX preamble.
128+
#
129+
# 'preamble': '',
130+
131+
# Latex figure (float) alignment
132+
#
133+
# 'figure_align': 'htbp',
134+
}
135+
136+
# Grouping the document tree into LaTeX files. List of tuples
137+
# (source start file, target name, title,
138+
# author, documentclass [howto, manual, or own class]).
139+
latex_documents = [
140+
(master_doc, 'kastore.tex', 'kastore Documentation',
141+
'Tskit developers', 'manual'),
142+
]
143+
144+
145+
# -- Options for manual page output ------------------------------------------
146+
147+
# One entry per manual page. List of tuples
148+
# (source start file, name, description, authors, manual section).
149+
man_pages = [
150+
(master_doc, 'kastore', 'kastore Documentation',
151+
[author], 1)
152+
]
153+
154+
155+
# -- Options for Texinfo output ----------------------------------------------
156+
157+
# Grouping the document tree into Texinfo files. List of tuples
158+
# (source start file, target name, title, author,
159+
# dir menu entry, description, category)
160+
texinfo_documents = [
161+
(master_doc, 'kastore', 'kastore Documentation',
162+
author, 'kastore', 'One line description of project.',
163+
'Miscellaneous'),
164+
]
165+
166+
167+
# -- Options for Epub output -------------------------------------------------
168+
169+
# Bibliographic Dublin Core info.
170+
epub_title = project
171+
172+
# The unique identifier of the text. This can be a ISBN number
173+
# or the project homepage.
174+
#
175+
# epub_identifier = ''
176+
177+
# A unique identification for the text.
178+
#
179+
# epub_uid = ''
180+
181+
# A list of files that should not be packed into the epub file.
182+
epub_exclude_files = ['search.html']
183+
184+
185+
# -- Extension configuration -------------------------------------------------
186+
187+
# -- Options for intersphinx extension ---------------------------------------
188+
189+
# Example configuration for intersphinx: refer to the Python standard library.
190+
intersphinx_mapping = {'https://docs.python.org/': None}
191+
192+
# -- Options for todo extension ----------------------------------------------
193+
194+
# If true, `todo` and `todoList` produce output, else they produce nothing.
195+
todo_include_todos = True
196+
197+
# Breath extension lets us include doxygen C documentation.
198+
breathe_projects = {"kastore": "doxygen/xml" }
199+
breathe_default_project = "kastore"
200+
breathe_domain_by_extension = {"h": "c"}
201+
breathe_show_define_initializer = True
202+
203+
# TODO add an RST epilogue defining the version numbers of the Python
204+
# and C APIs. Should be simple to do the Python version. Getting C
205+
# will probably mean parsing the doxygen XML.

0 commit comments

Comments
 (0)