diff --git a/.gitignore b/.gitignore index b44fe36..21f90da 100644 --- a/.gitignore +++ b/.gitignore @@ -10,8 +10,6 @@ __pycache__/ # Distribution / packaging .Python -build/ -docs/build develop-eggs/ dist/ downloads/ diff --git a/docs/build/.buildinfo b/docs/build/.buildinfo new file mode 100644 index 0000000..3634ca3 --- /dev/null +++ b/docs/build/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: acbabc60dc64a579a25e98803190d598 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/.doctrees/environment.pickle b/docs/build/.doctrees/environment.pickle new file mode 100644 index 0000000..87c60f1 Binary files /dev/null and b/docs/build/.doctrees/environment.pickle differ diff --git a/docs/build/.doctrees/index.doctree b/docs/build/.doctrees/index.doctree new file mode 100644 index 0000000..0f3bd9c Binary files /dev/null and b/docs/build/.doctrees/index.doctree differ diff --git a/docs/build/.doctrees/manage.doctree b/docs/build/.doctrees/manage.doctree new file mode 100644 index 0000000..fead54f Binary files /dev/null and b/docs/build/.doctrees/manage.doctree differ diff --git a/docs/build/.doctrees/modules.doctree b/docs/build/.doctrees/modules.doctree new file mode 100644 index 0000000..8ed5337 Binary files /dev/null and b/docs/build/.doctrees/modules.doctree differ diff --git a/docs/build/.doctrees/pt_map.doctree b/docs/build/.doctrees/pt_map.doctree new file mode 100644 index 0000000..ed079b7 Binary files /dev/null and b/docs/build/.doctrees/pt_map.doctree differ diff --git a/docs/build/.doctrees/pt_map.migrations.doctree b/docs/build/.doctrees/pt_map.migrations.doctree new file mode 100644 index 0000000..c2e035b Binary files /dev/null and b/docs/build/.doctrees/pt_map.migrations.doctree differ diff --git a/docs/build/.doctrees/transport_accessibility.doctree b/docs/build/.doctrees/transport_accessibility.doctree new file mode 100644 index 0000000..dc0e41e Binary files /dev/null and b/docs/build/.doctrees/transport_accessibility.doctree differ diff --git a/docs/build/_sources/index.rst.txt b/docs/build/_sources/index.rst.txt new file mode 100644 index 0000000..f9e6f6f --- /dev/null +++ b/docs/build/_sources/index.rst.txt @@ -0,0 +1,20 @@ +.. Transport Accessibility documentation master file, created by + sphinx-quickstart on Mon Jun 3 13:49:21 2024. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to Transport Accessibility's documentation! +=================================================== + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + modules + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/build/_sources/manage.rst.txt b/docs/build/_sources/manage.rst.txt new file mode 100644 index 0000000..306faa1 --- /dev/null +++ b/docs/build/_sources/manage.rst.txt @@ -0,0 +1,7 @@ +manage module +============= + +.. automodule:: manage + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/_sources/modules.rst.txt b/docs/build/_sources/modules.rst.txt new file mode 100644 index 0000000..7ef501b --- /dev/null +++ b/docs/build/_sources/modules.rst.txt @@ -0,0 +1,9 @@ +transport_accessibility +======================= + +.. toctree:: + :maxdepth: 4 + + manage + pt_map + transport_accessibility diff --git a/docs/build/_sources/pt_map.migrations.rst.txt b/docs/build/_sources/pt_map.migrations.rst.txt new file mode 100644 index 0000000..0ee9b23 --- /dev/null +++ b/docs/build/_sources/pt_map.migrations.rst.txt @@ -0,0 +1,101 @@ +pt\_map.migrations package +========================== + +Submodules +---------- + +pt\_map.migrations.0001\_initial module +--------------------------------------- + +.. automodule:: pt_map.migrations.0001_initial + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0002\_alter\_calendardate\_unique\_together\_and\_more module +-------------------------------------------------------------------------------- + +.. automodule:: pt_map.migrations.0002_alter_calendardate_unique_together_and_more + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0003\_alter\_calendar\_service\_id\_and\_more module +----------------------------------------------------------------------- + +.. automodule:: pt_map.migrations.0003_alter_calendar_service_id_and_more + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0004\_alter\_agency\_agency\_id\_alter\_calendar\_service\_id\_and\_more module +-------------------------------------------------------------------------------------------------- + +.. automodule:: pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0005\_level\_remove\_stop\_tts\_stop\_name\_agency\_agency\_lang\_and\_more module +----------------------------------------------------------------------------------------------------- + +.. automodule:: pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0006\_alter\_route\_route\_type module +--------------------------------------------------------- + +.. automodule:: pt_map.migrations.0006_alter_route_route_type + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0007\_location\_translation\_attribution\_bookingrule module +------------------------------------------------------------------------------- + +.. automodule:: pt_map.migrations.0007_location_translation_attribution_bookingrule + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0008\_area\_farelegrule\_faremedia\_fareproduct\_and\_more module +------------------------------------------------------------------------------------ + +.. automodule:: pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0009\_rename\_faremedia\_faremedium module +------------------------------------------------------------- + +.. automodule:: pt_map.migrations.0009_rename_faremedia_faremedium + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0010\_rename\_location\_locationgeojson module +----------------------------------------------------------------- + +.. automodule:: pt_map.migrations.0010_rename_location_locationgeojson + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0011\_rename\_locationgeojson\_locationsgeojson module +------------------------------------------------------------------------- + +.. automodule:: pt_map.migrations.0011_rename_locationgeojson_locationsgeojson + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: pt_map.migrations + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/_sources/pt_map.rst.txt b/docs/build/_sources/pt_map.rst.txt new file mode 100644 index 0000000..0dc31fd --- /dev/null +++ b/docs/build/_sources/pt_map.rst.txt @@ -0,0 +1,85 @@ +pt\_map package +=============== + +Subpackages +----------- + +.. toctree:: + :maxdepth: 4 + + pt_map.migrations + +Submodules +---------- + +pt\_map.admin module +-------------------- + +.. automodule:: pt_map.admin + :members: + :undoc-members: + :show-inheritance: + +pt\_map.apps module +------------------- + +.. automodule:: pt_map.apps + :members: + :undoc-members: + :show-inheritance: + +pt\_map.bridge module +--------------------- + +.. automodule:: pt_map.bridge + :members: + :undoc-members: + :show-inheritance: + +pt\_map.gtfs module +------------------- + +.. automodule:: pt_map.gtfs + :members: + :undoc-members: + :show-inheritance: + +pt\_map.models module +--------------------- + +.. automodule:: pt_map.models + :members: + :undoc-members: + :show-inheritance: + +pt\_map.tests module +-------------------- + +.. automodule:: pt_map.tests + :members: + :undoc-members: + :show-inheritance: + +pt\_map.urls module +------------------- + +.. automodule:: pt_map.urls + :members: + :undoc-members: + :show-inheritance: + +pt\_map.views module +-------------------- + +.. automodule:: pt_map.views + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: pt_map + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/_sources/transport_accessibility.rst.txt b/docs/build/_sources/transport_accessibility.rst.txt new file mode 100644 index 0000000..397ff47 --- /dev/null +++ b/docs/build/_sources/transport_accessibility.rst.txt @@ -0,0 +1,45 @@ +transport\_accessibility package +================================ + +Submodules +---------- + +transport\_accessibility.asgi module +------------------------------------ + +.. automodule:: transport_accessibility.asgi + :members: + :undoc-members: + :show-inheritance: + +transport\_accessibility.settings module +---------------------------------------- + +.. automodule:: transport_accessibility.settings + :members: + :undoc-members: + :show-inheritance: + +transport\_accessibility.urls module +------------------------------------ + +.. automodule:: transport_accessibility.urls + :members: + :undoc-members: + :show-inheritance: + +transport\_accessibility.wsgi module +------------------------------------ + +.. automodule:: transport_accessibility.wsgi + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: transport_accessibility + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/_static/_sphinx_javascript_frameworks_compat.js b/docs/build/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 0000000..110eaa4 --- /dev/null +++ b/docs/build/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,123 @@ +/* Compatability shim for jQuery and underscores.js. + * + * Copyright Sphinx contributors + * Released under the two clause BSD licence + */ + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return 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; +}; + +/** + * 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, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + 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); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/docs/build/_static/basic.css b/docs/build/_static/basic.css new file mode 100644 index 0000000..584e6e7 --- /dev/null +++ b/docs/build/_static/basic.css @@ -0,0 +1,925 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- 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%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +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; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- 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 p.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%; + margin-left: auto; + margin-right: auto; +} + +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 { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +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; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +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, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 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; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/docs/build/_static/css/badge_only.css b/docs/build/_static/css/badge_only.css new file mode 100644 index 0000000..cce1bdc --- /dev/null +++ b/docs/build/_static/css/badge_only.css @@ -0,0 +1 @@ +.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} \ No newline at end of file diff --git a/docs/build/_static/css/fonts/Roboto-Slab-Bold.woff b/docs/build/_static/css/fonts/Roboto-Slab-Bold.woff new file mode 100644 index 0000000..08a0c7c Binary files /dev/null and b/docs/build/_static/css/fonts/Roboto-Slab-Bold.woff differ diff --git a/docs/build/_static/css/fonts/Roboto-Slab-Bold.woff2 b/docs/build/_static/css/fonts/Roboto-Slab-Bold.woff2 new file mode 100644 index 0000000..9660b4a Binary files /dev/null and b/docs/build/_static/css/fonts/Roboto-Slab-Bold.woff2 differ diff --git a/docs/build/_static/css/fonts/Roboto-Slab-Regular.woff b/docs/build/_static/css/fonts/Roboto-Slab-Regular.woff new file mode 100644 index 0000000..1f1091a Binary files /dev/null and b/docs/build/_static/css/fonts/Roboto-Slab-Regular.woff differ diff --git a/docs/build/_static/css/fonts/Roboto-Slab-Regular.woff2 b/docs/build/_static/css/fonts/Roboto-Slab-Regular.woff2 new file mode 100644 index 0000000..66d3943 Binary files /dev/null and b/docs/build/_static/css/fonts/Roboto-Slab-Regular.woff2 differ diff --git a/docs/build/_static/css/fonts/fontawesome-webfont.eot b/docs/build/_static/css/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..266adfc Binary files /dev/null and b/docs/build/_static/css/fonts/fontawesome-webfont.eot differ diff --git a/docs/build/_static/css/fonts/fontawesome-webfont.svg b/docs/build/_static/css/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..61e8e50 --- /dev/null +++ b/docs/build/_static/css/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/build/_static/css/fonts/fontawesome-webfont.ttf b/docs/build/_static/css/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..8dc62af Binary files /dev/null and b/docs/build/_static/css/fonts/fontawesome-webfont.ttf differ diff --git a/docs/build/_static/css/fonts/fontawesome-webfont.woff b/docs/build/_static/css/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..2217507 Binary files /dev/null and b/docs/build/_static/css/fonts/fontawesome-webfont.woff differ diff --git a/docs/build/_static/css/fonts/fontawesome-webfont.woff2 b/docs/build/_static/css/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..935465b Binary files /dev/null and b/docs/build/_static/css/fonts/fontawesome-webfont.woff2 differ diff --git a/docs/build/_static/css/fonts/lato-bold-italic.woff b/docs/build/_static/css/fonts/lato-bold-italic.woff new file mode 100644 index 0000000..dcfd641 Binary files /dev/null and b/docs/build/_static/css/fonts/lato-bold-italic.woff differ diff --git a/docs/build/_static/css/fonts/lato-bold-italic.woff2 b/docs/build/_static/css/fonts/lato-bold-italic.woff2 new file mode 100644 index 0000000..000d1d7 Binary files /dev/null and b/docs/build/_static/css/fonts/lato-bold-italic.woff2 differ diff --git a/docs/build/_static/css/fonts/lato-bold.woff b/docs/build/_static/css/fonts/lato-bold.woff new file mode 100644 index 0000000..e13cb3e Binary files /dev/null and b/docs/build/_static/css/fonts/lato-bold.woff differ diff --git a/docs/build/_static/css/fonts/lato-bold.woff2 b/docs/build/_static/css/fonts/lato-bold.woff2 new file mode 100644 index 0000000..84e9bc7 Binary files /dev/null and b/docs/build/_static/css/fonts/lato-bold.woff2 differ diff --git a/docs/build/_static/css/fonts/lato-normal-italic.woff b/docs/build/_static/css/fonts/lato-normal-italic.woff new file mode 100644 index 0000000..9e9fa8d Binary files /dev/null and b/docs/build/_static/css/fonts/lato-normal-italic.woff differ diff --git a/docs/build/_static/css/fonts/lato-normal-italic.woff2 b/docs/build/_static/css/fonts/lato-normal-italic.woff2 new file mode 100644 index 0000000..eb69b22 Binary files /dev/null and b/docs/build/_static/css/fonts/lato-normal-italic.woff2 differ diff --git a/docs/build/_static/css/fonts/lato-normal.woff b/docs/build/_static/css/fonts/lato-normal.woff new file mode 100644 index 0000000..426fdfb Binary files /dev/null and b/docs/build/_static/css/fonts/lato-normal.woff differ diff --git a/docs/build/_static/css/fonts/lato-normal.woff2 b/docs/build/_static/css/fonts/lato-normal.woff2 new file mode 100644 index 0000000..307edd9 Binary files /dev/null and b/docs/build/_static/css/fonts/lato-normal.woff2 differ diff --git a/docs/build/_static/css/theme.css b/docs/build/_static/css/theme.css new file mode 100644 index 0000000..069bf29 --- /dev/null +++ b/docs/build/_static/css/theme.css @@ -0,0 +1,4 @@ +html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search>a:hover{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file diff --git a/docs/build/_static/doctools.js b/docs/build/_static/doctools.js new file mode 100644 index 0000000..050fc82 --- /dev/null +++ b/docs/build/_static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/docs/build/_static/documentation_options.js b/docs/build/_static/documentation_options.js new file mode 100644 index 0000000..8494772 --- /dev/null +++ b/docs/build/_static/documentation_options.js @@ -0,0 +1,13 @@ +const DOCUMENTATION_OPTIONS = { + VERSION: '0.1 Beta 1', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/docs/build/_static/file.png b/docs/build/_static/file.png new file mode 100644 index 0000000..480c377 Binary files /dev/null and b/docs/build/_static/file.png differ diff --git a/docs/build/_static/jquery.js b/docs/build/_static/jquery.js new file mode 100644 index 0000000..7e34413 --- /dev/null +++ b/docs/build/_static/jquery.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/docs/build/_static/js/html5shiv.min.js b/docs/build/_static/js/html5shiv.min.js new file mode 100644 index 0000000..14d4014 --- /dev/null +++ b/docs/build/_static/js/html5shiv.min.js @@ -0,0 +1,4 @@ +/** +* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +*/ +!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/docs/build/_static/js/theme.js b/docs/build/_static/js/theme.js new file mode 100644 index 0000000..b9d08e9 --- /dev/null +++ b/docs/build/_static/js/theme.js @@ -0,0 +1 @@ +!function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return n[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=n,t.c=e,t.d=function(n,e,i){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:i})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(i,o,function(e){return n[e]}.bind(null,o));return i},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){t(1),n.exports=t(3)},function(n,e,t){(function(){var e="undefined"!=typeof window?window.jQuery:t(2);n.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(n){var t=this;void 0===n&&(n=!0),t.isRunning||(t.isRunning=!0,e((function(e){t.init(e),t.reset(),t.win.on("hashchange",t.reset),n&&t.win.on("scroll",(function(){t.linkScroll||t.winScroll||(t.winScroll=!0,requestAnimationFrame((function(){t.onScroll()})))})),t.win.on("resize",(function(){t.winResize||(t.winResize=!0,requestAnimationFrame((function(){t.onResize()})))})),t.onResize()})))},enableSticky:function(){this.enable(!0)},init:function(n){n(document);var e=this;this.navBar=n("div.wy-side-scroll:first"),this.win=n(window),n(document).on("click","[data-toggle='wy-nav-top']",(function(){n("[data-toggle='wy-nav-shift']").toggleClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift")})).on("click",".wy-menu-vertical .current ul li a",(function(){var t=n(this);n("[data-toggle='wy-nav-shift']").removeClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift"),e.toggleCurrent(t),e.hashChange()})).on("click","[data-toggle='rst-current-version']",(function(){n("[data-toggle='rst-versions']").toggleClass("shift-up")})),n("table.docutils:not(.field-list,.footnote,.citation)").wrap("
"),n("table.docutils.footnote").wrap("
"),n("table.docutils.citation").wrap("
"),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n(''),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}if(t.length>0){$(".wy-menu-vertical .current").removeClass("current").attr("aria-expanded","false"),t.addClass("current").attr("aria-expanded","true"),t.closest("li.toctree-l1").parent().addClass("current").attr("aria-expanded","true");for(let n=1;n<=10;n++)t.closest("li.toctree-l"+n).addClass("current").attr("aria-expanded","true");t[0].scrollIntoView()}}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current").attr("aria-expanded","false"),e.siblings().find("li.current").removeClass("current").attr("aria-expanded","false");var t=e.find("> ul li");t.length&&(t.removeClass("current").attr("aria-expanded","false"),e.toggleClass("current").attr("aria-expanded",(function(n,e){return"true"==e?"false":"true"})))}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/docs/build/_static/minus.png b/docs/build/_static/minus.png new file mode 100644 index 0000000..96bae7b Binary files /dev/null and b/docs/build/_static/minus.png differ diff --git a/docs/build/_static/plus.png b/docs/build/_static/plus.png new file mode 100644 index 0000000..55f1b73 Binary files /dev/null and b/docs/build/_static/plus.png differ diff --git a/docs/build/_static/pygments.css b/docs/build/_static/pygments.css new file mode 100644 index 0000000..fd7256b --- /dev/null +++ b/docs/build/_static/pygments.css @@ -0,0 +1,75 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #f8f8f8; } +.highlight .c { color: #3D7B7B; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #008000; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #9C6500 } /* Comment.Preproc */ +.highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +.highlight .gr { color: #E40000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #008400 } /* Generic.Inserted */ +.highlight .go { color: #717171 } /* Generic.Output */ +.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #008000 } /* Keyword.Pseudo */ +.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #B00040 } /* Keyword.Type */ +.highlight .m { color: #666666 } /* Literal.Number */ +.highlight .s { color: #BA2121 } /* Literal.String */ +.highlight .na { color: #687822 } /* Name.Attribute */ +.highlight .nb { color: #008000 } /* Name.Builtin */ +.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ +.highlight .no { color: #880000 } /* Name.Constant */ +.highlight .nd { color: #AA22FF } /* Name.Decorator */ +.highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #0000FF } /* Name.Function */ +.highlight .nl { color: #767600 } /* Name.Label */ +.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #19177C } /* Name.Variable */ +.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mb { color: #666666 } /* Literal.Number.Bin */ +.highlight .mf { color: #666666 } /* Literal.Number.Float */ +.highlight .mh { color: #666666 } /* Literal.Number.Hex */ +.highlight .mi { color: #666666 } /* Literal.Number.Integer */ +.highlight .mo { color: #666666 } /* Literal.Number.Oct */ +.highlight .sa { color: #BA2121 } /* Literal.String.Affix */ +.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ +.highlight .sc { color: #BA2121 } /* Literal.String.Char */ +.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */ +.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #BA2121 } /* Literal.String.Double */ +.highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ +.highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ +.highlight .sx { color: #008000 } /* Literal.String.Other */ +.highlight .sr { color: #A45A77 } /* Literal.String.Regex */ +.highlight .s1 { color: #BA2121 } /* Literal.String.Single */ +.highlight .ss { color: #19177C } /* Literal.String.Symbol */ +.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #0000FF } /* Name.Function.Magic */ +.highlight .vc { color: #19177C } /* Name.Variable.Class */ +.highlight .vg { color: #19177C } /* Name.Variable.Global */ +.highlight .vi { color: #19177C } /* Name.Variable.Instance */ +.highlight .vm { color: #19177C } /* Name.Variable.Magic */ +.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/build/_static/searchtools.js b/docs/build/_static/searchtools.js new file mode 100644 index 0000000..06704f7 --- /dev/null +++ b/docs/build/_static/searchtools.js @@ -0,0 +1,619 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for the full-text search. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [docname, title, anchor, descr, score, filename] + // and returns the new score. + /* + score: result => { + const [docname, title, anchor, descr, score, filename] = result + return score + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms, highlightTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + const contentRoot = document.documentElement.dataset.content_root; + + const [docName, title, anchor, descr, score, _filename] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = contentRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = contentRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; + } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) { + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + // highlight search terms in the description + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + } + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms, anchor) + ); + // highlight search terms in the summary + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + "Search finished, found ${resultCount} page(s) matching the search query." + ).replace('${resultCount}', resultCount); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms, + highlightTerms, +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms, highlightTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings +} + +/** + * Search Module + */ +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString, anchor) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + for (const removalQuery of [".headerlinks", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent) return docContent.textContent; + + console.warn( + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." + ); + return ""; + }, + + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); + }, + + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), + + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); + } + }, + + hasIndex: () => Search._index !== null, + + deferQuery: (query) => (Search._queued_query = query), + + stopPulse: () => (Search._pulse_status = -1), + + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { + Search._pulse_status = (Search._pulse_status + 1) % 4; + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: (query) => { + // create the required interface elements + const searchText = document.createElement("h2"); + searchText.textContent = _("Searching"); + const searchSummary = document.createElement("p"); + searchSummary.classList.add("search-summary"); + searchSummary.innerText = ""; + const searchList = document.createElement("ul"); + searchList.classList.add("search"); + + const out = document.getElementById("search-results"); + Search.title = out.appendChild(searchText); + Search.dots = Search.title.appendChild(document.createElement("span")); + Search.status = out.appendChild(searchSummary); + Search.output = out.appendChild(searchList); + + const searchProgress = document.getElementById("search-progress"); + // Some themes don't use the search progress node + if (searchProgress) { + searchProgress.innerText = _("Preparing search..."); + } + Search.startPulse(); + + // index already loaded, the browser was quick! + if (Search.hasIndex()) Search.query(query); + else Search.deferQuery(query); + }, + + _parseQuery: (query) => { + // stem the search terms and add them to the correct list + const stemmer = new Stemmer(); + const searchTerms = new Set(); + const excludedTerms = new Set(); + const highlightTerms = new Set(); + const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); + splitQuery(query.trim()).forEach((queryTerm) => { + const queryTermLower = queryTerm.toLowerCase(); + + // maybe skip this "word" + // stopwords array is from language_data.js + if ( + stopwords.indexOf(queryTermLower) !== -1 || + queryTerm.match(/^\d+$/) + ) + return; + + // stem the word + let word = stemmer.stemWord(queryTermLower); + // select the correct list + if (word[0] === "-") excludedTerms.add(word.substr(1)); + else { + searchTerms.add(word); + highlightTerms.add(queryTermLower); + } + }); + + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + + // console.debug("SEARCH: searching for:"); + // console.info("required: ", [...searchTerms]); + // console.info("excluded: ", [...excludedTerms]); + + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename]. + const normalResults = []; + const nonMainIndexResults = []; + + _removeChildren(document.getElementById("search-progress")); + + const queryLower = query.toLowerCase().trim(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + let score = Math.round(100 * queryLower.length / title.length) + normalResults.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } + } + } + } + + // lookup as object + objectTerms.forEach((term) => + normalResults.push(...Search.performObjectSearch(term, objectTerms)) + ); + + // lookup as search terms in fulltext + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + + // let the scorer override scores with a custom scoring function + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; + + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); + + // for debugging + //Search.lastresults = results.slice(); // a copy + // console.info("search results:", Search.lastresults); + + // print the results + _displayNextItem(results, results.length, searchTerms, highlightTerms); + }, + + /** + * search for object names + */ + performObjectSearch: (object, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const objects = Search._index.objects; + const objNames = Search._index.objnames; + const titles = Search._index.titles; + + const results = []; + + const objectSearchCallback = (prefix, match) => { + const name = match[4] + const fullname = (prefix ? prefix + "." : "") + name; + const fullnameLower = fullname.toLowerCase(); + if (fullnameLower.indexOf(object) < 0) return; + + let score = 0; + const parts = fullnameLower.split("."); + + // check for different match types: exact matches of full name or + // "last name" (i.e. last dotted part) + if (fullnameLower === object || parts.slice(-1)[0] === object) + score += Scorer.objNameMatch; + else if (parts.slice(-1)[0].indexOf(object) > -1) + score += Scorer.objPartialMatch; // matches in last name + + const objName = objNames[match[1]][2]; + const title = titles[match[0]]; + + // If more than one term searched for, we require other words to be + // found in the name/title/description + const otherTerms = new Set(objectTerms); + otherTerms.delete(object); + if (otherTerms.size > 0) { + const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); + if ( + [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) + ) + return; + } + + let anchor = match[3]; + if (anchor === "") anchor = fullname; + else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; + + const descr = objName + _(", in ") + title; + + // add custom score for some objects according to scorer + if (Scorer.objPrio.hasOwnProperty(match[2])) + score += Scorer.objPrio[match[2]]; + else score += Scorer.objPrioDefault; + + results.push([ + docNames[match[0]], + fullname, + "#" + anchor, + descr, + score, + filenames[match[0]], + ]); + }; + Object.keys(objects).forEach((prefix) => + objects[prefix].forEach((array) => + objectSearchCallback(prefix, array) + ) + ); + return results; + }, + + /** + * search for full-text terms in the index + */ + performTermsSearch: (searchTerms, excludedTerms) => { + // prepare search + const terms = Search._index.terms; + const titleTerms = Search._index.titleterms; + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + + const scoreMap = new Map(); + const fileMap = new Map(); + + // perform the search on the required terms + searchTerms.forEach((word) => { + const files = []; + const arr = [ + { files: terms[word], score: Scorer.term }, + { files: titleTerms[word], score: Scorer.title }, + ]; + // add support for partial matches + if (word.length > 2) { + const escapedWord = _escapeRegExp(word); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } + } + + // no match but word was a required one + if (arr.every((record) => record.files === undefined)) return; + + // found search word in contents + arr.forEach((record) => { + if (record.files === undefined) return; + + let recordFiles = record.files; + if (recordFiles.length === undefined) recordFiles = [recordFiles]; + files.push(...recordFiles); + + // set score for the word in each file + recordFiles.forEach((file) => { + if (!scoreMap.has(file)) scoreMap.set(file, {}); + scoreMap.get(file)[word] = record.score; + }); + }); + + // create the mapping + files.forEach((file) => { + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); + }); + }); + + // now check if the files don't contain excluded terms + const results = []; + for (const [file, wordList] of fileMap) { + // check if all requirements are matched + + // as search terms with length < 3 are discarded + const filteredTermCount = [...searchTerms].filter( + (term) => term.length > 2 + ).length; + if ( + wordList.length !== searchTerms.size && + wordList.length !== filteredTermCount + ) + continue; + + // ensure that none of the excluded terms is in the search result + if ( + [...excludedTerms].some( + (term) => + terms[term] === file || + titleTerms[term] === file || + (terms[term] || []).includes(file) || + (titleTerms[term] || []).includes(file) + ) + ) + break; + + // select one (max) score for the file. + const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); + // add result to the result list + results.push([ + docNames[file], + titles[file], + "", + null, + score, + filenames[file], + ]); + } + return results; + }, + + /** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words. + */ + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); + if (text === "") return null; + + const textLower = text.toLowerCase(); + const actualStartPosition = [...keywords] + .map((k) => textLower.indexOf(k.toLowerCase())) + .filter((i) => i > -1) + .slice(-1)[0]; + const startWithContext = Math.max(actualStartPosition - 120, 0); + + const top = startWithContext === 0 ? "" : "..."; + const tail = startWithContext + 240 < text.length ? "..." : ""; + + let summary = document.createElement("p"); + summary.classList.add("context"); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + + return summary; + }, +}; + +_ready(Search.init); diff --git a/docs/build/_static/sphinx_highlight.js b/docs/build/_static/sphinx_highlight.js new file mode 100644 index 0000000..997add3 --- /dev/null +++ b/docs/build/_static/sphinx_highlight.js @@ -0,0 +1,154 @@ +/* Highlighting utilities for Sphinx HTML documentation. */ +"use strict"; + +const SPHINX_HIGHLIGHT_ENABLED = true + +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + const rest = document.createTextNode(val.substr(pos + text.length)); + parent.insertBefore( + span, + parent.insertBefore( + rest, + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + /* There may be more occurrences of search term in this node. So call this + * function recursively on the remaining fragment. + */ + _highlight(rest, addItems, text, className); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + +/** + * Small JavaScript module for the documentation. + */ +const SphinxHighlight = { + + /** + * highlight the search words provided in localstorage in the text + */ + highlightSearchWords: () => { + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + + // get and clear terms from localstorage + const url = new URL(window.location); + const highlight = + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms") + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + + // get individual terms from highlight string + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle new file mode 100644 index 0000000..9af7875 Binary files /dev/null and b/docs/build/doctrees/environment.pickle differ diff --git a/docs/build/doctrees/index.doctree b/docs/build/doctrees/index.doctree new file mode 100644 index 0000000..0f3bd9c Binary files /dev/null and b/docs/build/doctrees/index.doctree differ diff --git a/docs/build/doctrees/manage.doctree b/docs/build/doctrees/manage.doctree new file mode 100644 index 0000000..fead54f Binary files /dev/null and b/docs/build/doctrees/manage.doctree differ diff --git a/docs/build/doctrees/modules.doctree b/docs/build/doctrees/modules.doctree new file mode 100644 index 0000000..8ed5337 Binary files /dev/null and b/docs/build/doctrees/modules.doctree differ diff --git a/docs/build/doctrees/pt_map.doctree b/docs/build/doctrees/pt_map.doctree new file mode 100644 index 0000000..74d5b2b Binary files /dev/null and b/docs/build/doctrees/pt_map.doctree differ diff --git a/docs/build/doctrees/pt_map.migrations.doctree b/docs/build/doctrees/pt_map.migrations.doctree new file mode 100644 index 0000000..c2e035b Binary files /dev/null and b/docs/build/doctrees/pt_map.migrations.doctree differ diff --git a/docs/build/doctrees/transport_accessibility.doctree b/docs/build/doctrees/transport_accessibility.doctree new file mode 100644 index 0000000..dc0e41e Binary files /dev/null and b/docs/build/doctrees/transport_accessibility.doctree differ diff --git a/docs/build/genindex.html b/docs/build/genindex.html new file mode 100644 index 0000000..f76ef93 --- /dev/null +++ b/docs/build/genindex.html @@ -0,0 +1,1543 @@ + + + + + + Index — Transport Accessibility 0.1 Beta 1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+
+ + +

Index

+ +
+ A + | B + | C + | D + | E + | F + | G + | H + | I + | L + | M + | N + | O + | P + | R + | S + | T + | V + | W + | Z + +
+

A

+ + + +
+ +

B

+ + + +
+ +

C

+ + + +
+ +

D

+ + + +
+ +

E

+ + + +
+ +

F

+ + + +
+ +

G

+ + + +
+ +

H

+ + +
+ +

I

+ + + +
+ +

L

+ + + +
+ +

M

+ + + +
+ +

N

+ + + +
+ +

O

+ + + +
+ +

P

+ + + +
    +
  • + pt_map.migrations.0002_alter_calendardate_unique_together_and_more + +
  • +
  • + pt_map.migrations.0003_alter_calendar_service_id_and_more + +
  • +
  • + pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more + +
  • +
  • + pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more + +
  • +
  • + pt_map.migrations.0006_alter_route_route_type + +
  • +
  • + pt_map.migrations.0007_location_translation_attribution_bookingrule + +
  • +
  • + pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more + +
  • +
  • + pt_map.migrations.0009_rename_faremedia_faremedium + +
  • +
  • + pt_map.migrations.0010_rename_location_locationgeojson + +
  • +
  • + pt_map.migrations.0011_rename_locationgeojson_locationsgeojson + +
  • +
  • + pt_map.models + +
  • +
  • + pt_map.tests + +
  • +
  • + pt_map.urls + +
  • +
  • + pt_map.views + +
  • +
  • PtMapConfig (class in pt_map.apps) +
  • +
+ +

R

+ + + +
+ +

S

+ + + +
+ +

T

+ + + +
+ +

V

+ + + +
+ +

W

+ + + +
+ +

Z

+ + +
+ + + +
+
+
+ +
+ +
+

© Copyright 2024, Jan Kiljanski and Johannes Randerath.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo new file mode 100644 index 0000000..9659fbc --- /dev/null +++ b/docs/build/html/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 6458309a707672152a253c0dc8b987c5 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/_sources/index.rst.txt b/docs/build/html/_sources/index.rst.txt new file mode 100644 index 0000000..f9e6f6f --- /dev/null +++ b/docs/build/html/_sources/index.rst.txt @@ -0,0 +1,20 @@ +.. Transport Accessibility documentation master file, created by + sphinx-quickstart on Mon Jun 3 13:49:21 2024. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to Transport Accessibility's documentation! +=================================================== + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + modules + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/build/html/_sources/manage.rst.txt b/docs/build/html/_sources/manage.rst.txt new file mode 100644 index 0000000..306faa1 --- /dev/null +++ b/docs/build/html/_sources/manage.rst.txt @@ -0,0 +1,7 @@ +manage module +============= + +.. automodule:: manage + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/modules.rst.txt b/docs/build/html/_sources/modules.rst.txt new file mode 100644 index 0000000..7ef501b --- /dev/null +++ b/docs/build/html/_sources/modules.rst.txt @@ -0,0 +1,9 @@ +transport_accessibility +======================= + +.. toctree:: + :maxdepth: 4 + + manage + pt_map + transport_accessibility diff --git a/docs/build/html/_sources/pt_map.migrations.rst.txt b/docs/build/html/_sources/pt_map.migrations.rst.txt new file mode 100644 index 0000000..0ee9b23 --- /dev/null +++ b/docs/build/html/_sources/pt_map.migrations.rst.txt @@ -0,0 +1,101 @@ +pt\_map.migrations package +========================== + +Submodules +---------- + +pt\_map.migrations.0001\_initial module +--------------------------------------- + +.. automodule:: pt_map.migrations.0001_initial + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0002\_alter\_calendardate\_unique\_together\_and\_more module +-------------------------------------------------------------------------------- + +.. automodule:: pt_map.migrations.0002_alter_calendardate_unique_together_and_more + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0003\_alter\_calendar\_service\_id\_and\_more module +----------------------------------------------------------------------- + +.. automodule:: pt_map.migrations.0003_alter_calendar_service_id_and_more + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0004\_alter\_agency\_agency\_id\_alter\_calendar\_service\_id\_and\_more module +-------------------------------------------------------------------------------------------------- + +.. automodule:: pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0005\_level\_remove\_stop\_tts\_stop\_name\_agency\_agency\_lang\_and\_more module +----------------------------------------------------------------------------------------------------- + +.. automodule:: pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0006\_alter\_route\_route\_type module +--------------------------------------------------------- + +.. automodule:: pt_map.migrations.0006_alter_route_route_type + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0007\_location\_translation\_attribution\_bookingrule module +------------------------------------------------------------------------------- + +.. automodule:: pt_map.migrations.0007_location_translation_attribution_bookingrule + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0008\_area\_farelegrule\_faremedia\_fareproduct\_and\_more module +------------------------------------------------------------------------------------ + +.. automodule:: pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0009\_rename\_faremedia\_faremedium module +------------------------------------------------------------- + +.. automodule:: pt_map.migrations.0009_rename_faremedia_faremedium + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0010\_rename\_location\_locationgeojson module +----------------------------------------------------------------- + +.. automodule:: pt_map.migrations.0010_rename_location_locationgeojson + :members: + :undoc-members: + :show-inheritance: + +pt\_map.migrations.0011\_rename\_locationgeojson\_locationsgeojson module +------------------------------------------------------------------------- + +.. automodule:: pt_map.migrations.0011_rename_locationgeojson_locationsgeojson + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: pt_map.migrations + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/pt_map.rst.txt b/docs/build/html/_sources/pt_map.rst.txt new file mode 100644 index 0000000..a67d9d9 --- /dev/null +++ b/docs/build/html/_sources/pt_map.rst.txt @@ -0,0 +1,84 @@ +pt\_map package +=============== + +Subpackages +----------- + +.. toctree:: + :maxdepth: 4 + + +Submodules +---------- + +pt\_map.admin module +-------------------- + +.. automodule:: pt_map.admin + :members: + :undoc-members: + :show-inheritance: + +pt\_map.apps module +------------------- + +.. automodule:: pt_map.apps + :members: + :undoc-members: + :show-inheritance: + +pt\_map.bridge module +--------------------- + +.. automodule:: pt_map.bridge + :members: + :undoc-members: + :show-inheritance: + +pt\_map.gtfs module +------------------- + +.. automodule:: pt_map.gtfs + :members: + :undoc-members: + :show-inheritance: + +pt\_map.models module +--------------------- + +.. automodule:: pt_map.models + :members: + :undoc-members: + :show-inheritance: + +pt\_map.tests module +-------------------- + +.. automodule:: pt_map.tests + :members: + :undoc-members: + :show-inheritance: + +pt\_map.urls module +------------------- + +.. automodule:: pt_map.urls + :members: + :undoc-members: + :show-inheritance: + +pt\_map.views module +-------------------- + +.. automodule:: pt_map.views + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: pt_map + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/transport_accessibility.rst.txt b/docs/build/html/_sources/transport_accessibility.rst.txt new file mode 100644 index 0000000..397ff47 --- /dev/null +++ b/docs/build/html/_sources/transport_accessibility.rst.txt @@ -0,0 +1,45 @@ +transport\_accessibility package +================================ + +Submodules +---------- + +transport\_accessibility.asgi module +------------------------------------ + +.. automodule:: transport_accessibility.asgi + :members: + :undoc-members: + :show-inheritance: + +transport\_accessibility.settings module +---------------------------------------- + +.. automodule:: transport_accessibility.settings + :members: + :undoc-members: + :show-inheritance: + +transport\_accessibility.urls module +------------------------------------ + +.. automodule:: transport_accessibility.urls + :members: + :undoc-members: + :show-inheritance: + +transport\_accessibility.wsgi module +------------------------------------ + +.. automodule:: transport_accessibility.wsgi + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: transport_accessibility + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js b/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 0000000..110eaa4 --- /dev/null +++ b/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,123 @@ +/* Compatability shim for jQuery and underscores.js. + * + * Copyright Sphinx contributors + * Released under the two clause BSD licence + */ + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return 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; +}; + +/** + * 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, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + 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); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/docs/build/html/_static/basic.css b/docs/build/html/_static/basic.css new file mode 100644 index 0000000..584e6e7 --- /dev/null +++ b/docs/build/html/_static/basic.css @@ -0,0 +1,925 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- 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%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +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; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- 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 p.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%; + margin-left: auto; + margin-right: auto; +} + +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 { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +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; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +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, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 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; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/docs/build/html/_static/css/badge_only.css b/docs/build/html/_static/css/badge_only.css new file mode 100644 index 0000000..cce1bdc --- /dev/null +++ b/docs/build/html/_static/css/badge_only.css @@ -0,0 +1 @@ +.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} \ No newline at end of file diff --git a/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff b/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff new file mode 100644 index 0000000..08a0c7c Binary files /dev/null and b/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff differ diff --git a/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 b/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 new file mode 100644 index 0000000..9660b4a Binary files /dev/null and b/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 differ diff --git a/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff b/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff new file mode 100644 index 0000000..1f1091a Binary files /dev/null and b/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff differ diff --git a/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 b/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 new file mode 100644 index 0000000..66d3943 Binary files /dev/null and b/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 differ diff --git a/docs/build/html/_static/css/fonts/fontawesome-webfont.eot b/docs/build/html/_static/css/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..266adfc Binary files /dev/null and b/docs/build/html/_static/css/fonts/fontawesome-webfont.eot differ diff --git a/docs/build/html/_static/css/fonts/fontawesome-webfont.svg b/docs/build/html/_static/css/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..61e8e50 --- /dev/null +++ b/docs/build/html/_static/css/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/build/html/_static/css/fonts/fontawesome-webfont.ttf b/docs/build/html/_static/css/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..8dc62af Binary files /dev/null and b/docs/build/html/_static/css/fonts/fontawesome-webfont.ttf differ diff --git a/docs/build/html/_static/css/fonts/fontawesome-webfont.woff b/docs/build/html/_static/css/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..2217507 Binary files /dev/null and b/docs/build/html/_static/css/fonts/fontawesome-webfont.woff differ diff --git a/docs/build/html/_static/css/fonts/fontawesome-webfont.woff2 b/docs/build/html/_static/css/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..935465b Binary files /dev/null and b/docs/build/html/_static/css/fonts/fontawesome-webfont.woff2 differ diff --git a/docs/build/html/_static/css/fonts/lato-bold-italic.woff b/docs/build/html/_static/css/fonts/lato-bold-italic.woff new file mode 100644 index 0000000..dcfd641 Binary files /dev/null and b/docs/build/html/_static/css/fonts/lato-bold-italic.woff differ diff --git a/docs/build/html/_static/css/fonts/lato-bold-italic.woff2 b/docs/build/html/_static/css/fonts/lato-bold-italic.woff2 new file mode 100644 index 0000000..000d1d7 Binary files /dev/null and b/docs/build/html/_static/css/fonts/lato-bold-italic.woff2 differ diff --git a/docs/build/html/_static/css/fonts/lato-bold.woff b/docs/build/html/_static/css/fonts/lato-bold.woff new file mode 100644 index 0000000..e13cb3e Binary files /dev/null and b/docs/build/html/_static/css/fonts/lato-bold.woff differ diff --git a/docs/build/html/_static/css/fonts/lato-bold.woff2 b/docs/build/html/_static/css/fonts/lato-bold.woff2 new file mode 100644 index 0000000..84e9bc7 Binary files /dev/null and b/docs/build/html/_static/css/fonts/lato-bold.woff2 differ diff --git a/docs/build/html/_static/css/fonts/lato-normal-italic.woff b/docs/build/html/_static/css/fonts/lato-normal-italic.woff new file mode 100644 index 0000000..9e9fa8d Binary files /dev/null and b/docs/build/html/_static/css/fonts/lato-normal-italic.woff differ diff --git a/docs/build/html/_static/css/fonts/lato-normal-italic.woff2 b/docs/build/html/_static/css/fonts/lato-normal-italic.woff2 new file mode 100644 index 0000000..eb69b22 Binary files /dev/null and b/docs/build/html/_static/css/fonts/lato-normal-italic.woff2 differ diff --git a/docs/build/html/_static/css/fonts/lato-normal.woff b/docs/build/html/_static/css/fonts/lato-normal.woff new file mode 100644 index 0000000..426fdfb Binary files /dev/null and b/docs/build/html/_static/css/fonts/lato-normal.woff differ diff --git a/docs/build/html/_static/css/fonts/lato-normal.woff2 b/docs/build/html/_static/css/fonts/lato-normal.woff2 new file mode 100644 index 0000000..307edd9 Binary files /dev/null and b/docs/build/html/_static/css/fonts/lato-normal.woff2 differ diff --git a/docs/build/html/_static/css/theme.css b/docs/build/html/_static/css/theme.css new file mode 100644 index 0000000..069bf29 --- /dev/null +++ b/docs/build/html/_static/css/theme.css @@ -0,0 +1,4 @@ +html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search>a:hover{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file diff --git a/docs/build/html/_static/doctools.js b/docs/build/html/_static/doctools.js new file mode 100644 index 0000000..050fc82 --- /dev/null +++ b/docs/build/html/_static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/docs/build/html/_static/documentation_options.js b/docs/build/html/_static/documentation_options.js new file mode 100644 index 0000000..d797bc8 --- /dev/null +++ b/docs/build/html/_static/documentation_options.js @@ -0,0 +1,13 @@ +const DOCUMENTATION_OPTIONS = { + VERSION: '0.2', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/docs/build/html/_static/file.png b/docs/build/html/_static/file.png new file mode 100644 index 0000000..480c377 Binary files /dev/null and b/docs/build/html/_static/file.png differ diff --git a/docs/build/html/_static/jquery.js b/docs/build/html/_static/jquery.js new file mode 100644 index 0000000..7e34413 --- /dev/null +++ b/docs/build/html/_static/jquery.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/docs/build/html/_static/js/html5shiv.min.js b/docs/build/html/_static/js/html5shiv.min.js new file mode 100644 index 0000000..14d4014 --- /dev/null +++ b/docs/build/html/_static/js/html5shiv.min.js @@ -0,0 +1,4 @@ +/** +* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +*/ +!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/docs/build/html/_static/js/theme.js b/docs/build/html/_static/js/theme.js new file mode 100644 index 0000000..b9d08e9 --- /dev/null +++ b/docs/build/html/_static/js/theme.js @@ -0,0 +1 @@ +!function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return n[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=n,t.c=e,t.d=function(n,e,i){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:i})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(i,o,function(e){return n[e]}.bind(null,o));return i},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){t(1),n.exports=t(3)},function(n,e,t){(function(){var e="undefined"!=typeof window?window.jQuery:t(2);n.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(n){var t=this;void 0===n&&(n=!0),t.isRunning||(t.isRunning=!0,e((function(e){t.init(e),t.reset(),t.win.on("hashchange",t.reset),n&&t.win.on("scroll",(function(){t.linkScroll||t.winScroll||(t.winScroll=!0,requestAnimationFrame((function(){t.onScroll()})))})),t.win.on("resize",(function(){t.winResize||(t.winResize=!0,requestAnimationFrame((function(){t.onResize()})))})),t.onResize()})))},enableSticky:function(){this.enable(!0)},init:function(n){n(document);var e=this;this.navBar=n("div.wy-side-scroll:first"),this.win=n(window),n(document).on("click","[data-toggle='wy-nav-top']",(function(){n("[data-toggle='wy-nav-shift']").toggleClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift")})).on("click",".wy-menu-vertical .current ul li a",(function(){var t=n(this);n("[data-toggle='wy-nav-shift']").removeClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift"),e.toggleCurrent(t),e.hashChange()})).on("click","[data-toggle='rst-current-version']",(function(){n("[data-toggle='rst-versions']").toggleClass("shift-up")})),n("table.docutils:not(.field-list,.footnote,.citation)").wrap("
"),n("table.docutils.footnote").wrap("
"),n("table.docutils.citation").wrap("
"),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n(''),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}if(t.length>0){$(".wy-menu-vertical .current").removeClass("current").attr("aria-expanded","false"),t.addClass("current").attr("aria-expanded","true"),t.closest("li.toctree-l1").parent().addClass("current").attr("aria-expanded","true");for(let n=1;n<=10;n++)t.closest("li.toctree-l"+n).addClass("current").attr("aria-expanded","true");t[0].scrollIntoView()}}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current").attr("aria-expanded","false"),e.siblings().find("li.current").removeClass("current").attr("aria-expanded","false");var t=e.find("> ul li");t.length&&(t.removeClass("current").attr("aria-expanded","false"),e.toggleClass("current").attr("aria-expanded",(function(n,e){return"true"==e?"false":"true"})))}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/docs/build/html/_static/minus.png b/docs/build/html/_static/minus.png new file mode 100644 index 0000000..96bae7b Binary files /dev/null and b/docs/build/html/_static/minus.png differ diff --git a/docs/build/html/_static/plus.png b/docs/build/html/_static/plus.png new file mode 100644 index 0000000..55f1b73 Binary files /dev/null and b/docs/build/html/_static/plus.png differ diff --git a/docs/build/html/_static/pygments.css b/docs/build/html/_static/pygments.css new file mode 100644 index 0000000..fd7256b --- /dev/null +++ b/docs/build/html/_static/pygments.css @@ -0,0 +1,75 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #f8f8f8; } +.highlight .c { color: #3D7B7B; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #008000; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #9C6500 } /* Comment.Preproc */ +.highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +.highlight .gr { color: #E40000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #008400 } /* Generic.Inserted */ +.highlight .go { color: #717171 } /* Generic.Output */ +.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #008000 } /* Keyword.Pseudo */ +.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #B00040 } /* Keyword.Type */ +.highlight .m { color: #666666 } /* Literal.Number */ +.highlight .s { color: #BA2121 } /* Literal.String */ +.highlight .na { color: #687822 } /* Name.Attribute */ +.highlight .nb { color: #008000 } /* Name.Builtin */ +.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ +.highlight .no { color: #880000 } /* Name.Constant */ +.highlight .nd { color: #AA22FF } /* Name.Decorator */ +.highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #0000FF } /* Name.Function */ +.highlight .nl { color: #767600 } /* Name.Label */ +.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #19177C } /* Name.Variable */ +.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mb { color: #666666 } /* Literal.Number.Bin */ +.highlight .mf { color: #666666 } /* Literal.Number.Float */ +.highlight .mh { color: #666666 } /* Literal.Number.Hex */ +.highlight .mi { color: #666666 } /* Literal.Number.Integer */ +.highlight .mo { color: #666666 } /* Literal.Number.Oct */ +.highlight .sa { color: #BA2121 } /* Literal.String.Affix */ +.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ +.highlight .sc { color: #BA2121 } /* Literal.String.Char */ +.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */ +.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #BA2121 } /* Literal.String.Double */ +.highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ +.highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ +.highlight .sx { color: #008000 } /* Literal.String.Other */ +.highlight .sr { color: #A45A77 } /* Literal.String.Regex */ +.highlight .s1 { color: #BA2121 } /* Literal.String.Single */ +.highlight .ss { color: #19177C } /* Literal.String.Symbol */ +.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #0000FF } /* Name.Function.Magic */ +.highlight .vc { color: #19177C } /* Name.Variable.Class */ +.highlight .vg { color: #19177C } /* Name.Variable.Global */ +.highlight .vi { color: #19177C } /* Name.Variable.Instance */ +.highlight .vm { color: #19177C } /* Name.Variable.Magic */ +.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/build/html/_static/searchtools.js b/docs/build/html/_static/searchtools.js new file mode 100644 index 0000000..06704f7 --- /dev/null +++ b/docs/build/html/_static/searchtools.js @@ -0,0 +1,619 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for the full-text search. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [docname, title, anchor, descr, score, filename] + // and returns the new score. + /* + score: result => { + const [docname, title, anchor, descr, score, filename] = result + return score + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms, highlightTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + const contentRoot = document.documentElement.dataset.content_root; + + const [docName, title, anchor, descr, score, _filename] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = contentRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = contentRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; + } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) { + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + // highlight search terms in the description + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + } + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms, anchor) + ); + // highlight search terms in the summary + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + "Search finished, found ${resultCount} page(s) matching the search query." + ).replace('${resultCount}', resultCount); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms, + highlightTerms, +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms, highlightTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings +} + +/** + * Search Module + */ +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString, anchor) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + for (const removalQuery of [".headerlinks", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent) return docContent.textContent; + + console.warn( + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." + ); + return ""; + }, + + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); + }, + + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), + + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); + } + }, + + hasIndex: () => Search._index !== null, + + deferQuery: (query) => (Search._queued_query = query), + + stopPulse: () => (Search._pulse_status = -1), + + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { + Search._pulse_status = (Search._pulse_status + 1) % 4; + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: (query) => { + // create the required interface elements + const searchText = document.createElement("h2"); + searchText.textContent = _("Searching"); + const searchSummary = document.createElement("p"); + searchSummary.classList.add("search-summary"); + searchSummary.innerText = ""; + const searchList = document.createElement("ul"); + searchList.classList.add("search"); + + const out = document.getElementById("search-results"); + Search.title = out.appendChild(searchText); + Search.dots = Search.title.appendChild(document.createElement("span")); + Search.status = out.appendChild(searchSummary); + Search.output = out.appendChild(searchList); + + const searchProgress = document.getElementById("search-progress"); + // Some themes don't use the search progress node + if (searchProgress) { + searchProgress.innerText = _("Preparing search..."); + } + Search.startPulse(); + + // index already loaded, the browser was quick! + if (Search.hasIndex()) Search.query(query); + else Search.deferQuery(query); + }, + + _parseQuery: (query) => { + // stem the search terms and add them to the correct list + const stemmer = new Stemmer(); + const searchTerms = new Set(); + const excludedTerms = new Set(); + const highlightTerms = new Set(); + const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); + splitQuery(query.trim()).forEach((queryTerm) => { + const queryTermLower = queryTerm.toLowerCase(); + + // maybe skip this "word" + // stopwords array is from language_data.js + if ( + stopwords.indexOf(queryTermLower) !== -1 || + queryTerm.match(/^\d+$/) + ) + return; + + // stem the word + let word = stemmer.stemWord(queryTermLower); + // select the correct list + if (word[0] === "-") excludedTerms.add(word.substr(1)); + else { + searchTerms.add(word); + highlightTerms.add(queryTermLower); + } + }); + + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + + // console.debug("SEARCH: searching for:"); + // console.info("required: ", [...searchTerms]); + // console.info("excluded: ", [...excludedTerms]); + + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename]. + const normalResults = []; + const nonMainIndexResults = []; + + _removeChildren(document.getElementById("search-progress")); + + const queryLower = query.toLowerCase().trim(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + let score = Math.round(100 * queryLower.length / title.length) + normalResults.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } + } + } + } + + // lookup as object + objectTerms.forEach((term) => + normalResults.push(...Search.performObjectSearch(term, objectTerms)) + ); + + // lookup as search terms in fulltext + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + + // let the scorer override scores with a custom scoring function + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; + + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); + + // for debugging + //Search.lastresults = results.slice(); // a copy + // console.info("search results:", Search.lastresults); + + // print the results + _displayNextItem(results, results.length, searchTerms, highlightTerms); + }, + + /** + * search for object names + */ + performObjectSearch: (object, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const objects = Search._index.objects; + const objNames = Search._index.objnames; + const titles = Search._index.titles; + + const results = []; + + const objectSearchCallback = (prefix, match) => { + const name = match[4] + const fullname = (prefix ? prefix + "." : "") + name; + const fullnameLower = fullname.toLowerCase(); + if (fullnameLower.indexOf(object) < 0) return; + + let score = 0; + const parts = fullnameLower.split("."); + + // check for different match types: exact matches of full name or + // "last name" (i.e. last dotted part) + if (fullnameLower === object || parts.slice(-1)[0] === object) + score += Scorer.objNameMatch; + else if (parts.slice(-1)[0].indexOf(object) > -1) + score += Scorer.objPartialMatch; // matches in last name + + const objName = objNames[match[1]][2]; + const title = titles[match[0]]; + + // If more than one term searched for, we require other words to be + // found in the name/title/description + const otherTerms = new Set(objectTerms); + otherTerms.delete(object); + if (otherTerms.size > 0) { + const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); + if ( + [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) + ) + return; + } + + let anchor = match[3]; + if (anchor === "") anchor = fullname; + else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; + + const descr = objName + _(", in ") + title; + + // add custom score for some objects according to scorer + if (Scorer.objPrio.hasOwnProperty(match[2])) + score += Scorer.objPrio[match[2]]; + else score += Scorer.objPrioDefault; + + results.push([ + docNames[match[0]], + fullname, + "#" + anchor, + descr, + score, + filenames[match[0]], + ]); + }; + Object.keys(objects).forEach((prefix) => + objects[prefix].forEach((array) => + objectSearchCallback(prefix, array) + ) + ); + return results; + }, + + /** + * search for full-text terms in the index + */ + performTermsSearch: (searchTerms, excludedTerms) => { + // prepare search + const terms = Search._index.terms; + const titleTerms = Search._index.titleterms; + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + + const scoreMap = new Map(); + const fileMap = new Map(); + + // perform the search on the required terms + searchTerms.forEach((word) => { + const files = []; + const arr = [ + { files: terms[word], score: Scorer.term }, + { files: titleTerms[word], score: Scorer.title }, + ]; + // add support for partial matches + if (word.length > 2) { + const escapedWord = _escapeRegExp(word); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } + } + + // no match but word was a required one + if (arr.every((record) => record.files === undefined)) return; + + // found search word in contents + arr.forEach((record) => { + if (record.files === undefined) return; + + let recordFiles = record.files; + if (recordFiles.length === undefined) recordFiles = [recordFiles]; + files.push(...recordFiles); + + // set score for the word in each file + recordFiles.forEach((file) => { + if (!scoreMap.has(file)) scoreMap.set(file, {}); + scoreMap.get(file)[word] = record.score; + }); + }); + + // create the mapping + files.forEach((file) => { + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); + }); + }); + + // now check if the files don't contain excluded terms + const results = []; + for (const [file, wordList] of fileMap) { + // check if all requirements are matched + + // as search terms with length < 3 are discarded + const filteredTermCount = [...searchTerms].filter( + (term) => term.length > 2 + ).length; + if ( + wordList.length !== searchTerms.size && + wordList.length !== filteredTermCount + ) + continue; + + // ensure that none of the excluded terms is in the search result + if ( + [...excludedTerms].some( + (term) => + terms[term] === file || + titleTerms[term] === file || + (terms[term] || []).includes(file) || + (titleTerms[term] || []).includes(file) + ) + ) + break; + + // select one (max) score for the file. + const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); + // add result to the result list + results.push([ + docNames[file], + titles[file], + "", + null, + score, + filenames[file], + ]); + } + return results; + }, + + /** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words. + */ + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); + if (text === "") return null; + + const textLower = text.toLowerCase(); + const actualStartPosition = [...keywords] + .map((k) => textLower.indexOf(k.toLowerCase())) + .filter((i) => i > -1) + .slice(-1)[0]; + const startWithContext = Math.max(actualStartPosition - 120, 0); + + const top = startWithContext === 0 ? "" : "..."; + const tail = startWithContext + 240 < text.length ? "..." : ""; + + let summary = document.createElement("p"); + summary.classList.add("context"); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + + return summary; + }, +}; + +_ready(Search.init); diff --git a/docs/build/html/_static/sphinx_highlight.js b/docs/build/html/_static/sphinx_highlight.js new file mode 100644 index 0000000..997add3 --- /dev/null +++ b/docs/build/html/_static/sphinx_highlight.js @@ -0,0 +1,154 @@ +/* Highlighting utilities for Sphinx HTML documentation. */ +"use strict"; + +const SPHINX_HIGHLIGHT_ENABLED = true + +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + const rest = document.createTextNode(val.substr(pos + text.length)); + parent.insertBefore( + span, + parent.insertBefore( + rest, + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + /* There may be more occurrences of search term in this node. So call this + * function recursively on the remaining fragment. + */ + _highlight(rest, addItems, text, className); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + +/** + * Small JavaScript module for the documentation. + */ +const SphinxHighlight = { + + /** + * highlight the search words provided in localstorage in the text + */ + highlightSearchWords: () => { + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + + // get and clear terms from localstorage + const url = new URL(window.location); + const highlight = + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms") + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + + // get individual terms from highlight string + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html new file mode 100644 index 0000000..f720e1f --- /dev/null +++ b/docs/build/html/genindex.html @@ -0,0 +1,1534 @@ + + + + + + Index — Transport Accessibility 0.2 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+
+ + +

Index

+ +
+ A + | B + | C + | D + | E + | F + | G + | H + | I + | L + | M + | N + | O + | P + | R + | S + | T + | U + | V + | W + | Z + +
+

A

+ + + +
+ +

B

+ + + +
+ +

C

+ + + +
+ +

D

+ + + +
+ +

E

+ + + +
+ +

F

+ + + +
+ +

G

+ + + +
+ +

H

+ + +
+ +

I

+ + + +
+ +

L

+ + + +
+ +

M

+ + + +
+ +

N

+ + + +
+ +

O

+ + + +
+ +

P

+ + + +
+ +

R

+ + + +
+ +

S

+ + + +
+ +

T

+ + + +
+ +

U

+ + +
+ +

V

+ + + +
+ +

W

+ + + +
+ +

Z

+ + +
+ + + +
+
+
+ +
+ +
+

© Copyright 2024, Jan Kiljanski and Johannes Randerath.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/build/html/index.html b/docs/build/html/index.html new file mode 100644 index 0000000..cdd1bd6 --- /dev/null +++ b/docs/build/html/index.html @@ -0,0 +1,128 @@ + + + + + + + Welcome to Transport Accessibility’s documentation! — Transport Accessibility 0.2 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Welcome to Transport Accessibility’s documentation!

+ +
+
+

Indices and tables

+ +
+ + +
+
+
+ +
+ +
+

© Copyright 2024, Jan Kiljanski and Johannes Randerath.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/build/html/manage.html b/docs/build/html/manage.html new file mode 100644 index 0000000..d9c63aa --- /dev/null +++ b/docs/build/html/manage.html @@ -0,0 +1,127 @@ + + + + + + + manage module — Transport Accessibility 0.2 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

manage module

+

Django’s command-line utility for administrative tasks.

+
+
+manage.main()
+

Run administrative tasks.

+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/build/html/modules.html b/docs/build/html/modules.html new file mode 100644 index 0000000..b2a7662 --- /dev/null +++ b/docs/build/html/modules.html @@ -0,0 +1,734 @@ + + + + + + + transport_accessibility — Transport Accessibility 0.2 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

transport_accessibility

+
+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv new file mode 100644 index 0000000..34ce42a Binary files /dev/null and b/docs/build/html/objects.inv differ diff --git a/docs/build/html/pt_map.html b/docs/build/html/pt_map.html new file mode 100644 index 0000000..ea32384 --- /dev/null +++ b/docs/build/html/pt_map.html @@ -0,0 +1,4328 @@ + + + + + + + pt_map package — Transport Accessibility 0.2 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

pt_map package

+
+

Subpackages

+
+
+
+
+

Submodules

+
+
+

pt_map.admin module

+
+
+

pt_map.apps module

+
+
+class pt_map.apps.PtMapConfig(app_name, app_module)
+

Bases: AppConfig

+
+
+default_auto_field = 'django.db.models.BigAutoField'
+
+ +
+
+name = 'pt_map'
+
+ +
+ +
+
+

pt_map.bridge module

+
+

Bridge

+

Bridge between Django with its models and database and gtfs.GTFS as intermediate object for File IO.

+
+

Contents

+
+
+

Constants

+
+
reversed_file_mappingdict(str,str)

Map CamelCased filenames to ‘_’-separated

+
+
class_namesdict{str,str}

Map CamelCase, singularized class names to pluralized, snake_cased file names

+
+
primary_keysdict{str, (str or None)}

For all pt_map.models, map primary keys if applicable

+
+
foreign_keys

For all pt_map.models, map foreign keys if any. Also ordered for model creation without foreign reference conflicts.

+
+
time_deltaint

Unix time for Jan 1, 2024. To be used to calculate time prefix strings.

+
+
+
+
+

Functions

+
+
to_camel_case(s):

Converts ‘_’-separated str to CamelCase with capital first letter

+
+
standardize_time(time_str):

Converts str in unicode time format to %H:%M:%S format with normalized 24 hour time

+
+
is_NaN(v):

Checks if given variable is either a str expressing NaN or NaN as object

+
+
stdz(v):

Standardize date and time formats

+
+
gtfs_to_db(g):

Write an existing gtfs.GTFS object to the database using the GTFS compliant models

+
+
db_to_gtfs(q, folder_path):

Convert list of query sets to gtfs.GTFS object and write to specified folder if validation for GTFS compliance passes.

+
+
+
+
+
+
+pt_map.bridge.db_to_gtfs(q: list[QuerySet], folder_path: str = '')
+

Convert given list of query sets to gtfs.GTFS object

+
+
Parameters:
+
    +
  • q (list[django.db.models.query.QuerySet]) – List of QuerySets containing the retrieved data to be Converted

  • +
  • folder_path (str) – path to be set as the results folder_path instance variable

  • +
+
+
Returns:
+

object containing the queried data

+
+
Return type:
+

gtfs.GTFS

+
+
+
+ +
+
+pt_map.bridge.gtfs_to_db(g: GTFS)
+

Given a gtfs.GTFS object, write GTFS-compliantly to db by creating the correct models

+
+
Parameters:
+

g (gtfs.GTFS) – GTFS object to be saved to db

+
+
+
+ +
+
+pt_map.bridge.is_NaN(v)
+
+
Returns:
+

    +
  • True – If v is either a str representing NaN or NaN as an object

  • +
  • False – Otherwise

  • +
+

+
+
+
+ +
+
+pt_map.bridge.standardize_time(time_str: str)
+

Convert time str to standardized %H:%M:%S format.

+
+
Parameters:
+

time_str (str) – str encoding time

+
+
Returns:
+

str in format ‘%H

+
+
Return type:
+

%M:%S’

+
+
+
+ +
+
+pt_map.bridge.stdz(v, m: Model, f: str)
+

If f is a time or date field, convert to a format our db can easily work with. +If f is a foreign key

+
+
Parameters:
+
    +
  • v (object) – object to be standardized

  • +
  • m (django.db.models.Model) – model to be written to

  • +
  • f (str) – field name in question

  • +
+
+
Returns:
+

    +
  • Converted str – If m.f is a DateField or a TimeField

  • +
  • Unchanged str – Otherwise

  • +
+

+
+
+
+ +
+
+pt_map.bridge.toCamelCase(s: str)
+

Convert ‘_’-separated str to CamelCase with the first letter capitalized.

+
+
Parameters:
+

s (str) – ‘_’-separated string

+
+
Returns:
+

CamelCased str, first letter capitalized

+
+
Return type:
+

str

+
+
+
+ +
+
+pt_map.bridge.to_snake_case(name)
+

Convert CamelCase to snake_case.

+
+
Parameters:
+

name (str) – str in CamelCase

+
+
Return type:
+

Str in snake_case

+
+
+
+ +
+
+pt_map.bridge.unqfk(ts, fk)
+

Primary keys of imported data and in the database are likely to overlap. To avoid this, the current time in seconds since Jan 1, 2024 is added as a prefix. +Foreign key references must know of this new key so they are processed in the same way. To make this possible, we use the same time in seconds for all objects.

+
+
Parameters:
+
    +
  • ts (str) – time in seconds to be prepended

  • +
  • fk (primary or foreign key to be processed.)

  • +
+
+
Return type:
+

Str with prefix

+
+
+
+ +
+
+

pt_map.gtfs module

+
+
+class pt_map.gtfs.GTFS(folder_path: str = '', dfs: dict[str, DataFrame] = None)
+

Bases: object

+

DataFrame based representation of the GTFS standard, able to read folder of GTFS files, validate a GTFS object for accordance with the standard and write its data to a GTFS folder.

+
+
+folder_path
+

Path to folder where the data is read from and/or to be written to

+
+
Type:
+

str

+
+
+
+ +
+
+agency, stops, routes, trips, stop_times, calendar, calendar_dates, fare_attributes, fare_rules, timeframes, fare_media, fare_products, fare_leg_rules, fare_transfer_rules, areas, stop_areas, networks, route_networks, shapes, frequencies, transfers, pathways, levels, location_groups, location_group_stops, locations_geojson, booking_rules, translations, feed_info, attributions
+

Objects representing the data in the corresponding .txt/.geojson files in the GTFS Reference.

+
+
Type:
+

GTFSFile

+
+
+
+ +
+
+errors
+

Human readable messages explaining why a validation failed if it did.

+
+
Type:
+

list[str]

+
+
+
+ +
+
+get_files():
+

Return all member objects of type GTFSFile

+
+ +
+
+get_fields(name):
+

Return all fields present in a given instance of a GTFSFile

+
+ +
+
+export(path, dirname):
+

Save all GTFS data represented by the current instance as a folder of files corresponding to the GTFS Reference.

+
+ +
+
+validate():
+

For all GTFSFile member objects, validate if they individually conmply with GTFS.

+
+ +
+
+validate_required_fields(df, required_fields):
+

Check if a DataFrame contains all required fields according to the GTFS reference for the file it represents.

+
+ +
+
+validate_optional_fields(df, optional_fields):
+

Check if a DataFrame does not contain any unexpected fields, not compliant with the GTFS reference for the file it represents.

+
+ +
+
+validate_lat_lon(df):
+

Check if a Stop is correctly mapped using geographical coordinates.

+
+ +
+
+class Agency(folder_path, dfs)
+

Bases: GTFSFile

+

Represents agency.txt from the GTFS reference

+
+ +
+
+class Areas(folder_path, dfs)
+

Bases: GTFSFile

+

Represents areas.txt from the GTFS reference

+
+ +
+
+class Attributions(folder_path, dfs)
+

Bases: GTFSFile

+

Represents attributions.txt from the GTFS reference

+
+ +
+
+class BookingRules(folder_path, dfs)
+

Bases: GTFSFile

+

Represents booking_rules.txt from the GTFS reference

+
+ +
+
+class Calendar(folder_path, dfs)
+

Bases: GTFSFile

+

Represents calendar.txt from the GTFS reference

+
+ +
+
+class CalendarDates(folder_path, dfs)
+

Bases: GTFSFile

+

Represents calendar_dates.txt from the GTFS reference

+
+ +
+
+class FareAttributes(folder_path, dfs)
+

Bases: GTFSFile

+

Represents fare_attributes.txt from the GTFS reference

+
+ +
+
+class FareLegRules(folder_path, dfs)
+

Bases: GTFSFile

+

Represents fare_leg_rules.txt from the GTFS reference

+
+ +
+
+class FareMedia(folder_path, dfs)
+

Bases: GTFSFile

+

Represents fare_media.txt from the GTFS reference

+
+ +
+
+class FareProducts(folder_path, dfs)
+

Bases: GTFSFile

+

Represents fare_products.txt from the GTFS reference

+
+ +
+
+class FareRules(folder_path, dfs)
+

Bases: GTFSFile

+

Represents fare_rules.txt from the GTFS reference

+
+ +
+
+class FareTransferRules(folder_path, dfs)
+

Bases: GTFSFile

+

Represents fare_transfer_rules.txt from the GTFS reference

+
+ +
+
+class FeedInfo(folder_path, dfs)
+

Bases: GTFSFile

+

Represents feed_info.txt from the GTFS reference

+
+ +
+
+class Frequencies(folder_path, dfs)
+

Bases: GTFSFile

+

Represents frequencies.txt from the GTFS reference

+
+ +
+
+class GTFSFile(folder_path, file_name, dfs)
+

Bases: object

+

All given fields and their corresponding values are stored as a DataFrame.

+
+
+file_name
+

Extension-less name of the corresponding .txt file from the GTFS Reference

+
+
Type:
+

str

+
+
+
+ +
+
+folder_path
+

Folder to read data from or potentially write it to

+
+
Type:
+

str

+
+
+
+ +
+
+data
+

All csv data from the corresponding .txt file represented as a Pandas DataFrame

+
+
Type:
+

pd.DataFrame

+
+
+
+ +
+
+load_data(dfs):
+

Load data from list of DataFrames if given else read it from the corresponding .txt file in csv format.

+
+ +
+
+load_data(dfs)
+

Fill the data attribute with GTFS data either with a given DataFrame or from the corresponding csv

+
+
Parameters:
+

dfs (dict[str, pd.DataFrame]) – Dict of dataframes mapped to the corresponding file names. If given, the corresponding DataFrame is returned if the key exists else an empty DataFrame

+
+
+
+ +
+ +
+
+class Levels(folder_path, dfs)
+

Bases: GTFSFile

+

Represents levels.txt from the GTFS reference

+
+ +
+
+class LocationGroupStops(folder_path, dfs)
+

Bases: GTFSFile

+

Represents location_group_stops.txt from the GTFS reference

+
+ +
+
+class LocationGroups(folder_path, dfs)
+

Bases: GTFSFile

+

Represents location_groups.txt from the GTFS reference

+
+ +
+
+class LocationsGeojson(folder_path, dfs)
+

Bases: GTFSFile

+

Represents locations.geojson from the GTFS reference

+
+
+load_data()
+

Fill the data attribute with GTFS data either with a given DataFrame or from the corresponding csv

+
+
Parameters:
+

dfs (dict[str, pd.DataFrame]) – Dict of dataframes mapped to the corresponding file names. If given, the corresponding DataFrame is returned if the key exists else an empty DataFrame

+
+
+
+ +
+ +
+
+class Networks(folder_path, dfs)
+

Bases: GTFSFile

+

Represents networks.txt from the GTFS reference

+
+ +
+
+class Pathways(folder_path, dfs)
+

Bases: GTFSFile

+

Represents pathways.txt from the GTFS reference

+
+ +
+
+class RouteNetworks(folder_path, dfs)
+

Bases: GTFSFile

+

Represents route_networks.txt from the GTFS reference

+
+ +
+
+class Routes(folder_path, dfs)
+

Bases: GTFSFile

+

Represents routes.txt from the GTFS reference

+
+ +
+
+class Shapes(folder_path, dfs)
+

Bases: GTFSFile

+

Represents shapes.txt from the GTFS reference

+
+ +
+
+class StopAreas(folder_path, dfs)
+

Bases: GTFSFile

+

Represents stop_areas.txt from the GTFS reference

+
+ +
+
+class StopTimes(folder_path, dfs)
+

Bases: GTFSFile

+

Represents stop_times.txt from the GTFS reference

+
+ +
+
+class Stops(folder_path, dfs)
+

Bases: GTFSFile

+

Represents stops.txt from the GTFS reference

+
+ +
+
+class Timeframes(folder_path, dfs)
+

Bases: GTFSFile

+

Represents timeframes.txt from the GTFS reference

+
+ +
+
+class Transfers(folder_path, dfs)
+

Bases: GTFSFile

+

Represents transfers.txt from the GTFS reference

+
+ +
+
+class Translations(folder_path, dfs)
+

Bases: GTFSFile

+

Represents translations.txt from the GTFS reference

+
+ +
+
+class Trips(folder_path, dfs)
+

Bases: GTFSFile

+

Represents trips.txt from the GTFS reference

+
+ +
+
+export(path=None, dirname='')
+

Save this object’s data to files as specified by GTFS.

+
+
Parameters:
+
    +
  • path (str) – parent directory where to save the files, defaults to the objects folder_path property

  • +
  • dirname (str) – If specified, subdirectory to create or use inside path. Default behaviour is to save directly to path.

  • +
+
+
+
+ +
+
+get_fields(name)
+

Given the name of a file specified in the GTFS specification, return all fields present in the data.

+
+
Parameters:
+

name (str) – name of a file as specified by GTFS (ommiting the .txt/.geojson extension)

+
+
Returns:
+

a list of all the fields present in the datastream of the specified file

+
+
Return type:
+

list[pd.core.indexes.range.RangeIndex]

+
+
+
+ +
+
+get_files()
+

Get all GTFSFile object

+
+
Returns:
+

All member objects of type GTFSFile

+
+
Return type:
+

list[GTFSFile]

+
+
+
+ +
+
+validate()
+

Check this object’s data for compliance with the GTFS reference. Resets self.errors and stores human readable error messages to it.

+
+
Returns:
+

List of human readable error messages, also saved to self.errors, if any, else None.

+
+
Return type:
+

list[str]

+
+
+
+ +
+
+validate_agency()
+

Check Agency object for compliance with the GTFS reference.

+
+ +
+
+validate_areas()
+

Check Areas object for compliance with the GTFS reference.

+
+ +
+
+validate_attributions()
+

Check Attributions object for compliance with the GTFS reference.

+
+ +
+
+validate_booking_rules()
+

Check BookingRules object for compliance with the GTFS reference.

+
+ +
+
+validate_calendar()
+

Check Calendar object for compliance with the GTFS reference.

+
+ +
+
+validate_calendar_dates()
+

Check CalendarDates object for compliance with the GTFS reference.

+
+ +
+
+validate_fare_attributes()
+

Check FareAttributes object for compliance with the GTFS reference.

+
+ +
+
+validate_fare_leg_rules()
+

Check FareLegRules object for compliance with the GTFS reference.

+
+ +
+
+validate_fare_media()
+

Check FareMedia object for compliance with the GTFS reference.

+
+ +
+
+validate_fare_products()
+

Check FareProducts object for compliance with the GTFS reference.

+
+ +
+
+validate_fare_rules()
+

Check FareRules object for compliance with the GTFS reference.

+
+ +
+
+validate_fare_transfer_rules()
+

Check FareTransferRules object for compliance with the GTFS reference.

+
+ +
+
+validate_feed_info()
+

Check FeedInfo object for compliance with the GTFS reference.

+
+ +
+
+validate_frequencies()
+

Check Frequencies object for compliance with the GTFS reference.

+
+ +
+
+validate_lat_lon(df, file_name='stops.txt', prefix='stop')
+

Check if a DataFrame contains either no coordinates of a given prefix or both latitude and longitude.

+
+
Parameters:
+
    +
  • df (pd.DataFrame) – DataFrame to be checked

  • +
  • file_name (str) – Name to be printed in error message if validation fails

  • +
  • prefix (str) – Prefix to be used for coordinate fileds. Expands to {prefix}_lat and {prefix}_lon

  • +
+
+
+
+ +
+
+validate_levels()
+

Check Levels object for compliance with the GTFS reference.

+
+ +
+
+validate_location_group_stops()
+

Check LocationGroupStops object for compliance with the GTFS reference.

+
+ +
+
+validate_location_groups()
+

Check Agency LocationGroups for compliance with the GTFS reference.

+
+ +
+
+validate_locations_geojson()
+

Check LocationsGeojson object for compliance with the GTFS reference.

+
+ +
+
+validate_networks()
+

Check Networks object for compliance with the GTFS reference.

+
+ +
+
+validate_optional_fields(df, optional_fields, file_name)
+

Check if DataFrame contains fields not specified in the GTFS Reference.

+
+
Parameters:
+
    +
  • df (pd.DataFrame) – DataFrame to be checked

  • +
  • optional_fields (list[str]) – list of field names allowed in df

  • +
  • file_name (str) – Name to be printed in error message if validation fails

  • +
+
+
+
+ +
+
+validate_pathways()
+

Check Pathways object for compliance with the GTFS reference.

+
+ +
+
+validate_required_fields(df, required_fields, file_name)
+

Check if a DataFrame contains all required fields according to the GTFS reference for the file it represents.

+
+
Parameters:
+
    +
  • df (pd.DataFrame) – DataFrame to be checked

  • +
  • required_fields (list[str]) – list of field names to check for inclusion in df

  • +
  • file_name (str) – Name to be printed in error message if validation fails

  • +
+
+
+
+ +
+
+validate_route_networks()
+

Check RouteNetworks object for compliance with the GTFS reference.

+
+ +
+
+validate_routes()
+

Check Routes object for compliance with the GTFS reference.

+
+ +
+
+validate_shapes()
+

Check Shapes object for compliance with the GTFS reference.

+
+ +
+
+validate_stop_areas()
+

Check StopAreas object for compliance with the GTFS reference.

+
+ +
+
+validate_stop_times()
+

Check StopTimes object for compliance with the GTFS reference.

+
+ +
+
+validate_stops()
+

Check Stops object for compliance with the GTFS reference.

+
+ +
+
+validate_timeframes()
+

Check Timeframes object for compliance with the GTFS reference.

+
+ +
+
+validate_transfers()
+

Check Transfers object for compliance with the GTFS reference.

+
+ +
+
+validate_translations()
+

Check Translations object for compliance with the GTFS reference.

+
+ +
+
+validate_trips()
+

Check Trips object for compliance with the GTFS reference.

+
+ +
+ +
+
+

pt_map.models module

+
+

Models

+

Django database models representing the files of the GTFS Reference with all their fields

+
+
+pt_map.models.Classes
+
+ +
+
+-------
+
+ +
+
+Agency, Stop, Route, Trip, StopTime, Calendar, CalendarDate, FareAttribute, FareRule, Shape, Frequency, Transfer, Pathway, Level, FeedInfo, LocationsGeojson, BookingRule, Translation, Attribution, LocationGroup, LocationGroupStop, RouteNetwork, Network, StopArea, Area, FareMedium, FareProduct, FareLegRule, FareTransferRule, Timeframe
+

Different files as described in the GTFS Reference

+
+ +
+
+
+class pt_map.models.Agency(*args, **kwargs)
+

Bases: Model

+

Represents agency.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+agency_email
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+agency_fare_url
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+agency_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+agency_lang
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+agency_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+agency_phone
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+agency_timezone
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+agency_url
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+attribution_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+fareattribute_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+route_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+ +
+
+class pt_map.models.Area(*args, **kwargs)
+

Bases: Model

+

Represents area.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+area_description
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+area_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+area_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+farelegrule_from_area
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+farelegrule_to_area
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+stoparea_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+ +
+
+class pt_map.models.Attribution(*args, **kwargs)
+

Bases: Model

+

Represents attribution.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+agency_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+agency_id_id
+
+ +
+
+attribution_email
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+attribution_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+attribution_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+attribution_phone
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+attribution_url
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+route_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+route_id_id
+
+ +
+
+trip_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+trip_id_id
+
+ +
+ +
+
+class pt_map.models.BookingRule(*args, **kwargs)
+

Bases: Model

+

Represents booking_rule.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+booking_rule_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+booking_rule_instructions
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+booking_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+end_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+rule_criteria
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+start_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+trip_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+trip_id_id
+
+ +
+ +
+
+class pt_map.models.Calendar(*args, **kwargs)
+

Bases: Model

+

Represents calendar.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+end_date
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+friday
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+get_next_by_end_date(*, field=<django.db.models.fields.DateField: end_date>, is_next=True, **kwargs)
+
+ +
+
+get_next_by_start_date(*, field=<django.db.models.fields.DateField: start_date>, is_next=True, **kwargs)
+
+ +
+
+get_previous_by_end_date(*, field=<django.db.models.fields.DateField: end_date>, is_next=False, **kwargs)
+
+ +
+
+get_previous_by_start_date(*, field=<django.db.models.fields.DateField: start_date>, is_next=False, **kwargs)
+
+ +
+
+monday
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+saturday
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+service_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+start_date
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+sunday
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+thursday
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+tuesday
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+wednesday
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.CalendarDate(*args, **kwargs)
+

Bases: Model

+

Represents calendar_date.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+date
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+exception_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+get_next_by_date(*, field=<django.db.models.fields.DateField: date>, is_next=True, **kwargs)
+
+ +
+
+get_previous_by_date(*, field=<django.db.models.fields.DateField: date>, is_next=False, **kwargs)
+
+ +
+
+id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+service_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.FareAttribute(*args, **kwargs)
+

Bases: Model

+

Represents fare_attribute.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+agency_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+agency_id_id
+
+ +
+
+currency_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+farerule_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+payment_method
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+price
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+transfer_duration
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+transfers
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.FareLegRule(*args, **kwargs)
+

Bases: Model

+

Represents fare_legRule.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+fare_leg_rule_description
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_leg_rule_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_leg_rule_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_product_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+fare_product_id_id
+
+ +
+
+from_area_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+from_area_id_id
+
+ +
+
+from_timeframe_group_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+from_timeframe_group_id_id
+
+ +
+
+network_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+network_id_id
+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+to_area_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+to_area_id_id
+
+ +
+
+to_timeframe_group_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+to_timeframe_group_id_id
+
+ +
+ +
+
+class pt_map.models.FareMedium(*args, **kwargs)
+

Bases: Model

+

Represents fare_medium.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+fare_media_description
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_media_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_media_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+ +
+
+class pt_map.models.FareProduct(*args, **kwargs)
+

Bases: Model

+

Represents fare_product.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+amount
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+curreny
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_product_description
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_product_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_product_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+farelegrule_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+faretransferrule_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+ +
+
+class pt_map.models.FareRule(*args, **kwargs)
+

Bases: Model

+

Represents fare_rule.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+contains_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+destination_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+fare_id_id
+
+ +
+
+id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+origin_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+route_id_id
+
+ +
+ +
+
+class pt_map.models.FareTransferRule(*args, **kwargs)
+

Bases: Model

+

Represents faretransfer_rule.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+fare_product_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+fare_product_id_id
+
+ +
+
+fare_transfer_rule_description
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_transfer_rule_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_transfer_rule_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+from_leg_group_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+to_leg_group_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.FeedInfo(*args, **kwargs)
+

Bases: Model

+

Represents feed_info.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+default_lang
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+feed_contact_email
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+feed_contact_url
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+feed_end_date
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+feed_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+feed_lang
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+feed_publisher_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+feed_publisher_url
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+feed_start_date
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+feed_version
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+ +
+
+class pt_map.models.Frequency(*args, **kwargs)
+

Bases: Model

+

Represents frequency.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+end_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+exact_times
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+headway_secs
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+start_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+trip_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+trip_id_id
+
+ +
+ +
+
+class pt_map.models.Level(*args, **kwargs)
+

Bases: Model

+

Represents level.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+level_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+level_index
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+level_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+stop_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+ +
+
+class pt_map.models.LocationGroup(*args, **kwargs)
+

Bases: Model

+

Represents location_group.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+location_group_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+location_group_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+location_group_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+locationgroupstop_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+stoptime_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+ +
+
+class pt_map.models.LocationGroupStop(*args, **kwargs)
+

Bases: Model

+

Represents location_groupStop.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+location_group_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+location_group_id_id
+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+stop_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+stop_id_id
+
+ +
+ +
+
+class pt_map.models.LocationsGeojson(*args, **kwargs)
+

Bases: Model

+

Represents locations.geojson from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+location_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+location_lat
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+location_lon
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+location_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+location_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+parent_location_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stoptime_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+wheelchair_boarding
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.Network(*args, **kwargs)
+

Bases: Model

+

Represents network.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+farelegrule_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+network_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+network_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+routenetwork_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+ +
+
+class pt_map.models.Pathway(*args, **kwargs)
+

Bases: Model

+

Represents lathway.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+from_stop_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+from_stop_id_id
+
+ +
+
+is_bidirectional
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+length
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+max_slope
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+min_width
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+pathway_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+pathway_mode
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+reversed_signposted_as
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+signposted_as
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stair_count
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+to_stop_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+to_stop_id_id
+
+ +
+
+traversal_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.Route(*args, **kwargs)
+

Bases: Model

+

Represents route.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+agency_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+agency_id_id
+
+ +
+
+attribution_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+continuous_drop_off
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+continuous_pickup
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+farerule_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+route_color
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route_desc
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route_long_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route_short_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route_sort_order
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route_text_color
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route_url
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+routenetwork_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+transfers_from_route
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+transfers_to_route
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+trip_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+ +
+
+class pt_map.models.RouteNetwork(*args, **kwargs)
+

Bases: Model

+

Represents route_network.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+network_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+network_id_id
+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+route_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+route_id_id
+
+ +
+
+route_network_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route_network_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.Shape(*args, **kwargs)
+

Bases: Model

+

Represents shape.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+shape_dist_traveled
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+shape_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+shape_pt_lat
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+shape_pt_lon
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+shape_pt_sequence
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+trip_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+ +
+
+class pt_map.models.Stop(*args, **kwargs)
+

Bases: Model

+

Represents stop.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+level_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+level_id_id
+
+ +
+
+location_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+locationgroupstop_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+parent_station
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+parent_station_id
+
+ +
+
+pathways_from
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+pathways_to
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+platform_code
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_code
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_desc
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_lat
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_lon
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+stop_timezone
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_url
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stoparea_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+stoptime_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+transfers_from_stop
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+transfers_to_stop
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+wheelchair_boarding
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+zone_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.StopArea(*args, **kwargs)
+

Bases: Model

+

Represents stop_area.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+area_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+area_id_id
+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+stop_area_description
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_area_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_area_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+stop_id_id
+
+ +
+ +
+
+class pt_map.models.StopTime(*args, **kwargs)
+

Bases: Model

+

Represents stop_time.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+arrival_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+departure_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+drop_off_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+location_group_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+location_group_id_id
+
+ +
+
+location_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+location_id_id
+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+pickup_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+shape_dist_traveled
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_headsign
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+stop_id_id
+
+ +
+
+stop_sequence
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+timepoint
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+trip_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+trip_id_id
+
+ +
+ +
+
+class pt_map.models.Timeframe(*args, **kwargs)
+

Bases: Model

+

Represents timeframe.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+end_date
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+end_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+farelegrule_from_timeframe
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+farelegrule_to_timeframe
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+get_next_by_end_date(*, field=<django.db.models.fields.DateField: end_date>, is_next=True, **kwargs)
+
+ +
+
+get_next_by_start_date(*, field=<django.db.models.fields.DateField: start_date>, is_next=True, **kwargs)
+
+ +
+
+get_previous_by_end_date(*, field=<django.db.models.fields.DateField: end_date>, is_next=False, **kwargs)
+
+ +
+
+get_previous_by_start_date(*, field=<django.db.models.fields.DateField: start_date>, is_next=False, **kwargs)
+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+service_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+start_date
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+start_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+timeframe_group_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.Transfer(*args, **kwargs)
+

Bases: Model

+

Represents transfer.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+from_route_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+from_route_id_id
+
+ +
+
+from_stop_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+from_stop_id_id
+
+ +
+
+from_trip_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+from_trip_id_id
+
+ +
+
+id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+min_transfer_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+to_route_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+to_route_id_id
+
+ +
+
+to_stop_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+to_stop_id_id
+
+ +
+
+to_trip_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+to_trip_id_id
+
+ +
+
+transfer_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.Translation(*args, **kwargs)
+

Bases: Model

+

Represents translation.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+field_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+language
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+table_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+translation
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.Trip(*args, **kwargs)
+

Bases: Model

+

Represents trip.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+as_dict()
+
+ +
+
+attribution_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+bikes_allowed
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+block_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+bookingrule_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+direction_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+frequency_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+route_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+route_id_id
+
+ +
+
+service_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+shape_id
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+shape_id_id
+
+ +
+
+stoptime_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+transfers_from_trip
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+transfers_to_trip
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+trip_headsign
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+trip_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+trip_short_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+wheelchair_accessible
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+

pt_map.tests module

+
+
+

pt_map.urls module

+

Redirecting HTTP requests destined for the app pt_map to the correct views

+
+
+

pt_map.views module

+
+

Views

+

Views reacting to Http Requests by interfacing between backend and frontend.

+
+

Functions

+
+
index(request)

Home page

+
+
+
+
+
+
+pt_map.views.get_timetable(r, trips, stop_sequences)
+

Given a pt_map.models.Route, calculate the timetable for all its stops.

+
+
Parameters:
+
    +
  • r (pt_map.models.Route) – Route, the timetable should be calculated for

  • +
  • trips (dict(str, list(pt_map.Trip))) – Dictionary mapping all trips to route_ids they travel on

  • +
  • stop_sequences (dict(str, list(str))) – Dict mapping route_ids to lists of stop_ids they serve. Currently the first trip is taken as reference for stops and sequence.

  • +
+
+
Returns:
+

dict{“stop_sequence”

+
+
Dict containing two elements:
+
”stop_sequence”list(str)

list of stop_ids the route serves

+
+
”stop_times”dict(str, list(str))

dict mapping stop_ids from stop_sequence to time strings the route is serving the stop at

+
+
+
+
+

+
+
Return type:
+

list(str), “stop_times”: dict(str, list(str)}

+
+
+
+ +
+
+pt_map.views.index(request)
+
+ +
+
+

Module contents

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/build/html/pt_map.migrations.html b/docs/build/html/pt_map.migrations.html new file mode 100644 index 0000000..231c481 --- /dev/null +++ b/docs/build/html/pt_map.migrations.html @@ -0,0 +1,354 @@ + + + + + + + pt_map.migrations package — Transport Accessibility 0.1 Beta 1 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

pt_map.migrations package

+
+

Submodules

+
+
+

pt_map.migrations.0001_initial module

+
+
+class pt_map.migrations.0001_initial.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = []
+
+ +
+
+initial = True
+
+ +
+
+operations = [<CreateModel  name='Agency', fields=[('agency_id', <django.db.models.fields.IntegerField>), ('agency_name', <django.db.models.fields.CharField>), ('agency_url', <django.db.models.fields.URLField>), ('agency_phone', <django.db.models.fields.CharField>), ('agency_email', <django.db.models.fields.EmailField>), ('agency_fare_url', <django.db.models.fields.URLField>)]>, <CreateModel  name='Calendar', fields=[('service_id', <django.db.models.fields.CharField>), ('monday', <django.db.models.fields.BooleanField>), ('tuesday', <django.db.models.fields.BooleanField>), ('wednesday', <django.db.models.fields.BooleanField>), ('thursday', <django.db.models.fields.BooleanField>), ('friday', <django.db.models.fields.BooleanField>), ('saturday', <django.db.models.fields.BooleanField>), ('sunday', <django.db.models.fields.BooleanField>), ('start_date', <django.db.models.fields.DateField>), ('end_date', <django.db.models.fields.DateField>)]>, <CreateModel  name='FeedInfo', fields=[('feed_publisher_name', <django.db.models.fields.CharField>), ('feed_publisher_url', <django.db.models.fields.URLField>), ('feed_lang', <django.db.models.fields.CharField>), ('feed_start_date', <django.db.models.fields.DateField>), ('feed_end_date', <django.db.models.fields.DateField>), ('feed_version', <django.db.models.fields.CharField>), ('feed_id', <django.db.models.fields.CharField>)]>, <CreateModel  name='Shape', fields=[('id', <django.db.models.fields.BigAutoField>), ('shape_id', <django.db.models.fields.CharField>), ('shape_pt_lat', <django.db.models.fields.FloatField>), ('shape_pt_lon', <django.db.models.fields.FloatField>), ('shape_pt_sequence', <django.db.models.fields.IntegerField>), ('shape_dist_traveled', <django.db.models.fields.FloatField>)]>, <CreateModel  name='CalendarDate', fields=[('id', <django.db.models.fields.BigAutoField>), ('date', <django.db.models.fields.DateField>), ('exception_type', <django.db.models.fields.IntegerField>), ('service_id', <django.db.models.fields.related.ForeignKey>)]>, <CreateModel  name='FareAttribute', fields=[('fare_id', <django.db.models.fields.CharField>), ('price', <django.db.models.fields.FloatField>), ('currency_type', <django.db.models.fields.CharField>), ('payment_method', <django.db.models.fields.IntegerField>), ('transfers', <django.db.models.fields.IntegerField>), ('transfer_duration', <django.db.models.fields.IntegerField>), ('agency', <django.db.models.fields.related.ForeignKey>)]>, <CreateModel  name='Route', fields=[('route_id', <django.db.models.fields.CharField>), ('route_short_name', <django.db.models.fields.CharField>), ('route_long_name', <django.db.models.fields.CharField>), ('route_desc', <django.db.models.fields.TextField>), ('route_type', <django.db.models.fields.IntegerField>), ('route_url', <django.db.models.fields.URLField>), ('route_color', <django.db.models.fields.CharField>), ('route_text_color', <django.db.models.fields.CharField>), ('agency', <django.db.models.fields.related.ForeignKey>)]>, <CreateModel  name='FareRule', fields=[('id', <django.db.models.fields.BigAutoField>), ('origin_id', <django.db.models.fields.CharField>), ('destination_id', <django.db.models.fields.CharField>), ('contains_id', <django.db.models.fields.CharField>), ('fare', <django.db.models.fields.related.ForeignKey>), ('route', <django.db.models.fields.related.ForeignKey>)]>, <CreateModel  name='Stop', fields=[('stop_id', <django.db.models.fields.IntegerField>), ('stop_code', <django.db.models.fields.CharField>), ('stop_name', <django.db.models.fields.CharField>), ('tts_stop_name', <django.db.models.fields.CharField>), ('stop_desc', <django.db.models.fields.CharField>), ('stop_lat', <django.db.models.fields.IntegerField>), ('stop_lon', <django.db.models.fields.IntegerField>), ('zone_id', <django.db.models.fields.IntegerField>), ('stop_url', <django.db.models.fields.URLField>), ('location_type', <django.db.models.fields.IntegerField>), ('stop_timezone', <django.db.models.fields.CharField>), ('wheelchair_boarding', <django.db.models.fields.IntegerField>), ('level_id', <django.db.models.fields.CharField>), ('platform_code', <django.db.models.fields.CharField>), ('parent_station', <django.db.models.fields.related.ForeignKey>)]>, <CreateModel  name='Transfer', fields=[('id', <django.db.models.fields.BigAutoField>), ('transfer_type', <django.db.models.fields.IntegerField>), ('min_transfer_time', <django.db.models.fields.IntegerField>), ('from_stop', <django.db.models.fields.related.ForeignKey>), ('to_stop', <django.db.models.fields.related.ForeignKey>)]>, <CreateModel  name='Trip', fields=[('trip_id', <django.db.models.fields.CharField>), ('service_id', <django.db.models.fields.CharField>), ('trip_headsign', <django.db.models.fields.CharField>), ('trip_short_name', <django.db.models.fields.CharField>), ('direction_id', <django.db.models.fields.IntegerField>), ('block_id', <django.db.models.fields.CharField>), ('shape_id', <django.db.models.fields.CharField>), ('wheelchair_accessible', <django.db.models.fields.IntegerField>), ('bikes_allowed', <django.db.models.fields.IntegerField>), ('route', <django.db.models.fields.related.ForeignKey>)]>, <CreateModel  name='StopTime', fields=[('id', <django.db.models.fields.BigAutoField>), ('arrival_time', <django.db.models.fields.TimeField>), ('departure_time', <django.db.models.fields.TimeField>), ('stop_sequence', <django.db.models.fields.IntegerField>), ('stop_headsign', <django.db.models.fields.CharField>), ('pickup_type', <django.db.models.fields.IntegerField>), ('drop_off_type', <django.db.models.fields.IntegerField>), ('shape_dist_traveled', <django.db.models.fields.FloatField>), ('timepoint', <django.db.models.fields.IntegerField>), ('stop', <django.db.models.fields.related.ForeignKey>), ('trip', <django.db.models.fields.related.ForeignKey>)]>, <CreateModel  name='Frequency', fields=[('id', <django.db.models.fields.BigAutoField>), ('start_time', <django.db.models.fields.TimeField>), ('end_time', <django.db.models.fields.TimeField>), ('headway_secs', <django.db.models.fields.IntegerField>), ('exact_times', <django.db.models.fields.IntegerField>), ('trip', <django.db.models.fields.related.ForeignKey>)]>]
+
+ +
+ +
+
+

pt_map.migrations.0002_alter_calendardate_unique_together_and_more module

+
+
+class pt_map.migrations.0002_alter_calendardate_unique_together_and_more.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0001_initial')]
+
+ +
+
+operations = [<AlterUniqueTogether  name='calendardate', unique_together={('service_id', 'date')}>, <AlterUniqueTogether  name='shape', unique_together={('shape_id', 'shape_pt_sequence')}>, <AlterUniqueTogether  name='stoptime', unique_together={('trip', 'stop_sequence')}>, <AlterUniqueTogether  name='transfer', unique_together={('from_stop', 'to_stop')}>]
+
+ +
+ +
+
+

pt_map.migrations.0003_alter_calendar_service_id_and_more module

+
+
+class pt_map.migrations.0003_alter_calendar_service_id_and_more.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0002_alter_calendardate_unique_together_and_more')]
+
+ +
+
+operations = [<AlterField  model_name='calendar', name='service_id', field=<django.db.models.fields.IntegerField>>, <AlterField  model_name='fareattribute', name='fare_id', field=<django.db.models.fields.IntegerField>>, <AlterField  model_name='feedinfo', name='feed_id', field=<django.db.models.fields.IntegerField>>, <AlterField  model_name='route', name='route_id', field=<django.db.models.fields.IntegerField>>, <AlterField  model_name='trip', name='trip_id', field=<django.db.models.fields.IntegerField>>]
+
+ +
+ +
+
+

pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more module

+
+
+class pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0003_alter_calendar_service_id_and_more')]
+
+ +
+
+operations = [<AlterField  model_name='agency', name='agency_id', field=<django.db.models.fields.BigAutoField>>, <AlterField  model_name='calendar', name='service_id', field=<django.db.models.fields.BigAutoField>>, <AlterField  model_name='fareattribute', name='fare_id', field=<django.db.models.fields.BigAutoField>>, <AlterField  model_name='feedinfo', name='feed_id', field=<django.db.models.fields.BigAutoField>>, <AlterField  model_name='route', name='route_id', field=<django.db.models.fields.BigAutoField>>, <AlterField  model_name='stop', name='stop_id', field=<django.db.models.fields.BigAutoField>>, <AlterField  model_name='trip', name='trip_id', field=<django.db.models.fields.BigAutoField>>]
+
+ +
+ +
+
+

pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more module

+
+
+class pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0004_alter_agency_agency_id_alter_calendar_service_id_and_more')]
+
+ +
+
+operations = [<CreateModel  name='Level', fields=[('level_id', <django.db.models.fields.CharField>), ('level_index', <django.db.models.fields.FloatField>), ('level_name', <django.db.models.fields.CharField>)]>, <RemoveField  model_name='stop', name='tts_stop_name'>, <AddField  model_name='agency', name='agency_lang', field=<django.db.models.fields.CharField>>, <AddField  model_name='agency', name='agency_timezone', field=<django.db.models.fields.CharField>, preserve_default=False>, <AddField  model_name='feedinfo', name='default_lang', field=<django.db.models.fields.CharField>>, <AddField  model_name='feedinfo', name='feed_contact_email', field=<django.db.models.fields.EmailField>>, <AddField  model_name='feedinfo', name='feed_contact_url', field=<django.db.models.fields.URLField>>, <AddField  model_name='route', name='continuous_drop_off', field=<django.db.models.fields.IntegerField>>, <AddField  model_name='route', name='continuous_pickup', field=<django.db.models.fields.IntegerField>>, <AddField  model_name='route', name='route_sort_order', field=<django.db.models.fields.IntegerField>>, <AlterField  model_name='agency', name='agency_email', field=<django.db.models.fields.EmailField>>, <AlterField  model_name='agency', name='agency_fare_url', field=<django.db.models.fields.URLField>>, <AlterField  model_name='agency', name='agency_id', field=<django.db.models.fields.CharField>>, <AlterField  model_name='agency', name='agency_name', field=<django.db.models.fields.CharField>>, <AlterField  model_name='agency', name='agency_phone', field=<django.db.models.fields.CharField>>, <AlterField  model_name='calendar', name='service_id', field=<django.db.models.fields.CharField>>, <AlterField  model_name='calendardate', name='service_id', field=<django.db.models.fields.CharField>>, <AlterField  model_name='fareattribute', name='currency_type', field=<django.db.models.fields.CharField>>, <AlterField  model_name='fareattribute', name='fare_id', field=<django.db.models.fields.CharField>>, <AlterField  model_name='route', name='agency', field=<django.db.models.fields.related.ForeignKey>>, <AlterField  model_name='route', name='route_id', field=<django.db.models.fields.CharField>>, <AlterField  model_name='route', name='route_long_name', field=<django.db.models.fields.CharField>>, <AlterField  model_name='route', name='route_short_name', field=<django.db.models.fields.CharField>>, <AlterField  model_name='stop', name='platform_code', field=<django.db.models.fields.CharField>>, <AlterField  model_name='stop', name='stop_code', field=<django.db.models.fields.CharField>>, <AlterField  model_name='stop', name='stop_desc', field=<django.db.models.fields.TextField>>, <AlterField  model_name='stop', name='stop_id', field=<django.db.models.fields.CharField>>, <AlterField  model_name='stop', name='stop_lat', field=<django.db.models.fields.FloatField>>, <AlterField  model_name='stop', name='stop_lon', field=<django.db.models.fields.FloatField>>, <AlterField  model_name='stop', name='stop_name', field=<django.db.models.fields.CharField>>, <AlterField  model_name='stop', name='zone_id', field=<django.db.models.fields.CharField>>, <AlterField  model_name='stoptime', name='arrival_time', field=<django.db.models.fields.TimeField>>, <AlterField  model_name='stoptime', name='departure_time', field=<django.db.models.fields.TimeField>>, <AlterField  model_name='trip', name='trip_id', field=<django.db.models.fields.CharField>>, <CreateModel  name='Pathway', fields=[('pathway_id', <django.db.models.fields.CharField>), ('pathway_mode', <django.db.models.fields.IntegerField>), ('is_bidirectional', <django.db.models.fields.IntegerField>), ('length', <django.db.models.fields.FloatField>), ('traversal_time', <django.db.models.fields.IntegerField>), ('stair_count', <django.db.models.fields.IntegerField>), ('max_slope', <django.db.models.fields.FloatField>), ('min_width', <django.db.models.fields.FloatField>), ('signposted_as', <django.db.models.fields.CharField>), ('reversed_signposted_as', <django.db.models.fields.CharField>), ('from_stop', <django.db.models.fields.related.ForeignKey>), ('to_stop', <django.db.models.fields.related.ForeignKey>)]>]
+
+ +
+ +
+
+

pt_map.migrations.0006_alter_route_route_type module

+
+
+class pt_map.migrations.0006_alter_route_route_type.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more')]
+
+ +
+
+operations = [<AlterField  model_name='route', name='route_type', field=<django.db.models.fields.IntegerField>>]
+
+ +
+ +
+
+

pt_map.migrations.0007_location_translation_attribution_bookingrule module

+
+
+class pt_map.migrations.0007_location_translation_attribution_bookingrule.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0006_alter_route_route_type')]
+
+ +
+
+operations = [<CreateModel  name='Location', fields=[('location_id', <django.db.models.fields.CharField>), ('location_name', <django.db.models.fields.CharField>), ('location_lat', <django.db.models.fields.FloatField>), ('location_lon', <django.db.models.fields.FloatField>), ('location_type', <django.db.models.fields.CharField>), ('parent_location_id', <django.db.models.fields.CharField>), ('wheelchair_boarding', <django.db.models.fields.BooleanField>)]>, <CreateModel  name='Translation', fields=[('id', <django.db.models.fields.BigAutoField>), ('table_name', <django.db.models.fields.CharField>), ('field_name', <django.db.models.fields.CharField>), ('language', <django.db.models.fields.CharField>), ('translation', <django.db.models.fields.TextField>)]>, <CreateModel  name='Attribution', fields=[('attribution_id', <django.db.models.fields.CharField>), ('attribution_name', <django.db.models.fields.CharField>), ('attribution_url', <django.db.models.fields.URLField>), ('attribution_email', <django.db.models.fields.EmailField>), ('attribution_phone', <django.db.models.fields.CharField>), ('agency', <django.db.models.fields.related.ForeignKey>)]>, <CreateModel  name='BookingRule', fields=[('booking_rule_id', <django.db.models.fields.CharField>), ('start_time', <django.db.models.fields.TimeField>), ('end_time', <django.db.models.fields.TimeField>), ('booking_type', <django.db.models.fields.CharField>), ('rule_criteria', <django.db.models.fields.TextField>), ('booking_rule_instructions', <django.db.models.fields.TextField>), ('trip', <django.db.models.fields.related.ForeignKey>)]>]
+
+ +
+ +
+
+

pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more module

+
+
+class pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0007_location_translation_attribution_bookingrule')]
+
+ +
+
+operations = [<CreateModel  name='Area', fields=[('area_id', <django.db.models.fields.CharField>), ('area_name', <django.db.models.fields.CharField>), ('area_description', <django.db.models.fields.TextField>)]>, <CreateModel  name='FareLegRule', fields=[('fare_leg_rule_id', <django.db.models.fields.CharField>), ('fare_leg_rule_name', <django.db.models.fields.CharField>), ('fare_leg_rule_description', <django.db.models.fields.TextField>)]>, <CreateModel  name='FareMedia', fields=[('fare_media_id', <django.db.models.fields.CharField>), ('fare_media_name', <django.db.models.fields.CharField>), ('fare_media_description', <django.db.models.fields.TextField>)]>, <CreateModel  name='FareProduct', fields=[('fare_product_id', <django.db.models.fields.CharField>), ('fare_product_name', <django.db.models.fields.CharField>), ('fare_product_description', <django.db.models.fields.TextField>)]>, <CreateModel  name='FareTransferRule', fields=[('fare_transfer_rule_id', <django.db.models.fields.CharField>), ('fare_transfer_rule_name', <django.db.models.fields.CharField>), ('fare_transfer_rule_description', <django.db.models.fields.TextField>)]>, <CreateModel  name='LocationGroup', fields=[('location_group_id', <django.db.models.fields.CharField>), ('location_group_name', <django.db.models.fields.CharField>), ('location_group_type', <django.db.models.fields.CharField>)]>, <CreateModel  name='Network', fields=[('network_id', <django.db.models.fields.CharField>), ('network_name', <django.db.models.fields.CharField>)]>, <CreateModel  name='RouteNetwork', fields=[('route_network_id', <django.db.models.fields.CharField>), ('route_network_name', <django.db.models.fields.CharField>)]>, <CreateModel  name='StopArea', fields=[('stop_area_id', <django.db.models.fields.CharField>), ('stop_area_name', <django.db.models.fields.CharField>), ('stop_area_description', <django.db.models.fields.TextField>)]>, <CreateModel  name='TimeFrame', fields=[('time_frame_id', <django.db.models.fields.CharField>), ('start_date', <django.db.models.fields.DateField>), ('end_date', <django.db.models.fields.DateField>), ('start_time', <django.db.models.fields.TimeField>), ('end_time', <django.db.models.fields.TimeField>)]>, <CreateModel  name='LocationGroupStop', fields=[('id', <django.db.models.fields.BigAutoField>), ('location_group', <django.db.models.fields.related.ForeignKey>), ('stop', <django.db.models.fields.related.ForeignKey>)]>]
+
+ +
+ +
+
+

pt_map.migrations.0009_rename_faremedia_faremedium module

+
+
+class pt_map.migrations.0009_rename_faremedia_faremedium.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0008_area_farelegrule_faremedia_fareproduct_and_more')]
+
+ +
+
+operations = [<RenameModel  old_name='FareMedia', new_name='FareMedium'>]
+
+ +
+ +
+
+

pt_map.migrations.0010_rename_location_locationgeojson module

+
+
+class pt_map.migrations.0010_rename_location_locationgeojson.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0009_rename_faremedia_faremedium')]
+
+ +
+
+operations = [<RenameModel  old_name='Location', new_name='LocationGeojson'>]
+
+ +
+ +
+
+

pt_map.migrations.0011_rename_locationgeojson_locationsgeojson module

+
+
+class pt_map.migrations.0011_rename_locationgeojson_locationsgeojson.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0010_rename_location_locationgeojson')]
+
+ +
+
+operations = [<RenameModel  old_name='LocationGeojson', new_name='LocationsGeojson'>]
+
+ +
+ +
+
+

Module contents

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/build/html/py-modindex.html b/docs/build/html/py-modindex.html new file mode 100644 index 0000000..7699e4e --- /dev/null +++ b/docs/build/html/py-modindex.html @@ -0,0 +1,201 @@ + + + + + + Python Module Index — Transport Accessibility 0.2 documentation + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+
+ + +

Python Module Index

+ +
+ m | + p | + t +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
+ m
+ manage +
 
+ p
+ pt_map +
    + pt_map.admin +
    + pt_map.apps +
    + pt_map.bridge +
    + pt_map.gtfs +
    + pt_map.models +
    + pt_map.tests +
    + pt_map.urls +
    + pt_map.views +
 
+ t
+ transport_accessibility +
    + transport_accessibility.asgi +
    + transport_accessibility.settings +
    + transport_accessibility.urls +
    + transport_accessibility.wsgi +
+ + +
+
+
+ +
+ +
+

© Copyright 2024, Jan Kiljanski and Johannes Randerath.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/build/html/search.html b/docs/build/html/search.html new file mode 100644 index 0000000..b585068 --- /dev/null +++ b/docs/build/html/search.html @@ -0,0 +1,122 @@ + + + + + + Search — Transport Accessibility 0.2 documentation + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+
+ + + + +
+ +
+ +
+
+
+ +
+ +
+

© Copyright 2024, Jan Kiljanski and Johannes Randerath.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js new file mode 100644 index 0000000..59cf3f8 --- /dev/null +++ b/docs/build/html/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"alltitles": {"Bridge": [[3, "bridge"]], "Constants": [[3, "constants"]], "Contents": [[3, "contents"]], "Contents:": [[0, null]], "Functions": [[3, "functions"], [3, "id1"]], "Indices and tables": [[0, "indices-and-tables"]], "Models": [[3, "models"]], "Module contents": [[3, "module-pt_map"], [4, "module-transport_accessibility"]], "Submodules": [[3, "submodules"], [4, "submodules"]], "Subpackages": [[3, "subpackages"]], "Views": [[3, "views"]], "Welcome to Transport Accessibility\u2019s documentation!": [[0, "welcome-to-transport-accessibility-s-documentation"]], "manage module": [[1, "module-manage"]], "pt_map package": [[3, "pt-map-package"]], "pt_map.admin module": [[3, "module-pt_map.admin"]], "pt_map.apps module": [[3, "module-pt_map.apps"]], "pt_map.bridge module": [[3, "module-pt_map.bridge"]], "pt_map.gtfs module": [[3, "module-pt_map.gtfs"]], "pt_map.models module": [[3, "module-pt_map.models"]], "pt_map.tests module": [[3, "module-pt_map.tests"]], "pt_map.urls module": [[3, "module-pt_map.urls"]], "pt_map.views module": [[3, "module-pt_map.views"]], "transport_accessibility": [[2, "transport-accessibility"]], "transport_accessibility package": [[4, "transport-accessibility-package"]], "transport_accessibility.asgi module": [[4, "module-transport_accessibility.asgi"]], "transport_accessibility.settings module": [[4, "module-transport_accessibility.settings"]], "transport_accessibility.urls module": [[4, "module-transport_accessibility.urls"]], "transport_accessibility.wsgi module": [[4, "module-transport_accessibility.wsgi"]]}, "docnames": ["index", "manage", "modules", "pt_map", "transport_accessibility"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["index.rst", "manage.rst", "modules.rst", "pt_map.rst", "transport_accessibility.rst"], "indexentries": {"agency (class in pt_map.models)": [[3, "pt_map.models.Agency", false]], "agency.doesnotexist": [[3, "pt_map.models.Agency.DoesNotExist", false]], "agency.multipleobjectsreturned": [[3, "pt_map.models.Agency.MultipleObjectsReturned", false]], "agency_email (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.agency_email", false]], "agency_fare_url (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.agency_fare_url", false]], "agency_id (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.agency_id", false]], "agency_id (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.agency_id", false]], "agency_id (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.agency_id", false]], "agency_id (pt_map.models.route attribute)": [[3, "pt_map.models.Route.agency_id", false]], "agency_id_id (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.agency_id_id", false]], "agency_id_id (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.agency_id_id", false]], "agency_id_id (pt_map.models.route attribute)": [[3, "pt_map.models.Route.agency_id_id", false]], "agency_lang (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.agency_lang", false]], "agency_name (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.agency_name", false]], "agency_phone (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.agency_phone", false]], "agency_timezone (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.agency_timezone", false]], "agency_url (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.agency_url", false]], "amount (pt_map.models.fareproduct attribute)": [[3, "pt_map.models.FareProduct.amount", false]], "area (class in pt_map.models)": [[3, "pt_map.models.Area", false]], "area.doesnotexist": [[3, "pt_map.models.Area.DoesNotExist", false]], "area.multipleobjectsreturned": [[3, "pt_map.models.Area.MultipleObjectsReturned", false]], "area_description (pt_map.models.area attribute)": [[3, "pt_map.models.Area.area_description", false]], "area_id (pt_map.models.area attribute)": [[3, "pt_map.models.Area.area_id", false]], "area_id (pt_map.models.stoparea attribute)": [[3, "pt_map.models.StopArea.area_id", false]], "area_id_id (pt_map.models.stoparea attribute)": [[3, "pt_map.models.StopArea.area_id_id", false]], "area_name (pt_map.models.area attribute)": [[3, "pt_map.models.Area.area_name", false]], "arrival_time (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.arrival_time", false]], "as_dict() (pt_map.models.trip method)": [[3, "pt_map.models.Trip.as_dict", false]], "attribution (class in pt_map.models)": [[3, "pt_map.models.Attribution", false]], "attribution.doesnotexist": [[3, "pt_map.models.Attribution.DoesNotExist", false]], "attribution.multipleobjectsreturned": [[3, "pt_map.models.Attribution.MultipleObjectsReturned", false]], "attribution_email (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.attribution_email", false]], "attribution_id (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.attribution_id", false]], "attribution_name (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.attribution_name", false]], "attribution_phone (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.attribution_phone", false]], "attribution_set (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.attribution_set", false]], "attribution_set (pt_map.models.route attribute)": [[3, "pt_map.models.Route.attribution_set", false]], "attribution_set (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.attribution_set", false]], "attribution_url (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.attribution_url", false]], "bikes_allowed (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.bikes_allowed", false]], "block_id (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.block_id", false]], "booking_rule_id (pt_map.models.bookingrule attribute)": [[3, "pt_map.models.BookingRule.booking_rule_id", false]], "booking_rule_instructions (pt_map.models.bookingrule attribute)": [[3, "pt_map.models.BookingRule.booking_rule_instructions", false]], "booking_type (pt_map.models.bookingrule attribute)": [[3, "pt_map.models.BookingRule.booking_type", false]], "bookingrule (class in pt_map.models)": [[3, "pt_map.models.BookingRule", false]], "bookingrule.doesnotexist": [[3, "pt_map.models.BookingRule.DoesNotExist", false]], "bookingrule.multipleobjectsreturned": [[3, "pt_map.models.BookingRule.MultipleObjectsReturned", false]], "bookingrule_set (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.bookingrule_set", false]], "calendar (class in pt_map.models)": [[3, "pt_map.models.Calendar", false]], "calendar.doesnotexist": [[3, "pt_map.models.Calendar.DoesNotExist", false]], "calendar.multipleobjectsreturned": [[3, "pt_map.models.Calendar.MultipleObjectsReturned", false]], "calendardate (class in pt_map.models)": [[3, "pt_map.models.CalendarDate", false]], "calendardate.doesnotexist": [[3, "pt_map.models.CalendarDate.DoesNotExist", false]], "calendardate.multipleobjectsreturned": [[3, "pt_map.models.CalendarDate.MultipleObjectsReturned", false]], "classes (in module pt_map.models)": [[3, "pt_map.models.Classes", false]], "contains_id (pt_map.models.farerule attribute)": [[3, "pt_map.models.FareRule.contains_id", false]], "continuous_drop_off (pt_map.models.route attribute)": [[3, "pt_map.models.Route.continuous_drop_off", false]], "continuous_pickup (pt_map.models.route attribute)": [[3, "pt_map.models.Route.continuous_pickup", false]], "currency_type (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.currency_type", false]], "curreny (pt_map.models.fareproduct attribute)": [[3, "pt_map.models.FareProduct.curreny", false]], "data (pt_map.gtfs.gtfs.gtfsfile attribute)": [[3, "pt_map.gtfs.GTFS.GTFSFile.data", false]], "date (pt_map.models.calendardate attribute)": [[3, "pt_map.models.CalendarDate.date", false]], "db_to_gtfs() (in module pt_map.bridge)": [[3, "pt_map.bridge.db_to_gtfs", false]], "default_auto_field (pt_map.apps.ptmapconfig attribute)": [[3, "pt_map.apps.PtMapConfig.default_auto_field", false]], "default_lang (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.default_lang", false]], "departure_time (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.departure_time", false]], "destination_id (pt_map.models.farerule attribute)": [[3, "pt_map.models.FareRule.destination_id", false]], "direction_id (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.direction_id", false]], "drop_off_type (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.drop_off_type", false]], "end_date (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.end_date", false]], "end_date (pt_map.models.timeframe attribute)": [[3, "pt_map.models.Timeframe.end_date", false]], "end_time (pt_map.models.bookingrule attribute)": [[3, "pt_map.models.BookingRule.end_time", false]], "end_time (pt_map.models.frequency attribute)": [[3, "pt_map.models.Frequency.end_time", false]], "end_time (pt_map.models.timeframe attribute)": [[3, "pt_map.models.Timeframe.end_time", false]], "errors (pt_map.gtfs.gtfs attribute)": [[3, "pt_map.gtfs.GTFS.errors", false]], "exact_times (pt_map.models.frequency attribute)": [[3, "pt_map.models.Frequency.exact_times", false]], "exception_type (pt_map.models.calendardate attribute)": [[3, "pt_map.models.CalendarDate.exception_type", false]], "export() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.export", false]], "fare_id (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.fare_id", false]], "fare_id (pt_map.models.farerule attribute)": [[3, "pt_map.models.FareRule.fare_id", false]], "fare_id_id (pt_map.models.farerule attribute)": [[3, "pt_map.models.FareRule.fare_id_id", false]], "fare_leg_rule_description (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.fare_leg_rule_description", false]], "fare_leg_rule_id (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.fare_leg_rule_id", false]], "fare_leg_rule_name (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.fare_leg_rule_name", false]], "fare_media_description (pt_map.models.faremedium attribute)": [[3, "pt_map.models.FareMedium.fare_media_description", false]], "fare_media_id (pt_map.models.faremedium attribute)": [[3, "pt_map.models.FareMedium.fare_media_id", false]], "fare_media_name (pt_map.models.faremedium attribute)": [[3, "pt_map.models.FareMedium.fare_media_name", false]], "fare_product_description (pt_map.models.fareproduct attribute)": [[3, "pt_map.models.FareProduct.fare_product_description", false]], "fare_product_id (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.fare_product_id", false]], "fare_product_id (pt_map.models.fareproduct attribute)": [[3, "pt_map.models.FareProduct.fare_product_id", false]], "fare_product_id (pt_map.models.faretransferrule attribute)": [[3, "pt_map.models.FareTransferRule.fare_product_id", false]], "fare_product_id_id (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.fare_product_id_id", false]], "fare_product_id_id (pt_map.models.faretransferrule attribute)": [[3, "pt_map.models.FareTransferRule.fare_product_id_id", false]], "fare_product_name (pt_map.models.fareproduct attribute)": [[3, "pt_map.models.FareProduct.fare_product_name", false]], "fare_transfer_rule_description (pt_map.models.faretransferrule attribute)": [[3, "pt_map.models.FareTransferRule.fare_transfer_rule_description", false]], "fare_transfer_rule_id (pt_map.models.faretransferrule attribute)": [[3, "pt_map.models.FareTransferRule.fare_transfer_rule_id", false]], "fare_transfer_rule_name (pt_map.models.faretransferrule attribute)": [[3, "pt_map.models.FareTransferRule.fare_transfer_rule_name", false]], "fareattribute (class in pt_map.models)": [[3, "pt_map.models.FareAttribute", false]], "fareattribute.doesnotexist": [[3, "pt_map.models.FareAttribute.DoesNotExist", false]], "fareattribute.multipleobjectsreturned": [[3, "pt_map.models.FareAttribute.MultipleObjectsReturned", false]], "fareattribute_set (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.fareattribute_set", false]], "farelegrule (class in pt_map.models)": [[3, "pt_map.models.FareLegRule", false]], "farelegrule.doesnotexist": [[3, "pt_map.models.FareLegRule.DoesNotExist", false]], "farelegrule.multipleobjectsreturned": [[3, "pt_map.models.FareLegRule.MultipleObjectsReturned", false]], "farelegrule_from_area (pt_map.models.area attribute)": [[3, "pt_map.models.Area.farelegrule_from_area", false]], "farelegrule_from_timeframe (pt_map.models.timeframe attribute)": [[3, "pt_map.models.Timeframe.farelegrule_from_timeframe", false]], "farelegrule_set (pt_map.models.fareproduct attribute)": [[3, "pt_map.models.FareProduct.farelegrule_set", false]], "farelegrule_set (pt_map.models.network attribute)": [[3, "pt_map.models.Network.farelegrule_set", false]], "farelegrule_to_area (pt_map.models.area attribute)": [[3, "pt_map.models.Area.farelegrule_to_area", false]], "farelegrule_to_timeframe (pt_map.models.timeframe attribute)": [[3, "pt_map.models.Timeframe.farelegrule_to_timeframe", false]], "faremedium (class in pt_map.models)": [[3, "pt_map.models.FareMedium", false]], "faremedium.doesnotexist": [[3, "pt_map.models.FareMedium.DoesNotExist", false]], "faremedium.multipleobjectsreturned": [[3, "pt_map.models.FareMedium.MultipleObjectsReturned", false]], "fareproduct (class in pt_map.models)": [[3, "pt_map.models.FareProduct", false]], "fareproduct.doesnotexist": [[3, "pt_map.models.FareProduct.DoesNotExist", false]], "fareproduct.multipleobjectsreturned": [[3, "pt_map.models.FareProduct.MultipleObjectsReturned", false]], "farerule (class in pt_map.models)": [[3, "pt_map.models.FareRule", false]], "farerule.doesnotexist": [[3, "pt_map.models.FareRule.DoesNotExist", false]], "farerule.multipleobjectsreturned": [[3, "pt_map.models.FareRule.MultipleObjectsReturned", false]], "farerule_set (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.farerule_set", false]], "farerule_set (pt_map.models.route attribute)": [[3, "pt_map.models.Route.farerule_set", false]], "faretransferrule (class in pt_map.models)": [[3, "pt_map.models.FareTransferRule", false]], "faretransferrule.doesnotexist": [[3, "pt_map.models.FareTransferRule.DoesNotExist", false]], "faretransferrule.multipleobjectsreturned": [[3, "pt_map.models.FareTransferRule.MultipleObjectsReturned", false]], "faretransferrule_set (pt_map.models.fareproduct attribute)": [[3, "pt_map.models.FareProduct.faretransferrule_set", false]], "feed_contact_email (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.feed_contact_email", false]], "feed_contact_url (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.feed_contact_url", false]], "feed_end_date (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.feed_end_date", false]], "feed_id (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.feed_id", false]], "feed_lang (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.feed_lang", false]], "feed_publisher_name (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.feed_publisher_name", false]], "feed_publisher_url (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.feed_publisher_url", false]], "feed_start_date (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.feed_start_date", false]], "feed_version (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.feed_version", false]], "feedinfo (class in pt_map.models)": [[3, "pt_map.models.FeedInfo", false]], "feedinfo.doesnotexist": [[3, "pt_map.models.FeedInfo.DoesNotExist", false]], "feedinfo.multipleobjectsreturned": [[3, "pt_map.models.FeedInfo.MultipleObjectsReturned", false]], "field_name (pt_map.models.translation attribute)": [[3, "pt_map.models.Translation.field_name", false]], "file_name (pt_map.gtfs.gtfs.gtfsfile attribute)": [[3, "pt_map.gtfs.GTFS.GTFSFile.file_name", false]], "folder_path (pt_map.gtfs.gtfs attribute)": [[3, "pt_map.gtfs.GTFS.folder_path", false]], "folder_path (pt_map.gtfs.gtfs.gtfsfile attribute)": [[3, "pt_map.gtfs.GTFS.GTFSFile.folder_path", false]], "frequency (class in pt_map.models)": [[3, "pt_map.models.Frequency", false]], "frequency.doesnotexist": [[3, "pt_map.models.Frequency.DoesNotExist", false]], "frequency.multipleobjectsreturned": [[3, "pt_map.models.Frequency.MultipleObjectsReturned", false]], "frequency_set (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.frequency_set", false]], "friday (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.friday", false]], "from_area_id (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.from_area_id", false]], "from_area_id_id (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.from_area_id_id", false]], "from_leg_group_id (pt_map.models.faretransferrule attribute)": [[3, "pt_map.models.FareTransferRule.from_leg_group_id", false]], "from_route_id (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.from_route_id", false]], "from_route_id_id (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.from_route_id_id", false]], "from_stop_id (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.from_stop_id", false]], "from_stop_id (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.from_stop_id", false]], "from_stop_id_id (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.from_stop_id_id", false]], "from_stop_id_id (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.from_stop_id_id", false]], "from_timeframe_group_id (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.from_timeframe_group_id", false]], "from_timeframe_group_id_id (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.from_timeframe_group_id_id", false]], "from_trip_id (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.from_trip_id", false]], "from_trip_id_id (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.from_trip_id_id", false]], "get_fields() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.get_fields", false]], "get_files() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.get_files", false]], "get_next_by_date() (pt_map.models.calendardate method)": [[3, "pt_map.models.CalendarDate.get_next_by_date", false]], "get_next_by_end_date() (pt_map.models.calendar method)": [[3, "pt_map.models.Calendar.get_next_by_end_date", false]], "get_next_by_end_date() (pt_map.models.timeframe method)": [[3, "pt_map.models.Timeframe.get_next_by_end_date", false]], "get_next_by_start_date() (pt_map.models.calendar method)": [[3, "pt_map.models.Calendar.get_next_by_start_date", false]], "get_next_by_start_date() (pt_map.models.timeframe method)": [[3, "pt_map.models.Timeframe.get_next_by_start_date", false]], "get_previous_by_date() (pt_map.models.calendardate method)": [[3, "pt_map.models.CalendarDate.get_previous_by_date", false]], "get_previous_by_end_date() (pt_map.models.calendar method)": [[3, "pt_map.models.Calendar.get_previous_by_end_date", false]], "get_previous_by_end_date() (pt_map.models.timeframe method)": [[3, "pt_map.models.Timeframe.get_previous_by_end_date", false]], "get_previous_by_start_date() (pt_map.models.calendar method)": [[3, "pt_map.models.Calendar.get_previous_by_start_date", false]], "get_previous_by_start_date() (pt_map.models.timeframe method)": [[3, "pt_map.models.Timeframe.get_previous_by_start_date", false]], "get_timetable() (in module pt_map.views)": [[3, "pt_map.views.get_timetable", false]], "gtfs (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS", false]], "gtfs.agency (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Agency", false]], "gtfs.areas (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Areas", false]], "gtfs.attributions (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Attributions", false]], "gtfs.bookingrules (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.BookingRules", false]], "gtfs.calendar (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Calendar", false]], "gtfs.calendardates (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.CalendarDates", false]], "gtfs.fareattributes (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.FareAttributes", false]], "gtfs.farelegrules (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.FareLegRules", false]], "gtfs.faremedia (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.FareMedia", false]], "gtfs.fareproducts (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.FareProducts", false]], "gtfs.farerules (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.FareRules", false]], "gtfs.faretransferrules (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.FareTransferRules", false]], "gtfs.feedinfo (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.FeedInfo", false]], "gtfs.frequencies (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Frequencies", false]], "gtfs.gtfsfile (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.GTFSFile", false]], "gtfs.levels (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Levels", false]], "gtfs.locationgroups (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.LocationGroups", false]], "gtfs.locationgroupstops (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.LocationGroupStops", false]], "gtfs.locationsgeojson (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.LocationsGeojson", false]], "gtfs.networks (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Networks", false]], "gtfs.pathways (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Pathways", false]], "gtfs.routenetworks (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.RouteNetworks", false]], "gtfs.routes (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Routes", false]], "gtfs.shapes (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Shapes", false]], "gtfs.stopareas (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.StopAreas", false]], "gtfs.stops (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Stops", false]], "gtfs.stoptimes (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.StopTimes", false]], "gtfs.timeframes (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Timeframes", false]], "gtfs.transfers (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Transfers", false]], "gtfs.translations (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Translations", false]], "gtfs.trips (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Trips", false]], "gtfs_to_db() (in module pt_map.bridge)": [[3, "pt_map.bridge.gtfs_to_db", false]], "headway_secs (pt_map.models.frequency attribute)": [[3, "pt_map.models.Frequency.headway_secs", false]], "id (pt_map.models.calendardate attribute)": [[3, "pt_map.models.CalendarDate.id", false]], "id (pt_map.models.farerule attribute)": [[3, "pt_map.models.FareRule.id", false]], "id (pt_map.models.frequency attribute)": [[3, "pt_map.models.Frequency.id", false]], "id (pt_map.models.locationgroupstop attribute)": [[3, "pt_map.models.LocationGroupStop.id", false]], "id (pt_map.models.shape attribute)": [[3, "pt_map.models.Shape.id", false]], "id (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.id", false]], "id (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.id", false]], "id (pt_map.models.translation attribute)": [[3, "pt_map.models.Translation.id", false]], "index() (in module pt_map.views)": [[3, "pt_map.views.index", false]], "is_bidirectional (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.is_bidirectional", false]], "is_nan() (in module pt_map.bridge)": [[3, "pt_map.bridge.is_NaN", false]], "language (pt_map.models.translation attribute)": [[3, "pt_map.models.Translation.language", false]], "length (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.length", false]], "level (class in pt_map.models)": [[3, "pt_map.models.Level", false]], "level.doesnotexist": [[3, "pt_map.models.Level.DoesNotExist", false]], "level.multipleobjectsreturned": [[3, "pt_map.models.Level.MultipleObjectsReturned", false]], "level_id (pt_map.models.level attribute)": [[3, "pt_map.models.Level.level_id", false]], "level_id (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.level_id", false]], "level_id_id (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.level_id_id", false]], "level_index (pt_map.models.level attribute)": [[3, "pt_map.models.Level.level_index", false]], "level_name (pt_map.models.level attribute)": [[3, "pt_map.models.Level.level_name", false]], "load_data() (pt_map.gtfs.gtfs.gtfsfile method)": [[3, "pt_map.gtfs.GTFS.GTFSFile.load_data", false]], "load_data() (pt_map.gtfs.gtfs.locationsgeojson method)": [[3, "pt_map.gtfs.GTFS.LocationsGeojson.load_data", false]], "location_group_id (pt_map.models.locationgroup attribute)": [[3, "pt_map.models.LocationGroup.location_group_id", false]], "location_group_id (pt_map.models.locationgroupstop attribute)": [[3, "pt_map.models.LocationGroupStop.location_group_id", false]], "location_group_id (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.location_group_id", false]], "location_group_id_id (pt_map.models.locationgroupstop attribute)": [[3, "pt_map.models.LocationGroupStop.location_group_id_id", false]], "location_group_id_id (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.location_group_id_id", false]], "location_group_name (pt_map.models.locationgroup attribute)": [[3, "pt_map.models.LocationGroup.location_group_name", false]], "location_group_type (pt_map.models.locationgroup attribute)": [[3, "pt_map.models.LocationGroup.location_group_type", false]], "location_id (pt_map.models.locationsgeojson attribute)": [[3, "pt_map.models.LocationsGeojson.location_id", false]], "location_id (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.location_id", false]], "location_id_id (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.location_id_id", false]], "location_lat (pt_map.models.locationsgeojson attribute)": [[3, "pt_map.models.LocationsGeojson.location_lat", false]], "location_lon (pt_map.models.locationsgeojson attribute)": [[3, "pt_map.models.LocationsGeojson.location_lon", false]], "location_name (pt_map.models.locationsgeojson attribute)": [[3, "pt_map.models.LocationsGeojson.location_name", false]], "location_type (pt_map.models.locationsgeojson attribute)": [[3, "pt_map.models.LocationsGeojson.location_type", false]], "location_type (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.location_type", false]], "locationgroup (class in pt_map.models)": [[3, "pt_map.models.LocationGroup", false]], "locationgroup.doesnotexist": [[3, "pt_map.models.LocationGroup.DoesNotExist", false]], "locationgroup.multipleobjectsreturned": [[3, "pt_map.models.LocationGroup.MultipleObjectsReturned", false]], "locationgroupstop (class in pt_map.models)": [[3, "pt_map.models.LocationGroupStop", false]], "locationgroupstop.doesnotexist": [[3, "pt_map.models.LocationGroupStop.DoesNotExist", false]], "locationgroupstop.multipleobjectsreturned": [[3, "pt_map.models.LocationGroupStop.MultipleObjectsReturned", false]], "locationgroupstop_set (pt_map.models.locationgroup attribute)": [[3, "pt_map.models.LocationGroup.locationgroupstop_set", false]], "locationgroupstop_set (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.locationgroupstop_set", false]], "locationsgeojson (class in pt_map.models)": [[3, "pt_map.models.LocationsGeojson", false]], "locationsgeojson.doesnotexist": [[3, "pt_map.models.LocationsGeojson.DoesNotExist", false]], "locationsgeojson.multipleobjectsreturned": [[3, "pt_map.models.LocationsGeojson.MultipleObjectsReturned", false]], "main() (in module manage)": [[1, "manage.main", false]], "manage": [[1, "module-manage", false]], "max_slope (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.max_slope", false]], "min_transfer_time (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.min_transfer_time", false]], "min_width (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.min_width", false]], "module": [[1, "module-manage", false], [3, "module-pt_map", false], [3, "module-pt_map.admin", false], [3, "module-pt_map.apps", false], [3, "module-pt_map.bridge", false], [3, "module-pt_map.gtfs", false], [3, "module-pt_map.models", false], [3, "module-pt_map.tests", false], [3, "module-pt_map.urls", false], [3, "module-pt_map.views", false], [4, "module-transport_accessibility", false], [4, "module-transport_accessibility.asgi", false], [4, "module-transport_accessibility.settings", false], [4, "module-transport_accessibility.urls", false], [4, "module-transport_accessibility.wsgi", false]], "monday (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.monday", false]], "name (pt_map.apps.ptmapconfig attribute)": [[3, "pt_map.apps.PtMapConfig.name", false]], "network (class in pt_map.models)": [[3, "pt_map.models.Network", false]], "network.doesnotexist": [[3, "pt_map.models.Network.DoesNotExist", false]], "network.multipleobjectsreturned": [[3, "pt_map.models.Network.MultipleObjectsReturned", false]], "network_id (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.network_id", false]], "network_id (pt_map.models.network attribute)": [[3, "pt_map.models.Network.network_id", false]], "network_id (pt_map.models.routenetwork attribute)": [[3, "pt_map.models.RouteNetwork.network_id", false]], "network_id_id (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.network_id_id", false]], "network_id_id (pt_map.models.routenetwork attribute)": [[3, "pt_map.models.RouteNetwork.network_id_id", false]], "network_name (pt_map.models.network attribute)": [[3, "pt_map.models.Network.network_name", false]], "objects (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.objects", false]], "objects (pt_map.models.area attribute)": [[3, "pt_map.models.Area.objects", false]], "objects (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.objects", false]], "objects (pt_map.models.bookingrule attribute)": [[3, "pt_map.models.BookingRule.objects", false]], "objects (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.objects", false]], "objects (pt_map.models.calendardate attribute)": [[3, "pt_map.models.CalendarDate.objects", false]], "objects (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.objects", false]], "objects (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.objects", false]], "objects (pt_map.models.faremedium attribute)": [[3, "pt_map.models.FareMedium.objects", false]], "objects (pt_map.models.fareproduct attribute)": [[3, "pt_map.models.FareProduct.objects", false]], "objects (pt_map.models.farerule attribute)": [[3, "pt_map.models.FareRule.objects", false]], "objects (pt_map.models.faretransferrule attribute)": [[3, "pt_map.models.FareTransferRule.objects", false]], "objects (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.objects", false]], "objects (pt_map.models.frequency attribute)": [[3, "pt_map.models.Frequency.objects", false]], "objects (pt_map.models.level attribute)": [[3, "pt_map.models.Level.objects", false]], "objects (pt_map.models.locationgroup attribute)": [[3, "pt_map.models.LocationGroup.objects", false]], "objects (pt_map.models.locationgroupstop attribute)": [[3, "pt_map.models.LocationGroupStop.objects", false]], "objects (pt_map.models.locationsgeojson attribute)": [[3, "pt_map.models.LocationsGeojson.objects", false]], "objects (pt_map.models.network attribute)": [[3, "pt_map.models.Network.objects", false]], "objects (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.objects", false]], "objects (pt_map.models.route attribute)": [[3, "pt_map.models.Route.objects", false]], "objects (pt_map.models.routenetwork attribute)": [[3, "pt_map.models.RouteNetwork.objects", false]], "objects (pt_map.models.shape attribute)": [[3, "pt_map.models.Shape.objects", false]], "objects (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.objects", false]], "objects (pt_map.models.stoparea attribute)": [[3, "pt_map.models.StopArea.objects", false]], "objects (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.objects", false]], "objects (pt_map.models.timeframe attribute)": [[3, "pt_map.models.Timeframe.objects", false]], "objects (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.objects", false]], "objects (pt_map.models.translation attribute)": [[3, "pt_map.models.Translation.objects", false]], "objects (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.objects", false]], "origin_id (pt_map.models.farerule attribute)": [[3, "pt_map.models.FareRule.origin_id", false]], "parent_location_id (pt_map.models.locationsgeojson attribute)": [[3, "pt_map.models.LocationsGeojson.parent_location_id", false]], "parent_station (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.parent_station", false]], "parent_station_id (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.parent_station_id", false]], "pathway (class in pt_map.models)": [[3, "pt_map.models.Pathway", false]], "pathway.doesnotexist": [[3, "pt_map.models.Pathway.DoesNotExist", false]], "pathway.multipleobjectsreturned": [[3, "pt_map.models.Pathway.MultipleObjectsReturned", false]], "pathway_id (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.pathway_id", false]], "pathway_mode (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.pathway_mode", false]], "pathways_from (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.pathways_from", false]], "pathways_to (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.pathways_to", false]], "payment_method (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.payment_method", false]], "pickup_type (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.pickup_type", false]], "platform_code (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.platform_code", false]], "price (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.price", false]], "pt_map": [[3, "module-pt_map", false]], "pt_map.admin": [[3, "module-pt_map.admin", false]], "pt_map.apps": [[3, "module-pt_map.apps", false]], "pt_map.bridge": [[3, "module-pt_map.bridge", false]], "pt_map.gtfs": [[3, "module-pt_map.gtfs", false]], "pt_map.models": [[3, "module-pt_map.models", false]], "pt_map.tests": [[3, "module-pt_map.tests", false]], "pt_map.urls": [[3, "module-pt_map.urls", false]], "pt_map.views": [[3, "module-pt_map.views", false]], "ptmapconfig (class in pt_map.apps)": [[3, "pt_map.apps.PtMapConfig", false]], "reversed_signposted_as (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.reversed_signposted_as", false]], "route (class in pt_map.models)": [[3, "pt_map.models.Route", false]], "route.doesnotexist": [[3, "pt_map.models.Route.DoesNotExist", false]], "route.multipleobjectsreturned": [[3, "pt_map.models.Route.MultipleObjectsReturned", false]], "route_color (pt_map.models.route attribute)": [[3, "pt_map.models.Route.route_color", false]], "route_desc (pt_map.models.route attribute)": [[3, "pt_map.models.Route.route_desc", false]], "route_id (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.route_id", false]], "route_id (pt_map.models.farerule attribute)": [[3, "pt_map.models.FareRule.route_id", false]], "route_id (pt_map.models.route attribute)": [[3, "pt_map.models.Route.route_id", false]], "route_id (pt_map.models.routenetwork attribute)": [[3, "pt_map.models.RouteNetwork.route_id", false]], "route_id (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.route_id", false]], "route_id_id (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.route_id_id", false]], "route_id_id (pt_map.models.farerule attribute)": [[3, "pt_map.models.FareRule.route_id_id", false]], "route_id_id (pt_map.models.routenetwork attribute)": [[3, "pt_map.models.RouteNetwork.route_id_id", false]], "route_id_id (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.route_id_id", false]], "route_long_name (pt_map.models.route attribute)": [[3, "pt_map.models.Route.route_long_name", false]], "route_network_id (pt_map.models.routenetwork attribute)": [[3, "pt_map.models.RouteNetwork.route_network_id", false]], "route_network_name (pt_map.models.routenetwork attribute)": [[3, "pt_map.models.RouteNetwork.route_network_name", false]], "route_set (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.route_set", false]], "route_short_name (pt_map.models.route attribute)": [[3, "pt_map.models.Route.route_short_name", false]], "route_sort_order (pt_map.models.route attribute)": [[3, "pt_map.models.Route.route_sort_order", false]], "route_text_color (pt_map.models.route attribute)": [[3, "pt_map.models.Route.route_text_color", false]], "route_type (pt_map.models.route attribute)": [[3, "pt_map.models.Route.route_type", false]], "route_url (pt_map.models.route attribute)": [[3, "pt_map.models.Route.route_url", false]], "routenetwork (class in pt_map.models)": [[3, "pt_map.models.RouteNetwork", false]], "routenetwork.doesnotexist": [[3, "pt_map.models.RouteNetwork.DoesNotExist", false]], "routenetwork.multipleobjectsreturned": [[3, "pt_map.models.RouteNetwork.MultipleObjectsReturned", false]], "routenetwork_set (pt_map.models.network attribute)": [[3, "pt_map.models.Network.routenetwork_set", false]], "routenetwork_set (pt_map.models.route attribute)": [[3, "pt_map.models.Route.routenetwork_set", false]], "rule_criteria (pt_map.models.bookingrule attribute)": [[3, "pt_map.models.BookingRule.rule_criteria", false]], "saturday (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.saturday", false]], "service_id (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.service_id", false]], "service_id (pt_map.models.calendardate attribute)": [[3, "pt_map.models.CalendarDate.service_id", false]], "service_id (pt_map.models.timeframe attribute)": [[3, "pt_map.models.Timeframe.service_id", false]], "service_id (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.service_id", false]], "shape (class in pt_map.models)": [[3, "pt_map.models.Shape", false]], "shape.doesnotexist": [[3, "pt_map.models.Shape.DoesNotExist", false]], "shape.multipleobjectsreturned": [[3, "pt_map.models.Shape.MultipleObjectsReturned", false]], "shape_dist_traveled (pt_map.models.shape attribute)": [[3, "pt_map.models.Shape.shape_dist_traveled", false]], "shape_dist_traveled (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.shape_dist_traveled", false]], "shape_id (pt_map.models.shape attribute)": [[3, "pt_map.models.Shape.shape_id", false]], "shape_id (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.shape_id", false]], "shape_id_id (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.shape_id_id", false]], "shape_pt_lat (pt_map.models.shape attribute)": [[3, "pt_map.models.Shape.shape_pt_lat", false]], "shape_pt_lon (pt_map.models.shape attribute)": [[3, "pt_map.models.Shape.shape_pt_lon", false]], "shape_pt_sequence (pt_map.models.shape attribute)": [[3, "pt_map.models.Shape.shape_pt_sequence", false]], "signposted_as (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.signposted_as", false]], "stair_count (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.stair_count", false]], "standardize_time() (in module pt_map.bridge)": [[3, "pt_map.bridge.standardize_time", false]], "start_date (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.start_date", false]], "start_date (pt_map.models.timeframe attribute)": [[3, "pt_map.models.Timeframe.start_date", false]], "start_time (pt_map.models.bookingrule attribute)": [[3, "pt_map.models.BookingRule.start_time", false]], "start_time (pt_map.models.frequency attribute)": [[3, "pt_map.models.Frequency.start_time", false]], "start_time (pt_map.models.timeframe attribute)": [[3, "pt_map.models.Timeframe.start_time", false]], "stdz() (in module pt_map.bridge)": [[3, "pt_map.bridge.stdz", false]], "stop (class in pt_map.models)": [[3, "pt_map.models.Stop", false]], "stop.doesnotexist": [[3, "pt_map.models.Stop.DoesNotExist", false]], "stop.multipleobjectsreturned": [[3, "pt_map.models.Stop.MultipleObjectsReturned", false]], "stop_area_description (pt_map.models.stoparea attribute)": [[3, "pt_map.models.StopArea.stop_area_description", false]], "stop_area_id (pt_map.models.stoparea attribute)": [[3, "pt_map.models.StopArea.stop_area_id", false]], "stop_area_name (pt_map.models.stoparea attribute)": [[3, "pt_map.models.StopArea.stop_area_name", false]], "stop_code (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stop_code", false]], "stop_desc (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stop_desc", false]], "stop_headsign (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.stop_headsign", false]], "stop_id (pt_map.models.locationgroupstop attribute)": [[3, "pt_map.models.LocationGroupStop.stop_id", false]], "stop_id (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stop_id", false]], "stop_id (pt_map.models.stoparea attribute)": [[3, "pt_map.models.StopArea.stop_id", false]], "stop_id (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.stop_id", false]], "stop_id_id (pt_map.models.locationgroupstop attribute)": [[3, "pt_map.models.LocationGroupStop.stop_id_id", false]], "stop_id_id (pt_map.models.stoparea attribute)": [[3, "pt_map.models.StopArea.stop_id_id", false]], "stop_id_id (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.stop_id_id", false]], "stop_lat (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stop_lat", false]], "stop_lon (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stop_lon", false]], "stop_name (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stop_name", false]], "stop_sequence (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.stop_sequence", false]], "stop_set (pt_map.models.level attribute)": [[3, "pt_map.models.Level.stop_set", false]], "stop_set (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stop_set", false]], "stop_timezone (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stop_timezone", false]], "stop_url (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stop_url", false]], "stoparea (class in pt_map.models)": [[3, "pt_map.models.StopArea", false]], "stoparea.doesnotexist": [[3, "pt_map.models.StopArea.DoesNotExist", false]], "stoparea.multipleobjectsreturned": [[3, "pt_map.models.StopArea.MultipleObjectsReturned", false]], "stoparea_set (pt_map.models.area attribute)": [[3, "pt_map.models.Area.stoparea_set", false]], "stoparea_set (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stoparea_set", false]], "stoptime (class in pt_map.models)": [[3, "pt_map.models.StopTime", false]], "stoptime.doesnotexist": [[3, "pt_map.models.StopTime.DoesNotExist", false]], "stoptime.multipleobjectsreturned": [[3, "pt_map.models.StopTime.MultipleObjectsReturned", false]], "stoptime_set (pt_map.models.locationgroup attribute)": [[3, "pt_map.models.LocationGroup.stoptime_set", false]], "stoptime_set (pt_map.models.locationsgeojson attribute)": [[3, "pt_map.models.LocationsGeojson.stoptime_set", false]], "stoptime_set (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stoptime_set", false]], "stoptime_set (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.stoptime_set", false]], "sunday (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.sunday", false]], "table_name (pt_map.models.translation attribute)": [[3, "pt_map.models.Translation.table_name", false]], "thursday (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.thursday", false]], "timeframe (class in pt_map.models)": [[3, "pt_map.models.Timeframe", false]], "timeframe.doesnotexist": [[3, "pt_map.models.Timeframe.DoesNotExist", false]], "timeframe.multipleobjectsreturned": [[3, "pt_map.models.Timeframe.MultipleObjectsReturned", false]], "timeframe_group_id (pt_map.models.timeframe attribute)": [[3, "pt_map.models.Timeframe.timeframe_group_id", false]], "timepoint (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.timepoint", false]], "to_area_id (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.to_area_id", false]], "to_area_id_id (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.to_area_id_id", false]], "to_leg_group_id (pt_map.models.faretransferrule attribute)": [[3, "pt_map.models.FareTransferRule.to_leg_group_id", false]], "to_route_id (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.to_route_id", false]], "to_route_id_id (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.to_route_id_id", false]], "to_snake_case() (in module pt_map.bridge)": [[3, "pt_map.bridge.to_snake_case", false]], "to_stop_id (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.to_stop_id", false]], "to_stop_id (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.to_stop_id", false]], "to_stop_id_id (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.to_stop_id_id", false]], "to_stop_id_id (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.to_stop_id_id", false]], "to_timeframe_group_id (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.to_timeframe_group_id", false]], "to_timeframe_group_id_id (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.to_timeframe_group_id_id", false]], "to_trip_id (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.to_trip_id", false]], "to_trip_id_id (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.to_trip_id_id", false]], "tocamelcase() (in module pt_map.bridge)": [[3, "pt_map.bridge.toCamelCase", false]], "transfer (class in pt_map.models)": [[3, "pt_map.models.Transfer", false]], "transfer.doesnotexist": [[3, "pt_map.models.Transfer.DoesNotExist", false]], "transfer.multipleobjectsreturned": [[3, "pt_map.models.Transfer.MultipleObjectsReturned", false]], "transfer_duration (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.transfer_duration", false]], "transfer_type (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.transfer_type", false]], "transfers (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.transfers", false]], "transfers_from_route (pt_map.models.route attribute)": [[3, "pt_map.models.Route.transfers_from_route", false]], "transfers_from_stop (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.transfers_from_stop", false]], "transfers_from_trip (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.transfers_from_trip", false]], "transfers_to_route (pt_map.models.route attribute)": [[3, "pt_map.models.Route.transfers_to_route", false]], "transfers_to_stop (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.transfers_to_stop", false]], "transfers_to_trip (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.transfers_to_trip", false]], "translation (class in pt_map.models)": [[3, "pt_map.models.Translation", false]], "translation (pt_map.models.translation attribute)": [[3, "pt_map.models.Translation.translation", false]], "translation.doesnotexist": [[3, "pt_map.models.Translation.DoesNotExist", false]], "translation.multipleobjectsreturned": [[3, "pt_map.models.Translation.MultipleObjectsReturned", false]], "transport_accessibility": [[4, "module-transport_accessibility", false]], "transport_accessibility.asgi": [[4, "module-transport_accessibility.asgi", false]], "transport_accessibility.settings": [[4, "module-transport_accessibility.settings", false]], "transport_accessibility.urls": [[4, "module-transport_accessibility.urls", false]], "transport_accessibility.wsgi": [[4, "module-transport_accessibility.wsgi", false]], "traversal_time (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.traversal_time", false]], "trip (class in pt_map.models)": [[3, "pt_map.models.Trip", false]], "trip.doesnotexist": [[3, "pt_map.models.Trip.DoesNotExist", false]], "trip.multipleobjectsreturned": [[3, "pt_map.models.Trip.MultipleObjectsReturned", false]], "trip_headsign (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.trip_headsign", false]], "trip_id (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.trip_id", false]], "trip_id (pt_map.models.bookingrule attribute)": [[3, "pt_map.models.BookingRule.trip_id", false]], "trip_id (pt_map.models.frequency attribute)": [[3, "pt_map.models.Frequency.trip_id", false]], "trip_id (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.trip_id", false]], "trip_id (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.trip_id", false]], "trip_id_id (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.trip_id_id", false]], "trip_id_id (pt_map.models.bookingrule attribute)": [[3, "pt_map.models.BookingRule.trip_id_id", false]], "trip_id_id (pt_map.models.frequency attribute)": [[3, "pt_map.models.Frequency.trip_id_id", false]], "trip_id_id (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.trip_id_id", false]], "trip_set (pt_map.models.route attribute)": [[3, "pt_map.models.Route.trip_set", false]], "trip_set (pt_map.models.shape attribute)": [[3, "pt_map.models.Shape.trip_set", false]], "trip_short_name (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.trip_short_name", false]], "tuesday (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.tuesday", false]], "unqfk() (in module pt_map.bridge)": [[3, "pt_map.bridge.unqfk", false]], "validate() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate", false]], "validate_agency() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_agency", false]], "validate_areas() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_areas", false]], "validate_attributions() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_attributions", false]], "validate_booking_rules() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_booking_rules", false]], "validate_calendar() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_calendar", false]], "validate_calendar_dates() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_calendar_dates", false]], "validate_fare_attributes() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_fare_attributes", false]], "validate_fare_leg_rules() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_fare_leg_rules", false]], "validate_fare_media() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_fare_media", false]], "validate_fare_products() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_fare_products", false]], "validate_fare_rules() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_fare_rules", false]], "validate_fare_transfer_rules() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_fare_transfer_rules", false]], "validate_feed_info() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_feed_info", false]], "validate_frequencies() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_frequencies", false]], "validate_lat_lon() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_lat_lon", false]], "validate_levels() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_levels", false]], "validate_location_group_stops() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_location_group_stops", false]], "validate_location_groups() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_location_groups", false]], "validate_locations_geojson() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_locations_geojson", false]], "validate_networks() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_networks", false]], "validate_optional_fields() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_optional_fields", false]], "validate_pathways() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_pathways", false]], "validate_required_fields() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_required_fields", false]], "validate_route_networks() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_route_networks", false]], "validate_routes() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_routes", false]], "validate_shapes() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_shapes", false]], "validate_stop_areas() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_stop_areas", false]], "validate_stop_times() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_stop_times", false]], "validate_stops() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_stops", false]], "validate_timeframes() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_timeframes", false]], "validate_transfers() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_transfers", false]], "validate_translations() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_translations", false]], "validate_trips() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_trips", false]], "wednesday (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.wednesday", false]], "wheelchair_accessible (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.wheelchair_accessible", false]], "wheelchair_boarding (pt_map.models.locationsgeojson attribute)": [[3, "pt_map.models.LocationsGeojson.wheelchair_boarding", false]], "wheelchair_boarding (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.wheelchair_boarding", false]], "zone_id (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.zone_id", false]]}, "objects": {"": [[1, 0, 0, "-", "manage"], [3, 0, 0, "-", "pt_map"], [4, 0, 0, "-", "transport_accessibility"]], "manage": [[1, 1, 1, "", "main"]], "pt_map": [[3, 0, 0, "-", "admin"], [3, 0, 0, "-", "apps"], [3, 0, 0, "-", "bridge"], [3, 0, 0, "-", "gtfs"], [3, 0, 0, "-", "models"], [3, 0, 0, "-", "tests"], [3, 0, 0, "-", "urls"], [3, 0, 0, "-", "views"]], "pt_map.apps": [[3, 2, 1, "", "PtMapConfig"]], "pt_map.apps.PtMapConfig": [[3, 3, 1, "", "default_auto_field"], [3, 3, 1, "", "name"]], "pt_map.bridge": [[3, 1, 1, "", "db_to_gtfs"], [3, 1, 1, "", "gtfs_to_db"], [3, 1, 1, "", "is_NaN"], [3, 1, 1, "", "standardize_time"], [3, 1, 1, "", "stdz"], [3, 1, 1, "", "toCamelCase"], [3, 1, 1, "", "to_snake_case"], [3, 1, 1, "", "unqfk"]], "pt_map.gtfs": [[3, 2, 1, "", "GTFS"]], "pt_map.gtfs.GTFS": [[3, 2, 1, "", "Agency"], [3, 2, 1, "", "Areas"], [3, 2, 1, "", "Attributions"], [3, 2, 1, "", "BookingRules"], [3, 2, 1, "", "Calendar"], [3, 2, 1, "", "CalendarDates"], [3, 2, 1, "", "FareAttributes"], [3, 2, 1, "", "FareLegRules"], [3, 2, 1, "", "FareMedia"], [3, 2, 1, "", "FareProducts"], [3, 2, 1, "", "FareRules"], [3, 2, 1, "", "FareTransferRules"], [3, 2, 1, "", "FeedInfo"], [3, 2, 1, "", "Frequencies"], [3, 2, 1, "", "GTFSFile"], [3, 2, 1, "", "Levels"], [3, 2, 1, "", "LocationGroupStops"], [3, 2, 1, "", "LocationGroups"], [3, 2, 1, "", "LocationsGeojson"], [3, 2, 1, "", "Networks"], [3, 2, 1, "", "Pathways"], [3, 2, 1, "", "RouteNetworks"], [3, 2, 1, "", "Routes"], [3, 2, 1, "", "Shapes"], [3, 2, 1, "", "StopAreas"], [3, 2, 1, "", "StopTimes"], [3, 2, 1, "", "Stops"], [3, 2, 1, "", "Timeframes"], [3, 2, 1, "", "Transfers"], [3, 2, 1, "", "Translations"], [3, 2, 1, "", "Trips"], [3, 3, 1, "", "errors"], [3, 4, 1, "", "export"], [3, 3, 1, "", "folder_path"], [3, 4, 1, "", "get_fields"], [3, 4, 1, "", "get_files"], [3, 4, 1, "", "validate"], [3, 4, 1, "", "validate_agency"], [3, 4, 1, "", "validate_areas"], [3, 4, 1, "", "validate_attributions"], [3, 4, 1, "", "validate_booking_rules"], [3, 4, 1, "", "validate_calendar"], [3, 4, 1, "", "validate_calendar_dates"], [3, 4, 1, "", "validate_fare_attributes"], [3, 4, 1, "", "validate_fare_leg_rules"], [3, 4, 1, "", "validate_fare_media"], [3, 4, 1, "", "validate_fare_products"], [3, 4, 1, "", "validate_fare_rules"], [3, 4, 1, "", "validate_fare_transfer_rules"], [3, 4, 1, "", "validate_feed_info"], [3, 4, 1, "", "validate_frequencies"], [3, 4, 1, "", "validate_lat_lon"], [3, 4, 1, "", "validate_levels"], [3, 4, 1, "", "validate_location_group_stops"], [3, 4, 1, "", "validate_location_groups"], [3, 4, 1, "", "validate_locations_geojson"], [3, 4, 1, "", "validate_networks"], [3, 4, 1, "", "validate_optional_fields"], [3, 4, 1, "", "validate_pathways"], [3, 4, 1, "", "validate_required_fields"], [3, 4, 1, "", "validate_route_networks"], [3, 4, 1, "", "validate_routes"], [3, 4, 1, "", "validate_shapes"], [3, 4, 1, "", "validate_stop_areas"], [3, 4, 1, "", "validate_stop_times"], [3, 4, 1, "", "validate_stops"], [3, 4, 1, "", "validate_timeframes"], [3, 4, 1, "", "validate_transfers"], [3, 4, 1, "", "validate_translations"], [3, 4, 1, "", "validate_trips"]], "pt_map.gtfs.GTFS.GTFSFile": [[3, 3, 1, "", "data"], [3, 3, 1, "", "file_name"], [3, 3, 1, "", "folder_path"], [3, 4, 1, "", "load_data"]], "pt_map.gtfs.GTFS.LocationsGeojson": [[3, 4, 1, "", "load_data"]], "pt_map.models": [[3, 2, 1, "", "Agency"], [3, 2, 1, "", "Area"], [3, 2, 1, "", "Attribution"], [3, 2, 1, "", "BookingRule"], [3, 2, 1, "", "Calendar"], [3, 2, 1, "", "CalendarDate"], [3, 3, 1, "", "Classes"], [3, 2, 1, "", "FareAttribute"], [3, 2, 1, "", "FareLegRule"], [3, 2, 1, "", "FareMedium"], [3, 2, 1, "", "FareProduct"], [3, 2, 1, "", "FareRule"], [3, 2, 1, "", "FareTransferRule"], [3, 2, 1, "", "FeedInfo"], [3, 2, 1, "", "Frequency"], [3, 2, 1, "", "Level"], [3, 2, 1, "", "LocationGroup"], [3, 2, 1, "", "LocationGroupStop"], [3, 2, 1, "", "LocationsGeojson"], [3, 2, 1, "", "Network"], [3, 2, 1, "", "Pathway"], [3, 2, 1, "", "Route"], [3, 2, 1, "", "RouteNetwork"], [3, 2, 1, "", "Shape"], [3, 2, 1, "", "Stop"], [3, 2, 1, "", "StopArea"], [3, 2, 1, "", "StopTime"], [3, 2, 1, "", "Timeframe"], [3, 2, 1, "", "Transfer"], [3, 2, 1, "", "Translation"], [3, 2, 1, "", "Trip"]], "pt_map.models.Agency": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "agency_email"], [3, 3, 1, "", "agency_fare_url"], [3, 3, 1, "", "agency_id"], [3, 3, 1, "", "agency_lang"], [3, 3, 1, "", "agency_name"], [3, 3, 1, "", "agency_phone"], [3, 3, 1, "", "agency_timezone"], [3, 3, 1, "", "agency_url"], [3, 3, 1, "", "attribution_set"], [3, 3, 1, "", "fareattribute_set"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "route_set"]], "pt_map.models.Area": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "area_description"], [3, 3, 1, "", "area_id"], [3, 3, 1, "", "area_name"], [3, 3, 1, "", "farelegrule_from_area"], [3, 3, 1, "", "farelegrule_to_area"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "stoparea_set"]], "pt_map.models.Attribution": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "agency_id"], [3, 3, 1, "", "agency_id_id"], [3, 3, 1, "", "attribution_email"], [3, 3, 1, "", "attribution_id"], [3, 3, 1, "", "attribution_name"], [3, 3, 1, "", "attribution_phone"], [3, 3, 1, "", "attribution_url"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "route_id"], [3, 3, 1, "", "route_id_id"], [3, 3, 1, "", "trip_id"], [3, 3, 1, "", "trip_id_id"]], "pt_map.models.BookingRule": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "booking_rule_id"], [3, 3, 1, "", "booking_rule_instructions"], [3, 3, 1, "", "booking_type"], [3, 3, 1, "", "end_time"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "rule_criteria"], [3, 3, 1, "", "start_time"], [3, 3, 1, "", "trip_id"], [3, 3, 1, "", "trip_id_id"]], "pt_map.models.Calendar": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "end_date"], [3, 3, 1, "", "friday"], [3, 4, 1, "", "get_next_by_end_date"], [3, 4, 1, "", "get_next_by_start_date"], [3, 4, 1, "", "get_previous_by_end_date"], [3, 4, 1, "", "get_previous_by_start_date"], [3, 3, 1, "", "monday"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "saturday"], [3, 3, 1, "", "service_id"], [3, 3, 1, "", "start_date"], [3, 3, 1, "", "sunday"], [3, 3, 1, "", "thursday"], [3, 3, 1, "", "tuesday"], [3, 3, 1, "", "wednesday"]], "pt_map.models.CalendarDate": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "date"], [3, 3, 1, "", "exception_type"], [3, 4, 1, "", "get_next_by_date"], [3, 4, 1, "", "get_previous_by_date"], [3, 3, 1, "", "id"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "service_id"]], "pt_map.models.FareAttribute": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "agency_id"], [3, 3, 1, "", "agency_id_id"], [3, 3, 1, "", "currency_type"], [3, 3, 1, "", "fare_id"], [3, 3, 1, "", "farerule_set"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "payment_method"], [3, 3, 1, "", "price"], [3, 3, 1, "", "transfer_duration"], [3, 3, 1, "", "transfers"]], "pt_map.models.FareLegRule": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "fare_leg_rule_description"], [3, 3, 1, "", "fare_leg_rule_id"], [3, 3, 1, "", "fare_leg_rule_name"], [3, 3, 1, "", "fare_product_id"], [3, 3, 1, "", "fare_product_id_id"], [3, 3, 1, "", "from_area_id"], [3, 3, 1, "", "from_area_id_id"], [3, 3, 1, "", "from_timeframe_group_id"], [3, 3, 1, "", "from_timeframe_group_id_id"], [3, 3, 1, "", "network_id"], [3, 3, 1, "", "network_id_id"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "to_area_id"], [3, 3, 1, "", "to_area_id_id"], [3, 3, 1, "", "to_timeframe_group_id"], [3, 3, 1, "", "to_timeframe_group_id_id"]], "pt_map.models.FareMedium": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "fare_media_description"], [3, 3, 1, "", "fare_media_id"], [3, 3, 1, "", "fare_media_name"], [3, 3, 1, "", "objects"]], "pt_map.models.FareProduct": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "amount"], [3, 3, 1, "", "curreny"], [3, 3, 1, "", "fare_product_description"], [3, 3, 1, "", "fare_product_id"], [3, 3, 1, "", "fare_product_name"], [3, 3, 1, "", "farelegrule_set"], [3, 3, 1, "", "faretransferrule_set"], [3, 3, 1, "", "objects"]], "pt_map.models.FareRule": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "contains_id"], [3, 3, 1, "", "destination_id"], [3, 3, 1, "", "fare_id"], [3, 3, 1, "", "fare_id_id"], [3, 3, 1, "", "id"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "origin_id"], [3, 3, 1, "", "route_id"], [3, 3, 1, "", "route_id_id"]], "pt_map.models.FareTransferRule": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "fare_product_id"], [3, 3, 1, "", "fare_product_id_id"], [3, 3, 1, "", "fare_transfer_rule_description"], [3, 3, 1, "", "fare_transfer_rule_id"], [3, 3, 1, "", "fare_transfer_rule_name"], [3, 3, 1, "", "from_leg_group_id"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "to_leg_group_id"]], "pt_map.models.FeedInfo": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "default_lang"], [3, 3, 1, "", "feed_contact_email"], [3, 3, 1, "", "feed_contact_url"], [3, 3, 1, "", "feed_end_date"], [3, 3, 1, "", "feed_id"], [3, 3, 1, "", "feed_lang"], [3, 3, 1, "", "feed_publisher_name"], [3, 3, 1, "", "feed_publisher_url"], [3, 3, 1, "", "feed_start_date"], [3, 3, 1, "", "feed_version"], [3, 3, 1, "", "objects"]], "pt_map.models.Frequency": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "end_time"], [3, 3, 1, "", "exact_times"], [3, 3, 1, "", "headway_secs"], [3, 3, 1, "", "id"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "start_time"], [3, 3, 1, "", "trip_id"], [3, 3, 1, "", "trip_id_id"]], "pt_map.models.Level": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "level_id"], [3, 3, 1, "", "level_index"], [3, 3, 1, "", "level_name"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "stop_set"]], "pt_map.models.LocationGroup": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "location_group_id"], [3, 3, 1, "", "location_group_name"], [3, 3, 1, "", "location_group_type"], [3, 3, 1, "", "locationgroupstop_set"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "stoptime_set"]], "pt_map.models.LocationGroupStop": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "id"], [3, 3, 1, "", "location_group_id"], [3, 3, 1, "", "location_group_id_id"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "stop_id"], [3, 3, 1, "", "stop_id_id"]], "pt_map.models.LocationsGeojson": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "location_id"], [3, 3, 1, "", "location_lat"], [3, 3, 1, "", "location_lon"], [3, 3, 1, "", "location_name"], [3, 3, 1, "", "location_type"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "parent_location_id"], [3, 3, 1, "", "stoptime_set"], [3, 3, 1, "", "wheelchair_boarding"]], "pt_map.models.Network": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "farelegrule_set"], [3, 3, 1, "", "network_id"], [3, 3, 1, "", "network_name"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "routenetwork_set"]], "pt_map.models.Pathway": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "from_stop_id"], [3, 3, 1, "", "from_stop_id_id"], [3, 3, 1, "", "is_bidirectional"], [3, 3, 1, "", "length"], [3, 3, 1, "", "max_slope"], [3, 3, 1, "", "min_width"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "pathway_id"], [3, 3, 1, "", "pathway_mode"], [3, 3, 1, "", "reversed_signposted_as"], [3, 3, 1, "", "signposted_as"], [3, 3, 1, "", "stair_count"], [3, 3, 1, "", "to_stop_id"], [3, 3, 1, "", "to_stop_id_id"], [3, 3, 1, "", "traversal_time"]], "pt_map.models.Route": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "agency_id"], [3, 3, 1, "", "agency_id_id"], [3, 3, 1, "", "attribution_set"], [3, 3, 1, "", "continuous_drop_off"], [3, 3, 1, "", "continuous_pickup"], [3, 3, 1, "", "farerule_set"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "route_color"], [3, 3, 1, "", "route_desc"], [3, 3, 1, "", "route_id"], [3, 3, 1, "", "route_long_name"], [3, 3, 1, "", "route_short_name"], [3, 3, 1, "", "route_sort_order"], [3, 3, 1, "", "route_text_color"], [3, 3, 1, "", "route_type"], [3, 3, 1, "", "route_url"], [3, 3, 1, "", "routenetwork_set"], [3, 3, 1, "", "transfers_from_route"], [3, 3, 1, "", "transfers_to_route"], [3, 3, 1, "", "trip_set"]], "pt_map.models.RouteNetwork": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "network_id"], [3, 3, 1, "", "network_id_id"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "route_id"], [3, 3, 1, "", "route_id_id"], [3, 3, 1, "", "route_network_id"], [3, 3, 1, "", "route_network_name"]], "pt_map.models.Shape": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "id"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "shape_dist_traveled"], [3, 3, 1, "", "shape_id"], [3, 3, 1, "", "shape_pt_lat"], [3, 3, 1, "", "shape_pt_lon"], [3, 3, 1, "", "shape_pt_sequence"], [3, 3, 1, "", "trip_set"]], "pt_map.models.Stop": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "level_id"], [3, 3, 1, "", "level_id_id"], [3, 3, 1, "", "location_type"], [3, 3, 1, "", "locationgroupstop_set"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "parent_station"], [3, 3, 1, "", "parent_station_id"], [3, 3, 1, "", "pathways_from"], [3, 3, 1, "", "pathways_to"], [3, 3, 1, "", "platform_code"], [3, 3, 1, "", "stop_code"], [3, 3, 1, "", "stop_desc"], [3, 3, 1, "", "stop_id"], [3, 3, 1, "", "stop_lat"], [3, 3, 1, "", "stop_lon"], [3, 3, 1, "", "stop_name"], [3, 3, 1, "", "stop_set"], [3, 3, 1, "", "stop_timezone"], [3, 3, 1, "", "stop_url"], [3, 3, 1, "", "stoparea_set"], [3, 3, 1, "", "stoptime_set"], [3, 3, 1, "", "transfers_from_stop"], [3, 3, 1, "", "transfers_to_stop"], [3, 3, 1, "", "wheelchair_boarding"], [3, 3, 1, "", "zone_id"]], "pt_map.models.StopArea": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "area_id"], [3, 3, 1, "", "area_id_id"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "stop_area_description"], [3, 3, 1, "", "stop_area_id"], [3, 3, 1, "", "stop_area_name"], [3, 3, 1, "", "stop_id"], [3, 3, 1, "", "stop_id_id"]], "pt_map.models.StopTime": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "arrival_time"], [3, 3, 1, "", "departure_time"], [3, 3, 1, "", "drop_off_type"], [3, 3, 1, "", "id"], [3, 3, 1, "", "location_group_id"], [3, 3, 1, "", "location_group_id_id"], [3, 3, 1, "", "location_id"], [3, 3, 1, "", "location_id_id"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "pickup_type"], [3, 3, 1, "", "shape_dist_traveled"], [3, 3, 1, "", "stop_headsign"], [3, 3, 1, "", "stop_id"], [3, 3, 1, "", "stop_id_id"], [3, 3, 1, "", "stop_sequence"], [3, 3, 1, "", "timepoint"], [3, 3, 1, "", "trip_id"], [3, 3, 1, "", "trip_id_id"]], "pt_map.models.Timeframe": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "end_date"], [3, 3, 1, "", "end_time"], [3, 3, 1, "", "farelegrule_from_timeframe"], [3, 3, 1, "", "farelegrule_to_timeframe"], [3, 4, 1, "", "get_next_by_end_date"], [3, 4, 1, "", "get_next_by_start_date"], [3, 4, 1, "", "get_previous_by_end_date"], [3, 4, 1, "", "get_previous_by_start_date"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "service_id"], [3, 3, 1, "", "start_date"], [3, 3, 1, "", "start_time"], [3, 3, 1, "", "timeframe_group_id"]], "pt_map.models.Transfer": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "from_route_id"], [3, 3, 1, "", "from_route_id_id"], [3, 3, 1, "", "from_stop_id"], [3, 3, 1, "", "from_stop_id_id"], [3, 3, 1, "", "from_trip_id"], [3, 3, 1, "", "from_trip_id_id"], [3, 3, 1, "", "id"], [3, 3, 1, "", "min_transfer_time"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "to_route_id"], [3, 3, 1, "", "to_route_id_id"], [3, 3, 1, "", "to_stop_id"], [3, 3, 1, "", "to_stop_id_id"], [3, 3, 1, "", "to_trip_id"], [3, 3, 1, "", "to_trip_id_id"], [3, 3, 1, "", "transfer_type"]], "pt_map.models.Translation": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "field_name"], [3, 3, 1, "", "id"], [3, 3, 1, "", "language"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "table_name"], [3, 3, 1, "", "translation"]], "pt_map.models.Trip": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 4, 1, "", "as_dict"], [3, 3, 1, "", "attribution_set"], [3, 3, 1, "", "bikes_allowed"], [3, 3, 1, "", "block_id"], [3, 3, 1, "", "bookingrule_set"], [3, 3, 1, "", "direction_id"], [3, 3, 1, "", "frequency_set"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "route_id"], [3, 3, 1, "", "route_id_id"], [3, 3, 1, "", "service_id"], [3, 3, 1, "", "shape_id"], [3, 3, 1, "", "shape_id_id"], [3, 3, 1, "", "stoptime_set"], [3, 3, 1, "", "transfers_from_trip"], [3, 3, 1, "", "transfers_to_trip"], [3, 3, 1, "", "trip_headsign"], [3, 3, 1, "", "trip_id"], [3, 3, 1, "", "trip_short_name"], [3, 3, 1, "", "wheelchair_accessible"]], "pt_map.views": [[3, 1, 1, "", "get_timetable"], [3, 1, 1, "", "index"]], "transport_accessibility": [[4, 0, 0, "-", "asgi"], [4, 0, 0, "-", "settings"], [4, 0, 0, "-", "urls"], [4, 0, 0, "-", "wsgi"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "method", "Python method"], "5": ["py", "exception", "Python exception"]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:attribute", "4": "py:method", "5": "py:exception"}, "terms": {"": [1, 3], "0": 4, "0001_initi": [], "0002_alter_calendardate_unique_together_and_mor": [], "0003_alter_calendar_service_id_and_mor": [], "0004_alter_agency_agency_id_alter_calendar_service_id_and_mor": [], "0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_mor": [], "0006_alter_route_route_typ": [], "0007_location_translation_attribution_bookingrul": [], "0008_area_farelegrule_faremedia_fareproduct_and_mor": [], "0009_rename_faremedia_faremedium": [], "0010_rename_location_locationgeojson": [], "0011_rename_locationgeojson_locationsgeojson": [], "1": 3, "2024": 3, "24": 3, "5": 4, "6": 4, "A": 3, "For": [3, 4], "If": 3, "In": 3, "It": 4, "To": 3, "_": 3, "_lat": 3, "_lon": 3, "abl": 3, "accessor": 3, "accord": 3, "ad": 3, "addfield": [], "admin": [2, 4], "administr": 1, "agenc": [2, 3], "agency_email": [2, 3], "agency_fare_url": [2, 3], "agency_id": [2, 3], "agency_id_id": [2, 3], "agency_lang": [2, 3], "agency_nam": [2, 3], "agency_phon": [2, 3], "agency_timezon": [2, 3], "agency_url": [2, 3], "all": 3, "allow": 3, "also": 3, "alterfield": [], "alteruniquetogeth": [], "amount": [2, 3], "an": 3, "ani": 3, "app": 2, "app_label": [], "app_modul": 3, "app_nam": 3, "appconfig": 3, "applic": [3, 4], "ar": 3, "area": [2, 3], "area_descript": [2, 3], "area_id": [2, 3], "area_id_id": [2, 3], "area_nam": [2, 3], "arg": 3, "arrival_tim": [2, 3], "as_dict": [2, 3], "asgi": 2, "attribut": [2, 3], "attribution_email": [2, 3], "attribution_id": [2, 3], "attribution_nam": [2, 3], "attribution_phon": [2, 3], "attribution_set": [2, 3], "attribution_url": [2, 3], "avoid": 3, "backend": 3, "base": 3, "behaviour": 3, "below": 3, "between": 3, "bigautofield": 3, "bikes_allow": [2, 3], "block_id": [2, 3], "booking_rul": 3, "booking_rule_id": [2, 3], "booking_rule_instruct": [2, 3], "booking_typ": [2, 3], "bookingrul": [2, 3], "bookingrule_set": [2, 3], "booleanfield": [], "both": 3, "bridg": 2, "built": 3, "calcul": 3, "calendar": [2, 3], "calendar_d": 3, "calendard": [2, 3], "callabl": 4, "camelcas": 3, "can": 3, "capit": 3, "charfield": [], "check": 3, "child": 3, "children": 3, "class": [2, 3], "class_nam": 3, "com": 4, "command": 1, "complianc": 3, "compliant": 3, "compliantli": 3, "config": 4, "configur": 4, "conflict": 3, "conmpli": 3, "constant": 2, "contain": 3, "contains_id": [2, 3], "content": 2, "continuous_drop_off": [2, 3], "continuous_pickup": [2, 3], "convert": 3, "coordin": 3, "core": 3, "correct": 3, "correctli": 3, "correspond": 3, "creat": 3, "create_forward_many_to_many_manag": 3, "createmodel": [], "creation": 3, "csv": 3, "currency_typ": [2, 3], "curreni": [2, 3], "current": 3, "data": 3, "databas": 3, "datafram": 3, "datastream": 3, "date": [2, 3], "datefield": 3, "db": 3, "db_to_gtf": [2, 3], "default": 3, "default_auto_field": [2, 3], "default_lang": [2, 3], "defer": 3, "defin": 3, "deleg": 3, "departure_tim": [2, 3], "depend": [], "deploy": 4, "describ": 3, "destin": 3, "destination_id": [2, 3], "df": 3, "dict": 3, "dictionari": 3, "did": 3, "differ": 3, "dir": [], "direction_id": [2, 3], "directli": 3, "directori": 3, "dirnam": 3, "django": [1, 3, 4], "djangoproject": 4, "doc": 4, "doe": 3, "doesnotexist": [2, 3], "drop_off_typ": [2, 3], "dynam": 3, "easili": 3, "either": 3, "element": 3, "els": 3, "emailfield": [], "empti": 3, "en": 4, "encod": 3, "end_dat": [2, 3], "end_tim": [2, 3], "error": [2, 3], "exact_tim": [2, 3], "exampl": 3, "except": 3, "exception_typ": [2, 3], "execut": 3, "exist": 3, "expand": 3, "explain": 3, "export": [2, 3], "expos": 4, "express": 3, "extens": 3, "f": 3, "fail": 3, "fals": 3, "fare": [], "fare_attribut": 3, "fare_id": [2, 3], "fare_id_id": [2, 3], "fare_leg_rul": 3, "fare_leg_rule_descript": [2, 3], "fare_leg_rule_id": [2, 3], "fare_leg_rule_nam": [2, 3], "fare_legrul": 3, "fare_media": 3, "fare_media_descript": [2, 3], "fare_media_id": [2, 3], "fare_media_nam": [2, 3], "fare_medium": 3, "fare_product": 3, "fare_product_descript": [2, 3], "fare_product_id": [2, 3], "fare_product_id_id": [2, 3], "fare_product_nam": [2, 3], "fare_rul": 3, "fare_transfer_rul": 3, "fare_transfer_rule_descript": [2, 3], "fare_transfer_rule_id": [2, 3], "fare_transfer_rule_nam": [2, 3], "fareattribut": [2, 3], "fareattribute_set": [2, 3], "farelegrul": [2, 3], "farelegrule_from_area": [2, 3], "farelegrule_from_timefram": [2, 3], "farelegrule_set": [2, 3], "farelegrule_to_area": [2, 3], "farelegrule_to_timefram": [2, 3], "faremedia": [2, 3], "faremedium": [2, 3], "fareproduct": [2, 3], "farerul": [2, 3], "farerule_set": [2, 3], "faretransfer_rul": 3, "faretransferrul": [2, 3], "faretransferrule_set": [2, 3], "feed_contact_email": [2, 3], "feed_contact_url": [2, 3], "feed_end_d": [2, 3], "feed_id": [2, 3], "feed_info": 3, "feed_lang": [2, 3], "feed_publisher_nam": [2, 3], "feed_publisher_url": [2, 3], "feed_start_d": [2, 3], "feed_vers": [2, 3], "feedinfo": [2, 3], "field": 3, "field_nam": [2, 3], "file": [3, 4], "file_nam": 3, "filenam": 3, "fill": 3, "first": 3, "fk": 3, "floatfield": [], "folder": 3, "folder_path": [2, 3], "foreign": 3, "foreign_kei": 3, "foreignkei": 3, "format": 3, "forward": 3, "forwardmanytoonedescriptor": 3, "forwardonetoonedescriptor": 3, "frequenc": [2, 3], "frequency_set": [2, 3], "fridai": [2, 3], "from": 3, "from_area_id": [2, 3], "from_area_id_id": [2, 3], "from_leg_group_id": [2, 3], "from_route_id": [2, 3], "from_route_id_id": [2, 3], "from_stop": [], "from_stop_id": [2, 3], "from_stop_id_id": [2, 3], "from_timeframe_group_id": [2, 3], "from_timeframe_group_id_id": [2, 3], "from_trip_id": [2, 3], "from_trip_id_id": [2, 3], "frontend": 3, "full": 4, "function": 2, "g": 3, "gener": 4, "geograph": 3, "geojson": 3, "get": 3, "get_field": [2, 3], "get_fil": [2, 3], "get_next_by_d": [2, 3], "get_next_by_end_d": [2, 3], "get_next_by_start_d": [2, 3], "get_previous_by_d": [2, 3], "get_previous_by_end_d": [2, 3], "get_previous_by_start_d": [2, 3], "get_timet": [2, 3], "given": 3, "gtf": 2, "gtfs_schema": [], "gtfs_to_db": [2, 3], "gtfsfile": [2, 3], "h": 3, "headway_sec": [2, 3], "home": 3, "hour": 3, "howto": 4, "http": [3, 4], "human": 3, "i": 3, "id": [2, 3], "implement": 3, "import": 3, "inclus": 3, "index": [0, 2, 3], "individu": 3, "inform": 4, "initi": [], "insid": 3, "instanc": 3, "int": 3, "integerfield": [], "interfac": 3, "intermedi": 3, "io": 3, "is_bidirect": [2, 3], "is_nan": [2, 3], "is_next": 3, "its": 3, "jan": 3, "kei": 3, "know": 3, "kwarg": 3, "languag": [2, 3], "lathwai": 3, "latitud": 3, "length": [2, 3], "less": 3, "letter": 3, "level": [2, 3, 4], "level_id": [2, 3], "level_id_id": [2, 3], "level_index": [2, 3], "level_nam": [2, 3], "like": 3, "line": 1, "list": [3, 4], "load": 3, "load_data": 3, "locat": 3, "location_group": 3, "location_group_id": [2, 3], "location_group_id_id": [2, 3], "location_group_nam": [2, 3], "location_group_stop": 3, "location_group_typ": [2, 3], "location_groupstop": 3, "location_id": [2, 3], "location_id_id": [2, 3], "location_lat": [2, 3], "location_lon": [2, 3], "location_nam": [2, 3], "location_typ": [2, 3], "locationgeojson": [], "locationgroup": [2, 3], "locationgroupstop": [2, 3], "locationgroupstop_set": [2, 3], "locations_geojson": 3, "locationsgeojson": [2, 3], "longitud": 3, "m": 3, "main": [1, 2], "make": 3, "manag": [0, 2, 3], "mani": 3, "map": 3, "max_slop": [2, 3], "member": 3, "messag": 3, "migrat": [], "min_transfer_tim": [2, 3], "min_width": [2, 3], "model": 2, "model_nam": [], "modul": [0, 2], "mondai": [2, 3], "more": 4, "most": 3, "multipleobjectsreturn": [2, 3], "must": 3, "name": [2, 3, 4], "nan": 3, "network": [2, 3], "network_id": [2, 3], "network_id_id": [2, 3], "network_nam": [2, 3], "new": 3, "new_nam": [], "none": 3, "normal": 3, "object": [2, 3], "objectdoesnotexist": 3, "old_nam": [], "ommit": 3, "one": 3, "oper": [], "optional_field": 3, "order": 3, "origin_id": [2, 3], "otherwis": 3, "our": 3, "overlap": 3, "packag": [0, 2], "page": [0, 3], "panda": 3, "paramet": 3, "parent": 3, "parent_location_id": [2, 3], "parent_st": [2, 3], "parent_station_id": [2, 3], "pass": 3, "path": 3, "pathwai": [2, 3], "pathway_id": [2, 3], "pathway_mod": [2, 3], "pathways_from": [2, 3], "pathways_to": [2, 3], "payment_method": [2, 3], "pd": 3, "pickup_typ": [2, 3], "platform_cod": [2, 3], "plural": 3, "possibl": 3, "potenti": 3, "prefix": 3, "prepend": 3, "present": 3, "preserve_default": [], "price": [2, 3], "primari": 3, "primary_kei": 3, "print": 3, "print_r": [], "process": 3, "project": 4, "properti": 3, "pt_map": [0, 2], "ptmapconfig": [2, 3], "q": 3, "queri": 3, "queryset": 3, "question": 3, "r": 3, "rang": 3, "rangeindex": 3, "react": 3, "read": 3, "readabl": 3, "redirect": 3, "ref": 4, "refer": 3, "relat": 3, "related_nam": 3, "removefield": [], "renamemodel": [], "repres": 3, "represent": 3, "request": 3, "requir": 3, "required_field": 3, "reset": 3, "result": 3, "retriev": 3, "return": 3, "revers": 3, "reversed_file_map": 3, "reversed_signposted_a": [2, 3], "reversemanytoonedescriptor": 3, "rout": [2, 3], "route_color": [2, 3], "route_desc": [2, 3], "route_id": [2, 3], "route_id_id": [2, 3], "route_long_nam": [2, 3], "route_network": 3, "route_network_id": [2, 3], "route_network_nam": [2, 3], "route_set": [2, 3], "route_short_nam": [2, 3], "route_sort_ord": [2, 3], "route_text_color": [2, 3], "route_typ": [2, 3], "route_url": [2, 3], "routenetwork": [2, 3], "routenetwork_set": [2, 3], "rule_criteria": [2, 3], "run": 1, "same": 3, "saturdai": [2, 3], "save": 3, "search": 0, "second": 3, "see": 4, "self": 3, "separ": 3, "sequenc": 3, "serv": 3, "service_id": [2, 3], "set": [2, 3], "shape": [2, 3], "shape_dist_travel": [2, 3], "shape_id": [2, 3], "shape_id_id": [2, 3], "shape_pt_lat": [2, 3], "shape_pt_lon": [2, 3], "shape_pt_sequ": [2, 3], "should": 3, "side": 3, "signposted_a": [2, 3], "sinc": 3, "singular": 3, "snake_cas": 3, "so": 3, "specif": 3, "specifi": 3, "stair_count": [2, 3], "standard": 3, "standardize_tim": [2, 3], "start_dat": [2, 3], "start_tim": [2, 3], "startproject": 4, "stdz": [2, 3], "stop": [2, 3], "stop_area": 3, "stop_area_descript": [2, 3], "stop_area_id": [2, 3], "stop_area_nam": [2, 3], "stop_cod": [2, 3], "stop_desc": [2, 3], "stop_headsign": [2, 3], "stop_id": [2, 3], "stop_id_id": [2, 3], "stop_lat": [2, 3], "stop_lon": [2, 3], "stop_nam": [2, 3], "stop_sequ": [2, 3], "stop_set": [2, 3], "stop_tim": 3, "stop_timezon": [2, 3], "stop_url": [2, 3], "stoparea": [2, 3], "stoparea_set": [2, 3], "stoptim": [2, 3], "stoptime_set": [2, 3], "store": 3, "str": 3, "string": 3, "subclass": 3, "subdirectori": 3, "submodul": 2, "subpackag": 2, "sundai": [2, 3], "t": 3, "table_nam": [2, 3], "taken": 3, "task": 1, "test": 2, "textfield": [], "thei": 3, "thi": [3, 4], "thursdai": [2, 3], "time": 3, "time_delta": 3, "time_frame_id": [], "time_str": 3, "timefield": 3, "timefram": [2, 3], "timeframe_group_id": [2, 3], "timepoint": [2, 3], "timet": 3, "to_area_id": [2, 3], "to_area_id_id": [2, 3], "to_camel_cas": 3, "to_leg_group_id": [2, 3], "to_route_id": [2, 3], "to_route_id_id": [2, 3], "to_snake_cas": [2, 3], "to_stop": [], "to_stop_id": [2, 3], "to_stop_id_id": [2, 3], "to_timeframe_group_id": [2, 3], "to_timeframe_group_id_id": [2, 3], "to_trip_id": [2, 3], "to_trip_id_id": [2, 3], "tocamelcas": [2, 3], "topic": 4, "transfer": [2, 3], "transfer_dur": [2, 3], "transfer_typ": [2, 3], "transfers_from": [], "transfers_from_rout": [2, 3], "transfers_from_stop": [2, 3], "transfers_from_trip": [2, 3], "transfers_to": [], "transfers_to_rout": [2, 3], "transfers_to_stop": [2, 3], "transfers_to_trip": [2, 3], "translat": [2, 3], "transport_access": 0, "travel": 3, "traversal_tim": [2, 3], "trip": [2, 3], "trip_headsign": [2, 3], "trip_id": [2, 3], "trip_id_id": [2, 3], "trip_set": [2, 3], "trip_short_nam": [2, 3], "true": 3, "tts_stop_nam": [], "tuesdai": [2, 3], "two": 3, "txt": 3, "type": 3, "unchang": 3, "unexpect": 3, "unicod": 3, "unique_togeth": [], "unix": 3, "unqfk": [2, 3], "url": 2, "urlfield": [], "us": [3, 4], "util": 1, "v": 3, "valid": [2, 3], "validate_ag": [2, 3], "validate_area": [2, 3], "validate_attribut": [2, 3], "validate_booking_rul": [2, 3], "validate_calendar": [2, 3], "validate_calendar_d": [2, 3], "validate_fare_attribut": [2, 3], "validate_fare_leg_rul": [2, 3], "validate_fare_media": [2, 3], "validate_fare_product": [2, 3], "validate_fare_rul": [2, 3], "validate_fare_transfer_rul": [2, 3], "validate_feed_info": [2, 3], "validate_frequ": [2, 3], "validate_lat_lon": [2, 3], "validate_level": [2, 3], "validate_location_group": [2, 3], "validate_location_group_stop": [2, 3], "validate_locations_geojson": [2, 3], "validate_network": [2, 3], "validate_optional_field": [2, 3], "validate_pathwai": [2, 3], "validate_required_field": [2, 3], "validate_rout": [2, 3], "validate_route_network": [2, 3], "validate_shap": [2, 3], "validate_stop": [2, 3], "validate_stop_area": [2, 3], "validate_stop_tim": [2, 3], "validate_timefram": [2, 3], "validate_transf": [2, 3], "validate_transl": [2, 3], "validate_trip": [2, 3], "valu": [3, 4], "variabl": [3, 4], "via": 3, "view": 2, "wai": 3, "we": 3, "wednesdai": [2, 3], "wheelchair_access": [2, 3], "wheelchair_board": [2, 3], "when": 3, "where": 3, "why": 3, "without": 3, "work": 3, "wrapper": 3, "write": 3, "written": 3, "wsgi": 2, "zone_id": [2, 3]}, "titles": ["Welcome to Transport Accessibility\u2019s documentation!", "manage module", "transport_accessibility", "pt_map package", "transport_accessibility package"], "titleterms": {"": 0, "0001_initi": [], "0002_alter_calendardate_unique_together_and_mor": [], "0003_alter_calendar_service_id_and_mor": [], "0004_alter_agency_agency_id_alter_calendar_service_id_and_mor": [], "0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_mor": [], "0006_alter_route_route_typ": [], "0007_location_translation_attribution_bookingrul": [], "0008_area_farelegrule_faremedia_fareproduct_and_mor": [], "0009_rename_faremedia_faremedium": [], "0010_rename_location_locationgeojson": [], "0011_rename_locationgeojson_locationsgeojson": [], "access": 0, "admin": 3, "app": 3, "asgi": 4, "bridg": 3, "constant": 3, "content": [0, 3, 4], "document": 0, "function": 3, "gtf": 3, "indic": 0, "manag": 1, "migrat": [], "model": 3, "modul": [1, 3, 4], "packag": [3, 4], "pt_map": 3, "set": 4, "submodul": [3, 4], "subpackag": 3, "tabl": 0, "test": 3, "transport": 0, "transport_access": [2, 4], "url": [3, 4], "view": 3, "welcom": 0, "wsgi": 4}}) \ No newline at end of file diff --git a/docs/build/html/transport_accessibility.html b/docs/build/html/transport_accessibility.html new file mode 100644 index 0000000..dc224b7 --- /dev/null +++ b/docs/build/html/transport_accessibility.html @@ -0,0 +1,156 @@ + + + + + + + transport_accessibility package — Transport Accessibility 0.2 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

transport_accessibility package

+
+

Submodules

+
+
+

transport_accessibility.asgi module

+

ASGI config for transport_accessibility project.

+

It exposes the ASGI callable as a module-level variable named application.

+

For more information on this file, see +https://docs.djangoproject.com/en/5.0/howto/deployment/asgi/

+
+
+

transport_accessibility.settings module

+

Django settings for transport_accessibility project.

+

Generated by ‘django-admin startproject’ using Django 5.0.6.

+

For more information on this file, see +https://docs.djangoproject.com/en/5.0/topics/settings/

+

For the full list of settings and their values, see +https://docs.djangoproject.com/en/5.0/ref/settings/

+
+
+

transport_accessibility.urls module

+

URL configuration for transport_accessibility project.

+
+
+

transport_accessibility.wsgi module

+

WSGI config for transport_accessibility project.

+

It exposes the WSGI callable as a module-level variable named application.

+

For more information on this file, see +https://docs.djangoproject.com/en/5.0/howto/deployment/wsgi/

+
+
+

Module contents

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/build/index.html b/docs/build/index.html new file mode 100644 index 0000000..e94e10a --- /dev/null +++ b/docs/build/index.html @@ -0,0 +1,128 @@ + + + + + + + Welcome to Transport Accessibility’s documentation! — Transport Accessibility 0.1 Beta 1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Welcome to Transport Accessibility’s documentation!

+ +
+
+

Indices and tables

+ +
+ + +
+
+
+ +
+ +
+

© Copyright 2024, Jan Kiljanski and Johannes Randerath.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/build/manage.html b/docs/build/manage.html new file mode 100644 index 0000000..ac58e02 --- /dev/null +++ b/docs/build/manage.html @@ -0,0 +1,127 @@ + + + + + + + manage module — Transport Accessibility 0.1 Beta 1 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

manage module

+

Django’s command-line utility for administrative tasks.

+
+
+manage.main()
+

Run administrative tasks.

+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/build/modules.html b/docs/build/modules.html new file mode 100644 index 0000000..4aca25b --- /dev/null +++ b/docs/build/modules.html @@ -0,0 +1,680 @@ + + + + + + + transport_accessibility — Transport Accessibility 0.1 Beta 1 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

transport_accessibility

+
+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/build/objects.inv b/docs/build/objects.inv new file mode 100644 index 0000000..bb47b04 Binary files /dev/null and b/docs/build/objects.inv differ diff --git a/docs/build/pt_map.html b/docs/build/pt_map.html new file mode 100644 index 0000000..704a8cd --- /dev/null +++ b/docs/build/pt_map.html @@ -0,0 +1,3633 @@ + + + + + + + pt_map package — Transport Accessibility 0.1 Beta 1 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

pt_map package

+
+

Subpackages

+
+ +
+
+
+

Submodules

+
+
+

pt_map.admin module

+
+
+

pt_map.apps module

+
+
+class pt_map.apps.PtMapConfig(app_name, app_module)
+

Bases: AppConfig

+
+
+default_auto_field = 'django.db.models.BigAutoField'
+
+ +
+
+name = 'pt_map'
+
+ +
+ +
+
+

pt_map.bridge module

+
+

Bridge

+

Bridge between Django with its models and database and gtfs.GTFS as intermediate object for File IO.

+
+

Contents

+
+
+

Constants

+
+
gtfs_schemadir{str,list[str]}

Maps GTFS file names (without filename extension) to fields described by the GTFS Reference

+
+
reversed_file_mappingdict(str,str)

Map CamelCased filenames to ‘_’-separated

+
+
+
+
+

Functions

+
+
to_camel_case(s):

Converts ‘_’-separated str to CamelCase with capital first letter

+
+
standardize_time(time_str):

Converts str in unicode time format to %H:%M:%S format with normalized 24 hour time

+
+
is_NaN(v):

Checks if given variable is either a str expressing NaN or NaN as object

+
+
stdz(v):

Standardize date and time formats

+
+
gtfs_to_db(g):

Write an existing gtfs.GTFS object to the database using the GTFS compliant models

+
+
db_to_gtfs(q, folder_path):

Convert list of query sets to gtfs.GTFS object and write to specified folder if validation for GTFS compliance passes.

+
+
+
+
+
+
+pt_map.bridge.db_to_gtfs(q: list[QuerySet], folder_path: str = '')
+

Convert given list of query sets to gtfs.GTFS object

+
+
Parameters:
+
    +
  • q (list[django.db.models.query.QuerySet]) – List of QuerySets containing the retrieved data to be Converted

  • +
  • folder_path (str) – path to be set as the results folder_path instance variable

  • +
+
+
Returns:
+

object containing the queried data

+
+
Return type:
+

gtfs.GTFS

+
+
+
+ +
+
+pt_map.bridge.gtfs_to_db(g: GTFS)
+

Given a gtfs.GTFS object, write GTFS-compliantly to db by creating the correct models

+
+
Parameters:
+

g (gtfs.GTFS) – GTFS object to be saved to db

+
+
+
+ +
+
+pt_map.bridge.is_NaN(v)
+
+
Returns:
+

    +
  • True – If v is either a str representing NaN or NaN as an object

  • +
  • False – Otherwise

  • +
+

+
+
+
+ +
+
+pt_map.bridge.standardize_time(time_str: str)
+

Convert time str to standardized %H:%M:%S format.

+
+
Parameters:
+

time_str (str) – str encoding time

+
+
Returns:
+

str in format ‘%H

+
+
Return type:
+

%M:%S’

+
+
+
+ +
+
+pt_map.bridge.stdz(v, m: Model, f: str)
+

Convert Time and Date str to a format our db can easily work with.

+
+
Parameters:
+
    +
  • v (object) – object to be standardized

  • +
  • m (django.db.models.Model) – model to be written to

  • +
  • f (str) – field name in question

  • +
+
+
Returns:
+

    +
  • Converted str – If m.f is a DateField or a TimeField

  • +
  • Unchanged str – Otherwise

  • +
+

+
+
+
+ +
+
+pt_map.bridge.to_camel_case(s: str)
+

Convert ‘_’-separated str to CamelCase with the first letter capitalized.

+
+
Parameters:
+

s (str) – ‘_’-separated string

+
+
Returns:
+

CamelCased str, first letter capitalized

+
+
Return type:
+

str

+
+
+
+ +
+
+

pt_map.gtfs module

+
+
+class pt_map.gtfs.GTFS(folder_path: str = '', dfs: dict[str, DataFrame] = None)
+

Bases: object

+

DataFrame based representation of the GTFS standard, able to read folder of GTFS files, validate a GTFS object for accordance with the standard and write its data to a GTFS folder.

+
+
+folder_path
+

Path to folder where the data is read from and/or to be written to

+
+
Type:
+

str

+
+
+
+ +
+
+agency, stops, routes, trips, stop_times, calendar, calendar_dates, fare_attributes, fare_rules, timeframes, fare_media, fare_products, fare_leg_rules, fare_transfer_rules, areas, stop_areas, networks, route_networks, shapes, frequencies, transfers, pathways, levels, location_groups, location_group_stops, locations_geojson, booking_rules, translations, feed_info, attributions
+

Objects representing the data in the corresponding .txt/.geojson files in the GTFS Reference.

+
+
Type:
+

GTFSFile

+
+
+
+ +
+
+errors
+

Human readable messages explaining why a validation failed if it did.

+
+
Type:
+

list[str]

+
+
+
+ +
+
+get_files():
+

Return all member objects of type GTFSFile

+
+ +
+
+get_fields(name):
+

Return all fields present in a given instance of a GTFSFile

+
+ +
+
+export(path, dirname):
+

Save all GTFS data represented by the current instance as a folder of files corresponding to the GTFS Reference.

+
+ +
+
+validate():
+

For all GTFSFile member objects, validate if they individually conmply with GTFS.

+
+ +
+
+validate_required_fields(df, required_fields):
+

Check if a DataFrame contains all required fields according to the GTFS reference for the file it represents.

+
+ +
+
+validate_optional_fields(df, optional_fields):
+

Check if a DataFrame does not contain any unexpected fields, not compliant with the GTFS reference for the file it represents.

+
+ +
+
+validate_lat_lon(df):
+

Check if a Stop is correctly mapped using geographical coordinates.

+
+ +
+
+class Agency(folder_path, dfs)
+

Bases: GTFSFile

+

Represents agency.txt from the GTFS reference

+
+ +
+
+class Areas(folder_path, dfs)
+

Bases: GTFSFile

+

Represents areas.txt from the GTFS reference

+
+ +
+
+class Attributions(folder_path, dfs)
+

Bases: GTFSFile

+

Represents attributions.txt from the GTFS reference

+
+ +
+
+class BookingRules(folder_path, dfs)
+

Bases: GTFSFile

+

Represents booking_rules.txt from the GTFS reference

+
+ +
+
+class Calendar(folder_path, dfs)
+

Bases: GTFSFile

+

Represents calendar.txt from the GTFS reference

+
+ +
+
+class CalendarDates(folder_path, dfs)
+

Bases: GTFSFile

+

Represents calendar_dates.txt from the GTFS reference

+
+ +
+
+class FareAttributes(folder_path, dfs)
+

Bases: GTFSFile

+

Represents fare_attributes.txt from the GTFS reference

+
+ +
+
+class FareLegRules(folder_path, dfs)
+

Bases: GTFSFile

+

Represents fare_leg_rules.txt from the GTFS reference

+
+ +
+
+class FareMedia(folder_path, dfs)
+

Bases: GTFSFile

+

Represents fare_media.txt from the GTFS reference

+
+ +
+
+class FareProducts(folder_path, dfs)
+

Bases: GTFSFile

+

Represents fare_products.txt from the GTFS reference

+
+ +
+
+class FareRules(folder_path, dfs)
+

Bases: GTFSFile

+

Represents fare_rules.txt from the GTFS reference

+
+ +
+
+class FareTransferRules(folder_path, dfs)
+

Bases: GTFSFile

+

Represents fare_transfer_rules.txt from the GTFS reference

+
+ +
+
+class FeedInfo(folder_path, dfs)
+

Bases: GTFSFile

+

Represents feed_info.txt from the GTFS reference

+
+ +
+
+class Frequencies(folder_path, dfs)
+

Bases: GTFSFile

+

Represents frequencies.txt from the GTFS reference

+
+ +
+
+class GTFSFile(folder_path, file_name, dfs)
+

Bases: object

+

All given fields and their corresponding values are stored as a DataFrame.

+
+
+file_name
+

Extension-less name of the corresponding .txt file from the GTFS Reference

+
+
Type:
+

str

+
+
+
+ +
+
+folder_path
+

Folder to read data from or potentially write it to

+
+
Type:
+

str

+
+
+
+ +
+
+data
+

All csv data from the corresponding .txt file represented as a Pandas DataFrame

+
+
Type:
+

pd.DataFrame

+
+
+
+ +
+
+load_data(dfs):
+

Load data from list of DataFrames if given else read it from the corresponding .txt file in csv format.

+
+ +
+
+load_data(dfs)
+

Fill the data attribute with GTFS data either with a given DataFrame or from the corresponding csv

+
+
Parameters:
+

dfs (dict[str, pd.DataFrame]) – Dict of dataframes mapped to the corresponding file names. If given, the corresponding DataFrame is returned if the key exists else an empty DataFrame

+
+
+
+ +
+ +
+
+class Levels(folder_path, dfs)
+

Bases: GTFSFile

+

Represents levels.txt from the GTFS reference

+
+ +
+
+class LocationGroupStops(folder_path, dfs)
+

Bases: GTFSFile

+

Represents location_group_stops.txt from the GTFS reference

+
+ +
+
+class LocationGroups(folder_path, dfs)
+

Bases: GTFSFile

+

Represents location_groups.txt from the GTFS reference

+
+ +
+
+class LocationsGeojson(folder_path, dfs)
+

Bases: GTFSFile

+

Represents locations.geojson from the GTFS reference

+
+
+load_data()
+

Fill the data attribute with GTFS data either with a given DataFrame or from the corresponding csv

+
+
Parameters:
+

dfs (dict[str, pd.DataFrame]) – Dict of dataframes mapped to the corresponding file names. If given, the corresponding DataFrame is returned if the key exists else an empty DataFrame

+
+
+
+ +
+ +
+
+class Networks(folder_path, dfs)
+

Bases: GTFSFile

+

Represents networks.txt from the GTFS reference

+
+ +
+
+class Pathways(folder_path, dfs)
+

Bases: GTFSFile

+

Represents pathways.txt from the GTFS reference

+
+ +
+
+class RouteNetworks(folder_path, dfs)
+

Bases: GTFSFile

+

Represents route_networks.txt from the GTFS reference

+
+ +
+
+class Routes(folder_path, dfs)
+

Bases: GTFSFile

+

Represents routes.txt from the GTFS reference

+
+ +
+
+class Shapes(folder_path, dfs)
+

Bases: GTFSFile

+

Represents shapes.txt from the GTFS reference

+
+ +
+
+class StopAreas(folder_path, dfs)
+

Bases: GTFSFile

+

Represents stop_areas.txt from the GTFS reference

+
+ +
+
+class StopTimes(folder_path, dfs)
+

Bases: GTFSFile

+

Represents stop_times.txt from the GTFS reference

+
+ +
+
+class Stops(folder_path, dfs)
+

Bases: GTFSFile

+

Represents stops.txt from the GTFS reference

+
+ +
+
+class Timeframes(folder_path, dfs)
+

Bases: GTFSFile

+

Represents timeframes.txt from the GTFS reference

+
+ +
+
+class Transfers(folder_path, dfs)
+

Bases: GTFSFile

+

Represents transfers.txt from the GTFS reference

+
+ +
+
+class Translations(folder_path, dfs)
+

Bases: GTFSFile

+

Represents translations.txt from the GTFS reference

+
+ +
+
+class Trips(folder_path, dfs)
+

Bases: GTFSFile

+

Represents trips.txt from the GTFS reference

+
+ +
+
+export(path=None, dirname='')
+

Save this object’s data to files as specified by GTFS.

+
+
Parameters:
+
    +
  • path (str) – parent directory where to save the files, defaults to the objects folder_path property

  • +
  • dirname (str) – If specified, subdirectory to create or use inside path. Default behaviour is to save directly to path.

  • +
+
+
+
+ +
+
+get_fields(name)
+

Given the name of a file specified in the GTFS specification, return all fields present in the data.

+
+
Parameters:
+

name (str) – name of a file as specified by GTFS (ommiting the .txt/.geojson extension)

+
+
Returns:
+

a list of all the fields present in the datastream of the specified file

+
+
Return type:
+

list[pd.core.indexes.range.RangeIndex]

+
+
+
+ +
+
+get_files()
+

Get all GTFSFile object

+
+
Returns:
+

All member objects of type GTFSFile

+
+
Return type:
+

list[GTFSFile]

+
+
+
+ +
+
+validate()
+

Check this object’s data for compliance with the GTFS reference. Resets self.errors and stores human readable error messages to it.

+
+
Returns:
+

List of human readable error messages, also saved to self.errors, if any, else None.

+
+
Return type:
+

list[str]

+
+
+
+ +
+
+validate_agency()
+

Check Agency object for compliance with the GTFS reference.

+
+ +
+
+validate_areas()
+

Check Areas object for compliance with the GTFS reference.

+
+ +
+
+validate_attributions()
+

Check Attributions object for compliance with the GTFS reference.

+
+ +
+
+validate_booking_rules()
+

Check BookingRules object for compliance with the GTFS reference.

+
+ +
+
+validate_calendar()
+

Check Calendar object for compliance with the GTFS reference.

+
+ +
+
+validate_calendar_dates()
+

Check CalendarDates object for compliance with the GTFS reference.

+
+ +
+
+validate_fare_attributes()
+

Check FareAttributes object for compliance with the GTFS reference.

+
+ +
+
+validate_fare_leg_rules()
+

Check FareLegRules object for compliance with the GTFS reference.

+
+ +
+
+validate_fare_media()
+

Check FareMedia object for compliance with the GTFS reference.

+
+ +
+
+validate_fare_products()
+

Check FareProducts object for compliance with the GTFS reference.

+
+ +
+
+validate_fare_rules()
+

Check FareRules object for compliance with the GTFS reference.

+
+ +
+
+validate_fare_transfer_rules()
+

Check FareTransferRules object for compliance with the GTFS reference.

+
+ +
+
+validate_feed_info()
+

Check FeedInfo object for compliance with the GTFS reference.

+
+ +
+
+validate_frequencies()
+

Check Frequencies object for compliance with the GTFS reference.

+
+ +
+
+validate_lat_lon(df, file_name='stops.txt', prefix='stop')
+

Check if a DataFrame contains either no coordinates of a given prefix or both latitude and longitude.

+
+
Parameters:
+
    +
  • df (pd.DataFrame) – DataFrame to be checked

  • +
  • file_name (str) – Name to be printed in error message if validation fails

  • +
  • prefix (str) – Prefix to be used for coordinate fileds. Expands to {prefix}_lat and {prefix}_lon

  • +
+
+
+
+ +
+
+validate_levels()
+

Check Levels object for compliance with the GTFS reference.

+
+ +
+
+validate_location_group_stops()
+

Check LocationGroupStops object for compliance with the GTFS reference.

+
+ +
+
+validate_location_groups()
+

Check Agency LocationGroups for compliance with the GTFS reference.

+
+ +
+
+validate_locations_geojson()
+

Check LocationsGeojson object for compliance with the GTFS reference.

+
+ +
+
+validate_networks()
+

Check Networks object for compliance with the GTFS reference.

+
+ +
+
+validate_optional_fields(df, optional_fields, file_name)
+

Check if DataFrame contains fields not specified in the GTFS Reference.

+
+
Parameters:
+
    +
  • df (pd.DataFrame) – DataFrame to be checked

  • +
  • optional_fields (list[str]) – list of field names allowed in df

  • +
  • file_name (str) – Name to be printed in error message if validation fails

  • +
+
+
+
+ +
+
+validate_pathways()
+

Check Pathways object for compliance with the GTFS reference.

+
+ +
+
+validate_required_fields(df, required_fields, file_name)
+

Check if a DataFrame contains all required fields according to the GTFS reference for the file it represents.

+
+
Parameters:
+
    +
  • df (pd.DataFrame) – DataFrame to be checked

  • +
  • required_fields (list[str]) – list of field names to check for inclusion in df

  • +
  • file_name (str) – Name to be printed in error message if validation fails

  • +
+
+
+
+ +
+
+validate_route_networks()
+

Check RouteNetworks object for compliance with the GTFS reference.

+
+ +
+
+validate_routes()
+

Check Routes object for compliance with the GTFS reference.

+
+ +
+
+validate_shapes()
+

Check Shapes object for compliance with the GTFS reference.

+
+ +
+
+validate_stop_areas()
+

Check StopAreas object for compliance with the GTFS reference.

+
+ +
+
+validate_stop_times()
+

Check StopTimes object for compliance with the GTFS reference.

+
+ +
+
+validate_stops()
+

Check Stops object for compliance with the GTFS reference.

+
+ +
+
+validate_timeframes()
+

Check Timeframes object for compliance with the GTFS reference.

+
+ +
+
+validate_transfers()
+

Check Transfers object for compliance with the GTFS reference.

+
+ +
+
+validate_translations()
+

Check Translations object for compliance with the GTFS reference.

+
+ +
+
+validate_trips()
+

Check Trips object for compliance with the GTFS reference.

+
+ +
+ +
+
+

pt_map.models module

+
+

Models

+

Django database models representing the files of the GTFS Reference with all their fields

+
+
+pt_map.models.Classes
+
+ +
+
+-------
+
+ +
+
+Agency, Stop, Route, Trip, StopTime, Calendar, CalendarDate, FareAttribute, FareRule, Shape, Frequency, Transfer, Pathway, Level, FeedInfo, LocationsGeojson, BookingRule, Translation, Attribution, LocationGroup, LocationGroupStop, RouteNetwork, Network, StopArea, Area, FareMedium, FareProduct, FareLegRule, FareTransferRule, Timeframe
+

Different files as described in the GTFS Reference

+
+ +
+
+
+class pt_map.models.Agency(*args, **kwargs)
+

Bases: Model

+

Represents agency.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+agency_email
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+agency_fare_url
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+agency_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+agency_lang
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+agency_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+agency_phone
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+agency_timezone
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+agency_url
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+attribution_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+fareattribute_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+route_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+ +
+
+class pt_map.models.Area(*args, **kwargs)
+

Bases: Model

+

Represents area.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+area_description
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+area_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+area_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+ +
+
+class pt_map.models.Attribution(*args, **kwargs)
+

Bases: Model

+

Represents attribution.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+agency
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+agency_id
+
+ +
+
+attribution_email
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+attribution_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+attribution_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+attribution_phone
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+attribution_url
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+ +
+
+class pt_map.models.BookingRule(*args, **kwargs)
+

Bases: Model

+

Represents booking_rule.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+booking_rule_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+booking_rule_instructions
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+booking_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+end_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+rule_criteria
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+start_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+trip
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+trip_id
+
+ +
+ +
+
+class pt_map.models.Calendar(*args, **kwargs)
+

Bases: Model

+

Represents calendar.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+end_date
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+friday
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+get_next_by_end_date(*, field=<django.db.models.fields.DateField: end_date>, is_next=True, **kwargs)
+
+ +
+
+get_next_by_start_date(*, field=<django.db.models.fields.DateField: start_date>, is_next=True, **kwargs)
+
+ +
+
+get_previous_by_end_date(*, field=<django.db.models.fields.DateField: end_date>, is_next=False, **kwargs)
+
+ +
+
+get_previous_by_start_date(*, field=<django.db.models.fields.DateField: start_date>, is_next=False, **kwargs)
+
+ +
+
+monday
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+saturday
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+service_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+start_date
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+sunday
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+thursday
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+tuesday
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+wednesday
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.CalendarDate(*args, **kwargs)
+

Bases: Model

+

Represents calendar_date.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+date
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+exception_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+get_next_by_date(*, field=<django.db.models.fields.DateField: date>, is_next=True, **kwargs)
+
+ +
+
+get_previous_by_date(*, field=<django.db.models.fields.DateField: date>, is_next=False, **kwargs)
+
+ +
+
+id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+service_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.FareAttribute(*args, **kwargs)
+

Bases: Model

+

Represents fare_attribute.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+agency
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+agency_id
+
+ +
+
+currency_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+farerule_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+payment_method
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+price
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+transfer_duration
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+transfers
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.FareLegRule(*args, **kwargs)
+

Bases: Model

+

Represents fare_legRule.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+fare_leg_rule_description
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_leg_rule_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_leg_rule_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+ +
+
+class pt_map.models.FareMedium(*args, **kwargs)
+

Bases: Model

+

Represents fare_medium.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+fare_media_description
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_media_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_media_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+ +
+
+class pt_map.models.FareProduct(*args, **kwargs)
+

Bases: Model

+

Represents fare_product.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+fare_product_description
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_product_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_product_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+ +
+
+class pt_map.models.FareRule(*args, **kwargs)
+

Bases: Model

+

Represents fare_rule.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+contains_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+destination_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+fare_id
+
+ +
+
+id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+origin_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+route_id
+
+ +
+ +
+
+class pt_map.models.FareTransferRule(*args, **kwargs)
+

Bases: Model

+

Represents faretransfer_rule.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+fare_transfer_rule_description
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_transfer_rule_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+fare_transfer_rule_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+ +
+
+class pt_map.models.FeedInfo(*args, **kwargs)
+

Bases: Model

+

Represents feed_info.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+default_lang
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+feed_contact_email
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+feed_contact_url
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+feed_end_date
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+feed_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+feed_lang
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+feed_publisher_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+feed_publisher_url
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+feed_start_date
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+feed_version
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+ +
+
+class pt_map.models.Frequency(*args, **kwargs)
+

Bases: Model

+

Represents frequency.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+end_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+exact_times
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+headway_secs
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+start_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+trip
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+trip_id
+
+ +
+ +
+
+class pt_map.models.Level(*args, **kwargs)
+

Bases: Model

+

Represents level.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+level_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+level_index
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+level_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+ +
+
+class pt_map.models.LocationGroup(*args, **kwargs)
+

Bases: Model

+

Represents location_group.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+location_group_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+location_group_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+location_group_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+locationgroupstop_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+ +
+
+class pt_map.models.LocationGroupStop(*args, **kwargs)
+

Bases: Model

+

Represents location_groupStop.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+location_group
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+location_group_id
+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+stop
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+stop_id
+
+ +
+ +
+
+class pt_map.models.LocationsGeojson(*args, **kwargs)
+

Bases: Model

+

Represents locations.geojson from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+location_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+location_lat
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+location_lon
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+location_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+location_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+parent_location_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+wheelchair_boarding
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.Network(*args, **kwargs)
+

Bases: Model

+

Represents network.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+network_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+network_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+ +
+
+class pt_map.models.Pathway(*args, **kwargs)
+

Bases: Model

+

Represents lathway.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+from_stop
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+from_stop_id
+
+ +
+
+is_bidirectional
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+length
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+max_slope
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+min_width
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+pathway_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+pathway_mode
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+reversed_signposted_as
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+signposted_as
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stair_count
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+to_stop
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+to_stop_id
+
+ +
+
+traversal_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.Route(*args, **kwargs)
+

Bases: Model

+

Represents route.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+agency
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+agency_id
+
+ +
+
+continuous_drop_off
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+continuous_pickup
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+farerule_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+route_color
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route_desc
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route_long_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route_short_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route_sort_order
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route_text_color
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route_url
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+trip_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+ +
+
+class pt_map.models.RouteNetwork(*args, **kwargs)
+

Bases: Model

+

Represents route_network.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+route_network_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+route_network_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.Shape(*args, **kwargs)
+

Bases: Model

+

Represents shape.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+shape_dist_traveled
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+shape_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+shape_pt_lat
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+shape_pt_lon
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+shape_pt_sequence
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.Stop(*args, **kwargs)
+

Bases: Model

+

Represents stop.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+level_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+location_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+locationgroupstop_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+parent_station
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+parent_station_id
+
+ +
+
+pathways_from
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+pathways_to
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+platform_code
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_code
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_desc
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_lat
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_lon
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+stop_timezone
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_url
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stoptime_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+transfers_from
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+transfers_to
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+wheelchair_boarding
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+zone_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.StopArea(*args, **kwargs)
+

Bases: Model

+

Represents stop_area.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+stop_area_description
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_area_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_area_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.StopTime(*args, **kwargs)
+

Bases: Model

+

Represents stop_time.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+arrival_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+departure_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+drop_off_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+pickup_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+shape_dist_traveled
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+stop_headsign
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stop_id
+
+ +
+
+stop_sequence
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+timepoint
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+trip
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+trip_id
+
+ +
+ +
+
+class pt_map.models.Timeframe(*args, **kwargs)
+

Bases: Model

+

Represents timeframe.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+end_date
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+end_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+get_next_by_end_date(*, field=<django.db.models.fields.DateField: end_date>, is_next=True, **kwargs)
+
+ +
+
+get_next_by_start_date(*, field=<django.db.models.fields.DateField: start_date>, is_next=True, **kwargs)
+
+ +
+
+get_previous_by_end_date(*, field=<django.db.models.fields.DateField: end_date>, is_next=False, **kwargs)
+
+ +
+
+get_previous_by_start_date(*, field=<django.db.models.fields.DateField: start_date>, is_next=False, **kwargs)
+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+start_date
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+start_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+time_frame_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.Transfer(*args, **kwargs)
+

Bases: Model

+

Represents transfer.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+from_stop
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+from_stop_id
+
+ +
+
+id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+min_transfer_time
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+to_stop
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+to_stop_id
+
+ +
+
+transfer_type
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.Translation(*args, **kwargs)
+

Bases: Model

+

Represents translation.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+field_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+language
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+table_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+translation
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+class pt_map.models.Trip(*args, **kwargs)
+

Bases: Model

+

Represents trip.txt from the GTFS Reference.

+
+
+exception DoesNotExist
+

Bases: ObjectDoesNotExist

+
+ +
+
+exception MultipleObjectsReturned
+

Bases: MultipleObjectsReturned

+
+ +
+
+bikes_allowed
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+block_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+bookingrule_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+direction_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+frequency_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+objects = <django.db.models.manager.Manager object>
+
+ +
+
+route
+

Accessor to the related object on the forward side of a many-to-one or +one-to-one (via ForwardOneToOneDescriptor subclass) relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Child.parent is a ForwardManyToOneDescriptor instance.

+
+ +
+
+route_id
+
+ +
+
+service_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+shape_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+stoptime_set
+

Accessor to the related objects manager on the reverse side of a +many-to-one relation.

+

In the example:

+
class Child(Model):
+    parent = ForeignKey(Parent, related_name='children')
+
+
+

Parent.children is a ReverseManyToOneDescriptor instance.

+

Most of the implementation is delegated to a dynamically defined manager +class built by create_forward_many_to_many_manager() defined below.

+
+ +
+
+trip_headsign
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+trip_id
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+trip_short_name
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+
+wheelchair_accessible
+

A wrapper for a deferred-loading field. When the value is read from this +object the first time, the query is executed.

+
+ +
+ +
+
+

pt_map.tests module

+
+
+

pt_map.urls module

+

Redirecting HTTP requests destined for the app pt_map to the correct views

+
+
+

pt_map.views module

+
+

Views

+

Views reacting to Http Requests by interfacing between backend and frontend.

+
+

Functions

+
+
index(request)

Home page

+
+
+
+
+
+
+pt_map.views.index(request)
+
+ +
+
+

Module contents

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/build/pt_map.migrations.html b/docs/build/pt_map.migrations.html new file mode 100644 index 0000000..231c481 --- /dev/null +++ b/docs/build/pt_map.migrations.html @@ -0,0 +1,354 @@ + + + + + + + pt_map.migrations package — Transport Accessibility 0.1 Beta 1 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

pt_map.migrations package

+
+

Submodules

+
+
+

pt_map.migrations.0001_initial module

+
+
+class pt_map.migrations.0001_initial.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = []
+
+ +
+
+initial = True
+
+ +
+
+operations = [<CreateModel  name='Agency', fields=[('agency_id', <django.db.models.fields.IntegerField>), ('agency_name', <django.db.models.fields.CharField>), ('agency_url', <django.db.models.fields.URLField>), ('agency_phone', <django.db.models.fields.CharField>), ('agency_email', <django.db.models.fields.EmailField>), ('agency_fare_url', <django.db.models.fields.URLField>)]>, <CreateModel  name='Calendar', fields=[('service_id', <django.db.models.fields.CharField>), ('monday', <django.db.models.fields.BooleanField>), ('tuesday', <django.db.models.fields.BooleanField>), ('wednesday', <django.db.models.fields.BooleanField>), ('thursday', <django.db.models.fields.BooleanField>), ('friday', <django.db.models.fields.BooleanField>), ('saturday', <django.db.models.fields.BooleanField>), ('sunday', <django.db.models.fields.BooleanField>), ('start_date', <django.db.models.fields.DateField>), ('end_date', <django.db.models.fields.DateField>)]>, <CreateModel  name='FeedInfo', fields=[('feed_publisher_name', <django.db.models.fields.CharField>), ('feed_publisher_url', <django.db.models.fields.URLField>), ('feed_lang', <django.db.models.fields.CharField>), ('feed_start_date', <django.db.models.fields.DateField>), ('feed_end_date', <django.db.models.fields.DateField>), ('feed_version', <django.db.models.fields.CharField>), ('feed_id', <django.db.models.fields.CharField>)]>, <CreateModel  name='Shape', fields=[('id', <django.db.models.fields.BigAutoField>), ('shape_id', <django.db.models.fields.CharField>), ('shape_pt_lat', <django.db.models.fields.FloatField>), ('shape_pt_lon', <django.db.models.fields.FloatField>), ('shape_pt_sequence', <django.db.models.fields.IntegerField>), ('shape_dist_traveled', <django.db.models.fields.FloatField>)]>, <CreateModel  name='CalendarDate', fields=[('id', <django.db.models.fields.BigAutoField>), ('date', <django.db.models.fields.DateField>), ('exception_type', <django.db.models.fields.IntegerField>), ('service_id', <django.db.models.fields.related.ForeignKey>)]>, <CreateModel  name='FareAttribute', fields=[('fare_id', <django.db.models.fields.CharField>), ('price', <django.db.models.fields.FloatField>), ('currency_type', <django.db.models.fields.CharField>), ('payment_method', <django.db.models.fields.IntegerField>), ('transfers', <django.db.models.fields.IntegerField>), ('transfer_duration', <django.db.models.fields.IntegerField>), ('agency', <django.db.models.fields.related.ForeignKey>)]>, <CreateModel  name='Route', fields=[('route_id', <django.db.models.fields.CharField>), ('route_short_name', <django.db.models.fields.CharField>), ('route_long_name', <django.db.models.fields.CharField>), ('route_desc', <django.db.models.fields.TextField>), ('route_type', <django.db.models.fields.IntegerField>), ('route_url', <django.db.models.fields.URLField>), ('route_color', <django.db.models.fields.CharField>), ('route_text_color', <django.db.models.fields.CharField>), ('agency', <django.db.models.fields.related.ForeignKey>)]>, <CreateModel  name='FareRule', fields=[('id', <django.db.models.fields.BigAutoField>), ('origin_id', <django.db.models.fields.CharField>), ('destination_id', <django.db.models.fields.CharField>), ('contains_id', <django.db.models.fields.CharField>), ('fare', <django.db.models.fields.related.ForeignKey>), ('route', <django.db.models.fields.related.ForeignKey>)]>, <CreateModel  name='Stop', fields=[('stop_id', <django.db.models.fields.IntegerField>), ('stop_code', <django.db.models.fields.CharField>), ('stop_name', <django.db.models.fields.CharField>), ('tts_stop_name', <django.db.models.fields.CharField>), ('stop_desc', <django.db.models.fields.CharField>), ('stop_lat', <django.db.models.fields.IntegerField>), ('stop_lon', <django.db.models.fields.IntegerField>), ('zone_id', <django.db.models.fields.IntegerField>), ('stop_url', <django.db.models.fields.URLField>), ('location_type', <django.db.models.fields.IntegerField>), ('stop_timezone', <django.db.models.fields.CharField>), ('wheelchair_boarding', <django.db.models.fields.IntegerField>), ('level_id', <django.db.models.fields.CharField>), ('platform_code', <django.db.models.fields.CharField>), ('parent_station', <django.db.models.fields.related.ForeignKey>)]>, <CreateModel  name='Transfer', fields=[('id', <django.db.models.fields.BigAutoField>), ('transfer_type', <django.db.models.fields.IntegerField>), ('min_transfer_time', <django.db.models.fields.IntegerField>), ('from_stop', <django.db.models.fields.related.ForeignKey>), ('to_stop', <django.db.models.fields.related.ForeignKey>)]>, <CreateModel  name='Trip', fields=[('trip_id', <django.db.models.fields.CharField>), ('service_id', <django.db.models.fields.CharField>), ('trip_headsign', <django.db.models.fields.CharField>), ('trip_short_name', <django.db.models.fields.CharField>), ('direction_id', <django.db.models.fields.IntegerField>), ('block_id', <django.db.models.fields.CharField>), ('shape_id', <django.db.models.fields.CharField>), ('wheelchair_accessible', <django.db.models.fields.IntegerField>), ('bikes_allowed', <django.db.models.fields.IntegerField>), ('route', <django.db.models.fields.related.ForeignKey>)]>, <CreateModel  name='StopTime', fields=[('id', <django.db.models.fields.BigAutoField>), ('arrival_time', <django.db.models.fields.TimeField>), ('departure_time', <django.db.models.fields.TimeField>), ('stop_sequence', <django.db.models.fields.IntegerField>), ('stop_headsign', <django.db.models.fields.CharField>), ('pickup_type', <django.db.models.fields.IntegerField>), ('drop_off_type', <django.db.models.fields.IntegerField>), ('shape_dist_traveled', <django.db.models.fields.FloatField>), ('timepoint', <django.db.models.fields.IntegerField>), ('stop', <django.db.models.fields.related.ForeignKey>), ('trip', <django.db.models.fields.related.ForeignKey>)]>, <CreateModel  name='Frequency', fields=[('id', <django.db.models.fields.BigAutoField>), ('start_time', <django.db.models.fields.TimeField>), ('end_time', <django.db.models.fields.TimeField>), ('headway_secs', <django.db.models.fields.IntegerField>), ('exact_times', <django.db.models.fields.IntegerField>), ('trip', <django.db.models.fields.related.ForeignKey>)]>]
+
+ +
+ +
+
+

pt_map.migrations.0002_alter_calendardate_unique_together_and_more module

+
+
+class pt_map.migrations.0002_alter_calendardate_unique_together_and_more.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0001_initial')]
+
+ +
+
+operations = [<AlterUniqueTogether  name='calendardate', unique_together={('service_id', 'date')}>, <AlterUniqueTogether  name='shape', unique_together={('shape_id', 'shape_pt_sequence')}>, <AlterUniqueTogether  name='stoptime', unique_together={('trip', 'stop_sequence')}>, <AlterUniqueTogether  name='transfer', unique_together={('from_stop', 'to_stop')}>]
+
+ +
+ +
+
+

pt_map.migrations.0003_alter_calendar_service_id_and_more module

+
+
+class pt_map.migrations.0003_alter_calendar_service_id_and_more.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0002_alter_calendardate_unique_together_and_more')]
+
+ +
+
+operations = [<AlterField  model_name='calendar', name='service_id', field=<django.db.models.fields.IntegerField>>, <AlterField  model_name='fareattribute', name='fare_id', field=<django.db.models.fields.IntegerField>>, <AlterField  model_name='feedinfo', name='feed_id', field=<django.db.models.fields.IntegerField>>, <AlterField  model_name='route', name='route_id', field=<django.db.models.fields.IntegerField>>, <AlterField  model_name='trip', name='trip_id', field=<django.db.models.fields.IntegerField>>]
+
+ +
+ +
+
+

pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more module

+
+
+class pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0003_alter_calendar_service_id_and_more')]
+
+ +
+
+operations = [<AlterField  model_name='agency', name='agency_id', field=<django.db.models.fields.BigAutoField>>, <AlterField  model_name='calendar', name='service_id', field=<django.db.models.fields.BigAutoField>>, <AlterField  model_name='fareattribute', name='fare_id', field=<django.db.models.fields.BigAutoField>>, <AlterField  model_name='feedinfo', name='feed_id', field=<django.db.models.fields.BigAutoField>>, <AlterField  model_name='route', name='route_id', field=<django.db.models.fields.BigAutoField>>, <AlterField  model_name='stop', name='stop_id', field=<django.db.models.fields.BigAutoField>>, <AlterField  model_name='trip', name='trip_id', field=<django.db.models.fields.BigAutoField>>]
+
+ +
+ +
+
+

pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more module

+
+
+class pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0004_alter_agency_agency_id_alter_calendar_service_id_and_more')]
+
+ +
+
+operations = [<CreateModel  name='Level', fields=[('level_id', <django.db.models.fields.CharField>), ('level_index', <django.db.models.fields.FloatField>), ('level_name', <django.db.models.fields.CharField>)]>, <RemoveField  model_name='stop', name='tts_stop_name'>, <AddField  model_name='agency', name='agency_lang', field=<django.db.models.fields.CharField>>, <AddField  model_name='agency', name='agency_timezone', field=<django.db.models.fields.CharField>, preserve_default=False>, <AddField  model_name='feedinfo', name='default_lang', field=<django.db.models.fields.CharField>>, <AddField  model_name='feedinfo', name='feed_contact_email', field=<django.db.models.fields.EmailField>>, <AddField  model_name='feedinfo', name='feed_contact_url', field=<django.db.models.fields.URLField>>, <AddField  model_name='route', name='continuous_drop_off', field=<django.db.models.fields.IntegerField>>, <AddField  model_name='route', name='continuous_pickup', field=<django.db.models.fields.IntegerField>>, <AddField  model_name='route', name='route_sort_order', field=<django.db.models.fields.IntegerField>>, <AlterField  model_name='agency', name='agency_email', field=<django.db.models.fields.EmailField>>, <AlterField  model_name='agency', name='agency_fare_url', field=<django.db.models.fields.URLField>>, <AlterField  model_name='agency', name='agency_id', field=<django.db.models.fields.CharField>>, <AlterField  model_name='agency', name='agency_name', field=<django.db.models.fields.CharField>>, <AlterField  model_name='agency', name='agency_phone', field=<django.db.models.fields.CharField>>, <AlterField  model_name='calendar', name='service_id', field=<django.db.models.fields.CharField>>, <AlterField  model_name='calendardate', name='service_id', field=<django.db.models.fields.CharField>>, <AlterField  model_name='fareattribute', name='currency_type', field=<django.db.models.fields.CharField>>, <AlterField  model_name='fareattribute', name='fare_id', field=<django.db.models.fields.CharField>>, <AlterField  model_name='route', name='agency', field=<django.db.models.fields.related.ForeignKey>>, <AlterField  model_name='route', name='route_id', field=<django.db.models.fields.CharField>>, <AlterField  model_name='route', name='route_long_name', field=<django.db.models.fields.CharField>>, <AlterField  model_name='route', name='route_short_name', field=<django.db.models.fields.CharField>>, <AlterField  model_name='stop', name='platform_code', field=<django.db.models.fields.CharField>>, <AlterField  model_name='stop', name='stop_code', field=<django.db.models.fields.CharField>>, <AlterField  model_name='stop', name='stop_desc', field=<django.db.models.fields.TextField>>, <AlterField  model_name='stop', name='stop_id', field=<django.db.models.fields.CharField>>, <AlterField  model_name='stop', name='stop_lat', field=<django.db.models.fields.FloatField>>, <AlterField  model_name='stop', name='stop_lon', field=<django.db.models.fields.FloatField>>, <AlterField  model_name='stop', name='stop_name', field=<django.db.models.fields.CharField>>, <AlterField  model_name='stop', name='zone_id', field=<django.db.models.fields.CharField>>, <AlterField  model_name='stoptime', name='arrival_time', field=<django.db.models.fields.TimeField>>, <AlterField  model_name='stoptime', name='departure_time', field=<django.db.models.fields.TimeField>>, <AlterField  model_name='trip', name='trip_id', field=<django.db.models.fields.CharField>>, <CreateModel  name='Pathway', fields=[('pathway_id', <django.db.models.fields.CharField>), ('pathway_mode', <django.db.models.fields.IntegerField>), ('is_bidirectional', <django.db.models.fields.IntegerField>), ('length', <django.db.models.fields.FloatField>), ('traversal_time', <django.db.models.fields.IntegerField>), ('stair_count', <django.db.models.fields.IntegerField>), ('max_slope', <django.db.models.fields.FloatField>), ('min_width', <django.db.models.fields.FloatField>), ('signposted_as', <django.db.models.fields.CharField>), ('reversed_signposted_as', <django.db.models.fields.CharField>), ('from_stop', <django.db.models.fields.related.ForeignKey>), ('to_stop', <django.db.models.fields.related.ForeignKey>)]>]
+
+ +
+ +
+
+

pt_map.migrations.0006_alter_route_route_type module

+
+
+class pt_map.migrations.0006_alter_route_route_type.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more')]
+
+ +
+
+operations = [<AlterField  model_name='route', name='route_type', field=<django.db.models.fields.IntegerField>>]
+
+ +
+ +
+
+

pt_map.migrations.0007_location_translation_attribution_bookingrule module

+
+
+class pt_map.migrations.0007_location_translation_attribution_bookingrule.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0006_alter_route_route_type')]
+
+ +
+
+operations = [<CreateModel  name='Location', fields=[('location_id', <django.db.models.fields.CharField>), ('location_name', <django.db.models.fields.CharField>), ('location_lat', <django.db.models.fields.FloatField>), ('location_lon', <django.db.models.fields.FloatField>), ('location_type', <django.db.models.fields.CharField>), ('parent_location_id', <django.db.models.fields.CharField>), ('wheelchair_boarding', <django.db.models.fields.BooleanField>)]>, <CreateModel  name='Translation', fields=[('id', <django.db.models.fields.BigAutoField>), ('table_name', <django.db.models.fields.CharField>), ('field_name', <django.db.models.fields.CharField>), ('language', <django.db.models.fields.CharField>), ('translation', <django.db.models.fields.TextField>)]>, <CreateModel  name='Attribution', fields=[('attribution_id', <django.db.models.fields.CharField>), ('attribution_name', <django.db.models.fields.CharField>), ('attribution_url', <django.db.models.fields.URLField>), ('attribution_email', <django.db.models.fields.EmailField>), ('attribution_phone', <django.db.models.fields.CharField>), ('agency', <django.db.models.fields.related.ForeignKey>)]>, <CreateModel  name='BookingRule', fields=[('booking_rule_id', <django.db.models.fields.CharField>), ('start_time', <django.db.models.fields.TimeField>), ('end_time', <django.db.models.fields.TimeField>), ('booking_type', <django.db.models.fields.CharField>), ('rule_criteria', <django.db.models.fields.TextField>), ('booking_rule_instructions', <django.db.models.fields.TextField>), ('trip', <django.db.models.fields.related.ForeignKey>)]>]
+
+ +
+ +
+
+

pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more module

+
+
+class pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0007_location_translation_attribution_bookingrule')]
+
+ +
+
+operations = [<CreateModel  name='Area', fields=[('area_id', <django.db.models.fields.CharField>), ('area_name', <django.db.models.fields.CharField>), ('area_description', <django.db.models.fields.TextField>)]>, <CreateModel  name='FareLegRule', fields=[('fare_leg_rule_id', <django.db.models.fields.CharField>), ('fare_leg_rule_name', <django.db.models.fields.CharField>), ('fare_leg_rule_description', <django.db.models.fields.TextField>)]>, <CreateModel  name='FareMedia', fields=[('fare_media_id', <django.db.models.fields.CharField>), ('fare_media_name', <django.db.models.fields.CharField>), ('fare_media_description', <django.db.models.fields.TextField>)]>, <CreateModel  name='FareProduct', fields=[('fare_product_id', <django.db.models.fields.CharField>), ('fare_product_name', <django.db.models.fields.CharField>), ('fare_product_description', <django.db.models.fields.TextField>)]>, <CreateModel  name='FareTransferRule', fields=[('fare_transfer_rule_id', <django.db.models.fields.CharField>), ('fare_transfer_rule_name', <django.db.models.fields.CharField>), ('fare_transfer_rule_description', <django.db.models.fields.TextField>)]>, <CreateModel  name='LocationGroup', fields=[('location_group_id', <django.db.models.fields.CharField>), ('location_group_name', <django.db.models.fields.CharField>), ('location_group_type', <django.db.models.fields.CharField>)]>, <CreateModel  name='Network', fields=[('network_id', <django.db.models.fields.CharField>), ('network_name', <django.db.models.fields.CharField>)]>, <CreateModel  name='RouteNetwork', fields=[('route_network_id', <django.db.models.fields.CharField>), ('route_network_name', <django.db.models.fields.CharField>)]>, <CreateModel  name='StopArea', fields=[('stop_area_id', <django.db.models.fields.CharField>), ('stop_area_name', <django.db.models.fields.CharField>), ('stop_area_description', <django.db.models.fields.TextField>)]>, <CreateModel  name='TimeFrame', fields=[('time_frame_id', <django.db.models.fields.CharField>), ('start_date', <django.db.models.fields.DateField>), ('end_date', <django.db.models.fields.DateField>), ('start_time', <django.db.models.fields.TimeField>), ('end_time', <django.db.models.fields.TimeField>)]>, <CreateModel  name='LocationGroupStop', fields=[('id', <django.db.models.fields.BigAutoField>), ('location_group', <django.db.models.fields.related.ForeignKey>), ('stop', <django.db.models.fields.related.ForeignKey>)]>]
+
+ +
+ +
+
+

pt_map.migrations.0009_rename_faremedia_faremedium module

+
+
+class pt_map.migrations.0009_rename_faremedia_faremedium.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0008_area_farelegrule_faremedia_fareproduct_and_more')]
+
+ +
+
+operations = [<RenameModel  old_name='FareMedia', new_name='FareMedium'>]
+
+ +
+ +
+
+

pt_map.migrations.0010_rename_location_locationgeojson module

+
+
+class pt_map.migrations.0010_rename_location_locationgeojson.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0009_rename_faremedia_faremedium')]
+
+ +
+
+operations = [<RenameModel  old_name='Location', new_name='LocationGeojson'>]
+
+ +
+ +
+
+

pt_map.migrations.0011_rename_locationgeojson_locationsgeojson module

+
+
+class pt_map.migrations.0011_rename_locationgeojson_locationsgeojson.Migration(name, app_label)
+

Bases: Migration

+
+
+dependencies = [('pt_map', '0010_rename_location_locationgeojson')]
+
+ +
+
+operations = [<RenameModel  old_name='LocationGeojson', new_name='LocationsGeojson'>]
+
+ +
+ +
+
+

Module contents

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/build/py-modindex.html b/docs/build/py-modindex.html new file mode 100644 index 0000000..42cc4cc --- /dev/null +++ b/docs/build/py-modindex.html @@ -0,0 +1,261 @@ + + + + + + Python Module Index — Transport Accessibility 0.1 Beta 1 documentation + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+ +
+ +
+ +
+

© Copyright 2024, Jan Kiljanski and Johannes Randerath.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/build/search.html b/docs/build/search.html new file mode 100644 index 0000000..f579d12 --- /dev/null +++ b/docs/build/search.html @@ -0,0 +1,122 @@ + + + + + + Search — Transport Accessibility 0.1 Beta 1 documentation + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+
+ + + + +
+ +
+ +
+
+
+ +
+ +
+

© Copyright 2024, Jan Kiljanski and Johannes Randerath.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/docs/build/searchindex.js b/docs/build/searchindex.js new file mode 100644 index 0000000..9fc67f3 --- /dev/null +++ b/docs/build/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"alltitles": {"Bridge": [[3, "bridge"]], "Constants": [[3, "constants"]], "Contents": [[3, "contents"]], "Contents:": [[0, null]], "Functions": [[3, "functions"], [3, "id1"]], "Indices and tables": [[0, "indices-and-tables"]], "Models": [[3, "models"]], "Module contents": [[3, "module-pt_map"], [4, "module-pt_map.migrations"], [5, "module-transport_accessibility"]], "Submodules": [[3, "submodules"], [4, "submodules"], [5, "submodules"]], "Subpackages": [[3, "subpackages"]], "Views": [[3, "views"]], "Welcome to Transport Accessibility\u2019s documentation!": [[0, "welcome-to-transport-accessibility-s-documentation"]], "manage module": [[1, "module-manage"]], "pt_map package": [[3, "pt-map-package"]], "pt_map.admin module": [[3, "module-pt_map.admin"]], "pt_map.apps module": [[3, "module-pt_map.apps"]], "pt_map.bridge module": [[3, "module-pt_map.bridge"]], "pt_map.gtfs module": [[3, "module-pt_map.gtfs"]], "pt_map.migrations package": [[4, "pt-map-migrations-package"]], "pt_map.migrations.0001_initial module": [[4, "module-pt_map.migrations.0001_initial"]], "pt_map.migrations.0002_alter_calendardate_unique_together_and_more module": [[4, "module-pt_map.migrations.0002_alter_calendardate_unique_together_and_more"]], "pt_map.migrations.0003_alter_calendar_service_id_and_more module": [[4, "module-pt_map.migrations.0003_alter_calendar_service_id_and_more"]], "pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more module": [[4, "module-pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more"]], "pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more module": [[4, "module-pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more"]], "pt_map.migrations.0006_alter_route_route_type module": [[4, "module-pt_map.migrations.0006_alter_route_route_type"]], "pt_map.migrations.0007_location_translation_attribution_bookingrule module": [[4, "module-pt_map.migrations.0007_location_translation_attribution_bookingrule"]], "pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more module": [[4, "module-pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more"]], "pt_map.migrations.0009_rename_faremedia_faremedium module": [[4, "module-pt_map.migrations.0009_rename_faremedia_faremedium"]], "pt_map.migrations.0010_rename_location_locationgeojson module": [[4, "module-pt_map.migrations.0010_rename_location_locationgeojson"]], "pt_map.migrations.0011_rename_locationgeojson_locationsgeojson module": [[4, "module-pt_map.migrations.0011_rename_locationgeojson_locationsgeojson"]], "pt_map.models module": [[3, "module-pt_map.models"]], "pt_map.tests module": [[3, "module-pt_map.tests"]], "pt_map.urls module": [[3, "module-pt_map.urls"]], "pt_map.views module": [[3, "module-pt_map.views"]], "transport_accessibility": [[2, "transport-accessibility"]], "transport_accessibility package": [[5, "transport-accessibility-package"]], "transport_accessibility.asgi module": [[5, "module-transport_accessibility.asgi"]], "transport_accessibility.settings module": [[5, "module-transport_accessibility.settings"]], "transport_accessibility.urls module": [[5, "module-transport_accessibility.urls"]], "transport_accessibility.wsgi module": [[5, "module-transport_accessibility.wsgi"]]}, "docnames": ["index", "manage", "modules", "pt_map", "pt_map.migrations", "transport_accessibility"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["index.rst", "manage.rst", "modules.rst", "pt_map.rst", "pt_map.migrations.rst", "transport_accessibility.rst"], "indexentries": {"agency (class in pt_map.models)": [[3, "pt_map.models.Agency", false]], "agency (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.agency", false]], "agency (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.agency", false]], "agency (pt_map.models.route attribute)": [[3, "pt_map.models.Route.agency", false]], "agency.doesnotexist": [[3, "pt_map.models.Agency.DoesNotExist", false]], "agency.multipleobjectsreturned": [[3, "pt_map.models.Agency.MultipleObjectsReturned", false]], "agency_email (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.agency_email", false]], "agency_fare_url (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.agency_fare_url", false]], "agency_id (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.agency_id", false]], "agency_id (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.agency_id", false]], "agency_id (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.agency_id", false]], "agency_id (pt_map.models.route attribute)": [[3, "pt_map.models.Route.agency_id", false]], "agency_lang (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.agency_lang", false]], "agency_name (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.agency_name", false]], "agency_phone (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.agency_phone", false]], "agency_timezone (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.agency_timezone", false]], "agency_url (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.agency_url", false]], "area (class in pt_map.models)": [[3, "pt_map.models.Area", false]], "area.doesnotexist": [[3, "pt_map.models.Area.DoesNotExist", false]], "area.multipleobjectsreturned": [[3, "pt_map.models.Area.MultipleObjectsReturned", false]], "area_description (pt_map.models.area attribute)": [[3, "pt_map.models.Area.area_description", false]], "area_id (pt_map.models.area attribute)": [[3, "pt_map.models.Area.area_id", false]], "area_name (pt_map.models.area attribute)": [[3, "pt_map.models.Area.area_name", false]], "arrival_time (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.arrival_time", false]], "attribution (class in pt_map.models)": [[3, "pt_map.models.Attribution", false]], "attribution.doesnotexist": [[3, "pt_map.models.Attribution.DoesNotExist", false]], "attribution.multipleobjectsreturned": [[3, "pt_map.models.Attribution.MultipleObjectsReturned", false]], "attribution_email (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.attribution_email", false]], "attribution_id (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.attribution_id", false]], "attribution_name (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.attribution_name", false]], "attribution_phone (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.attribution_phone", false]], "attribution_set (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.attribution_set", false]], "attribution_url (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.attribution_url", false]], "bikes_allowed (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.bikes_allowed", false]], "block_id (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.block_id", false]], "booking_rule_id (pt_map.models.bookingrule attribute)": [[3, "pt_map.models.BookingRule.booking_rule_id", false]], "booking_rule_instructions (pt_map.models.bookingrule attribute)": [[3, "pt_map.models.BookingRule.booking_rule_instructions", false]], "booking_type (pt_map.models.bookingrule attribute)": [[3, "pt_map.models.BookingRule.booking_type", false]], "bookingrule (class in pt_map.models)": [[3, "pt_map.models.BookingRule", false]], "bookingrule.doesnotexist": [[3, "pt_map.models.BookingRule.DoesNotExist", false]], "bookingrule.multipleobjectsreturned": [[3, "pt_map.models.BookingRule.MultipleObjectsReturned", false]], "bookingrule_set (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.bookingrule_set", false]], "calendar (class in pt_map.models)": [[3, "pt_map.models.Calendar", false]], "calendar.doesnotexist": [[3, "pt_map.models.Calendar.DoesNotExist", false]], "calendar.multipleobjectsreturned": [[3, "pt_map.models.Calendar.MultipleObjectsReturned", false]], "calendardate (class in pt_map.models)": [[3, "pt_map.models.CalendarDate", false]], "calendardate.doesnotexist": [[3, "pt_map.models.CalendarDate.DoesNotExist", false]], "calendardate.multipleobjectsreturned": [[3, "pt_map.models.CalendarDate.MultipleObjectsReturned", false]], "classes (in module pt_map.models)": [[3, "pt_map.models.Classes", false]], "contains_id (pt_map.models.farerule attribute)": [[3, "pt_map.models.FareRule.contains_id", false]], "continuous_drop_off (pt_map.models.route attribute)": [[3, "pt_map.models.Route.continuous_drop_off", false]], "continuous_pickup (pt_map.models.route attribute)": [[3, "pt_map.models.Route.continuous_pickup", false]], "currency_type (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.currency_type", false]], "data (pt_map.gtfs.gtfs.gtfsfile attribute)": [[3, "pt_map.gtfs.GTFS.GTFSFile.data", false]], "date (pt_map.models.calendardate attribute)": [[3, "pt_map.models.CalendarDate.date", false]], "db_to_gtfs() (in module pt_map.bridge)": [[3, "pt_map.bridge.db_to_gtfs", false]], "default_auto_field (pt_map.apps.ptmapconfig attribute)": [[3, "pt_map.apps.PtMapConfig.default_auto_field", false]], "default_lang (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.default_lang", false]], "departure_time (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.departure_time", false]], "dependencies (pt_map.migrations.0001_initial.migration attribute)": [[4, "pt_map.migrations.0001_initial.Migration.dependencies", false]], "dependencies (pt_map.migrations.0002_alter_calendardate_unique_together_and_more.migration attribute)": [[4, "pt_map.migrations.0002_alter_calendardate_unique_together_and_more.Migration.dependencies", false]], "dependencies (pt_map.migrations.0003_alter_calendar_service_id_and_more.migration attribute)": [[4, "pt_map.migrations.0003_alter_calendar_service_id_and_more.Migration.dependencies", false]], "dependencies (pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more.migration attribute)": [[4, "pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more.Migration.dependencies", false]], "dependencies (pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more.migration attribute)": [[4, "pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more.Migration.dependencies", false]], "dependencies (pt_map.migrations.0006_alter_route_route_type.migration attribute)": [[4, "pt_map.migrations.0006_alter_route_route_type.Migration.dependencies", false]], "dependencies (pt_map.migrations.0007_location_translation_attribution_bookingrule.migration attribute)": [[4, "pt_map.migrations.0007_location_translation_attribution_bookingrule.Migration.dependencies", false]], "dependencies (pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more.migration attribute)": [[4, "pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more.Migration.dependencies", false]], "dependencies (pt_map.migrations.0009_rename_faremedia_faremedium.migration attribute)": [[4, "pt_map.migrations.0009_rename_faremedia_faremedium.Migration.dependencies", false]], "dependencies (pt_map.migrations.0010_rename_location_locationgeojson.migration attribute)": [[4, "pt_map.migrations.0010_rename_location_locationgeojson.Migration.dependencies", false]], "dependencies (pt_map.migrations.0011_rename_locationgeojson_locationsgeojson.migration attribute)": [[4, "pt_map.migrations.0011_rename_locationgeojson_locationsgeojson.Migration.dependencies", false]], "destination_id (pt_map.models.farerule attribute)": [[3, "pt_map.models.FareRule.destination_id", false]], "direction_id (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.direction_id", false]], "drop_off_type (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.drop_off_type", false]], "end_date (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.end_date", false]], "end_date (pt_map.models.timeframe attribute)": [[3, "pt_map.models.Timeframe.end_date", false]], "end_time (pt_map.models.bookingrule attribute)": [[3, "pt_map.models.BookingRule.end_time", false]], "end_time (pt_map.models.frequency attribute)": [[3, "pt_map.models.Frequency.end_time", false]], "end_time (pt_map.models.timeframe attribute)": [[3, "pt_map.models.Timeframe.end_time", false]], "errors (pt_map.gtfs.gtfs attribute)": [[3, "pt_map.gtfs.GTFS.errors", false]], "exact_times (pt_map.models.frequency attribute)": [[3, "pt_map.models.Frequency.exact_times", false]], "exception_type (pt_map.models.calendardate attribute)": [[3, "pt_map.models.CalendarDate.exception_type", false]], "export() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.export", false]], "fare (pt_map.models.farerule attribute)": [[3, "pt_map.models.FareRule.fare", false]], "fare_id (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.fare_id", false]], "fare_id (pt_map.models.farerule attribute)": [[3, "pt_map.models.FareRule.fare_id", false]], "fare_leg_rule_description (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.fare_leg_rule_description", false]], "fare_leg_rule_id (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.fare_leg_rule_id", false]], "fare_leg_rule_name (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.fare_leg_rule_name", false]], "fare_media_description (pt_map.models.faremedium attribute)": [[3, "pt_map.models.FareMedium.fare_media_description", false]], "fare_media_id (pt_map.models.faremedium attribute)": [[3, "pt_map.models.FareMedium.fare_media_id", false]], "fare_media_name (pt_map.models.faremedium attribute)": [[3, "pt_map.models.FareMedium.fare_media_name", false]], "fare_product_description (pt_map.models.fareproduct attribute)": [[3, "pt_map.models.FareProduct.fare_product_description", false]], "fare_product_id (pt_map.models.fareproduct attribute)": [[3, "pt_map.models.FareProduct.fare_product_id", false]], "fare_product_name (pt_map.models.fareproduct attribute)": [[3, "pt_map.models.FareProduct.fare_product_name", false]], "fare_transfer_rule_description (pt_map.models.faretransferrule attribute)": [[3, "pt_map.models.FareTransferRule.fare_transfer_rule_description", false]], "fare_transfer_rule_id (pt_map.models.faretransferrule attribute)": [[3, "pt_map.models.FareTransferRule.fare_transfer_rule_id", false]], "fare_transfer_rule_name (pt_map.models.faretransferrule attribute)": [[3, "pt_map.models.FareTransferRule.fare_transfer_rule_name", false]], "fareattribute (class in pt_map.models)": [[3, "pt_map.models.FareAttribute", false]], "fareattribute.doesnotexist": [[3, "pt_map.models.FareAttribute.DoesNotExist", false]], "fareattribute.multipleobjectsreturned": [[3, "pt_map.models.FareAttribute.MultipleObjectsReturned", false]], "fareattribute_set (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.fareattribute_set", false]], "farelegrule (class in pt_map.models)": [[3, "pt_map.models.FareLegRule", false]], "farelegrule.doesnotexist": [[3, "pt_map.models.FareLegRule.DoesNotExist", false]], "farelegrule.multipleobjectsreturned": [[3, "pt_map.models.FareLegRule.MultipleObjectsReturned", false]], "faremedium (class in pt_map.models)": [[3, "pt_map.models.FareMedium", false]], "faremedium.doesnotexist": [[3, "pt_map.models.FareMedium.DoesNotExist", false]], "faremedium.multipleobjectsreturned": [[3, "pt_map.models.FareMedium.MultipleObjectsReturned", false]], "fareproduct (class in pt_map.models)": [[3, "pt_map.models.FareProduct", false]], "fareproduct.doesnotexist": [[3, "pt_map.models.FareProduct.DoesNotExist", false]], "fareproduct.multipleobjectsreturned": [[3, "pt_map.models.FareProduct.MultipleObjectsReturned", false]], "farerule (class in pt_map.models)": [[3, "pt_map.models.FareRule", false]], "farerule.doesnotexist": [[3, "pt_map.models.FareRule.DoesNotExist", false]], "farerule.multipleobjectsreturned": [[3, "pt_map.models.FareRule.MultipleObjectsReturned", false]], "farerule_set (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.farerule_set", false]], "farerule_set (pt_map.models.route attribute)": [[3, "pt_map.models.Route.farerule_set", false]], "faretransferrule (class in pt_map.models)": [[3, "pt_map.models.FareTransferRule", false]], "faretransferrule.doesnotexist": [[3, "pt_map.models.FareTransferRule.DoesNotExist", false]], "faretransferrule.multipleobjectsreturned": [[3, "pt_map.models.FareTransferRule.MultipleObjectsReturned", false]], "feed_contact_email (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.feed_contact_email", false]], "feed_contact_url (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.feed_contact_url", false]], "feed_end_date (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.feed_end_date", false]], "feed_id (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.feed_id", false]], "feed_lang (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.feed_lang", false]], "feed_publisher_name (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.feed_publisher_name", false]], "feed_publisher_url (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.feed_publisher_url", false]], "feed_start_date (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.feed_start_date", false]], "feed_version (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.feed_version", false]], "feedinfo (class in pt_map.models)": [[3, "pt_map.models.FeedInfo", false]], "feedinfo.doesnotexist": [[3, "pt_map.models.FeedInfo.DoesNotExist", false]], "feedinfo.multipleobjectsreturned": [[3, "pt_map.models.FeedInfo.MultipleObjectsReturned", false]], "field_name (pt_map.models.translation attribute)": [[3, "pt_map.models.Translation.field_name", false]], "file_name (pt_map.gtfs.gtfs.gtfsfile attribute)": [[3, "pt_map.gtfs.GTFS.GTFSFile.file_name", false]], "folder_path (pt_map.gtfs.gtfs attribute)": [[3, "pt_map.gtfs.GTFS.folder_path", false]], "folder_path (pt_map.gtfs.gtfs.gtfsfile attribute)": [[3, "pt_map.gtfs.GTFS.GTFSFile.folder_path", false]], "frequency (class in pt_map.models)": [[3, "pt_map.models.Frequency", false]], "frequency.doesnotexist": [[3, "pt_map.models.Frequency.DoesNotExist", false]], "frequency.multipleobjectsreturned": [[3, "pt_map.models.Frequency.MultipleObjectsReturned", false]], "frequency_set (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.frequency_set", false]], "friday (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.friday", false]], "from_stop (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.from_stop", false]], "from_stop (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.from_stop", false]], "from_stop_id (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.from_stop_id", false]], "from_stop_id (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.from_stop_id", false]], "get_fields() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.get_fields", false]], "get_files() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.get_files", false]], "get_next_by_date() (pt_map.models.calendardate method)": [[3, "pt_map.models.CalendarDate.get_next_by_date", false]], "get_next_by_end_date() (pt_map.models.calendar method)": [[3, "pt_map.models.Calendar.get_next_by_end_date", false]], "get_next_by_end_date() (pt_map.models.timeframe method)": [[3, "pt_map.models.Timeframe.get_next_by_end_date", false]], "get_next_by_start_date() (pt_map.models.calendar method)": [[3, "pt_map.models.Calendar.get_next_by_start_date", false]], "get_next_by_start_date() (pt_map.models.timeframe method)": [[3, "pt_map.models.Timeframe.get_next_by_start_date", false]], "get_previous_by_date() (pt_map.models.calendardate method)": [[3, "pt_map.models.CalendarDate.get_previous_by_date", false]], "get_previous_by_end_date() (pt_map.models.calendar method)": [[3, "pt_map.models.Calendar.get_previous_by_end_date", false]], "get_previous_by_end_date() (pt_map.models.timeframe method)": [[3, "pt_map.models.Timeframe.get_previous_by_end_date", false]], "get_previous_by_start_date() (pt_map.models.calendar method)": [[3, "pt_map.models.Calendar.get_previous_by_start_date", false]], "get_previous_by_start_date() (pt_map.models.timeframe method)": [[3, "pt_map.models.Timeframe.get_previous_by_start_date", false]], "gtfs (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS", false]], "gtfs.agency (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Agency", false]], "gtfs.areas (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Areas", false]], "gtfs.attributions (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Attributions", false]], "gtfs.bookingrules (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.BookingRules", false]], "gtfs.calendar (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Calendar", false]], "gtfs.calendardates (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.CalendarDates", false]], "gtfs.fareattributes (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.FareAttributes", false]], "gtfs.farelegrules (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.FareLegRules", false]], "gtfs.faremedia (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.FareMedia", false]], "gtfs.fareproducts (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.FareProducts", false]], "gtfs.farerules (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.FareRules", false]], "gtfs.faretransferrules (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.FareTransferRules", false]], "gtfs.feedinfo (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.FeedInfo", false]], "gtfs.frequencies (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Frequencies", false]], "gtfs.gtfsfile (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.GTFSFile", false]], "gtfs.levels (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Levels", false]], "gtfs.locationgroups (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.LocationGroups", false]], "gtfs.locationgroupstops (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.LocationGroupStops", false]], "gtfs.locationsgeojson (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.LocationsGeojson", false]], "gtfs.networks (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Networks", false]], "gtfs.pathways (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Pathways", false]], "gtfs.routenetworks (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.RouteNetworks", false]], "gtfs.routes (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Routes", false]], "gtfs.shapes (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Shapes", false]], "gtfs.stopareas (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.StopAreas", false]], "gtfs.stops (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Stops", false]], "gtfs.stoptimes (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.StopTimes", false]], "gtfs.timeframes (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Timeframes", false]], "gtfs.transfers (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Transfers", false]], "gtfs.translations (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Translations", false]], "gtfs.trips (class in pt_map.gtfs)": [[3, "pt_map.gtfs.GTFS.Trips", false]], "gtfs_to_db() (in module pt_map.bridge)": [[3, "pt_map.bridge.gtfs_to_db", false]], "headway_secs (pt_map.models.frequency attribute)": [[3, "pt_map.models.Frequency.headway_secs", false]], "id (pt_map.models.calendardate attribute)": [[3, "pt_map.models.CalendarDate.id", false]], "id (pt_map.models.farerule attribute)": [[3, "pt_map.models.FareRule.id", false]], "id (pt_map.models.frequency attribute)": [[3, "pt_map.models.Frequency.id", false]], "id (pt_map.models.locationgroupstop attribute)": [[3, "pt_map.models.LocationGroupStop.id", false]], "id (pt_map.models.shape attribute)": [[3, "pt_map.models.Shape.id", false]], "id (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.id", false]], "id (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.id", false]], "id (pt_map.models.translation attribute)": [[3, "pt_map.models.Translation.id", false]], "index() (in module pt_map.views)": [[3, "pt_map.views.index", false]], "initial (pt_map.migrations.0001_initial.migration attribute)": [[4, "pt_map.migrations.0001_initial.Migration.initial", false]], "is_bidirectional (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.is_bidirectional", false]], "is_nan() (in module pt_map.bridge)": [[3, "pt_map.bridge.is_NaN", false]], "language (pt_map.models.translation attribute)": [[3, "pt_map.models.Translation.language", false]], "length (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.length", false]], "level (class in pt_map.models)": [[3, "pt_map.models.Level", false]], "level.doesnotexist": [[3, "pt_map.models.Level.DoesNotExist", false]], "level.multipleobjectsreturned": [[3, "pt_map.models.Level.MultipleObjectsReturned", false]], "level_id (pt_map.models.level attribute)": [[3, "pt_map.models.Level.level_id", false]], "level_id (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.level_id", false]], "level_index (pt_map.models.level attribute)": [[3, "pt_map.models.Level.level_index", false]], "level_name (pt_map.models.level attribute)": [[3, "pt_map.models.Level.level_name", false]], "load_data() (pt_map.gtfs.gtfs.gtfsfile method)": [[3, "pt_map.gtfs.GTFS.GTFSFile.load_data", false]], "load_data() (pt_map.gtfs.gtfs.locationsgeojson method)": [[3, "pt_map.gtfs.GTFS.LocationsGeojson.load_data", false]], "location_group (pt_map.models.locationgroupstop attribute)": [[3, "pt_map.models.LocationGroupStop.location_group", false]], "location_group_id (pt_map.models.locationgroup attribute)": [[3, "pt_map.models.LocationGroup.location_group_id", false]], "location_group_id (pt_map.models.locationgroupstop attribute)": [[3, "pt_map.models.LocationGroupStop.location_group_id", false]], "location_group_name (pt_map.models.locationgroup attribute)": [[3, "pt_map.models.LocationGroup.location_group_name", false]], "location_group_type (pt_map.models.locationgroup attribute)": [[3, "pt_map.models.LocationGroup.location_group_type", false]], "location_id (pt_map.models.locationsgeojson attribute)": [[3, "pt_map.models.LocationsGeojson.location_id", false]], "location_lat (pt_map.models.locationsgeojson attribute)": [[3, "pt_map.models.LocationsGeojson.location_lat", false]], "location_lon (pt_map.models.locationsgeojson attribute)": [[3, "pt_map.models.LocationsGeojson.location_lon", false]], "location_name (pt_map.models.locationsgeojson attribute)": [[3, "pt_map.models.LocationsGeojson.location_name", false]], "location_type (pt_map.models.locationsgeojson attribute)": [[3, "pt_map.models.LocationsGeojson.location_type", false]], "location_type (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.location_type", false]], "locationgroup (class in pt_map.models)": [[3, "pt_map.models.LocationGroup", false]], "locationgroup.doesnotexist": [[3, "pt_map.models.LocationGroup.DoesNotExist", false]], "locationgroup.multipleobjectsreturned": [[3, "pt_map.models.LocationGroup.MultipleObjectsReturned", false]], "locationgroupstop (class in pt_map.models)": [[3, "pt_map.models.LocationGroupStop", false]], "locationgroupstop.doesnotexist": [[3, "pt_map.models.LocationGroupStop.DoesNotExist", false]], "locationgroupstop.multipleobjectsreturned": [[3, "pt_map.models.LocationGroupStop.MultipleObjectsReturned", false]], "locationgroupstop_set (pt_map.models.locationgroup attribute)": [[3, "pt_map.models.LocationGroup.locationgroupstop_set", false]], "locationgroupstop_set (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.locationgroupstop_set", false]], "locationsgeojson (class in pt_map.models)": [[3, "pt_map.models.LocationsGeojson", false]], "locationsgeojson.doesnotexist": [[3, "pt_map.models.LocationsGeojson.DoesNotExist", false]], "locationsgeojson.multipleobjectsreturned": [[3, "pt_map.models.LocationsGeojson.MultipleObjectsReturned", false]], "main() (in module manage)": [[1, "manage.main", false]], "manage": [[1, "module-manage", false]], "max_slope (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.max_slope", false]], "migration (class in pt_map.migrations.0001_initial)": [[4, "pt_map.migrations.0001_initial.Migration", false]], "migration (class in pt_map.migrations.0002_alter_calendardate_unique_together_and_more)": [[4, "pt_map.migrations.0002_alter_calendardate_unique_together_and_more.Migration", false]], "migration (class in pt_map.migrations.0003_alter_calendar_service_id_and_more)": [[4, "pt_map.migrations.0003_alter_calendar_service_id_and_more.Migration", false]], "migration (class in pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more)": [[4, "pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more.Migration", false]], "migration (class in pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more)": [[4, "pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more.Migration", false]], "migration (class in pt_map.migrations.0006_alter_route_route_type)": [[4, "pt_map.migrations.0006_alter_route_route_type.Migration", false]], "migration (class in pt_map.migrations.0007_location_translation_attribution_bookingrule)": [[4, "pt_map.migrations.0007_location_translation_attribution_bookingrule.Migration", false]], "migration (class in pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more)": [[4, "pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more.Migration", false]], "migration (class in pt_map.migrations.0009_rename_faremedia_faremedium)": [[4, "pt_map.migrations.0009_rename_faremedia_faremedium.Migration", false]], "migration (class in pt_map.migrations.0010_rename_location_locationgeojson)": [[4, "pt_map.migrations.0010_rename_location_locationgeojson.Migration", false]], "migration (class in pt_map.migrations.0011_rename_locationgeojson_locationsgeojson)": [[4, "pt_map.migrations.0011_rename_locationgeojson_locationsgeojson.Migration", false]], "min_transfer_time (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.min_transfer_time", false]], "min_width (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.min_width", false]], "module": [[1, "module-manage", false], [3, "module-pt_map", false], [3, "module-pt_map.admin", false], [3, "module-pt_map.apps", false], [3, "module-pt_map.bridge", false], [3, "module-pt_map.gtfs", false], [3, "module-pt_map.models", false], [3, "module-pt_map.tests", false], [3, "module-pt_map.urls", false], [3, "module-pt_map.views", false], [4, "module-pt_map.migrations", false], [4, "module-pt_map.migrations.0001_initial", false], [4, "module-pt_map.migrations.0002_alter_calendardate_unique_together_and_more", false], [4, "module-pt_map.migrations.0003_alter_calendar_service_id_and_more", false], [4, "module-pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more", false], [4, "module-pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more", false], [4, "module-pt_map.migrations.0006_alter_route_route_type", false], [4, "module-pt_map.migrations.0007_location_translation_attribution_bookingrule", false], [4, "module-pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more", false], [4, "module-pt_map.migrations.0009_rename_faremedia_faremedium", false], [4, "module-pt_map.migrations.0010_rename_location_locationgeojson", false], [4, "module-pt_map.migrations.0011_rename_locationgeojson_locationsgeojson", false], [5, "module-transport_accessibility", false], [5, "module-transport_accessibility.asgi", false], [5, "module-transport_accessibility.settings", false], [5, "module-transport_accessibility.urls", false], [5, "module-transport_accessibility.wsgi", false]], "monday (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.monday", false]], "name (pt_map.apps.ptmapconfig attribute)": [[3, "pt_map.apps.PtMapConfig.name", false]], "network (class in pt_map.models)": [[3, "pt_map.models.Network", false]], "network.doesnotexist": [[3, "pt_map.models.Network.DoesNotExist", false]], "network.multipleobjectsreturned": [[3, "pt_map.models.Network.MultipleObjectsReturned", false]], "network_id (pt_map.models.network attribute)": [[3, "pt_map.models.Network.network_id", false]], "network_name (pt_map.models.network attribute)": [[3, "pt_map.models.Network.network_name", false]], "objects (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.objects", false]], "objects (pt_map.models.area attribute)": [[3, "pt_map.models.Area.objects", false]], "objects (pt_map.models.attribution attribute)": [[3, "pt_map.models.Attribution.objects", false]], "objects (pt_map.models.bookingrule attribute)": [[3, "pt_map.models.BookingRule.objects", false]], "objects (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.objects", false]], "objects (pt_map.models.calendardate attribute)": [[3, "pt_map.models.CalendarDate.objects", false]], "objects (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.objects", false]], "objects (pt_map.models.farelegrule attribute)": [[3, "pt_map.models.FareLegRule.objects", false]], "objects (pt_map.models.faremedium attribute)": [[3, "pt_map.models.FareMedium.objects", false]], "objects (pt_map.models.fareproduct attribute)": [[3, "pt_map.models.FareProduct.objects", false]], "objects (pt_map.models.farerule attribute)": [[3, "pt_map.models.FareRule.objects", false]], "objects (pt_map.models.faretransferrule attribute)": [[3, "pt_map.models.FareTransferRule.objects", false]], "objects (pt_map.models.feedinfo attribute)": [[3, "pt_map.models.FeedInfo.objects", false]], "objects (pt_map.models.frequency attribute)": [[3, "pt_map.models.Frequency.objects", false]], "objects (pt_map.models.level attribute)": [[3, "pt_map.models.Level.objects", false]], "objects (pt_map.models.locationgroup attribute)": [[3, "pt_map.models.LocationGroup.objects", false]], "objects (pt_map.models.locationgroupstop attribute)": [[3, "pt_map.models.LocationGroupStop.objects", false]], "objects (pt_map.models.locationsgeojson attribute)": [[3, "pt_map.models.LocationsGeojson.objects", false]], "objects (pt_map.models.network attribute)": [[3, "pt_map.models.Network.objects", false]], "objects (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.objects", false]], "objects (pt_map.models.route attribute)": [[3, "pt_map.models.Route.objects", false]], "objects (pt_map.models.routenetwork attribute)": [[3, "pt_map.models.RouteNetwork.objects", false]], "objects (pt_map.models.shape attribute)": [[3, "pt_map.models.Shape.objects", false]], "objects (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.objects", false]], "objects (pt_map.models.stoparea attribute)": [[3, "pt_map.models.StopArea.objects", false]], "objects (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.objects", false]], "objects (pt_map.models.timeframe attribute)": [[3, "pt_map.models.Timeframe.objects", false]], "objects (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.objects", false]], "objects (pt_map.models.translation attribute)": [[3, "pt_map.models.Translation.objects", false]], "objects (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.objects", false]], "operations (pt_map.migrations.0001_initial.migration attribute)": [[4, "pt_map.migrations.0001_initial.Migration.operations", false]], "operations (pt_map.migrations.0002_alter_calendardate_unique_together_and_more.migration attribute)": [[4, "pt_map.migrations.0002_alter_calendardate_unique_together_and_more.Migration.operations", false]], "operations (pt_map.migrations.0003_alter_calendar_service_id_and_more.migration attribute)": [[4, "pt_map.migrations.0003_alter_calendar_service_id_and_more.Migration.operations", false]], "operations (pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more.migration attribute)": [[4, "pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more.Migration.operations", false]], "operations (pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more.migration attribute)": [[4, "pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more.Migration.operations", false]], "operations (pt_map.migrations.0006_alter_route_route_type.migration attribute)": [[4, "pt_map.migrations.0006_alter_route_route_type.Migration.operations", false]], "operations (pt_map.migrations.0007_location_translation_attribution_bookingrule.migration attribute)": [[4, "pt_map.migrations.0007_location_translation_attribution_bookingrule.Migration.operations", false]], "operations (pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more.migration attribute)": [[4, "pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more.Migration.operations", false]], "operations (pt_map.migrations.0009_rename_faremedia_faremedium.migration attribute)": [[4, "pt_map.migrations.0009_rename_faremedia_faremedium.Migration.operations", false]], "operations (pt_map.migrations.0010_rename_location_locationgeojson.migration attribute)": [[4, "pt_map.migrations.0010_rename_location_locationgeojson.Migration.operations", false]], "operations (pt_map.migrations.0011_rename_locationgeojson_locationsgeojson.migration attribute)": [[4, "pt_map.migrations.0011_rename_locationgeojson_locationsgeojson.Migration.operations", false]], "origin_id (pt_map.models.farerule attribute)": [[3, "pt_map.models.FareRule.origin_id", false]], "parent_location_id (pt_map.models.locationsgeojson attribute)": [[3, "pt_map.models.LocationsGeojson.parent_location_id", false]], "parent_station (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.parent_station", false]], "parent_station_id (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.parent_station_id", false]], "pathway (class in pt_map.models)": [[3, "pt_map.models.Pathway", false]], "pathway.doesnotexist": [[3, "pt_map.models.Pathway.DoesNotExist", false]], "pathway.multipleobjectsreturned": [[3, "pt_map.models.Pathway.MultipleObjectsReturned", false]], "pathway_id (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.pathway_id", false]], "pathway_mode (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.pathway_mode", false]], "pathways_from (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.pathways_from", false]], "pathways_to (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.pathways_to", false]], "payment_method (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.payment_method", false]], "pickup_type (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.pickup_type", false]], "platform_code (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.platform_code", false]], "price (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.price", false]], "pt_map": [[3, "module-pt_map", false]], "pt_map.admin": [[3, "module-pt_map.admin", false]], "pt_map.apps": [[3, "module-pt_map.apps", false]], "pt_map.bridge": [[3, "module-pt_map.bridge", false]], "pt_map.gtfs": [[3, "module-pt_map.gtfs", false]], "pt_map.migrations": [[4, "module-pt_map.migrations", false]], "pt_map.migrations.0001_initial": [[4, "module-pt_map.migrations.0001_initial", false]], "pt_map.migrations.0002_alter_calendardate_unique_together_and_more": [[4, "module-pt_map.migrations.0002_alter_calendardate_unique_together_and_more", false]], "pt_map.migrations.0003_alter_calendar_service_id_and_more": [[4, "module-pt_map.migrations.0003_alter_calendar_service_id_and_more", false]], "pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more": [[4, "module-pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more", false]], "pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more": [[4, "module-pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more", false]], "pt_map.migrations.0006_alter_route_route_type": [[4, "module-pt_map.migrations.0006_alter_route_route_type", false]], "pt_map.migrations.0007_location_translation_attribution_bookingrule": [[4, "module-pt_map.migrations.0007_location_translation_attribution_bookingrule", false]], "pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more": [[4, "module-pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more", false]], "pt_map.migrations.0009_rename_faremedia_faremedium": [[4, "module-pt_map.migrations.0009_rename_faremedia_faremedium", false]], "pt_map.migrations.0010_rename_location_locationgeojson": [[4, "module-pt_map.migrations.0010_rename_location_locationgeojson", false]], "pt_map.migrations.0011_rename_locationgeojson_locationsgeojson": [[4, "module-pt_map.migrations.0011_rename_locationgeojson_locationsgeojson", false]], "pt_map.models": [[3, "module-pt_map.models", false]], "pt_map.tests": [[3, "module-pt_map.tests", false]], "pt_map.urls": [[3, "module-pt_map.urls", false]], "pt_map.views": [[3, "module-pt_map.views", false]], "ptmapconfig (class in pt_map.apps)": [[3, "pt_map.apps.PtMapConfig", false]], "reversed_signposted_as (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.reversed_signposted_as", false]], "route (class in pt_map.models)": [[3, "pt_map.models.Route", false]], "route (pt_map.models.farerule attribute)": [[3, "pt_map.models.FareRule.route", false]], "route (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.route", false]], "route.doesnotexist": [[3, "pt_map.models.Route.DoesNotExist", false]], "route.multipleobjectsreturned": [[3, "pt_map.models.Route.MultipleObjectsReturned", false]], "route_color (pt_map.models.route attribute)": [[3, "pt_map.models.Route.route_color", false]], "route_desc (pt_map.models.route attribute)": [[3, "pt_map.models.Route.route_desc", false]], "route_id (pt_map.models.farerule attribute)": [[3, "pt_map.models.FareRule.route_id", false]], "route_id (pt_map.models.route attribute)": [[3, "pt_map.models.Route.route_id", false]], "route_id (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.route_id", false]], "route_long_name (pt_map.models.route attribute)": [[3, "pt_map.models.Route.route_long_name", false]], "route_network_id (pt_map.models.routenetwork attribute)": [[3, "pt_map.models.RouteNetwork.route_network_id", false]], "route_network_name (pt_map.models.routenetwork attribute)": [[3, "pt_map.models.RouteNetwork.route_network_name", false]], "route_set (pt_map.models.agency attribute)": [[3, "pt_map.models.Agency.route_set", false]], "route_short_name (pt_map.models.route attribute)": [[3, "pt_map.models.Route.route_short_name", false]], "route_sort_order (pt_map.models.route attribute)": [[3, "pt_map.models.Route.route_sort_order", false]], "route_text_color (pt_map.models.route attribute)": [[3, "pt_map.models.Route.route_text_color", false]], "route_type (pt_map.models.route attribute)": [[3, "pt_map.models.Route.route_type", false]], "route_url (pt_map.models.route attribute)": [[3, "pt_map.models.Route.route_url", false]], "routenetwork (class in pt_map.models)": [[3, "pt_map.models.RouteNetwork", false]], "routenetwork.doesnotexist": [[3, "pt_map.models.RouteNetwork.DoesNotExist", false]], "routenetwork.multipleobjectsreturned": [[3, "pt_map.models.RouteNetwork.MultipleObjectsReturned", false]], "rule_criteria (pt_map.models.bookingrule attribute)": [[3, "pt_map.models.BookingRule.rule_criteria", false]], "saturday (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.saturday", false]], "service_id (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.service_id", false]], "service_id (pt_map.models.calendardate attribute)": [[3, "pt_map.models.CalendarDate.service_id", false]], "service_id (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.service_id", false]], "shape (class in pt_map.models)": [[3, "pt_map.models.Shape", false]], "shape.doesnotexist": [[3, "pt_map.models.Shape.DoesNotExist", false]], "shape.multipleobjectsreturned": [[3, "pt_map.models.Shape.MultipleObjectsReturned", false]], "shape_dist_traveled (pt_map.models.shape attribute)": [[3, "pt_map.models.Shape.shape_dist_traveled", false]], "shape_dist_traveled (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.shape_dist_traveled", false]], "shape_id (pt_map.models.shape attribute)": [[3, "pt_map.models.Shape.shape_id", false]], "shape_id (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.shape_id", false]], "shape_pt_lat (pt_map.models.shape attribute)": [[3, "pt_map.models.Shape.shape_pt_lat", false]], "shape_pt_lon (pt_map.models.shape attribute)": [[3, "pt_map.models.Shape.shape_pt_lon", false]], "shape_pt_sequence (pt_map.models.shape attribute)": [[3, "pt_map.models.Shape.shape_pt_sequence", false]], "signposted_as (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.signposted_as", false]], "stair_count (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.stair_count", false]], "standardize_time() (in module pt_map.bridge)": [[3, "pt_map.bridge.standardize_time", false]], "start_date (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.start_date", false]], "start_date (pt_map.models.timeframe attribute)": [[3, "pt_map.models.Timeframe.start_date", false]], "start_time (pt_map.models.bookingrule attribute)": [[3, "pt_map.models.BookingRule.start_time", false]], "start_time (pt_map.models.frequency attribute)": [[3, "pt_map.models.Frequency.start_time", false]], "start_time (pt_map.models.timeframe attribute)": [[3, "pt_map.models.Timeframe.start_time", false]], "stdz() (in module pt_map.bridge)": [[3, "pt_map.bridge.stdz", false]], "stop (class in pt_map.models)": [[3, "pt_map.models.Stop", false]], "stop (pt_map.models.locationgroupstop attribute)": [[3, "pt_map.models.LocationGroupStop.stop", false]], "stop (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.stop", false]], "stop.doesnotexist": [[3, "pt_map.models.Stop.DoesNotExist", false]], "stop.multipleobjectsreturned": [[3, "pt_map.models.Stop.MultipleObjectsReturned", false]], "stop_area_description (pt_map.models.stoparea attribute)": [[3, "pt_map.models.StopArea.stop_area_description", false]], "stop_area_id (pt_map.models.stoparea attribute)": [[3, "pt_map.models.StopArea.stop_area_id", false]], "stop_area_name (pt_map.models.stoparea attribute)": [[3, "pt_map.models.StopArea.stop_area_name", false]], "stop_code (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stop_code", false]], "stop_desc (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stop_desc", false]], "stop_headsign (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.stop_headsign", false]], "stop_id (pt_map.models.locationgroupstop attribute)": [[3, "pt_map.models.LocationGroupStop.stop_id", false]], "stop_id (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stop_id", false]], "stop_id (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.stop_id", false]], "stop_lat (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stop_lat", false]], "stop_lon (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stop_lon", false]], "stop_name (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stop_name", false]], "stop_sequence (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.stop_sequence", false]], "stop_set (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stop_set", false]], "stop_timezone (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stop_timezone", false]], "stop_url (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stop_url", false]], "stoparea (class in pt_map.models)": [[3, "pt_map.models.StopArea", false]], "stoparea.doesnotexist": [[3, "pt_map.models.StopArea.DoesNotExist", false]], "stoparea.multipleobjectsreturned": [[3, "pt_map.models.StopArea.MultipleObjectsReturned", false]], "stoptime (class in pt_map.models)": [[3, "pt_map.models.StopTime", false]], "stoptime.doesnotexist": [[3, "pt_map.models.StopTime.DoesNotExist", false]], "stoptime.multipleobjectsreturned": [[3, "pt_map.models.StopTime.MultipleObjectsReturned", false]], "stoptime_set (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.stoptime_set", false]], "stoptime_set (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.stoptime_set", false]], "sunday (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.sunday", false]], "table_name (pt_map.models.translation attribute)": [[3, "pt_map.models.Translation.table_name", false]], "thursday (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.thursday", false]], "time_frame_id (pt_map.models.timeframe attribute)": [[3, "pt_map.models.Timeframe.time_frame_id", false]], "timeframe (class in pt_map.models)": [[3, "pt_map.models.Timeframe", false]], "timeframe.doesnotexist": [[3, "pt_map.models.Timeframe.DoesNotExist", false]], "timeframe.multipleobjectsreturned": [[3, "pt_map.models.Timeframe.MultipleObjectsReturned", false]], "timepoint (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.timepoint", false]], "to_camel_case() (in module pt_map.bridge)": [[3, "pt_map.bridge.to_camel_case", false]], "to_stop (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.to_stop", false]], "to_stop (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.to_stop", false]], "to_stop_id (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.to_stop_id", false]], "to_stop_id (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.to_stop_id", false]], "transfer (class in pt_map.models)": [[3, "pt_map.models.Transfer", false]], "transfer.doesnotexist": [[3, "pt_map.models.Transfer.DoesNotExist", false]], "transfer.multipleobjectsreturned": [[3, "pt_map.models.Transfer.MultipleObjectsReturned", false]], "transfer_duration (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.transfer_duration", false]], "transfer_type (pt_map.models.transfer attribute)": [[3, "pt_map.models.Transfer.transfer_type", false]], "transfers (pt_map.models.fareattribute attribute)": [[3, "pt_map.models.FareAttribute.transfers", false]], "transfers_from (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.transfers_from", false]], "transfers_to (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.transfers_to", false]], "translation (class in pt_map.models)": [[3, "pt_map.models.Translation", false]], "translation (pt_map.models.translation attribute)": [[3, "pt_map.models.Translation.translation", false]], "translation.doesnotexist": [[3, "pt_map.models.Translation.DoesNotExist", false]], "translation.multipleobjectsreturned": [[3, "pt_map.models.Translation.MultipleObjectsReturned", false]], "transport_accessibility": [[5, "module-transport_accessibility", false]], "transport_accessibility.asgi": [[5, "module-transport_accessibility.asgi", false]], "transport_accessibility.settings": [[5, "module-transport_accessibility.settings", false]], "transport_accessibility.urls": [[5, "module-transport_accessibility.urls", false]], "transport_accessibility.wsgi": [[5, "module-transport_accessibility.wsgi", false]], "traversal_time (pt_map.models.pathway attribute)": [[3, "pt_map.models.Pathway.traversal_time", false]], "trip (class in pt_map.models)": [[3, "pt_map.models.Trip", false]], "trip (pt_map.models.bookingrule attribute)": [[3, "pt_map.models.BookingRule.trip", false]], "trip (pt_map.models.frequency attribute)": [[3, "pt_map.models.Frequency.trip", false]], "trip (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.trip", false]], "trip.doesnotexist": [[3, "pt_map.models.Trip.DoesNotExist", false]], "trip.multipleobjectsreturned": [[3, "pt_map.models.Trip.MultipleObjectsReturned", false]], "trip_headsign (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.trip_headsign", false]], "trip_id (pt_map.models.bookingrule attribute)": [[3, "pt_map.models.BookingRule.trip_id", false]], "trip_id (pt_map.models.frequency attribute)": [[3, "pt_map.models.Frequency.trip_id", false]], "trip_id (pt_map.models.stoptime attribute)": [[3, "pt_map.models.StopTime.trip_id", false]], "trip_id (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.trip_id", false]], "trip_set (pt_map.models.route attribute)": [[3, "pt_map.models.Route.trip_set", false]], "trip_short_name (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.trip_short_name", false]], "tuesday (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.tuesday", false]], "validate() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate", false]], "validate_agency() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_agency", false]], "validate_areas() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_areas", false]], "validate_attributions() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_attributions", false]], "validate_booking_rules() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_booking_rules", false]], "validate_calendar() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_calendar", false]], "validate_calendar_dates() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_calendar_dates", false]], "validate_fare_attributes() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_fare_attributes", false]], "validate_fare_leg_rules() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_fare_leg_rules", false]], "validate_fare_media() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_fare_media", false]], "validate_fare_products() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_fare_products", false]], "validate_fare_rules() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_fare_rules", false]], "validate_fare_transfer_rules() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_fare_transfer_rules", false]], "validate_feed_info() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_feed_info", false]], "validate_frequencies() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_frequencies", false]], "validate_lat_lon() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_lat_lon", false]], "validate_levels() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_levels", false]], "validate_location_group_stops() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_location_group_stops", false]], "validate_location_groups() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_location_groups", false]], "validate_locations_geojson() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_locations_geojson", false]], "validate_networks() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_networks", false]], "validate_optional_fields() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_optional_fields", false]], "validate_pathways() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_pathways", false]], "validate_required_fields() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_required_fields", false]], "validate_route_networks() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_route_networks", false]], "validate_routes() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_routes", false]], "validate_shapes() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_shapes", false]], "validate_stop_areas() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_stop_areas", false]], "validate_stop_times() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_stop_times", false]], "validate_stops() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_stops", false]], "validate_timeframes() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_timeframes", false]], "validate_transfers() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_transfers", false]], "validate_translations() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_translations", false]], "validate_trips() (pt_map.gtfs.gtfs method)": [[3, "pt_map.gtfs.GTFS.validate_trips", false]], "wednesday (pt_map.models.calendar attribute)": [[3, "pt_map.models.Calendar.wednesday", false]], "wheelchair_accessible (pt_map.models.trip attribute)": [[3, "pt_map.models.Trip.wheelchair_accessible", false]], "wheelchair_boarding (pt_map.models.locationsgeojson attribute)": [[3, "pt_map.models.LocationsGeojson.wheelchair_boarding", false]], "wheelchair_boarding (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.wheelchair_boarding", false]], "zone_id (pt_map.models.stop attribute)": [[3, "pt_map.models.Stop.zone_id", false]]}, "objects": {"": [[1, 0, 0, "-", "manage"], [3, 0, 0, "-", "pt_map"], [5, 0, 0, "-", "transport_accessibility"]], "manage": [[1, 1, 1, "", "main"]], "pt_map": [[3, 0, 0, "-", "admin"], [3, 0, 0, "-", "apps"], [3, 0, 0, "-", "bridge"], [3, 0, 0, "-", "gtfs"], [4, 0, 0, "-", "migrations"], [3, 0, 0, "-", "models"], [3, 0, 0, "-", "tests"], [3, 0, 0, "-", "urls"], [3, 0, 0, "-", "views"]], "pt_map.apps": [[3, 2, 1, "", "PtMapConfig"]], "pt_map.apps.PtMapConfig": [[3, 3, 1, "", "default_auto_field"], [3, 3, 1, "", "name"]], "pt_map.bridge": [[3, 1, 1, "", "db_to_gtfs"], [3, 1, 1, "", "gtfs_to_db"], [3, 1, 1, "", "is_NaN"], [3, 1, 1, "", "standardize_time"], [3, 1, 1, "", "stdz"], [3, 1, 1, "", "to_camel_case"]], "pt_map.gtfs": [[3, 2, 1, "", "GTFS"]], "pt_map.gtfs.GTFS": [[3, 2, 1, "", "Agency"], [3, 2, 1, "", "Areas"], [3, 2, 1, "", "Attributions"], [3, 2, 1, "", "BookingRules"], [3, 2, 1, "", "Calendar"], [3, 2, 1, "", "CalendarDates"], [3, 2, 1, "", "FareAttributes"], [3, 2, 1, "", "FareLegRules"], [3, 2, 1, "", "FareMedia"], [3, 2, 1, "", "FareProducts"], [3, 2, 1, "", "FareRules"], [3, 2, 1, "", "FareTransferRules"], [3, 2, 1, "", "FeedInfo"], [3, 2, 1, "", "Frequencies"], [3, 2, 1, "", "GTFSFile"], [3, 2, 1, "", "Levels"], [3, 2, 1, "", "LocationGroupStops"], [3, 2, 1, "", "LocationGroups"], [3, 2, 1, "", "LocationsGeojson"], [3, 2, 1, "", "Networks"], [3, 2, 1, "", "Pathways"], [3, 2, 1, "", "RouteNetworks"], [3, 2, 1, "", "Routes"], [3, 2, 1, "", "Shapes"], [3, 2, 1, "", "StopAreas"], [3, 2, 1, "", "StopTimes"], [3, 2, 1, "", "Stops"], [3, 2, 1, "", "Timeframes"], [3, 2, 1, "", "Transfers"], [3, 2, 1, "", "Translations"], [3, 2, 1, "", "Trips"], [3, 3, 1, "", "errors"], [3, 4, 1, "", "export"], [3, 3, 1, "", "folder_path"], [3, 4, 1, "", "get_fields"], [3, 4, 1, "", "get_files"], [3, 4, 1, "", "validate"], [3, 4, 1, "", "validate_agency"], [3, 4, 1, "", "validate_areas"], [3, 4, 1, "", "validate_attributions"], [3, 4, 1, "", "validate_booking_rules"], [3, 4, 1, "", "validate_calendar"], [3, 4, 1, "", "validate_calendar_dates"], [3, 4, 1, "", "validate_fare_attributes"], [3, 4, 1, "", "validate_fare_leg_rules"], [3, 4, 1, "", "validate_fare_media"], [3, 4, 1, "", "validate_fare_products"], [3, 4, 1, "", "validate_fare_rules"], [3, 4, 1, "", "validate_fare_transfer_rules"], [3, 4, 1, "", "validate_feed_info"], [3, 4, 1, "", "validate_frequencies"], [3, 4, 1, "", "validate_lat_lon"], [3, 4, 1, "", "validate_levels"], [3, 4, 1, "", "validate_location_group_stops"], [3, 4, 1, "", "validate_location_groups"], [3, 4, 1, "", "validate_locations_geojson"], [3, 4, 1, "", "validate_networks"], [3, 4, 1, "", "validate_optional_fields"], [3, 4, 1, "", "validate_pathways"], [3, 4, 1, "", "validate_required_fields"], [3, 4, 1, "", "validate_route_networks"], [3, 4, 1, "", "validate_routes"], [3, 4, 1, "", "validate_shapes"], [3, 4, 1, "", "validate_stop_areas"], [3, 4, 1, "", "validate_stop_times"], [3, 4, 1, "", "validate_stops"], [3, 4, 1, "", "validate_timeframes"], [3, 4, 1, "", "validate_transfers"], [3, 4, 1, "", "validate_translations"], [3, 4, 1, "", "validate_trips"]], "pt_map.gtfs.GTFS.GTFSFile": [[3, 3, 1, "", "data"], [3, 3, 1, "", "file_name"], [3, 3, 1, "", "folder_path"], [3, 4, 1, "", "load_data"]], "pt_map.gtfs.GTFS.LocationsGeojson": [[3, 4, 1, "", "load_data"]], "pt_map.migrations": [[4, 0, 0, "-", "0001_initial"], [4, 0, 0, "-", "0002_alter_calendardate_unique_together_and_more"], [4, 0, 0, "-", "0003_alter_calendar_service_id_and_more"], [4, 0, 0, "-", "0004_alter_agency_agency_id_alter_calendar_service_id_and_more"], [4, 0, 0, "-", "0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more"], [4, 0, 0, "-", "0006_alter_route_route_type"], [4, 0, 0, "-", "0007_location_translation_attribution_bookingrule"], [4, 0, 0, "-", "0008_area_farelegrule_faremedia_fareproduct_and_more"], [4, 0, 0, "-", "0009_rename_faremedia_faremedium"], [4, 0, 0, "-", "0010_rename_location_locationgeojson"], [4, 0, 0, "-", "0011_rename_locationgeojson_locationsgeojson"]], "pt_map.migrations.0001_initial": [[4, 2, 1, "", "Migration"]], "pt_map.migrations.0001_initial.Migration": [[4, 3, 1, "", "dependencies"], [4, 3, 1, "", "initial"], [4, 3, 1, "", "operations"]], "pt_map.migrations.0002_alter_calendardate_unique_together_and_more": [[4, 2, 1, "", "Migration"]], "pt_map.migrations.0002_alter_calendardate_unique_together_and_more.Migration": [[4, 3, 1, "", "dependencies"], [4, 3, 1, "", "operations"]], "pt_map.migrations.0003_alter_calendar_service_id_and_more": [[4, 2, 1, "", "Migration"]], "pt_map.migrations.0003_alter_calendar_service_id_and_more.Migration": [[4, 3, 1, "", "dependencies"], [4, 3, 1, "", "operations"]], "pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more": [[4, 2, 1, "", "Migration"]], "pt_map.migrations.0004_alter_agency_agency_id_alter_calendar_service_id_and_more.Migration": [[4, 3, 1, "", "dependencies"], [4, 3, 1, "", "operations"]], "pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more": [[4, 2, 1, "", "Migration"]], "pt_map.migrations.0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more.Migration": [[4, 3, 1, "", "dependencies"], [4, 3, 1, "", "operations"]], "pt_map.migrations.0006_alter_route_route_type": [[4, 2, 1, "", "Migration"]], "pt_map.migrations.0006_alter_route_route_type.Migration": [[4, 3, 1, "", "dependencies"], [4, 3, 1, "", "operations"]], "pt_map.migrations.0007_location_translation_attribution_bookingrule": [[4, 2, 1, "", "Migration"]], "pt_map.migrations.0007_location_translation_attribution_bookingrule.Migration": [[4, 3, 1, "", "dependencies"], [4, 3, 1, "", "operations"]], "pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more": [[4, 2, 1, "", "Migration"]], "pt_map.migrations.0008_area_farelegrule_faremedia_fareproduct_and_more.Migration": [[4, 3, 1, "", "dependencies"], [4, 3, 1, "", "operations"]], "pt_map.migrations.0009_rename_faremedia_faremedium": [[4, 2, 1, "", "Migration"]], "pt_map.migrations.0009_rename_faremedia_faremedium.Migration": [[4, 3, 1, "", "dependencies"], [4, 3, 1, "", "operations"]], "pt_map.migrations.0010_rename_location_locationgeojson": [[4, 2, 1, "", "Migration"]], "pt_map.migrations.0010_rename_location_locationgeojson.Migration": [[4, 3, 1, "", "dependencies"], [4, 3, 1, "", "operations"]], "pt_map.migrations.0011_rename_locationgeojson_locationsgeojson": [[4, 2, 1, "", "Migration"]], "pt_map.migrations.0011_rename_locationgeojson_locationsgeojson.Migration": [[4, 3, 1, "", "dependencies"], [4, 3, 1, "", "operations"]], "pt_map.models": [[3, 2, 1, "", "Agency"], [3, 2, 1, "", "Area"], [3, 2, 1, "", "Attribution"], [3, 2, 1, "", "BookingRule"], [3, 2, 1, "", "Calendar"], [3, 2, 1, "", "CalendarDate"], [3, 3, 1, "", "Classes"], [3, 2, 1, "", "FareAttribute"], [3, 2, 1, "", "FareLegRule"], [3, 2, 1, "", "FareMedium"], [3, 2, 1, "", "FareProduct"], [3, 2, 1, "", "FareRule"], [3, 2, 1, "", "FareTransferRule"], [3, 2, 1, "", "FeedInfo"], [3, 2, 1, "", "Frequency"], [3, 2, 1, "", "Level"], [3, 2, 1, "", "LocationGroup"], [3, 2, 1, "", "LocationGroupStop"], [3, 2, 1, "", "LocationsGeojson"], [3, 2, 1, "", "Network"], [3, 2, 1, "", "Pathway"], [3, 2, 1, "", "Route"], [3, 2, 1, "", "RouteNetwork"], [3, 2, 1, "", "Shape"], [3, 2, 1, "", "Stop"], [3, 2, 1, "", "StopArea"], [3, 2, 1, "", "StopTime"], [3, 2, 1, "", "Timeframe"], [3, 2, 1, "", "Transfer"], [3, 2, 1, "", "Translation"], [3, 2, 1, "", "Trip"]], "pt_map.models.Agency": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "agency_email"], [3, 3, 1, "", "agency_fare_url"], [3, 3, 1, "", "agency_id"], [3, 3, 1, "", "agency_lang"], [3, 3, 1, "", "agency_name"], [3, 3, 1, "", "agency_phone"], [3, 3, 1, "", "agency_timezone"], [3, 3, 1, "", "agency_url"], [3, 3, 1, "", "attribution_set"], [3, 3, 1, "", "fareattribute_set"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "route_set"]], "pt_map.models.Area": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "area_description"], [3, 3, 1, "", "area_id"], [3, 3, 1, "", "area_name"], [3, 3, 1, "", "objects"]], "pt_map.models.Attribution": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "agency"], [3, 3, 1, "", "agency_id"], [3, 3, 1, "", "attribution_email"], [3, 3, 1, "", "attribution_id"], [3, 3, 1, "", "attribution_name"], [3, 3, 1, "", "attribution_phone"], [3, 3, 1, "", "attribution_url"], [3, 3, 1, "", "objects"]], "pt_map.models.BookingRule": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "booking_rule_id"], [3, 3, 1, "", "booking_rule_instructions"], [3, 3, 1, "", "booking_type"], [3, 3, 1, "", "end_time"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "rule_criteria"], [3, 3, 1, "", "start_time"], [3, 3, 1, "", "trip"], [3, 3, 1, "", "trip_id"]], "pt_map.models.Calendar": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "end_date"], [3, 3, 1, "", "friday"], [3, 4, 1, "", "get_next_by_end_date"], [3, 4, 1, "", "get_next_by_start_date"], [3, 4, 1, "", "get_previous_by_end_date"], [3, 4, 1, "", "get_previous_by_start_date"], [3, 3, 1, "", "monday"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "saturday"], [3, 3, 1, "", "service_id"], [3, 3, 1, "", "start_date"], [3, 3, 1, "", "sunday"], [3, 3, 1, "", "thursday"], [3, 3, 1, "", "tuesday"], [3, 3, 1, "", "wednesday"]], "pt_map.models.CalendarDate": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "date"], [3, 3, 1, "", "exception_type"], [3, 4, 1, "", "get_next_by_date"], [3, 4, 1, "", "get_previous_by_date"], [3, 3, 1, "", "id"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "service_id"]], "pt_map.models.FareAttribute": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "agency"], [3, 3, 1, "", "agency_id"], [3, 3, 1, "", "currency_type"], [3, 3, 1, "", "fare_id"], [3, 3, 1, "", "farerule_set"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "payment_method"], [3, 3, 1, "", "price"], [3, 3, 1, "", "transfer_duration"], [3, 3, 1, "", "transfers"]], "pt_map.models.FareLegRule": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "fare_leg_rule_description"], [3, 3, 1, "", "fare_leg_rule_id"], [3, 3, 1, "", "fare_leg_rule_name"], [3, 3, 1, "", "objects"]], "pt_map.models.FareMedium": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "fare_media_description"], [3, 3, 1, "", "fare_media_id"], [3, 3, 1, "", "fare_media_name"], [3, 3, 1, "", "objects"]], "pt_map.models.FareProduct": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "fare_product_description"], [3, 3, 1, "", "fare_product_id"], [3, 3, 1, "", "fare_product_name"], [3, 3, 1, "", "objects"]], "pt_map.models.FareRule": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "contains_id"], [3, 3, 1, "", "destination_id"], [3, 3, 1, "", "fare"], [3, 3, 1, "", "fare_id"], [3, 3, 1, "", "id"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "origin_id"], [3, 3, 1, "", "route"], [3, 3, 1, "", "route_id"]], "pt_map.models.FareTransferRule": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "fare_transfer_rule_description"], [3, 3, 1, "", "fare_transfer_rule_id"], [3, 3, 1, "", "fare_transfer_rule_name"], [3, 3, 1, "", "objects"]], "pt_map.models.FeedInfo": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "default_lang"], [3, 3, 1, "", "feed_contact_email"], [3, 3, 1, "", "feed_contact_url"], [3, 3, 1, "", "feed_end_date"], [3, 3, 1, "", "feed_id"], [3, 3, 1, "", "feed_lang"], [3, 3, 1, "", "feed_publisher_name"], [3, 3, 1, "", "feed_publisher_url"], [3, 3, 1, "", "feed_start_date"], [3, 3, 1, "", "feed_version"], [3, 3, 1, "", "objects"]], "pt_map.models.Frequency": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "end_time"], [3, 3, 1, "", "exact_times"], [3, 3, 1, "", "headway_secs"], [3, 3, 1, "", "id"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "start_time"], [3, 3, 1, "", "trip"], [3, 3, 1, "", "trip_id"]], "pt_map.models.Level": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "level_id"], [3, 3, 1, "", "level_index"], [3, 3, 1, "", "level_name"], [3, 3, 1, "", "objects"]], "pt_map.models.LocationGroup": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "location_group_id"], [3, 3, 1, "", "location_group_name"], [3, 3, 1, "", "location_group_type"], [3, 3, 1, "", "locationgroupstop_set"], [3, 3, 1, "", "objects"]], "pt_map.models.LocationGroupStop": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "id"], [3, 3, 1, "", "location_group"], [3, 3, 1, "", "location_group_id"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "stop"], [3, 3, 1, "", "stop_id"]], "pt_map.models.LocationsGeojson": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "location_id"], [3, 3, 1, "", "location_lat"], [3, 3, 1, "", "location_lon"], [3, 3, 1, "", "location_name"], [3, 3, 1, "", "location_type"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "parent_location_id"], [3, 3, 1, "", "wheelchair_boarding"]], "pt_map.models.Network": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "network_id"], [3, 3, 1, "", "network_name"], [3, 3, 1, "", "objects"]], "pt_map.models.Pathway": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "from_stop"], [3, 3, 1, "", "from_stop_id"], [3, 3, 1, "", "is_bidirectional"], [3, 3, 1, "", "length"], [3, 3, 1, "", "max_slope"], [3, 3, 1, "", "min_width"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "pathway_id"], [3, 3, 1, "", "pathway_mode"], [3, 3, 1, "", "reversed_signposted_as"], [3, 3, 1, "", "signposted_as"], [3, 3, 1, "", "stair_count"], [3, 3, 1, "", "to_stop"], [3, 3, 1, "", "to_stop_id"], [3, 3, 1, "", "traversal_time"]], "pt_map.models.Route": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "agency"], [3, 3, 1, "", "agency_id"], [3, 3, 1, "", "continuous_drop_off"], [3, 3, 1, "", "continuous_pickup"], [3, 3, 1, "", "farerule_set"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "route_color"], [3, 3, 1, "", "route_desc"], [3, 3, 1, "", "route_id"], [3, 3, 1, "", "route_long_name"], [3, 3, 1, "", "route_short_name"], [3, 3, 1, "", "route_sort_order"], [3, 3, 1, "", "route_text_color"], [3, 3, 1, "", "route_type"], [3, 3, 1, "", "route_url"], [3, 3, 1, "", "trip_set"]], "pt_map.models.RouteNetwork": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "route_network_id"], [3, 3, 1, "", "route_network_name"]], "pt_map.models.Shape": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "id"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "shape_dist_traveled"], [3, 3, 1, "", "shape_id"], [3, 3, 1, "", "shape_pt_lat"], [3, 3, 1, "", "shape_pt_lon"], [3, 3, 1, "", "shape_pt_sequence"]], "pt_map.models.Stop": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "level_id"], [3, 3, 1, "", "location_type"], [3, 3, 1, "", "locationgroupstop_set"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "parent_station"], [3, 3, 1, "", "parent_station_id"], [3, 3, 1, "", "pathways_from"], [3, 3, 1, "", "pathways_to"], [3, 3, 1, "", "platform_code"], [3, 3, 1, "", "stop_code"], [3, 3, 1, "", "stop_desc"], [3, 3, 1, "", "stop_id"], [3, 3, 1, "", "stop_lat"], [3, 3, 1, "", "stop_lon"], [3, 3, 1, "", "stop_name"], [3, 3, 1, "", "stop_set"], [3, 3, 1, "", "stop_timezone"], [3, 3, 1, "", "stop_url"], [3, 3, 1, "", "stoptime_set"], [3, 3, 1, "", "transfers_from"], [3, 3, 1, "", "transfers_to"], [3, 3, 1, "", "wheelchair_boarding"], [3, 3, 1, "", "zone_id"]], "pt_map.models.StopArea": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "stop_area_description"], [3, 3, 1, "", "stop_area_id"], [3, 3, 1, "", "stop_area_name"]], "pt_map.models.StopTime": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "arrival_time"], [3, 3, 1, "", "departure_time"], [3, 3, 1, "", "drop_off_type"], [3, 3, 1, "", "id"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "pickup_type"], [3, 3, 1, "", "shape_dist_traveled"], [3, 3, 1, "", "stop"], [3, 3, 1, "", "stop_headsign"], [3, 3, 1, "", "stop_id"], [3, 3, 1, "", "stop_sequence"], [3, 3, 1, "", "timepoint"], [3, 3, 1, "", "trip"], [3, 3, 1, "", "trip_id"]], "pt_map.models.Timeframe": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "end_date"], [3, 3, 1, "", "end_time"], [3, 4, 1, "", "get_next_by_end_date"], [3, 4, 1, "", "get_next_by_start_date"], [3, 4, 1, "", "get_previous_by_end_date"], [3, 4, 1, "", "get_previous_by_start_date"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "start_date"], [3, 3, 1, "", "start_time"], [3, 3, 1, "", "time_frame_id"]], "pt_map.models.Transfer": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "from_stop"], [3, 3, 1, "", "from_stop_id"], [3, 3, 1, "", "id"], [3, 3, 1, "", "min_transfer_time"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "to_stop"], [3, 3, 1, "", "to_stop_id"], [3, 3, 1, "", "transfer_type"]], "pt_map.models.Translation": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "field_name"], [3, 3, 1, "", "id"], [3, 3, 1, "", "language"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "table_name"], [3, 3, 1, "", "translation"]], "pt_map.models.Trip": [[3, 5, 1, "", "DoesNotExist"], [3, 5, 1, "", "MultipleObjectsReturned"], [3, 3, 1, "", "bikes_allowed"], [3, 3, 1, "", "block_id"], [3, 3, 1, "", "bookingrule_set"], [3, 3, 1, "", "direction_id"], [3, 3, 1, "", "frequency_set"], [3, 3, 1, "", "objects"], [3, 3, 1, "", "route"], [3, 3, 1, "", "route_id"], [3, 3, 1, "", "service_id"], [3, 3, 1, "", "shape_id"], [3, 3, 1, "", "stoptime_set"], [3, 3, 1, "", "trip_headsign"], [3, 3, 1, "", "trip_id"], [3, 3, 1, "", "trip_short_name"], [3, 3, 1, "", "wheelchair_accessible"]], "pt_map.views": [[3, 1, 1, "", "index"]], "transport_accessibility": [[5, 0, 0, "-", "asgi"], [5, 0, 0, "-", "settings"], [5, 0, 0, "-", "urls"], [5, 0, 0, "-", "wsgi"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "method", "Python method"], "5": ["py", "exception", "Python exception"]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:attribute", "4": "py:method", "5": "py:exception"}, "terms": {"": [1, 3], "0": 5, "0001_initi": [2, 3], "0002_alter_calendardate_unique_together_and_mor": [2, 3], "0003_alter_calendar_service_id_and_mor": [2, 3], "0004_alter_agency_agency_id_alter_calendar_service_id_and_mor": [2, 3], "0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_mor": [2, 3], "0006_alter_route_route_typ": [2, 3], "0007_location_translation_attribution_bookingrul": [2, 3], "0008_area_farelegrule_faremedia_fareproduct_and_mor": [2, 3], "0009_rename_faremedia_faremedium": [2, 3], "0010_rename_location_locationgeojson": [2, 3], "0011_rename_locationgeojson_locationsgeojson": [2, 3], "24": 3, "5": 5, "6": 5, "A": 3, "For": [3, 5], "If": 3, "In": 3, "It": 5, "_": 3, "_lat": 3, "_lon": 3, "abl": 3, "accessor": 3, "accord": 3, "addfield": 4, "admin": [2, 5], "administr": 1, "agenc": [2, 3, 4], "agency_email": [2, 3, 4], "agency_fare_url": [2, 3, 4], "agency_id": [2, 3, 4], "agency_lang": [2, 3, 4], "agency_nam": [2, 3, 4], "agency_phon": [2, 3, 4], "agency_timezon": [2, 3, 4], "agency_url": [2, 3, 4], "all": 3, "allow": 3, "also": 3, "alterfield": 4, "alteruniquetogeth": 4, "an": 3, "ani": 3, "app": 2, "app_label": 4, "app_modul": 3, "app_nam": 3, "appconfig": 3, "applic": 5, "ar": 3, "area": [2, 3, 4], "area_descript": [2, 3, 4], "area_id": [2, 3, 4], "area_nam": [2, 3, 4], "arg": 3, "arrival_tim": [2, 3, 4], "asgi": 2, "attribut": [2, 3, 4], "attribution_email": [2, 3, 4], "attribution_id": [2, 3, 4], "attribution_nam": [2, 3, 4], "attribution_phon": [2, 3, 4], "attribution_set": [2, 3], "attribution_url": [2, 3, 4], "backend": 3, "base": [3, 4], "behaviour": 3, "below": 3, "between": 3, "bigautofield": [3, 4], "bikes_allow": [2, 3, 4], "block_id": [2, 3, 4], "booking_rul": 3, "booking_rule_id": [2, 3, 4], "booking_rule_instruct": [2, 3, 4], "booking_typ": [2, 3, 4], "bookingrul": [2, 3, 4], "bookingrule_set": [2, 3], "booleanfield": 4, "both": 3, "bridg": 2, "built": 3, "calendar": [2, 3, 4], "calendar_d": 3, "calendard": [2, 3, 4], "callabl": 5, "camelcas": 3, "can": 3, "capit": 3, "charfield": 4, "check": 3, "child": 3, "children": 3, "class": [2, 3, 4], "com": 5, "command": 1, "complianc": 3, "compliant": 3, "compliantli": 3, "config": 5, "configur": 5, "conmpli": 3, "constant": 2, "contain": 3, "contains_id": [2, 3, 4], "content": 2, "continuous_drop_off": [2, 3, 4], "continuous_pickup": [2, 3, 4], "convert": 3, "coordin": 3, "core": 3, "correct": 3, "correctli": 3, "correspond": 3, "creat": 3, "create_forward_many_to_many_manag": 3, "createmodel": 4, "csv": 3, "currency_typ": [2, 3, 4], "current": 3, "data": 3, "databas": 3, "datafram": 3, "datastream": 3, "date": [2, 3, 4], "datefield": [3, 4], "db": [3, 4], "db_to_gtf": [2, 3], "default": 3, "default_auto_field": [2, 3], "default_lang": [2, 3, 4], "defer": 3, "defin": 3, "deleg": 3, "departure_tim": [2, 3, 4], "depend": [3, 4], "deploy": 5, "describ": 3, "destin": 3, "destination_id": [2, 3, 4], "df": 3, "dict": 3, "did": 3, "differ": 3, "dir": 3, "direction_id": [2, 3, 4], "directli": 3, "directori": 3, "dirnam": 3, "django": [1, 3, 4, 5], "djangoproject": 5, "doc": 5, "doe": 3, "doesnotexist": [2, 3], "drop_off_typ": [2, 3, 4], "dynam": 3, "easili": 3, "either": 3, "els": 3, "emailfield": 4, "empti": 3, "en": 5, "encod": 3, "end_dat": [2, 3, 4], "end_tim": [2, 3, 4], "error": [2, 3], "exact_tim": [2, 3, 4], "exampl": 3, "except": 3, "exception_typ": [2, 3, 4], "execut": 3, "exist": 3, "expand": 3, "explain": 3, "export": [2, 3], "expos": 5, "express": 3, "extens": 3, "f": 3, "fail": 3, "fals": [3, 4], "fare": [2, 3, 4], "fare_attribut": 3, "fare_id": [2, 3, 4], "fare_leg_rul": 3, "fare_leg_rule_descript": [2, 3, 4], "fare_leg_rule_id": [2, 3, 4], "fare_leg_rule_nam": [2, 3, 4], "fare_legrul": 3, "fare_media": 3, "fare_media_descript": [2, 3, 4], "fare_media_id": [2, 3, 4], "fare_media_nam": [2, 3, 4], "fare_medium": 3, "fare_product": 3, "fare_product_descript": [2, 3, 4], "fare_product_id": [2, 3, 4], "fare_product_nam": [2, 3, 4], "fare_rul": 3, "fare_transfer_rul": 3, "fare_transfer_rule_descript": [2, 3, 4], "fare_transfer_rule_id": [2, 3, 4], "fare_transfer_rule_nam": [2, 3, 4], "fareattribut": [2, 3, 4], "fareattribute_set": [2, 3], "farelegrul": [2, 3, 4], "faremedia": [2, 3, 4], "faremedium": [2, 3, 4], "fareproduct": [2, 3, 4], "farerul": [2, 3, 4], "farerule_set": [2, 3], "faretransfer_rul": 3, "faretransferrul": [2, 3, 4], "feed_contact_email": [2, 3, 4], "feed_contact_url": [2, 3, 4], "feed_end_d": [2, 3, 4], "feed_id": [2, 3, 4], "feed_info": 3, "feed_lang": [2, 3, 4], "feed_publisher_nam": [2, 3, 4], "feed_publisher_url": [2, 3, 4], "feed_start_d": [2, 3, 4], "feed_vers": [2, 3, 4], "feedinfo": [2, 3, 4], "field": [3, 4], "field_nam": [2, 3, 4], "file": [3, 5], "file_nam": 3, "filenam": 3, "fill": 3, "first": 3, "floatfield": 4, "folder": 3, "folder_path": [2, 3], "foreignkei": [3, 4], "format": 3, "forward": 3, "forwardmanytoonedescriptor": 3, "forwardonetoonedescriptor": 3, "frequenc": [2, 3, 4], "frequency_set": [2, 3], "fridai": [2, 3, 4], "from": 3, "from_stop": [2, 3, 4], "from_stop_id": [2, 3], "frontend": 3, "full": 5, "function": 2, "g": 3, "gener": 5, "geograph": 3, "geojson": 3, "get": 3, "get_field": [2, 3], "get_fil": [2, 3], "get_next_by_d": [2, 3], "get_next_by_end_d": [2, 3], "get_next_by_start_d": [2, 3], "get_previous_by_d": [2, 3], "get_previous_by_end_d": [2, 3], "get_previous_by_start_d": [2, 3], "given": 3, "gtf": 2, "gtfs_schema": 3, "gtfs_to_db": [2, 3], "gtfsfile": [2, 3], "h": 3, "headway_sec": [2, 3, 4], "home": 3, "hour": 3, "howto": 5, "http": [3, 5], "human": 3, "i": 3, "id": [2, 3, 4], "implement": 3, "inclus": 3, "index": [0, 2, 3], "individu": 3, "inform": 5, "initi": [3, 4], "insid": 3, "instanc": 3, "integerfield": 4, "interfac": 3, "intermedi": 3, "io": 3, "is_bidirect": [2, 3, 4], "is_nan": [2, 3], "is_next": 3, "its": 3, "kei": 3, "kwarg": 3, "languag": [2, 3, 4], "lathwai": 3, "latitud": 3, "length": [2, 3, 4], "less": 3, "letter": 3, "level": [2, 3, 4, 5], "level_id": [2, 3, 4], "level_index": [2, 3, 4], "level_nam": [2, 3, 4], "line": 1, "list": [3, 5], "load": 3, "load_data": 3, "locat": [3, 4], "location_group": [2, 3, 4], "location_group_id": [2, 3, 4], "location_group_nam": [2, 3, 4], "location_group_stop": 3, "location_group_typ": [2, 3, 4], "location_groupstop": 3, "location_id": [2, 3, 4], "location_lat": [2, 3, 4], "location_lon": [2, 3, 4], "location_nam": [2, 3, 4], "location_typ": [2, 3, 4], "locationgeojson": 4, "locationgroup": [2, 3, 4], "locationgroupstop": [2, 3, 4], "locationgroupstop_set": [2, 3], "locations_geojson": 3, "locationsgeojson": [2, 3, 4], "longitud": 3, "m": 3, "main": [1, 2], "manag": [0, 2, 3], "mani": 3, "map": 3, "max_slop": [2, 3, 4], "member": 3, "messag": 3, "migrat": [2, 3], "min_transfer_tim": [2, 3, 4], "min_width": [2, 3, 4], "model": [2, 4], "model_nam": 4, "modul": [0, 2], "mondai": [2, 3, 4], "more": 5, "most": 3, "multipleobjectsreturn": [2, 3], "name": [2, 3, 4, 5], "nan": 3, "network": [2, 3, 4], "network_id": [2, 3, 4], "network_nam": [2, 3, 4], "new_nam": 4, "none": 3, "normal": 3, "object": [2, 3], "objectdoesnotexist": 3, "old_nam": 4, "ommit": 3, "one": 3, "oper": [3, 4], "optional_field": 3, "origin_id": [2, 3, 4], "otherwis": 3, "our": 3, "packag": [0, 2], "page": [0, 3], "panda": 3, "paramet": 3, "parent": 3, "parent_location_id": [2, 3, 4], "parent_st": [2, 3, 4], "parent_station_id": [2, 3], "pass": 3, "path": 3, "pathwai": [2, 3, 4], "pathway_id": [2, 3, 4], "pathway_mod": [2, 3, 4], "pathways_from": [2, 3], "pathways_to": [2, 3], "payment_method": [2, 3, 4], "pd": 3, "pickup_typ": [2, 3, 4], "platform_cod": [2, 3, 4], "potenti": 3, "prefix": 3, "present": 3, "preserve_default": 4, "price": [2, 3, 4], "print": 3, "project": 5, "properti": 3, "pt_map": [0, 2], "ptmapconfig": [2, 3], "q": 3, "queri": 3, "queryset": 3, "question": 3, "rang": 3, "rangeindex": 3, "react": 3, "read": 3, "readabl": 3, "redirect": 3, "ref": 5, "refer": 3, "relat": [3, 4], "related_nam": 3, "removefield": 4, "renamemodel": 4, "repres": 3, "represent": 3, "request": 3, "requir": 3, "required_field": 3, "reset": 3, "result": 3, "retriev": 3, "return": 3, "revers": 3, "reversed_file_map": 3, "reversed_signposted_a": [2, 3, 4], "reversemanytoonedescriptor": 3, "rout": [2, 3, 4], "route_color": [2, 3, 4], "route_desc": [2, 3, 4], "route_id": [2, 3, 4], "route_long_nam": [2, 3, 4], "route_network": 3, "route_network_id": [2, 3, 4], "route_network_nam": [2, 3, 4], "route_set": [2, 3], "route_short_nam": [2, 3, 4], "route_sort_ord": [2, 3, 4], "route_text_color": [2, 3, 4], "route_typ": [2, 3, 4], "route_url": [2, 3, 4], "routenetwork": [2, 3, 4], "rule_criteria": [2, 3, 4], "run": 1, "saturdai": [2, 3, 4], "save": 3, "search": 0, "see": 5, "self": 3, "separ": 3, "service_id": [2, 3, 4], "set": [2, 3], "shape": [2, 3, 4], "shape_dist_travel": [2, 3, 4], "shape_id": [2, 3, 4], "shape_pt_lat": [2, 3, 4], "shape_pt_lon": [2, 3, 4], "shape_pt_sequ": [2, 3, 4], "side": 3, "signposted_a": [2, 3, 4], "specif": 3, "specifi": 3, "stair_count": [2, 3, 4], "standard": 3, "standardize_tim": [2, 3], "start_dat": [2, 3, 4], "start_tim": [2, 3, 4], "startproject": 5, "stdz": [2, 3], "stop": [2, 3, 4], "stop_area": 3, "stop_area_descript": [2, 3, 4], "stop_area_id": [2, 3, 4], "stop_area_nam": [2, 3, 4], "stop_cod": [2, 3, 4], "stop_desc": [2, 3, 4], "stop_headsign": [2, 3, 4], "stop_id": [2, 3, 4], "stop_lat": [2, 3, 4], "stop_lon": [2, 3, 4], "stop_nam": [2, 3, 4], "stop_sequ": [2, 3, 4], "stop_set": [2, 3], "stop_tim": 3, "stop_timezon": [2, 3, 4], "stop_url": [2, 3, 4], "stoparea": [2, 3, 4], "stoptim": [2, 3, 4], "stoptime_set": [2, 3], "store": 3, "str": 3, "string": 3, "subclass": 3, "subdirectori": 3, "submodul": 2, "subpackag": 2, "sundai": [2, 3, 4], "table_nam": [2, 3, 4], "task": 1, "test": 2, "textfield": 4, "thei": 3, "thi": [3, 5], "thursdai": [2, 3, 4], "time": 3, "time_frame_id": [2, 3, 4], "time_str": 3, "timefield": [3, 4], "timefram": [2, 3, 4], "timepoint": [2, 3, 4], "to_camel_cas": [2, 3], "to_stop": [2, 3, 4], "to_stop_id": [2, 3], "topic": 5, "transfer": [2, 3, 4], "transfer_dur": [2, 3, 4], "transfer_typ": [2, 3, 4], "transfers_from": [2, 3], "transfers_to": [2, 3], "translat": [2, 3, 4], "transport_access": 0, "traversal_tim": [2, 3, 4], "trip": [2, 3, 4], "trip_headsign": [2, 3, 4], "trip_id": [2, 3, 4], "trip_set": [2, 3], "trip_short_nam": [2, 3, 4], "true": [3, 4], "tts_stop_nam": 4, "tuesdai": [2, 3, 4], "txt": 3, "type": 3, "unchang": 3, "unexpect": 3, "unicod": 3, "unique_togeth": 4, "url": 2, "urlfield": 4, "us": [3, 5], "util": 1, "v": 3, "valid": [2, 3], "validate_ag": [2, 3], "validate_area": [2, 3], "validate_attribut": [2, 3], "validate_booking_rul": [2, 3], "validate_calendar": [2, 3], "validate_calendar_d": [2, 3], "validate_fare_attribut": [2, 3], "validate_fare_leg_rul": [2, 3], "validate_fare_media": [2, 3], "validate_fare_product": [2, 3], "validate_fare_rul": [2, 3], "validate_fare_transfer_rul": [2, 3], "validate_feed_info": [2, 3], "validate_frequ": [2, 3], "validate_lat_lon": [2, 3], "validate_level": [2, 3], "validate_location_group": [2, 3], "validate_location_group_stop": [2, 3], "validate_locations_geojson": [2, 3], "validate_network": [2, 3], "validate_optional_field": [2, 3], "validate_pathwai": [2, 3], "validate_required_field": [2, 3], "validate_rout": [2, 3], "validate_route_network": [2, 3], "validate_shap": [2, 3], "validate_stop": [2, 3], "validate_stop_area": [2, 3], "validate_stop_tim": [2, 3], "validate_timefram": [2, 3], "validate_transf": [2, 3], "validate_transl": [2, 3], "validate_trip": [2, 3], "valu": [3, 5], "variabl": [3, 5], "via": 3, "view": 2, "wednesdai": [2, 3, 4], "wheelchair_access": [2, 3, 4], "wheelchair_board": [2, 3, 4], "when": 3, "where": 3, "why": 3, "without": 3, "work": 3, "wrapper": 3, "write": 3, "written": 3, "wsgi": 2, "zone_id": [2, 3, 4]}, "titles": ["Welcome to Transport Accessibility\u2019s documentation!", "manage module", "transport_accessibility", "pt_map package", "pt_map.migrations package", "transport_accessibility package"], "titleterms": {"": 0, "0001_initi": 4, "0002_alter_calendardate_unique_together_and_mor": 4, "0003_alter_calendar_service_id_and_mor": 4, "0004_alter_agency_agency_id_alter_calendar_service_id_and_mor": 4, "0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_mor": 4, "0006_alter_route_route_typ": 4, "0007_location_translation_attribution_bookingrul": 4, "0008_area_farelegrule_faremedia_fareproduct_and_mor": 4, "0009_rename_faremedia_faremedium": 4, "0010_rename_location_locationgeojson": 4, "0011_rename_locationgeojson_locationsgeojson": 4, "access": 0, "admin": 3, "app": 3, "asgi": 5, "bridg": 3, "constant": 3, "content": [0, 3, 4, 5], "document": 0, "function": 3, "gtf": 3, "indic": 0, "manag": 1, "migrat": 4, "model": 3, "modul": [1, 3, 4, 5], "packag": [3, 4, 5], "pt_map": [3, 4], "set": 5, "submodul": [3, 4, 5], "subpackag": 3, "tabl": 0, "test": 3, "transport": 0, "transport_access": [2, 5], "url": [3, 5], "view": 3, "welcom": 0, "wsgi": 5}}) \ No newline at end of file diff --git a/docs/build/transport_accessibility.html b/docs/build/transport_accessibility.html new file mode 100644 index 0000000..e84c8e1 --- /dev/null +++ b/docs/build/transport_accessibility.html @@ -0,0 +1,156 @@ + + + + + + + transport_accessibility package — Transport Accessibility 0.1 Beta 1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

transport_accessibility package

+
+

Submodules

+
+
+

transport_accessibility.asgi module

+

ASGI config for transport_accessibility project.

+

It exposes the ASGI callable as a module-level variable named application.

+

For more information on this file, see +https://docs.djangoproject.com/en/5.0/howto/deployment/asgi/

+
+
+

transport_accessibility.settings module

+

Django settings for transport_accessibility project.

+

Generated by ‘django-admin startproject’ using Django 5.0.6.

+

For more information on this file, see +https://docs.djangoproject.com/en/5.0/topics/settings/

+

For the full list of settings and their values, see +https://docs.djangoproject.com/en/5.0/ref/settings/

+
+
+

transport_accessibility.urls module

+

URL configuration for transport_accessibility project.

+
+
+

transport_accessibility.wsgi module

+

WSGI config for transport_accessibility project.

+

It exposes the WSGI callable as a module-level variable named application.

+

For more information on this file, see +https://docs.djangoproject.com/en/5.0/howto/deployment/wsgi/

+
+
+

Module contents

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py index 268fe2f..b2bdc1c 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -16,7 +16,7 @@ django.setup() project = 'Transport Accessibility' copyright = '2024, Jan Kiljanski and Johannes Randerath' author = 'Jan Kiljanski and Johannes Randerath' -release = '0.1' +release = '0.2' # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration diff --git a/requirements.txt b/requirements.txt index bfea8cc..c367d11 100644 --- a/requirements.txt +++ b/requirements.txt @@ -28,6 +28,7 @@ jaraco.collections==5.0.1 jaraco.context==5.3.0 jaraco.functools==4.0.1 jaraco.text==3.12.0 +jedi==0.19.1 Jinja2==3.1.4 joblib==1.4.2 lxml==5.2.2 @@ -40,6 +41,7 @@ numpy==1.26.4 packaging==24.0 pandas==2.2.2 parsimonious==0.10.0 +parso==0.8.4 Pattern==3.6 pdfminer.six==20231228 platformdirs==4.2.2 diff --git a/transport_accessibility/pt_map/bridge.py b/transport_accessibility/pt_map/bridge.py index 220b0ce..1eeac0a 100644 --- a/transport_accessibility/pt_map/bridge.py +++ b/transport_accessibility/pt_map/bridge.py @@ -7,10 +7,16 @@ Contents -------- Constants --------- -gtfs_schema : dir{str,list[str]} - Maps GTFS file names (without filename extension) to fields described by the GTFS Reference reversed_file_mapping : dict(str,str) Map CamelCased filenames to '_'-separated +class_names : dict{str,str} + Map CamelCase, singularized class names to pluralized, snake_cased file names +primary_keys : dict{str, (str or None)} + For all pt_map.models, map primary keys if applicable +foreign_keys + For all pt_map.models, map foreign keys if any. Also ordered for model creation without foreign reference conflicts. +time_delta : int + Unix time for Jan 1, 2024. To be used to calculate time prefix strings. Functions --------- @@ -43,248 +49,10 @@ import time import datetime import django.db.models import time +from pt_map.gtfs_schema import gtfs_schema time_delta = int(datetime.datetime(2024,1,1).timestamp()) -gtfs_schema = { - "agency": [ - "agency_id", - "agency_name", - "agency_url", - "agency_timezone", - "agency_lang", - "agency_phone", - "agency_email", - "agency_fare_url" - ], - "stops": [ - "stop_id", - "stop_code", - "stop_name", - "stop_desc", - "stop_lat", - "stop_lon", - "zone_id", - "stop_url", - "location_type", - "parent_station", - "stop_timezone", - "wheelchair_boarding", - "level_id", - "platform_code" - ], - "routes": [ - "route_id", - "agency_id", - "route_short_name", - "route_long_name", - "route_desc", - "route_type", - "route_url", - "route_color", - "route_text_color", - "route_sort_order", - "continuous_pickup", - "continuous_drop_off" - ], - "trips": [ - "trip_id", - "route_id", - "service_id", - "trip_headsign", - "trip_short_name", - "direction_id", - "block_id", - "shape_id", - "wheelchair_accessible", - "bikes_allowed" - ], - "stop_times": [ - "trip_id", - "arrival_time", - "departure_time", - "stop_id", - "stop_sequence", - "stop_headsign", - "pickup_type", - "drop_off_type", - "shape_dist_traveled", - "timepoint" - ], - "calendar": [ - "service_id", - "monday", - "tuesday", - "wednesday", - "thursday", - "friday", - "saturday", - "sunday", - "start_date", - "end_date" - ], - "calendar_dates": [ - "service_id", - "date", - "exception_type" - ], - "fare_attributes": [ - "fare_id", - "price", - "currency_type", - "payment_method", - "transfers", - "transfer_duration" - ], - "fare_rules": [ - "fare_id", - "route_id", - "origin_id", - "destination_id", - "contains_id" - ], - "timeframes": [ - "timeframe_id", - "start_time", - "end_time", - "headway_sec", - "exact_times" - ], - "fare_media": [ - "media_id", - "agency_id", - "fare_id", - "seat_type", - "price" - ], - "fare_products": [ - "product_id", - "agency_id", - "product_type", - "fare_id", - "product_name", - "short_name", - "description", - "duration", - "transfers" - ], - "fare_leg_rules": [ - "fare_id", - "route_id", - "origin_id", - "destination_id", - "contains_id" - ], - "fare_transfer_rules": [ - "from_fare_id", - "to_fare_id", - "transfer_type", - "min_transfer_time" - ], - "areas": [ - "area_id", - "area_name", - "area_description" - ], - "stop_areas": [ - "stop_area_id", - "stop_id", - "area_id", - "location_type", - "parent_station", - "fare_zone_id" - ], - "networks": [ - "network_id", - "network_name", - "network_description" - ], - "route_networks": [ - "route_id", - "network_id" - ], - "shapes": [ - "shape_id", - "shape_pt_lat", - "shape_pt_lon", - "shape_pt_sequence", - "shape_dist_traveled" - ], - "frequencies": [ - "trip_id", - "start_time", - "end_time", - "headway_secs", - "exact_times" - ], - "transfers": [ - "from_stop_id", - "to_stop_id", - "transfer_type", - "min_transfer_time" - ], - "pathways": [ - "pathway_id", - "from_stop_id", - "to_stop_id", - "pathway_mode", - "is_bidirectional", - "length", - "traversal_time", - "stair_count", - "max_slope", - "min_width", - "signposted_as", - "reversed_signposted_as" - ], - "levels": [ - "level_id", - "level_index", - "level_name" - ], - "location_groups": [ - "location_group_id", - "location_group_name" - ], - "location_group_stops": [ - "location_group_id", - "stop_id" - ], - "locations_geojson": [ - "type", - "features" - ], - "booking_rules": [ - "rule_id", - "stop_id", - "rule_type", - "booking_url", - "admission_rules", - "admission_requirements" - ], - "translations": [ - "table_name", - "field_name", - "language", - "translation" - ], - "feed_info": [ - "feed_publisher_name", - "feed_publisher_url", - "feed_lang", - "default_lang", - "feed_start_date", - "feed_end_date", - "feed_version", - "feed_contact_email", - "feed_contact_url" - ], - "attributions": [ - "attribution_id", - "organization_name", - "is_producer" - ] -} primary_keys = { pt_map.models.Agency: "agency_id", @@ -432,6 +200,18 @@ def stdz(v, m: django.db.models.Model, f: str): return v def to_snake_case(name): + """ + Convert CamelCase to snake_case. + + Parameters + ---------- + name : str + str in CamelCase + + Returns + ------- + Str in snake_case + """ name = name[0].lower() + name[1:] for c in name[1:]: if c.isupper(): @@ -441,6 +221,20 @@ def to_snake_case(name): return name def unqfk(ts, fk): + """ + Primary keys of imported data and in the database are likely to overlap. To avoid this, the current time in seconds since Jan 1, 2024 is added as a prefix. + Foreign key references must know of this new key so they are processed in the same way. To make this possible, we use the same time in seconds for all objects. + + Parameters + ---------- + ts : str + time in seconds to be prepended + fk : primary or foreign key to be processed. + + Returns + ------- + Str with prefix + """ if not isinstance(fk, str): fk = str(int(fk)) return f"{ts}{fk}".strip() @@ -454,28 +248,23 @@ def gtfs_to_db(g: pt_map.gtfs.GTFS): g : gtfs.GTFS GTFS object to be saved to db """ - ts = str(int(time.time())-time_delta) + ts = str(int(time.time())-time_delta) # Prepend the current time in seconds since Jan 1, 2024 to ids to make them more or less unique for model in foreign_keys: - if model[0] in [pt_map.models.Calendar, pt_map.models.CalendarDate, ]: - continue m = model[0] - df = getattr(g, class_names[m.__name__]).data - if not df.empty: - v = gtfs_schema[class_names[m.__name__]] - for _, row in df.iterrows(): - for fk in model[1]: + df = getattr(g, class_names[m.__name__]).data # Extract dataframe for each model from gtfs.GTFS object + if not df.empty: # Only process GTFS files actually present + v = gtfs_schema[class_names[m.__name__]] # field names + for _, row in df.iterrows(): # the rows of the dataframe are the individual entries in the GTFS file and should be the individual instances of the db model + for fk in model[1]: # Map foreign_keys to objects of the foreign model if row.get(fk[1]): - row[fk[1]] = fk[0].objects.get(**{primary_keys[fk[0]]: unqfk(ts, row[fk[1]])}) - defaults = {field: stdz(row.get(field), m, field) for field in v if row.get(field) and not is_NaN(row[field])} - print(model[0]) - if model[0] == pt_map.models.StopTime: - print(row) + row[fk[1]] = fk[0].objects.get(**{primary_keys[fk[0]]: unqfk(ts, row[fk[1]])}) + defaults = {field: stdz(row.get(field), m, field) for field in v if row.get(field) and not is_NaN(row[field])} # dict of fields and values of current model object to create if primary_keys[m]: - row[primary_keys[m]] = unqfk(ts, row[primary_keys[m]]) + row[primary_keys[m]] = unqfk(ts, row[primary_keys[m]]) # primary_keys should be unique, use current time in seconds as a prefix defaults[primary_keys[m]] = row[primary_keys[m]] try: - m.objects.get(**{primary_keys[m]: row[primary_keys[m]]}) - except m.DoesNotExist: + m.objects.get(**{primary_keys[m]: row[primary_keys[m]]}) # Make sure there is no object with identical primary_key, exception is expected to be risen + except m.DoesNotExist: m.objects.update_or_create( defaults = defaults, diff --git a/transport_accessibility/pt_map/gtfs_schema.py b/transport_accessibility/pt_map/gtfs_schema.py index 8c47487..3d13af1 100644 --- a/transport_accessibility/pt_map/gtfs_schema.py +++ b/transport_accessibility/pt_map/gtfs_schema.py @@ -1,4 +1,11 @@ +""" +Make gtfs_schema constant available to modules in package without circular imports. +Constants +--------- +gtfs_schema : dict{str,list[str]} + Maps GTFS file names (without filename extension) to fields described by the GTFS Reference +""" gtfs_schema = { "agency": [ "agency_id", @@ -238,3 +245,4 @@ gtfs_schema = { "is_producer" ] } + diff --git a/transport_accessibility/pt_map/views.py b/transport_accessibility/pt_map/views.py index 5135748..dd01a17 100644 --- a/transport_accessibility/pt_map/views.py +++ b/transport_accessibility/pt_map/views.py @@ -15,12 +15,28 @@ from .forms import * import json from datetime import datetime -def print_r(r, s): - if not len(r): - print(s) - return r - def get_timetable(r, trips, stop_sequences): + """ + Given a pt_map.models.Route, calculate the timetable for all its stops. + + Parameters + ---------- + r : pt_map.models.Route + Route, the timetable should be calculated for + trips : dict(str, list(pt_map.Trip)) + Dictionary mapping all trips to route_ids they travel on + stop_sequences : dict(str, list(str)) + Dict mapping route_ids to lists of stop_ids they serve. Currently the first trip is taken as reference for stops and sequence. + + Returns + ------- + dict{"stop_sequence": list(str), "stop_times": dict(str, list(str)} + Dict containing two elements: + "stop_sequence" : list(str) + list of stop_ids the route serves + "stop_times" : dict(str, list(str)) + dict mapping stop_ids from stop_sequence to time strings the route is serving the stop at + """ timetable = {"stop_sequence": stop_sequences[r.route_id]} sts = {} for stop in stop_sequences[r.route_id]: