merge
This commit is contained in:
commit
963aefe9da
@ -11,8 +11,7 @@ def connect(url):
|
|||||||
""" Opens a new connection to a database. *url* can be any valid `SQLAlchemy engine URL`_. Returns
|
""" Opens a new connection to a database. *url* can be any valid `SQLAlchemy engine URL`_. Returns
|
||||||
an instance of :py:class:`dataset.Database.
|
an instance of :py:class:`dataset.Database.
|
||||||
|
|
||||||
.. code-block:: python
|
::
|
||||||
|
|
||||||
db = dataset.connect('sqlite:///factbook.db')
|
db = dataset.connect('sqlite:///factbook.db')
|
||||||
|
|
||||||
.. _SQLAlchemy Engine URL: http://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine
|
.. _SQLAlchemy Engine URL: http://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine
|
||||||
|
|||||||
@ -33,7 +33,7 @@ class Database(object):
|
|||||||
@property
|
@property
|
||||||
def tables(self):
|
def tables(self):
|
||||||
""" Get a listing of all tables that exist in the database. """
|
""" Get a listing of all tables that exist in the database. """
|
||||||
return set(self.metadata.tables.keys() + seld.tables.keys())
|
return set(self.metadata.tables.keys() + self._tables.keys())
|
||||||
|
|
||||||
def create_table(self, table_name):
|
def create_table(self, table_name):
|
||||||
""" Creates a new table. The new table will automatically have
|
""" Creates a new table. The new table will automatically have
|
||||||
@ -94,4 +94,3 @@ class Database(object):
|
|||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return '<Database(%s)>' % self.url
|
return '<Database(%s)>' % self.url
|
||||||
|
|
||||||
|
|||||||
45
docs/_themes/LICENSE
vendored
Executable file
45
docs/_themes/LICENSE
vendored
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
Modifications:
|
||||||
|
|
||||||
|
Copyright (c) 2011 Kenneth Reitz.
|
||||||
|
|
||||||
|
|
||||||
|
Original Project:
|
||||||
|
|
||||||
|
Copyright (c) 2010 by Armin Ronacher.
|
||||||
|
|
||||||
|
|
||||||
|
Some rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms of the theme, with or
|
||||||
|
without modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
* Redistributions in binary form must reproduce the above
|
||||||
|
copyright notice, this list of conditions and the following
|
||||||
|
disclaimer in the documentation and/or other materials provided
|
||||||
|
with the distribution.
|
||||||
|
|
||||||
|
* The names of the contributors may not be used to endorse or
|
||||||
|
promote products derived from this software without specific
|
||||||
|
prior written permission.
|
||||||
|
|
||||||
|
We kindly ask you to only use these themes in an unmodified manner just
|
||||||
|
for Flask and Flask-related products, not for unrelated projects. If you
|
||||||
|
like the visual style and want to use it for your own projects, please
|
||||||
|
consider making some larger changes to the themes (such as changing
|
||||||
|
font faces, sizes, colors or margins).
|
||||||
|
|
||||||
|
THIS THEME IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS THEME, EVEN IF ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGE.
|
||||||
25
docs/_themes/README.rst
vendored
Executable file
25
docs/_themes/README.rst
vendored
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
krTheme Sphinx Style
|
||||||
|
====================
|
||||||
|
|
||||||
|
This repository contains sphinx styles Kenneth Reitz uses in most of
|
||||||
|
his projects. It is a derivative of Mitsuhiko's themes for Flask and Flask related
|
||||||
|
projects. To use this style in your Sphinx documentation, follow
|
||||||
|
this guide:
|
||||||
|
|
||||||
|
1. put this folder as _themes into your docs folder. Alternatively
|
||||||
|
you can also use git submodules to check out the contents there.
|
||||||
|
|
||||||
|
2. add this to your conf.py: ::
|
||||||
|
|
||||||
|
sys.path.append(os.path.abspath('_themes'))
|
||||||
|
html_theme_path = ['_themes']
|
||||||
|
html_theme = 'flask'
|
||||||
|
|
||||||
|
The following themes exist:
|
||||||
|
|
||||||
|
**kr**
|
||||||
|
the standard flask documentation theme for large projects
|
||||||
|
|
||||||
|
**kr_small**
|
||||||
|
small one-page theme. Intended to be used by very small addon libraries.
|
||||||
|
|
||||||
86
docs/_themes/flask_theme_support.py
vendored
Executable file
86
docs/_themes/flask_theme_support.py
vendored
Executable file
@ -0,0 +1,86 @@
|
|||||||
|
# flasky extensions. flasky pygments style based on tango style
|
||||||
|
from pygments.style import Style
|
||||||
|
from pygments.token import Keyword, Name, Comment, String, Error, \
|
||||||
|
Number, Operator, Generic, Whitespace, Punctuation, Other, Literal
|
||||||
|
|
||||||
|
|
||||||
|
class FlaskyStyle(Style):
|
||||||
|
background_color = "#f8f8f8"
|
||||||
|
default_style = ""
|
||||||
|
|
||||||
|
styles = {
|
||||||
|
# No corresponding class for the following:
|
||||||
|
#Text: "", # class: ''
|
||||||
|
Whitespace: "underline #f8f8f8", # class: 'w'
|
||||||
|
Error: "#a40000 border:#ef2929", # class: 'err'
|
||||||
|
Other: "#000000", # class 'x'
|
||||||
|
|
||||||
|
Comment: "italic #8f5902", # class: 'c'
|
||||||
|
Comment.Preproc: "noitalic", # class: 'cp'
|
||||||
|
|
||||||
|
Keyword: "bold #004461", # class: 'k'
|
||||||
|
Keyword.Constant: "bold #004461", # class: 'kc'
|
||||||
|
Keyword.Declaration: "bold #004461", # class: 'kd'
|
||||||
|
Keyword.Namespace: "bold #004461", # class: 'kn'
|
||||||
|
Keyword.Pseudo: "bold #004461", # class: 'kp'
|
||||||
|
Keyword.Reserved: "bold #004461", # class: 'kr'
|
||||||
|
Keyword.Type: "bold #004461", # class: 'kt'
|
||||||
|
|
||||||
|
Operator: "#582800", # class: 'o'
|
||||||
|
Operator.Word: "bold #004461", # class: 'ow' - like keywords
|
||||||
|
|
||||||
|
Punctuation: "bold #000000", # class: 'p'
|
||||||
|
|
||||||
|
# because special names such as Name.Class, Name.Function, etc.
|
||||||
|
# are not recognized as such later in the parsing, we choose them
|
||||||
|
# to look the same as ordinary variables.
|
||||||
|
Name: "#000000", # class: 'n'
|
||||||
|
Name.Attribute: "#c4a000", # class: 'na' - to be revised
|
||||||
|
Name.Builtin: "#004461", # class: 'nb'
|
||||||
|
Name.Builtin.Pseudo: "#3465a4", # class: 'bp'
|
||||||
|
Name.Class: "#000000", # class: 'nc' - to be revised
|
||||||
|
Name.Constant: "#000000", # class: 'no' - to be revised
|
||||||
|
Name.Decorator: "#888", # class: 'nd' - to be revised
|
||||||
|
Name.Entity: "#ce5c00", # class: 'ni'
|
||||||
|
Name.Exception: "bold #cc0000", # class: 'ne'
|
||||||
|
Name.Function: "#000000", # class: 'nf'
|
||||||
|
Name.Property: "#000000", # class: 'py'
|
||||||
|
Name.Label: "#f57900", # class: 'nl'
|
||||||
|
Name.Namespace: "#000000", # class: 'nn' - to be revised
|
||||||
|
Name.Other: "#000000", # class: 'nx'
|
||||||
|
Name.Tag: "bold #004461", # class: 'nt' - like a keyword
|
||||||
|
Name.Variable: "#000000", # class: 'nv' - to be revised
|
||||||
|
Name.Variable.Class: "#000000", # class: 'vc' - to be revised
|
||||||
|
Name.Variable.Global: "#000000", # class: 'vg' - to be revised
|
||||||
|
Name.Variable.Instance: "#000000", # class: 'vi' - to be revised
|
||||||
|
|
||||||
|
Number: "#990000", # class: 'm'
|
||||||
|
|
||||||
|
Literal: "#000000", # class: 'l'
|
||||||
|
Literal.Date: "#000000", # class: 'ld'
|
||||||
|
|
||||||
|
String: "#4e9a06", # class: 's'
|
||||||
|
String.Backtick: "#4e9a06", # class: 'sb'
|
||||||
|
String.Char: "#4e9a06", # class: 'sc'
|
||||||
|
String.Doc: "italic #8f5902", # class: 'sd' - like a comment
|
||||||
|
String.Double: "#4e9a06", # class: 's2'
|
||||||
|
String.Escape: "#4e9a06", # class: 'se'
|
||||||
|
String.Heredoc: "#4e9a06", # class: 'sh'
|
||||||
|
String.Interpol: "#4e9a06", # class: 'si'
|
||||||
|
String.Other: "#4e9a06", # class: 'sx'
|
||||||
|
String.Regex: "#4e9a06", # class: 'sr'
|
||||||
|
String.Single: "#4e9a06", # class: 's1'
|
||||||
|
String.Symbol: "#4e9a06", # class: 'ss'
|
||||||
|
|
||||||
|
Generic: "#000000", # class: 'g'
|
||||||
|
Generic.Deleted: "#a40000", # class: 'gd'
|
||||||
|
Generic.Emph: "italic #000000", # class: 'ge'
|
||||||
|
Generic.Error: "#ef2929", # class: 'gr'
|
||||||
|
Generic.Heading: "bold #000080", # class: 'gh'
|
||||||
|
Generic.Inserted: "#00A000", # class: 'gi'
|
||||||
|
Generic.Output: "#888", # class: 'go'
|
||||||
|
Generic.Prompt: "#745334", # class: 'gp'
|
||||||
|
Generic.Strong: "bold #000000", # class: 'gs'
|
||||||
|
Generic.Subheading: "bold #800080", # class: 'gu'
|
||||||
|
Generic.Traceback: "bold #a40000", # class: 'gt'
|
||||||
|
}
|
||||||
71
docs/_themes/kr/layout.html
vendored
Executable file
71
docs/_themes/kr/layout.html
vendored
Executable file
@ -0,0 +1,71 @@
|
|||||||
|
{%- extends "basic/layout.html" %}
|
||||||
|
{%- block extrahead %}
|
||||||
|
{{ super() }}
|
||||||
|
{% if theme_touch_icon %}
|
||||||
|
<link rel="apple-touch-icon" href="{{ pathto('_static/' ~ theme_touch_icon, 1) }}" />
|
||||||
|
{% endif %}
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
|
||||||
|
{% endblock %}
|
||||||
|
{%- block relbar2 %}{% endblock %}
|
||||||
|
{%- block footer %}
|
||||||
|
<div class="footer">
|
||||||
|
© Copyright {{ copyright }}.
|
||||||
|
</div>
|
||||||
|
<a href="https://github.com/kennethreitz/requests" class="github">
|
||||||
|
<img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" class="github"/>
|
||||||
|
</a>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/* <![CDATA[ */
|
||||||
|
(function() {
|
||||||
|
var s = document.createElement('script'), t = document.getElementsByTagName('script')[0];
|
||||||
|
s.type = 'text/javascript';
|
||||||
|
s.async = true;
|
||||||
|
s.src = 'http://api.flattr.com/js/0.6/load.js?mode=auto';
|
||||||
|
t.parentNode.insertBefore(s, t);
|
||||||
|
})();
|
||||||
|
/* ]]> */
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
setTimeout(function(){var a=document.createElement("script");
|
||||||
|
var b=document.getElementsByTagName("script")[0];
|
||||||
|
a.src=document.location.protocol+"//dnn506yrbagrg.cloudfront.net/pages/scripts/0013/7219.js?"+Math.floor(new Date().getTime()/3600000);
|
||||||
|
a.async=true;a.type="text/javascript";b.parentNode.insertBefore(a,b)}, 1);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
new HelloBar(36402,48802);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
var _gaq = _gaq || [];
|
||||||
|
_gaq.push(['_setAccount', 'UA-8742933-11']);
|
||||||
|
_gaq.push(['_setDomainName', 'none']);
|
||||||
|
_gaq.push(['_setAllowLinker', true]);
|
||||||
|
_gaq.push(['_trackPageview']);
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||||
|
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||||
|
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||||
|
})();
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
(function() {
|
||||||
|
var t = document.createElement('script');
|
||||||
|
t.type = 'text/javascript';
|
||||||
|
t.async = true;
|
||||||
|
t.id = 'gauges-tracker';
|
||||||
|
t.setAttribute('data-site-id',
|
||||||
|
'4ddc27f6613f5d186d000007');
|
||||||
|
t.src = '//secure.gaug.es/track.js';
|
||||||
|
var s = document.getElementsByTagName('script')[0];
|
||||||
|
s.parentNode.insertBefore(t, s);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
{%- endblock %}
|
||||||
19
docs/_themes/kr/relations.html
vendored
Executable file
19
docs/_themes/kr/relations.html
vendored
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
<h3>Related Topics</h3>
|
||||||
|
<ul>
|
||||||
|
<li><a href="{{ pathto(master_doc) }}">Documentation overview</a><ul>
|
||||||
|
{%- for parent in parents %}
|
||||||
|
<li><a href="{{ parent.link|e }}">{{ parent.title }}</a><ul>
|
||||||
|
{%- endfor %}
|
||||||
|
{%- if prev %}
|
||||||
|
<li>Previous: <a href="{{ prev.link|e }}" title="{{ _('previous chapter')
|
||||||
|
}}">{{ prev.title }}</a></li>
|
||||||
|
{%- endif %}
|
||||||
|
{%- if next %}
|
||||||
|
<li>Next: <a href="{{ next.link|e }}" title="{{ _('next chapter')
|
||||||
|
}}">{{ next.title }}</a></li>
|
||||||
|
{%- endif %}
|
||||||
|
{%- for parent in parents %}
|
||||||
|
</ul></li>
|
||||||
|
{%- endfor %}
|
||||||
|
</ul></li>
|
||||||
|
</ul>
|
||||||
536
docs/_themes/kr/static/flasky.css_t
vendored
Executable file
536
docs/_themes/kr/static/flasky.css_t
vendored
Executable file
@ -0,0 +1,536 @@
|
|||||||
|
/*
|
||||||
|
* flasky.css_t
|
||||||
|
* ~~~~~~~~~~~~
|
||||||
|
*
|
||||||
|
* :copyright: Copyright 2010 by Armin Ronacher. Modifications by Kenneth Reitz.
|
||||||
|
* :license: Flask Design License, see LICENSE for details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
{% set page_width = '940px' %}
|
||||||
|
{% set sidebar_width = '220px' %}
|
||||||
|
|
||||||
|
@import url("basic.css");
|
||||||
|
|
||||||
|
/* -- page layout ----------------------------------------------------------- */
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: 'goudy old style', 'minion pro', 'bell mt', Georgia, 'Hiragino Mincho Pro';
|
||||||
|
font-size: 17px;
|
||||||
|
background-color: white;
|
||||||
|
color: #000;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.document {
|
||||||
|
width: {{ page_width }};
|
||||||
|
margin: 30px auto 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.documentwrapper {
|
||||||
|
float: left;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.bodywrapper {
|
||||||
|
margin: 0 0 0 {{ sidebar_width }};
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar {
|
||||||
|
width: {{ sidebar_width }};
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
border: 1px solid #B1B4B6;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.body {
|
||||||
|
background-color: #ffffff;
|
||||||
|
color: #3E4349;
|
||||||
|
padding: 0 30px 0 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.floatingflask {
|
||||||
|
padding: 0 0 10px 10px;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.footer {
|
||||||
|
width: {{ page_width }};
|
||||||
|
margin: 20px auto 30px auto;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #888;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.footer a {
|
||||||
|
color: #888;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.related {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar a {
|
||||||
|
color: #444;
|
||||||
|
text-decoration: none;
|
||||||
|
border-bottom: 1px dotted #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar a:hover {
|
||||||
|
border-bottom: 1px solid #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar {
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebarwrapper {
|
||||||
|
padding: 18px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebarwrapper p.logo {
|
||||||
|
padding: 0;
|
||||||
|
margin: -10px 0 0 -20px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar h3,
|
||||||
|
div.sphinxsidebar h4 {
|
||||||
|
font-family: 'Garamond', 'Georgia', serif;
|
||||||
|
color: #444;
|
||||||
|
font-size: 24px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0 0 5px 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar h4 {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar h3 a {
|
||||||
|
color: #444;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar p.logo a,
|
||||||
|
div.sphinxsidebar h3 a,
|
||||||
|
div.sphinxsidebar p.logo a:hover,
|
||||||
|
div.sphinxsidebar h3 a:hover {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar p {
|
||||||
|
color: #555;
|
||||||
|
margin: 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar ul {
|
||||||
|
margin: 10px 0;
|
||||||
|
padding: 0;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar input {
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
font-family: 'Georgia', serif;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -- body styles ----------------------------------------------------------- */
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #004B6B;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
color: #6D4100;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.body h1,
|
||||||
|
div.body h2,
|
||||||
|
div.body h3,
|
||||||
|
div.body h4,
|
||||||
|
div.body h5,
|
||||||
|
div.body h6 {
|
||||||
|
font-family: 'Garamond', 'Georgia', serif;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 30px 0px 10px 0px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; }
|
||||||
|
div.body h2 { font-size: 180%; }
|
||||||
|
div.body h3 { font-size: 150%; }
|
||||||
|
div.body h4 { font-size: 130%; }
|
||||||
|
div.body h5 { font-size: 100%; }
|
||||||
|
div.body h6 { font-size: 100%; }
|
||||||
|
|
||||||
|
a.headerlink {
|
||||||
|
color: #ddd;
|
||||||
|
padding: 0 4px;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.headerlink:hover {
|
||||||
|
color: #444;
|
||||||
|
background: #eaeaea;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.body p, div.body dd, div.body li {
|
||||||
|
line-height: 1.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.admonition {
|
||||||
|
background: #fafafa;
|
||||||
|
margin: 20px -30px;
|
||||||
|
padding: 10px 30px;
|
||||||
|
border-top: 1px solid #ccc;
|
||||||
|
border-bottom: 1px solid #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.admonition tt.xref, div.admonition a tt {
|
||||||
|
border-bottom: 1px solid #fafafa;
|
||||||
|
}
|
||||||
|
|
||||||
|
dd div.admonition {
|
||||||
|
margin-left: -60px;
|
||||||
|
padding-left: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.admonition p.admonition-title {
|
||||||
|
font-family: 'Garamond', 'Georgia', serif;
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: 24px;
|
||||||
|
margin: 0 0 10px 0;
|
||||||
|
padding: 0;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.admonition p.last {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.highlight {
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
dt:target, .highlight {
|
||||||
|
background: #FAF3E8;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.note {
|
||||||
|
background-color: #eee;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.seealso {
|
||||||
|
background-color: #ffc;
|
||||||
|
border: 1px solid #ff6;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.topic {
|
||||||
|
background-color: #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.admonition-title {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.admonition-title:after {
|
||||||
|
content: ":";
|
||||||
|
}
|
||||||
|
|
||||||
|
pre, tt {
|
||||||
|
font-family: 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.screenshot {
|
||||||
|
}
|
||||||
|
|
||||||
|
tt.descname, tt.descclassname {
|
||||||
|
font-size: 0.95em;
|
||||||
|
}
|
||||||
|
|
||||||
|
tt.descname {
|
||||||
|
padding-right: 0.08em;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.screenshot {
|
||||||
|
-moz-box-shadow: 2px 2px 4px #eee;
|
||||||
|
-webkit-box-shadow: 2px 2px 4px #eee;
|
||||||
|
box-shadow: 2px 2px 4px #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.docutils {
|
||||||
|
border: 1px solid #888;
|
||||||
|
-moz-box-shadow: 2px 2px 4px #eee;
|
||||||
|
-webkit-box-shadow: 2px 2px 4px #eee;
|
||||||
|
box-shadow: 2px 2px 4px #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.docutils td, table.docutils th {
|
||||||
|
border: 1px solid #888;
|
||||||
|
padding: 0.25em 0.7em;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.field-list, table.footnote {
|
||||||
|
border: none;
|
||||||
|
-moz-box-shadow: none;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.footnote {
|
||||||
|
margin: 15px 0;
|
||||||
|
width: 100%;
|
||||||
|
border: 1px solid #eee;
|
||||||
|
background: #fdfdfd;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.footnote + table.footnote {
|
||||||
|
margin-top: -15px;
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.field-list th {
|
||||||
|
padding: 0 0.8em 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.field-list td {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.footnote td.label {
|
||||||
|
width: 0px;
|
||||||
|
padding: 0.3em 0 0.3em 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.footnote td {
|
||||||
|
padding: 0.3em 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl dd {
|
||||||
|
margin-left: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
margin: 0 0 0 30px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul, ol {
|
||||||
|
margin: 10px 0 10px 30px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
background: #eee;
|
||||||
|
padding: 7px 30px;
|
||||||
|
margin: 15px -30px;
|
||||||
|
line-height: 1.3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl pre, blockquote pre, li pre {
|
||||||
|
margin-left: -60px;
|
||||||
|
padding-left: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl dl pre {
|
||||||
|
margin-left: -90px;
|
||||||
|
padding-left: 90px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tt {
|
||||||
|
background-color: #ecf0f3;
|
||||||
|
color: #222;
|
||||||
|
/* padding: 1px 2px; */
|
||||||
|
}
|
||||||
|
|
||||||
|
tt.xref, a tt {
|
||||||
|
background-color: #FBFBFB;
|
||||||
|
border-bottom: 1px solid white;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.reference {
|
||||||
|
text-decoration: none;
|
||||||
|
border-bottom: 1px dotted #004B6B;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.reference:hover {
|
||||||
|
border-bottom: 1px solid #6D4100;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.footnote-reference {
|
||||||
|
text-decoration: none;
|
||||||
|
font-size: 0.7em;
|
||||||
|
vertical-align: top;
|
||||||
|
border-bottom: 1px dotted #004B6B;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.footnote-reference:hover {
|
||||||
|
border-bottom: 1px solid #6D4100;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover tt {
|
||||||
|
background: #EEE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@media screen and (max-width: 870px) {
|
||||||
|
|
||||||
|
div.sphinxsidebar {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.document {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
div.documentwrapper {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-right: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.bodywrapper {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-right: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.document {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bodywrapper {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.github {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@media screen and (max-width: 875px) {
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 20px 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.documentwrapper {
|
||||||
|
float: none;
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar {
|
||||||
|
display: block;
|
||||||
|
float: none;
|
||||||
|
width: 102.5%;
|
||||||
|
margin: 50px -30px -20px -30px;
|
||||||
|
padding: 10px 20px;
|
||||||
|
background: #333;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p,
|
||||||
|
div.sphinxsidebar h3 a {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar a {
|
||||||
|
color: #aaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar p.logo {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.document {
|
||||||
|
width: 100%;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.related {
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 10px 0 20px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.related ul,
|
||||||
|
div.related ul li {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.footer {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.bodywrapper {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.body {
|
||||||
|
min-height: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtd_doc_footer {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.document {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.github {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* misc. */
|
||||||
|
|
||||||
|
.revsys-inline {
|
||||||
|
display: none!important;
|
||||||
|
}
|
||||||
7
docs/_themes/kr/theme.conf
vendored
Executable file
7
docs/_themes/kr/theme.conf
vendored
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
[theme]
|
||||||
|
inherit = basic
|
||||||
|
stylesheet = flasky.css
|
||||||
|
pygments_style = flask_theme_support.FlaskyStyle
|
||||||
|
|
||||||
|
[options]
|
||||||
|
touch_icon =
|
||||||
22
docs/_themes/kr_small/layout.html
vendored
Executable file
22
docs/_themes/kr_small/layout.html
vendored
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
{% extends "basic/layout.html" %}
|
||||||
|
{% block header %}
|
||||||
|
{{ super() }}
|
||||||
|
{% if pagename == 'index' %}
|
||||||
|
<div class=indexwrapper>
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
||||||
|
{% block footer %}
|
||||||
|
{% if pagename == 'index' %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
||||||
|
{# do not display relbars #}
|
||||||
|
{% block relbar1 %}{% endblock %}
|
||||||
|
{% block relbar2 %}
|
||||||
|
{% if theme_github_fork %}
|
||||||
|
<a href="http://github.com/{{ theme_github_fork }}"><img style="position: fixed; top: 0; right: 0; border: 0;"
|
||||||
|
src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
||||||
|
{% block sidebar1 %}{% endblock %}
|
||||||
|
{% block sidebar2 %}{% endblock %}
|
||||||
287
docs/_themes/kr_small/static/flasky.css_t
vendored
Executable file
287
docs/_themes/kr_small/static/flasky.css_t
vendored
Executable file
@ -0,0 +1,287 @@
|
|||||||
|
/*
|
||||||
|
* flasky.css_t
|
||||||
|
* ~~~~~~~~~~~~
|
||||||
|
*
|
||||||
|
* Sphinx stylesheet -- flasky theme based on nature theme.
|
||||||
|
*
|
||||||
|
* :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS.
|
||||||
|
* :license: BSD, see LICENSE for details.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
@import url("basic.css");
|
||||||
|
|
||||||
|
/* -- page layout ----------------------------------------------------------- */
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: 'Georgia', serif;
|
||||||
|
font-size: 17px;
|
||||||
|
color: #000;
|
||||||
|
background: white;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.documentwrapper {
|
||||||
|
float: left;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.bodywrapper {
|
||||||
|
margin: 40px auto 0 auto;
|
||||||
|
width: 700px;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
border: 1px solid #B1B4B6;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.body {
|
||||||
|
background-color: #ffffff;
|
||||||
|
color: #3E4349;
|
||||||
|
padding: 0 30px 30px 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.floatingflask {
|
||||||
|
padding: 0 0 10px 10px;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.footer {
|
||||||
|
text-align: right;
|
||||||
|
color: #888;
|
||||||
|
padding: 10px;
|
||||||
|
font-size: 14px;
|
||||||
|
width: 650px;
|
||||||
|
margin: 0 auto 40px auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.footer a {
|
||||||
|
color: #888;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.related {
|
||||||
|
line-height: 32px;
|
||||||
|
color: #888;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.related ul {
|
||||||
|
padding: 0 0 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.related a {
|
||||||
|
color: #444;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -- body styles ----------------------------------------------------------- */
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #004B6B;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
color: #6D4100;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.body {
|
||||||
|
padding-bottom: 40px; /* saved for footer */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.body h1,
|
||||||
|
div.body h2,
|
||||||
|
div.body h3,
|
||||||
|
div.body h4,
|
||||||
|
div.body h5,
|
||||||
|
div.body h6 {
|
||||||
|
font-family: 'Garamond', 'Georgia', serif;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 30px 0px 10px 0px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
{% if theme_index_logo %}
|
||||||
|
div.indexwrapper h1 {
|
||||||
|
text-indent: -999999px;
|
||||||
|
background: url({{ theme_index_logo }}) no-repeat center center;
|
||||||
|
height: {{ theme_index_logo_height }};
|
||||||
|
}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
div.body h2 { font-size: 180%; }
|
||||||
|
div.body h3 { font-size: 150%; }
|
||||||
|
div.body h4 { font-size: 130%; }
|
||||||
|
div.body h5 { font-size: 100%; }
|
||||||
|
div.body h6 { font-size: 100%; }
|
||||||
|
|
||||||
|
a.headerlink {
|
||||||
|
color: white;
|
||||||
|
padding: 0 4px;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.headerlink:hover {
|
||||||
|
color: #444;
|
||||||
|
background: #eaeaea;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.body p, div.body dd, div.body li {
|
||||||
|
line-height: 1.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.admonition {
|
||||||
|
background: #fafafa;
|
||||||
|
margin: 20px -30px;
|
||||||
|
padding: 10px 30px;
|
||||||
|
border-top: 1px solid #ccc;
|
||||||
|
border-bottom: 1px solid #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.admonition p.admonition-title {
|
||||||
|
font-family: 'Garamond', 'Georgia', serif;
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: 24px;
|
||||||
|
margin: 0 0 10px 0;
|
||||||
|
padding: 0;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.admonition p.last {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.highlight{
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
dt:target, .highlight {
|
||||||
|
background: #FAF3E8;
|
||||||
|
}
|
||||||
|
|
||||||
|
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, tt {
|
||||||
|
font-family: 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
|
||||||
|
font-size: 0.85em;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.screenshot {
|
||||||
|
}
|
||||||
|
|
||||||
|
tt.descname, tt.descclassname {
|
||||||
|
font-size: 0.95em;
|
||||||
|
}
|
||||||
|
|
||||||
|
tt.descname {
|
||||||
|
padding-right: 0.08em;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.screenshot {
|
||||||
|
-moz-box-shadow: 2px 2px 4px #eee;
|
||||||
|
-webkit-box-shadow: 2px 2px 4px #eee;
|
||||||
|
box-shadow: 2px 2px 4px #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.docutils {
|
||||||
|
border: 1px solid #888;
|
||||||
|
-moz-box-shadow: 2px 2px 4px #eee;
|
||||||
|
-webkit-box-shadow: 2px 2px 4px #eee;
|
||||||
|
box-shadow: 2px 2px 4px #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.docutils td, table.docutils th {
|
||||||
|
border: 1px solid #888;
|
||||||
|
padding: 0.25em 0.7em;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.field-list, table.footnote {
|
||||||
|
border: none;
|
||||||
|
-moz-box-shadow: none;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.footnote {
|
||||||
|
margin: 15px 0;
|
||||||
|
width: 100%;
|
||||||
|
border: 1px solid #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.field-list th {
|
||||||
|
padding: 0 0.8em 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.field-list td {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.footnote td {
|
||||||
|
padding: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl dd {
|
||||||
|
margin-left: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
padding: 0;
|
||||||
|
margin: 15px -30px;
|
||||||
|
padding: 8px;
|
||||||
|
line-height: 1.3em;
|
||||||
|
padding: 7px 30px;
|
||||||
|
background: #eee;
|
||||||
|
border-radius: 2px;
|
||||||
|
-moz-border-radius: 2px;
|
||||||
|
-webkit-border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl pre {
|
||||||
|
margin-left: -60px;
|
||||||
|
padding-left: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tt {
|
||||||
|
background-color: #ecf0f3;
|
||||||
|
color: #222;
|
||||||
|
/* padding: 1px 2px; */
|
||||||
|
}
|
||||||
|
|
||||||
|
tt.xref, a tt {
|
||||||
|
background-color: #FBFBFB;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover tt {
|
||||||
|
background: #EEE;
|
||||||
|
}
|
||||||
10
docs/_themes/kr_small/theme.conf
vendored
Executable file
10
docs/_themes/kr_small/theme.conf
vendored
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
[theme]
|
||||||
|
inherit = basic
|
||||||
|
stylesheet = flasky.css
|
||||||
|
nosidebar = true
|
||||||
|
pygments_style = flask_theme_support.FlaskyStyle
|
||||||
|
|
||||||
|
[options]
|
||||||
|
index_logo = ''
|
||||||
|
index_logo_height = 120px
|
||||||
|
github_fork = ''
|
||||||
30
docs/api.rst
Normal file
30
docs/api.rst
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
|
||||||
|
API documentation
|
||||||
|
=================
|
||||||
|
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. autofunction:: dataset.connect
|
||||||
|
|
||||||
|
|
||||||
|
Database
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. autoclass:: dataset.Database
|
||||||
|
:members: get_table, create_table, load_table, query
|
||||||
|
:undoc-members:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Table
|
||||||
|
-----
|
||||||
|
|
||||||
|
Using the *Table* class you can easily store and retreive data from database tables.
|
||||||
|
|
||||||
|
.. autoclass:: dataset.Table
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
12
docs/conf.py
12
docs/conf.py
@ -48,9 +48,9 @@ copyright = u'2013, Friedrich Lindenberg, Gregor Aisch'
|
|||||||
# built documents.
|
# built documents.
|
||||||
#
|
#
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = '0.1'
|
version = '0.3'
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = '0.1.1'
|
release = '0.3'
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
@ -94,15 +94,17 @@ pygments_style = 'sphinx'
|
|||||||
|
|
||||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||||
# a list of builtin themes.
|
# a list of builtin themes.
|
||||||
html_theme = 'default'
|
html_theme = 'kr'
|
||||||
|
|
||||||
# Theme options are theme-specific and customize the look and feel of a theme
|
# 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
|
# further. For a list of options available for each theme, see the
|
||||||
# documentation.
|
# documentation.
|
||||||
#html_theme_options = {}
|
# html_theme_options = {
|
||||||
|
# 'codebgcolor': ''
|
||||||
|
# }
|
||||||
|
|
||||||
# Add any paths that contain custom themes here, relative to this directory.
|
# Add any paths that contain custom themes here, relative to this directory.
|
||||||
#html_theme_path = []
|
html_theme_path = ['_themes']
|
||||||
|
|
||||||
# The name for this set of Sphinx documents. If None, it defaults to
|
# The name for this set of Sphinx documents. If None, it defaults to
|
||||||
# "<project> v<release> documentation".
|
# "<project> v<release> documentation".
|
||||||
|
|||||||
@ -6,55 +6,14 @@
|
|||||||
Welcome to dataset's documentation!
|
Welcome to dataset's documentation!
|
||||||
===================================
|
===================================
|
||||||
|
|
||||||
Simple API::
|
Getting the databases out of your data's way.
|
||||||
|
|
||||||
import dataset
|
|
||||||
# open a sqlite database (or create one if it doesn't exist yet)
|
|
||||||
db = dataset.connect('sqlite:///factbook.db')
|
|
||||||
|
|
||||||
# get a wrapper for the table 'population'
|
|
||||||
# this will create the table if it doesn't exist yet
|
|
||||||
table = db['population']
|
|
||||||
|
|
||||||
# insert a new row (and also create the columns if they don't exist yet)
|
|
||||||
table.insert(dict(country='China', year=2012, population=1354040000))
|
|
||||||
table.insert(dict(country='India', year=2011, population=1210193422))
|
|
||||||
|
|
||||||
# you can easily add new columns at any time
|
|
||||||
table.insert(dict(country='United States', year=2013, population=315591999, source='http://www.census.gov'))
|
|
||||||
|
|
||||||
.. autofunction:: dataset.connect
|
|
||||||
|
|
||||||
Database
|
|
||||||
========
|
|
||||||
|
|
||||||
A Database is a simple wrapper around SQLAlchemy engines. Most of the time you want to use it to get instances to tables using *get_table* or the short-hand dict syntax::
|
|
||||||
|
|
||||||
# both statements return the same table
|
|
||||||
table = db['population']
|
|
||||||
table = db.get_table('population')
|
|
||||||
|
|
||||||
.. autoclass:: dataset.Database
|
|
||||||
:members: get_table, create_table, load_table, query
|
|
||||||
:undoc-members:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Table
|
|
||||||
=====
|
|
||||||
|
|
||||||
Using the *Table* class you can easily store and retreive data from database tables.
|
|
||||||
|
|
||||||
.. autoclass:: dataset.Table
|
|
||||||
:members:
|
|
||||||
:undoc-members:
|
|
||||||
|
|
||||||
|
|
||||||
Contents:
|
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
|
* `Learn how to use dataset in five minutes <quickstart>`_
|
||||||
|
* `Browse the complete API docs <api>`_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Indices and tables
|
Indices and tables
|
||||||
|
|||||||
90
docs/quickstart.rst
Normal file
90
docs/quickstart.rst
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
|
||||||
|
Quickstart
|
||||||
|
==========
|
||||||
|
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
|
||||||
|
Hi, welcome to the five-minute quick-start tutorial.
|
||||||
|
|
||||||
|
At first you need to import the dataset package :) ::
|
||||||
|
|
||||||
|
import dataset
|
||||||
|
|
||||||
|
To connect to a database you need to identify it using what is called an engine url. Here are a few examples::
|
||||||
|
|
||||||
|
# connecting to a SQLite database
|
||||||
|
db = dataset.connect('sqlite:///factbook.db')
|
||||||
|
|
||||||
|
# connecting to a MySQL database
|
||||||
|
db = dataset.connect('mysql://user:password@localhost/mydatabase')
|
||||||
|
|
||||||
|
# connecting to a PostgreSQL database
|
||||||
|
db = dataset.connect('postgresql://scott:tiger@localhost:5432/mydatabase')
|
||||||
|
|
||||||
|
If you want to learn more about how to connect to various databases, have a look at the `SQLAlchemy documentation`_.
|
||||||
|
|
||||||
|
.. _SQLAlchemy documentation: http://docs.sqlalchemy.org/en/latest/core/engines.html#engine-creation-api
|
||||||
|
|
||||||
|
Storing data
|
||||||
|
------------
|
||||||
|
|
||||||
|
At first you need to get a reference to the table in which you want to store your data. You don't
|
||||||
|
need to worry about whether the table already exists or not, since dataset will create it automatically::
|
||||||
|
|
||||||
|
# get a reference to the table 'person'
|
||||||
|
table = db['person']
|
||||||
|
|
||||||
|
Now storing data in a table is a matter of a single function call. Just pass a `dict`_ to *insert*. Note
|
||||||
|
that you don't need to create the columns *name* and *age* – dataset will do this automatically::
|
||||||
|
|
||||||
|
# Insert a new record.
|
||||||
|
table.insert(dict(name='John Doe', age=46))
|
||||||
|
|
||||||
|
# dataset will create "missing" columns any time you insert a dict with an unknown key
|
||||||
|
table.insert(dict(name='Jane Doe', age=37, gender='female'))
|
||||||
|
|
||||||
|
# If you need to insert many items at once, you can speed up things by using insert_many:
|
||||||
|
table.insert_many(list_of_persons)
|
||||||
|
|
||||||
|
.. _dict: http://docs.python.org/2/library/stdtypes.html#dict
|
||||||
|
|
||||||
|
Updating existing entries is easy, too::
|
||||||
|
|
||||||
|
table.update(dict(name='John Doe', age=47), ['name'])
|
||||||
|
|
||||||
|
Reading data from tables
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
Checking::
|
||||||
|
|
||||||
|
table = db['population']
|
||||||
|
|
||||||
|
# Let's grab a list of all items/rows/entries in the table:
|
||||||
|
table.all()
|
||||||
|
|
||||||
|
table.distinct()
|
||||||
|
|
||||||
|
Searching for specific entries::
|
||||||
|
|
||||||
|
# Returns the first item where the column country equals 'China'
|
||||||
|
table.find_one(country='China')
|
||||||
|
|
||||||
|
# Returns all items
|
||||||
|
table.find(country='China')
|
||||||
|
|
||||||
|
Querying data
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Querying data is easy. Dataset returns an iteratable result object::
|
||||||
|
|
||||||
|
result = db.query('SELECT ...')
|
||||||
|
for row in result:
|
||||||
|
print row
|
||||||
|
|
||||||
|
Freezing your data
|
||||||
|
------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user