Compare commits
No commits in common. "b6556da4f4980b7331b121bacefddfcd2b38e19d" and "53f75848771b79bc0f85e6ac60f016db203008c9" have entirely different histories.
b6556da4f4
...
53f7584877
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,2 +0,0 @@
|
||||
**/__pycache__
|
||||
**/.ipynb_checkpoints*
|
||||
14
BRANDING
14
BRANDING
@ -1,14 +0,0 @@
|
||||
|
||||
|
||||
https://nicetranslator.com/
|
||||
|
||||
|
||||
* Arbre/Tree*
|
||||
Kheops => Arbre en Italien TOP 1
|
||||
Copac => Romanian TOP 2
|
||||
strom => Slovak
|
||||
|
||||
* hierarchy
|
||||
jerarquia .... deja pris lol
|
||||
hiera ... deja pris lol
|
||||
|
||||
@ -1,179 +0,0 @@
|
||||
{
|
||||
"config_schema": {},
|
||||
"items": {
|
||||
"core_schema": {
|
||||
"engine": {
|
||||
"type": "string",
|
||||
"default": "jerakia",
|
||||
"optional": false
|
||||
},
|
||||
"value": {
|
||||
"default": "UNSET",
|
||||
"optional": false
|
||||
}
|
||||
},
|
||||
"plugin": {
|
||||
"engine": {
|
||||
"jerakia_schema": {
|
||||
"path": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"glob": {
|
||||
"default": "ansible.yml",
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"backend": {
|
||||
"hier_schema": {
|
||||
"hier": {
|
||||
"default": null,
|
||||
"optional": true,
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"additionalProperties": true,
|
||||
"properties": {
|
||||
"data": {
|
||||
"default": null,
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "array"
|
||||
}
|
||||
]
|
||||
},
|
||||
"var": {
|
||||
"type": "string",
|
||||
"default": "hier_item",
|
||||
"optional": true
|
||||
},
|
||||
"separator": {
|
||||
"type": "string",
|
||||
"default": "/",
|
||||
"optional": true
|
||||
},
|
||||
"reversed": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"loop_schema": {
|
||||
"loop": {
|
||||
"description": [
|
||||
"\n This module helps to loop over a backend\n "
|
||||
],
|
||||
"default": null,
|
||||
"optional": true,
|
||||
"examples": [
|
||||
{
|
||||
"value": "site/{{ loop_env }}/config/{{ os }}",
|
||||
"loop": {
|
||||
"var": "loop_env",
|
||||
"data": [
|
||||
"dev",
|
||||
"preprod",
|
||||
"prod"
|
||||
]
|
||||
},
|
||||
"comment": "The module will loop three time over the value, and the variable `loop_env` will consecutely have `dev`, `preprod` and `prod` as value"
|
||||
},
|
||||
{
|
||||
"value": "site/{{ loop_env2 }}/config/{{ os }}",
|
||||
"loop": {
|
||||
"var": "loop_env2",
|
||||
"data": "my_scope_var"
|
||||
},
|
||||
"comment": "Like the previous example, but it will fetch the list from any scope variables"
|
||||
},
|
||||
{
|
||||
"loop": null,
|
||||
"comment": "Disable this module, no loop will operate"
|
||||
}
|
||||
],
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"default": {},
|
||||
"title": "Complete config",
|
||||
"description": "",
|
||||
"properties": {
|
||||
"data": {
|
||||
"default": null,
|
||||
"optional": false,
|
||||
"title": "Module configuration",
|
||||
"description": "Data list used for iterations. It only accept lists as type. It disable the module if set to `null`.",
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "null",
|
||||
"title": "Disable Module",
|
||||
"description": "Disable the module"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"title": "Scope variable",
|
||||
"description": "Will look the value of the loop list from the scope. TOFIX: What if variablle does not exists?"
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"title": "Hardcoded list",
|
||||
"description": "Simply enter the list of value to be iterated to."
|
||||
}
|
||||
]
|
||||
},
|
||||
"var": {
|
||||
"type": "string",
|
||||
"default": "loop_item",
|
||||
"optional": true,
|
||||
"title": "Module configuration",
|
||||
"description": "Name of the variable to be used in templating language"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"title": "Short config",
|
||||
"description": "If set to string, it will define the name of the variable to lookup into the scope."
|
||||
},
|
||||
{
|
||||
"type": "null",
|
||||
"title": "Disable",
|
||||
"description": "If set to null, it disable the module"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,32 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -eux
|
||||
|
||||
APP_SCHEMA=app_schema.json
|
||||
|
||||
gen_doc ()
|
||||
{
|
||||
local kind=$1
|
||||
local dir=$2
|
||||
local config=$3
|
||||
|
||||
[[ ! -z "$dir" ]] || exit 2
|
||||
rm -rf "$dir" && mkdir -p "$dir"
|
||||
|
||||
generate-schema-doc \
|
||||
--config-file "$config" \
|
||||
"$APP_SCHEMA" \
|
||||
"$dir"/"main.$kind"
|
||||
}
|
||||
|
||||
|
||||
main ()
|
||||
{
|
||||
kheops schema > "$APP_SCHEMA"
|
||||
for i in html md; do
|
||||
gen_doc "$i" "docs_$i" "doc_config_${i}.yaml"
|
||||
done
|
||||
}
|
||||
|
||||
main
|
||||
|
||||
|
||||
@ -1,5 +0,0 @@
|
||||
---
|
||||
template_name: js
|
||||
description_is_markdown: true
|
||||
expand_buttons: true
|
||||
copy_js: false
|
||||
@ -1,5 +0,0 @@
|
||||
---
|
||||
template_name: md
|
||||
description_is_markdown: true
|
||||
expand_buttons: true
|
||||
copy_js: false
|
||||
@ -1 +0,0 @@
|
||||
<!DOCTYPE html><html lang=en> <head><link rel=stylesheet type=text/css href="https://fonts.googleapis.com/css?family=Overpass:300,400,600,800"><script src=https://code.jquery.com/jquery-3.4.1.min.js integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin=anonymous></script><link href=https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css rel=stylesheet integrity=sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T crossorigin=anonymous><script src=https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js integrity=sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM crossorigin=anonymous></script><link rel=stylesheet type=text/css href=schema_doc.css><script src=https://use.fontawesome.com/facf9fa52c.js></script><script src=schema_doc.min.js></script><meta charset=utf-8><title>Schema Docs</title></head> <body onload=anchorOnLoad(); id=root><div class=text-right> <button class="btn btn-primary" type=button data-toggle=collapse data-target=.collapse:not(.show) aria-expanded=false>Expand all</button> <button class="btn btn-primary" type=button data-toggle=collapse data-target=.collapse.show aria-expanded=false>Collapse all</button> </div> <div class=breadcrumbs></div><span class="badge badge-dark value-type">Type: object</span><br> <footer> <p class=generated-by-footer>Generated using <a href=https://github.com/coveooss/json-schema-for-humans>json-schema-for-humans</a> on 2022-01-26 at 18:04:57 -0500</p> </footer></body> </html>
|
||||
@ -1,180 +0,0 @@
|
||||
body {
|
||||
font: 16px/1.5em "Overpass", "Open Sans", Helvetica, sans-serif;
|
||||
color: #333;
|
||||
font-weight: 300;
|
||||
padding: 40px;
|
||||
}
|
||||
|
||||
.btn.btn-link {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.jsfh-animated-property {
|
||||
animation: eclair;
|
||||
animation-iteration-count: 1;
|
||||
animation-fill-mode: forwards;
|
||||
animation-duration: .75s;
|
||||
|
||||
}
|
||||
|
||||
@keyframes eclair {
|
||||
0%,100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
50% {
|
||||
transform: scale(1.03);
|
||||
}
|
||||
}
|
||||
|
||||
.btn.btn-primary {
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.btn.example-show.collapsed:before {
|
||||
content: "show"
|
||||
}
|
||||
|
||||
.btn.example-show:before {
|
||||
content: "hide"
|
||||
}
|
||||
|
||||
.description.collapse:not(.show) {
|
||||
max-height: 100px !important;
|
||||
overflow: hidden;
|
||||
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
}
|
||||
|
||||
.description.collapsing {
|
||||
min-height: 100px !important;
|
||||
}
|
||||
|
||||
.collapse-description-link.collapsed:after {
|
||||
content: '+ Read More';
|
||||
}
|
||||
|
||||
.collapse-description-link:not(.collapsed):after {
|
||||
content: '- Read Less';
|
||||
}
|
||||
|
||||
.badge {
|
||||
font-size: 100%;
|
||||
margin-bottom: 0.5rem;
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
.badge.value-type {
|
||||
font-size: 120%;
|
||||
margin-right: 5px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
|
||||
.badge.default-value {
|
||||
font-size: 120%;
|
||||
margin-left: 5px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.badge.restriction {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.badge.required-property,.badge.deprecated-property,.badge.pattern-property,.badge.no-additional {
|
||||
font-size: 100%;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.accordion div.card:only-child {
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.125);
|
||||
}
|
||||
|
||||
.examples {
|
||||
padding: 1rem !important;
|
||||
}
|
||||
|
||||
.examples pre {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.highlight.jumbotron {
|
||||
padding: 1rem !important;
|
||||
}
|
||||
|
||||
.generated-by-footer {
|
||||
margin-top: 1em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* From https://github.com/richleland/pygments-css/blob/master/friendly.css, see https://github.com/trentm/python-markdown2/wiki/fenced-code-blocks */
|
||||
.highlight { background: #e9ecef; } /* Changed from #f0f0f0 in the original style to be the same as bootstrap's jumbotron */
|
||||
.highlight .hll { background-color: #ffffcc }
|
||||
.highlight .c { color: #60a0b0; font-style: italic } /* Comment */
|
||||
.highlight .err { border: 1px solid #FF0000 } /* Error */
|
||||
.highlight .k { color: #007020; font-weight: bold } /* Keyword */
|
||||
.highlight .o { color: #666666 } /* Operator */
|
||||
.highlight .ch { color: #60a0b0; font-style: italic } /* Comment.Hashbang */
|
||||
.highlight .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */
|
||||
.highlight .cp { color: #007020 } /* Comment.Preproc */
|
||||
.highlight .cpf { color: #60a0b0; font-style: italic } /* Comment.PreprocFile */
|
||||
.highlight .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */
|
||||
.highlight .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */
|
||||
.highlight .gd { color: #A00000 } /* Generic.Deleted */
|
||||
.highlight .ge { font-style: italic } /* Generic.Emph */
|
||||
.highlight .gr { color: #FF0000 } /* Generic.Error */
|
||||
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
||||
.highlight .gi { color: #00A000 } /* Generic.Inserted */
|
||||
.highlight .go { color: #888888 } /* Generic.Output */
|
||||
.highlight .gp { color: #c65d09; 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: #007020; font-weight: bold } /* Keyword.Constant */
|
||||
.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
|
||||
.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
|
||||
.highlight .kp { color: #007020 } /* Keyword.Pseudo */
|
||||
.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
|
||||
.highlight .kt { color: #902000 } /* Keyword.Type */
|
||||
.highlight .m { color: #40a070 } /* Literal.Number */
|
||||
.highlight .s { color: #4070a0 } /* Literal.String */
|
||||
.highlight .na { color: #4070a0 } /* Name.Attribute */
|
||||
.highlight .nb { color: #007020 } /* Name.Builtin */
|
||||
.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
|
||||
.highlight .no { color: #60add5 } /* Name.Constant */
|
||||
.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
|
||||
.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
|
||||
.highlight .ne { color: #007020 } /* Name.Exception */
|
||||
.highlight .nf { color: #06287e } /* Name.Function */
|
||||
.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
|
||||
.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
|
||||
.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
|
||||
.highlight .nv { color: #bb60d5 } /* Name.Variable */
|
||||
.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
|
||||
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
|
||||
.highlight .mb { color: #40a070 } /* Literal.Number.Bin */
|
||||
.highlight .mf { color: #40a070 } /* Literal.Number.Float */
|
||||
.highlight .mh { color: #40a070 } /* Literal.Number.Hex */
|
||||
.highlight .mi { color: #40a070 } /* Literal.Number.Integer */
|
||||
.highlight .mo { color: #40a070 } /* Literal.Number.Oct */
|
||||
.highlight .sa { color: #4070a0 } /* Literal.String.Affix */
|
||||
.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
|
||||
.highlight .sc { color: #4070a0 } /* Literal.String.Char */
|
||||
.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */
|
||||
.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
|
||||
.highlight .s2 { color: #4070a0 } /* Literal.String.Double */
|
||||
.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
|
||||
.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
|
||||
.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
|
||||
.highlight .sx { color: #c65d09 } /* Literal.String.Other */
|
||||
.highlight .sr { color: #235388 } /* Literal.String.Regex */
|
||||
.highlight .s1 { color: #4070a0 } /* Literal.String.Single */
|
||||
.highlight .ss { color: #517918 } /* Literal.String.Symbol */
|
||||
.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
|
||||
.highlight .fm { color: #06287e } /* Name.Function.Magic */
|
||||
.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
|
||||
.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
|
||||
.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
|
||||
.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */
|
||||
.highlight .il { color: #40a070 } /* Literal.Number.Integer.Long */
|
||||
@ -1,9 +0,0 @@
|
||||
# Schema Docs
|
||||
|
||||
| Type | `object` |
|
||||
| ------------------------- | ------------------------------------------------------------------------- |
|
||||
| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") |
|
||||
| | |
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------
|
||||
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2022-01-26 at 18:04:57 -0500
|
||||
131
README.md.backup
131
README.md.backup
@ -1,131 +0,0 @@
|
||||
# Kheops
|
||||
|
||||
|
||||
Introduction:
|
||||
|
||||
> [~~Jerakia~~](https://web.archive.org/web/20180829194211/http://jerakia.io/documentation/
|
||||
)Kheops is a tool that performs key value lookups against a variety of pluggable data stores. It does this using a top-down hierarchical set of queries that allow you to define global values and override them at different levels of a configurable hierarchy.
|
||||
|
||||
> This has many use cases, including infrastructure management where you often have configuration values defined at a global level but wish to override these values based on certain factors such as the environment or location of the request.
|
||||
|
||||
Kheops is a fresh python rewrite of this project. It does not attempt to have the same features, and it's work in progress project.
|
||||
|
||||
|
||||
## Getting Started
|
||||
|
||||
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
|
||||
|
||||
### Prerequisites
|
||||
|
||||
What things you need to install the software and how to install them
|
||||
|
||||
```
|
||||
virtualenv -p python3 venv
|
||||
. venv/bin/activate
|
||||
pip install --upgrade pip -y
|
||||
```
|
||||
|
||||
### Installing
|
||||
|
||||
Install Kheops
|
||||
|
||||
```
|
||||
pip install kheops
|
||||
```
|
||||
|
||||
And check it works:
|
||||
|
||||
```
|
||||
kheops --help
|
||||
```
|
||||
|
||||
Now you can test the examples, and learn how to use it [here](/lost).
|
||||
|
||||
```
|
||||
kheops --config examples/01_simple/ hello
|
||||
kheops --config examples/01_simple/ hello -e site=
|
||||
kheops --config examples/01_simple/ hello -e site=
|
||||
```
|
||||
|
||||
## Learning Kheops
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Running the tests
|
||||
|
||||
Explain how to run the automated tests for this system
|
||||
|
||||
### Break down into end to end tests
|
||||
|
||||
Explain what these tests test and why
|
||||
|
||||
```
|
||||
Give an example
|
||||
```
|
||||
|
||||
### And coding style tests
|
||||
|
||||
Explain what these tests test and why
|
||||
|
||||
```
|
||||
Give an example
|
||||
```
|
||||
|
||||
## Deployment
|
||||
|
||||
Add additional notes about how to deploy this on a live system
|
||||
|
||||
## Built With
|
||||
|
||||
* [Dropwizard](http://www.dropwizard.io/1.0.2/docs/) - The web framework used
|
||||
* [Maven](https://maven.apache.org/) - Dependency Management
|
||||
* [ROME](https://rometools.github.io/rome/) - Used to generate RSS Feeds
|
||||
|
||||
## Contributing
|
||||
|
||||
Please read [CONTRIBUTING.md](https://gist.github.com/PurpleBooth/b24679402957c63ec426) for details on our code of conduct, and the process for submitting pull requests to us.
|
||||
|
||||
## Versioning
|
||||
|
||||
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/your/project/tags).
|
||||
|
||||
## Authors
|
||||
|
||||
* **Billie Thompson** - *Initial work* - [PurpleBooth](https://github.com/PurpleBooth)
|
||||
|
||||
See also the list of [contributors](https://github.com/your/project/contributors) who participated in this project.
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details
|
||||
|
||||
## Acknowledgments
|
||||
|
||||
* Hat tip to anyone whose code was used
|
||||
* Inspiration
|
||||
* etc
|
||||
|
||||
|
||||
|
||||
A jerakia old website:
|
||||
https://web.archive.org/web/20190209052035/http://jerakia.io/
|
||||
|
||||
https://web.archive.org/web/20180829194211/http://jerakia.io/documentation/
|
||||
|
||||
|
||||
|
||||
key-value configuration data lookup system
|
||||
|
||||
|
||||
A VERSATILE DATA LOOKUP SYSTEM
|
||||
|
||||
Jerakia is a tool that performs key value lookups against a variety of pluggable data stores. It does this using a top-down hierarchical set of queries that allow you to define global values and override them at different levels of a configurable hierarchy.
|
||||
|
||||
This has many use cases, including infrastructure management where you often have configuration values defined at a global level but wish to override these values based on certain factors such as the environment or location of the request.
|
||||
|
||||
Kheops is a key-value configuration data lookup system. It can performs a key value lookup against a variety of data stores.
|
||||
BIN
dist/kheops-0.1.0-py3-none-any.whl
vendored
BIN
dist/kheops-0.1.0-py3-none-any.whl
vendored
Binary file not shown.
BIN
dist/kheops-0.1.0.tar.gz
vendored
BIN
dist/kheops-0.1.0.tar.gz
vendored
Binary file not shown.
BIN
docs/_build/doctrees/api/kheops.doctree
vendored
BIN
docs/_build/doctrees/api/kheops.doctree
vendored
Binary file not shown.
Binary file not shown.
BIN
docs/_build/doctrees/api/kheops.plugin.doctree
vendored
BIN
docs/_build/doctrees/api/kheops.plugin.doctree
vendored
Binary file not shown.
BIN
docs/_build/doctrees/api/kheops.plugin.scope.doctree
vendored
BIN
docs/_build/doctrees/api/kheops.plugin.scope.doctree
vendored
Binary file not shown.
Binary file not shown.
BIN
docs/_build/doctrees/api/modules.doctree
vendored
BIN
docs/_build/doctrees/api/modules.doctree
vendored
Binary file not shown.
BIN
docs/_build/doctrees/docs/app/cli.doctree
vendored
BIN
docs/_build/doctrees/docs/app/cli.doctree
vendored
Binary file not shown.
BIN
docs/_build/doctrees/docs/app/config.doctree
vendored
BIN
docs/_build/doctrees/docs/app/config.doctree
vendored
Binary file not shown.
BIN
docs/_build/doctrees/docs/app/examples.doctree
vendored
BIN
docs/_build/doctrees/docs/app/examples.doctree
vendored
Binary file not shown.
BIN
docs/_build/doctrees/docs/app/index.doctree
vendored
BIN
docs/_build/doctrees/docs/app/index.doctree
vendored
Binary file not shown.
BIN
docs/_build/doctrees/docs/app/installation.doctree
vendored
BIN
docs/_build/doctrees/docs/app/installation.doctree
vendored
Binary file not shown.
BIN
docs/_build/doctrees/docs/app/internal.doctree
vendored
BIN
docs/_build/doctrees/docs/app/internal.doctree
vendored
Binary file not shown.
BIN
docs/_build/doctrees/docs/app/usage.doctree
vendored
BIN
docs/_build/doctrees/docs/app/usage.doctree
vendored
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
docs/_build/doctrees/docs/guide/index.doctree
vendored
BIN
docs/_build/doctrees/docs/guide/index.doctree
vendored
Binary file not shown.
BIN
docs/_build/doctrees/docs/learn/100.doctree
vendored
BIN
docs/_build/doctrees/docs/learn/100.doctree
vendored
Binary file not shown.
BIN
docs/_build/doctrees/docs/learn/101.doctree
vendored
BIN
docs/_build/doctrees/docs/learn/101.doctree
vendored
Binary file not shown.
BIN
docs/_build/doctrees/docs/learn/102.doctree
vendored
BIN
docs/_build/doctrees/docs/learn/102.doctree
vendored
Binary file not shown.
BIN
docs/_build/doctrees/docs/learn/105.doctree
vendored
BIN
docs/_build/doctrees/docs/learn/105.doctree
vendored
Binary file not shown.
BIN
docs/_build/doctrees/docs/learn/index.doctree
vendored
BIN
docs/_build/doctrees/docs/learn/index.doctree
vendored
Binary file not shown.
BIN
docs/_build/doctrees/environment.pickle
vendored
BIN
docs/_build/doctrees/environment.pickle
vendored
Binary file not shown.
BIN
docs/_build/doctrees/index.doctree
vendored
BIN
docs/_build/doctrees/index.doctree
vendored
Binary file not shown.
BIN
docs/_build/doctrees/learn/learn101.doctree
vendored
BIN
docs/_build/doctrees/learn/learn101.doctree
vendored
Binary file not shown.
4
docs/_build/html/.buildinfo
vendored
4
docs/_build/html/.buildinfo
vendored
@ -1,4 +0,0 @@
|
||||
# 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: 1a2b02b2d095b63c541d520c0d4bbc59
|
||||
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
||||
BIN
docs/_build/html/_images/kheops_brand.png
vendored
BIN
docs/_build/html/_images/kheops_brand.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 21 KiB |
@ -1,18 +0,0 @@
|
||||
kheops.plugin.backend package
|
||||
=============================
|
||||
|
||||
.. automodule:: kheops.plugin.backend
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Submodules
|
||||
----------
|
||||
|
||||
kheops.plugin.backend.file module
|
||||
---------------------------------
|
||||
|
||||
.. automodule:: kheops.plugin.backend.file
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@ -1,28 +0,0 @@
|
||||
kheops.plugin package
|
||||
=====================
|
||||
|
||||
.. automodule:: kheops.plugin
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Subpackages
|
||||
-----------
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 4
|
||||
|
||||
kheops.plugin.backend
|
||||
kheops.plugin.scope
|
||||
kheops.plugin.strategy
|
||||
|
||||
Submodules
|
||||
----------
|
||||
|
||||
kheops.plugin.common module
|
||||
---------------------------
|
||||
|
||||
.. automodule:: kheops.plugin.common
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@ -1,26 +0,0 @@
|
||||
kheops.plugin.scope package
|
||||
===========================
|
||||
|
||||
.. automodule:: kheops.plugin.scope
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Submodules
|
||||
----------
|
||||
|
||||
kheops.plugin.scope.hier module
|
||||
-------------------------------
|
||||
|
||||
.. automodule:: kheops.plugin.scope.hier
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
kheops.plugin.scope.loop module
|
||||
-------------------------------
|
||||
|
||||
.. automodule:: kheops.plugin.scope.loop
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@ -1,26 +0,0 @@
|
||||
kheops.plugin.strategy package
|
||||
==============================
|
||||
|
||||
.. automodule:: kheops.plugin.strategy
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Submodules
|
||||
----------
|
||||
|
||||
kheops.plugin.strategy.last module
|
||||
----------------------------------
|
||||
|
||||
.. automodule:: kheops.plugin.strategy.last
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
kheops.plugin.strategy.merge\_deep module
|
||||
-----------------------------------------
|
||||
|
||||
.. automodule:: kheops.plugin.strategy.merge_deep
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
50
docs/_build/html/_sources/api/kheops.rst.txt
vendored
50
docs/_build/html/_sources/api/kheops.rst.txt
vendored
@ -1,50 +0,0 @@
|
||||
kheops package
|
||||
==============
|
||||
|
||||
.. automodule:: kheops
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Subpackages
|
||||
-----------
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 4
|
||||
|
||||
kheops.plugin
|
||||
|
||||
Submodules
|
||||
----------
|
||||
|
||||
kheops.app module
|
||||
-----------------
|
||||
|
||||
.. automodule:: kheops.app
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
kheops.cli module
|
||||
-----------------
|
||||
|
||||
.. automodule:: kheops.cli
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
kheops.controllers module
|
||||
-------------------------
|
||||
|
||||
.. automodule:: kheops.controllers
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
kheops.utils module
|
||||
-------------------
|
||||
|
||||
.. automodule:: kheops.utils
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@ -1,7 +0,0 @@
|
||||
kheops
|
||||
======
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 4
|
||||
|
||||
kheops
|
||||
@ -1,2 +0,0 @@
|
||||
# CLI
|
||||
|
||||
@ -1 +0,0 @@
|
||||
# Config
|
||||
@ -1,8 +0,0 @@
|
||||
|
||||
Examples ...
|
||||
======================
|
||||
|
||||
examples
|
||||
|
||||
.. contents:: Table of Contents
|
||||
|
||||
18
docs/_build/html/_sources/docs/app/index.rst.txt
vendored
18
docs/_build/html/_sources/docs/app/index.rst.txt
vendored
@ -1,18 +0,0 @@
|
||||
|
||||
|
||||
Application
|
||||
===========
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 4
|
||||
:caption: Contents:
|
||||
|
||||
installation.rst
|
||||
usage.rst
|
||||
cli.md
|
||||
config.md
|
||||
examples.rst
|
||||
internal.md
|
||||
|
||||
|
||||
Application documentation
|
||||
@ -1,5 +0,0 @@
|
||||
|
||||
Instalation procedure
|
||||
======================
|
||||
|
||||
|
||||
@ -1,34 +0,0 @@
|
||||
|
||||
# Internals
|
||||
|
||||
|
||||
* 101: TECHINICAL How works a hierarchical data lookup?
|
||||
- Query a key
|
||||
+ Can be a simple string or complex data
|
||||
+ Can be anything in json compatible
|
||||
- Kheops will resolve query in 2 parts:
|
||||
+ It will first look in different locations the key. It is usually files, but it can also be an url or anything. The queried data must be a valid json data type (TOFIX: So it works also for yaml, toml .... it supports [anyconfig](https://github.com/ssato/python-anyconfig) )
|
||||
* Example: The `path` strategy will allow you to target
|
||||
+ Then it will process all results and load a strategy to resolve which results to keep.
|
||||
Example: The `last` strategy consists in keeping always the last result while the `merge` strategy consists in merging inteligentelly data. This is quite useful for dict or lists.
|
||||
+
|
||||
- Lookup data in a tree of files
|
||||
+ Goes sequentially according the backends list
|
||||
* Backend/Engine list is modular
|
||||
* Engine Plugin: Jerakia/HIera/Ansible/Curl
|
||||
* Backend Plugin: loop/hier
|
||||
+ All result are returned, and then the rules are applied
|
||||
+ Rules match to a key and apply a strategy (essentially determine if and how the different value are merged or replaced). It can also apply filter to the result and modify its content (future).
|
||||
* This is modular
|
||||
* Strategy: last/schema
|
||||
- Last will always take the last found value, whatever what it previously found.
|
||||
- schema: It will take into account the strucutre of the data and try to merge them intelligentelly. See more on
|
||||
+ Then it returns the result
|
||||
- Use cases
|
||||
+ Ansible integration
|
||||
+ Generic SOT
|
||||
+ Rest API (Future)
|
||||
+ More !!!!
|
||||
|
||||
|
||||
|
||||
@ -1,4 +0,0 @@
|
||||
|
||||
|
||||
usage !!!
|
||||
======================
|
||||
@ -1,12 +0,0 @@
|
||||
# Ansible
|
||||
|
||||
Topics:
|
||||
1) Apply role/profile pattern
|
||||
* Mission: We want to apply to profile/class pattern to ansible inventories and playbooks.
|
||||
* Always use dynamic inventories
|
||||
* Static inventories are for shorthand aliases
|
||||
* Design a simple tree
|
||||
* Take advantages of this to generate dynamic ansible groups
|
||||
* Use composed plugin
|
||||
* THe power of ansible-tree
|
||||
* Assign playbooks to specific roles
|
||||
@ -1,33 +0,0 @@
|
||||
# Learn 104
|
||||
|
||||
|
||||
* 104: Best practices
|
||||
- Going into IaC
|
||||
+ Use git to track your tree
|
||||
- D.R.Y.
|
||||
+ Things are quite easily moving
|
||||
- Code structure
|
||||
+ Profile and Class
|
||||
* Role and profiles key lookup
|
||||
+ Hierarchies
|
||||
* Foreman
|
||||
+ Use environnements, site, locatation ...
|
||||
+ Common keys vs dedicated keys
|
||||
* The profile key, default placeholder
|
||||
+ The resource modele
|
||||
* It's like a puppet resource, a catalog of items to apply
|
||||
* It's possible to use this model with ansible, and it change radically the way Ansible can be used then. See integration.
|
||||
- Debugging
|
||||
+ Use the explain mode
|
||||
* And trace mode
|
||||
+ Use GNU tools
|
||||
* tree
|
||||
* grep -Rw <key> .
|
||||
* git status -sb
|
||||
- With ansible.
|
||||
+ Use a strict naming scheme, apply your Ansible usual name schema into Kheops
|
||||
+ You can put some jinja variable into Kheops, Ansible will be able to replace and understand them during the runtime
|
||||
+ Dynamic inventories and ENC
|
||||
+ Apply products
|
||||
+ Apply roles/profiles pattern
|
||||
+ Use resource based roles => See my collection, it just works
|
||||
@ -1,10 +0,0 @@
|
||||
|
||||
Guides
|
||||
============
|
||||
|
||||
|
||||
.. toctree::
|
||||
best_practices.md
|
||||
ansible/index.md
|
||||
|
||||
|
||||
73
docs/_build/html/_sources/docs/learn/100.rst.txt
vendored
73
docs/_build/html/_sources/docs/learn/100.rst.txt
vendored
@ -1,73 +0,0 @@
|
||||
|
||||
|
||||
Introduction
|
||||
############
|
||||
|
||||
This part introduce the concept of hierarchical lookups.
|
||||
|
||||
|
||||
.. contents:: Table of Contents
|
||||
|
||||
|
||||
.. note::
|
||||
|
||||
Note: This documentation has been partially taken and adapted from `Jerakia's Documentation <https://web.archive.org/web/20170818010043/http://jerakia.io/documentation/>`_
|
||||
|
||||
|
||||
Concept
|
||||
**************************
|
||||
|
||||
In essence, Khéops is a tool that can be used to lookup a key value pair, that is to say, given a key it will give back the appropriate value. This is certainly nothing special or new, but the crucial difference here is the way in which the data is looked up. Rather than just querying a flat data source and returning the value for a requested key, when doing a hierarchical lookup we perform multiple queries against a configured hierarchy, transcending down to the next layer in the hierarchy until we find an answer. The end result is that we can define key value pairs on a global basis but then override them under certain conditions based on the hierarchical resolution by placing that key value pair further up the hierarchy for a particular condition.
|
||||
|
||||
|
||||
Hierarchical Lookups
|
||||
**************************
|
||||
|
||||
Let’s look at a fairly simple example, you need to determine from a data lookup what currency you need to bill a user coming into your site. You already have data that tells you which country and continent that your user is based in. You determine that to start with you will bill everyone in USD regardless of where they come from. So you store the key currency with a value of USD in a data source somewhere, and whenever a user starts a transaction, you look up that key, and they get billed in USD
|
||||
|
||||
Now comes the fun part. You decide that you would like to now start billing customers from European countries in EUR. Since you already know the continent your user is coming from you could add another key to your data store and then use conditional logic within your code to determine which key to look up, but now we’re adding complexity within the code implementing conditional logic to determine how to resolve the correct value. This is the very thing that hierarchical lookups aim to solve, to structure the data and perform the lookups in such a way that is transparent to the program requesting the data.
|
||||
|
||||
Lets add another layer of complexity, you’ve agreed to use EUR for all users based in Europe, but you must now account for the UK and Switzerland which deal in GBP and CHF respectively, and potentially more. Now the demands for conditional logic on the program requesting the data are getting more complicated. To avoid lots of very convoluted conditional logic in your code you could simply map every country in the world to a currency and look up one key, that would be the cleanest method right now. But remember that we generally want to use USD for everyone and only care about changing this default under certain circumstances. If we think about this carefully, we have a hierarchy of importance. The country (in the case of UK or Switzerland), the continent in the case of Europe and then the rest of the world. This is where a hierarchical lookup simplifies the management of this data. The hierarchy we need to search here is quite simple;
|
||||
|
||||
A hierarchy
|
||||
===============
|
||||
|
||||
When we’re dealing with storing data for hierarchical searches, we end up with a tiered hierarchy that looks something like this. A lookup request to Khéops contains two things, they key that is being looked up, in this case “currency”, and some data about the context of the request which Khéops refers to as the scope. In this instance the scope contains the country and continent of the user. The scope and the key are used together, so when we are talking about hierarchical lookups, rather than just saying “return the value for this key” we are saying “return the value for this key in the context of this scope”. That’s the main distinction between a normal key value lookup and a hierarchical lookup. If you’re thinking of ways to do this in a structured query language (SQL) or some other database API, you might be ok to solve this problem - but this is a stripped down example looking up one value, now imagine we throw in tax parameters, shipping costs, and other fun things into the mix - this becomes a complex beast - but not when we think of this as a simple hierarchy.
|
||||
|
||||
With a hierarchical data source we can declare a key value pair at the bottom level, in this case Worldwide. We can set that to USD, at this point any lookup request for the currency will return USD. But a hierarchical data source allows us to add a different value for the key “currency” at a different level of the hierarchy, for example we can add a value of EUR at the continent level that will only return that value if the continent is Europe. We can then add separate entries right at the top of the hierarchy for the UK and Switzerland, for requests where the country meets that criteria.
|
||||
|
||||
From our program we are still making one lookup request for the data, but that data is looked up using a series of queries behind the scenes to resolve the right data. Essentially the lookup will trigger up to three queries. If one query doesn’t return an answer (because there is nothing specific configured in that level of the hierarchy) then it will fall back to the next level, and keep going until it hits an answer, eventually landing at the last level, Worldwide in our example. So a typical lookup for the currency of a user would be handled as;
|
||||
|
||||
* What is the value for currency for this specific country?
|
||||
* What is the value for currency for this specific continent?
|
||||
* What is the value for currency for everything worldwide?
|
||||
|
||||
Whichever level of the hierarchy responds first will win, meaning that if a user from China will get a value of USD - because we haven’t specified anything for Asia or China on the continent or country levels of the hierarchy so the lookup will fall through to our default set at the “worldwide” level. However, at the continent level of the hierarchy we specified an override of EUR for requests where the continent of the requestor is Europe, so users from Germany, France and Spain would get EUR. This wouldn’t be the case for the UK or Switzerland though because we’ve specifically overridden this at the country level, which is higher in the hierarchy so will win over the continent that the country belongs to.
|
||||
|
||||
So hierarchical lookups are generally about defining a value at the widest possible catchment (eg: worldwide) and moving up the hierarchy overriding that value at the right level.
|
||||
|
||||
What is key here is that rather than implementing three levels of conditional logic in our code, or mapping the lowest common denominator (country) one to one with currencies for every country in the world (remember in some cases we may not be able to identify the lowest common denominator) we have found a way to express the data in a simple way and provide one simple path to looking up the data. Our program still makes one request for the key currency, the logic involved in resolving the correct value is completely transparent.
|
||||
|
||||
In this case, we had a scope (the country and continent of the requestor) and a hierarchy to search against that uses both elements of the scope and then falls back to a common catch all.
|
||||
|
||||
|
||||
Applying this to infrastructure management
|
||||
******************************************
|
||||
|
||||
Khéops is standalone and can be used for any number of applications that can make use of a hierarchical type of data lookup, but it was originally built with configuration management in mind. Infrastructure data lends itself incredibly well to this model of data lookup. Infrastructure data tends to consist of any number of configurable attributes that are used to drive your infrastructure. These could be DNS resolvers, server hostnames, IP addresses, ports, API endpoints…. there is a ton of stuff that we configure on our infrastructures, but most of it is hierarchical. Generally speaking a lot of infrastructure data starts off with a baseline default, for example, what DNS resolver to use. That could be a default value thats used across the whole of your company and you add that as a key value pair to a datastore. Then you find yourself having to override that value for systems configured in your development environment because that environment can’t connect to the production resolvers on your network, you then may deploy your production environment out to a second data centre and you need that location to be different. But we are still dealing with simple hierarchies, so rather than programming conditionals to determine the resolution path of a DNS resolver we could build a simple hierarchy that best represents our infrastructure, such as;
|
||||
|
||||
A hierarchy
|
||||
===============
|
||||
|
||||
When dealing with a hierarchy like this, a data lookup must give us a key to lookup and contain a scope that tells us the hostname, environment and location of the request. Using the same principles as before our lookup will make up to 4 queries;
|
||||
|
||||
What is the DNS resolver for my particular hostname?
|
||||
What is the DNS resolver for machines that are in my environment?
|
||||
What is the DNS resolver for machines that are in my location?
|
||||
What is the DNS resolver for everyone else?
|
||||
|
||||
Again, this is hierarchical search pattern that will stop at the first query to return an answer and return that value. We can set our global parameters and then override them at the areas we care about. We’ve even got a top level hierarchy entry for that one edge case special snowflake server that is different from everything else on the network, but the lookup method is identical and transparent to the application requesting the data.
|
||||
Khéops
|
||||
|
||||
This is a generic overview of hierarchical lookups, but in particular as they relate to Khéops. Khéops has way more features that build on top of this principle, like cascading lookups which don’t stop at the first result and will build a combined data structure (HashMap or Array) from all levels of the hierarchy and return a unified result based on the route taken through the hierarchy, and I’ll cover those in a follow up post. It’s also built to be extremely flexible and pluggable allowing you to source your data from pretty much anywhere and ships with an HTTP API meaning you can integrate Khéops with any tool regardless of the underlying language.
|
||||
|
||||
19
docs/_build/html/_sources/docs/learn/101.md.txt
vendored
19
docs/_build/html/_sources/docs/learn/101.md.txt
vendored
@ -1,19 +0,0 @@
|
||||
# Learn 101
|
||||
|
||||
* 100: KEEPE IT SIMPLEME How works a hierarchical data lookup?
|
||||
- Query a key
|
||||
- Kheops is composed of 2 parts:
|
||||
+ It will first look in different locations the key. It is usually files, but it can also be an url or anything.
|
||||
- Lookup data in a tree of files
|
||||
+ Goes sequentially according the backends list
|
||||
* Backend/Engine list is modular
|
||||
* Engine Plugin: Jerakia/HIera/Ansible/Curl
|
||||
* Backend Plugin: loop/hier
|
||||
+ All result are returned, and then the rules are applied
|
||||
+ Rules match to a key and apply a strategy (essentially determine if and how the different value are merged or replaced). It can also apply filter to the result and modify its content (future).
|
||||
* This is modular
|
||||
* Strategy: last/schema
|
||||
- Last will always take the last found value, whatever what it previously found.
|
||||
- schema: It will take into account the strucutre of the data and try to merge them intelligentelly.
|
||||
+ Then it returns the result
|
||||
|
||||
21
docs/_build/html/_sources/docs/learn/102.md.txt
vendored
21
docs/_build/html/_sources/docs/learn/102.md.txt
vendored
@ -1,21 +0,0 @@
|
||||
# Learn 102
|
||||
|
||||
* 102: Merging data
|
||||
|
||||
- Query on items/dicts
|
||||
+ With merge strategy
|
||||
- Query on arrays/lists
|
||||
+ It appends, replace or what ?
|
||||
- Query other types
|
||||
- Query without key (!)
|
||||
+ Not the actual result, schema are not sub applied
|
||||
* BUG: TO Fix ? Performance issue ?
|
||||
|
||||
* 103: Scoped queries
|
||||
- Add scoped variables
|
||||
- Add variables to trees
|
||||
- Use loops
|
||||
- Use hierarchies, for hostgroups
|
||||
- Use includes for other files (Future)
|
||||
|
||||
|
||||
@ -1,8 +0,0 @@
|
||||
# Learn 105
|
||||
|
||||
* 105: Integrations
|
||||
- Integration in Ansible
|
||||
- Integration as a web server (future)
|
||||
- Integration with Puppet
|
||||
- Integration with Foreman
|
||||
|
||||
@ -1,17 +0,0 @@
|
||||
|
||||
|
||||
Learn
|
||||
===========
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: Contents:
|
||||
|
||||
../../learn/learn101.md
|
||||
100.rst
|
||||
101.md
|
||||
102.md
|
||||
105.md
|
||||
|
||||
|
||||
Learning resources
|
||||
43
docs/_build/html/_sources/index.rst.txt
vendored
43
docs/_build/html/_sources/index.rst.txt
vendored
@ -1,43 +0,0 @@
|
||||
|
||||
|
||||
.. image:: ../logo/kheops_brand.png
|
||||
:target: https://amoffat.github.com/sh
|
||||
:alt: Logo
|
||||
|
||||
|
||||
Khéops documentation
|
||||
=======================================================
|
||||
|
||||
.. contents:: Table of Contents
|
||||
|
||||
.. currentmodule:: kheops
|
||||
|
||||
|
||||
Welcome in Khéops documentation.
|
||||
|
||||
|
||||
Khéops is a tool that can be used to lookup a key value pair, that is to say, given a key it will give back the appropriate value. This is certainly nothing special or new, but the crucial difference here is the way in which the data is looked up. Rather than just querying a flat data source and returning the value for a requested key, when doing a hierarchical lookup we perform multiple queries against a configured hierarchy, transcending down to the next layer in the hierarchy until we find an answer. The end result is that we can define key value pairs on a global basis but then override them under certain conditions based on the hierarchical resolution by placing that key value pair further up the hierarchy for a particular condition.
|
||||
|
||||
|
||||
|
||||
Content
|
||||
==================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 3
|
||||
:caption: Contents:
|
||||
:glob:
|
||||
|
||||
docs/app/index.rst
|
||||
docs/learn/index.rst
|
||||
docs/guide/index.rst
|
||||
Python API <api/modules.rst>
|
||||
|
||||
|
||||
Indices and tables
|
||||
==================
|
||||
* :ref:`genindex`
|
||||
* :ref:`modindex`
|
||||
* :ref:`search`
|
||||
|
||||
|
||||
799
docs/_build/html/_sources/learn/learn101.md.txt
vendored
799
docs/_build/html/_sources/learn/learn101.md.txt
vendored
@ -1,799 +0,0 @@
|
||||
# Khéops 101
|
||||
|
||||
|
||||
```bash
|
||||
cd /home/jez/volumes/data/prj/bell/training/tiger-ansible/ext/kheops
|
||||
echo $PWD
|
||||
export KHEOPS_NAMESPACE=ex1_enc
|
||||
export KHEOPS_CONFIG=examples/kheops.yml
|
||||
rm -rf "examples/$KHEOPS_NAMESPACE"
|
||||
```
|
||||
|
||||
/home/jez/volumes/data/prj/bell/training/tiger-ansible/ext/kheops
|
||||
|
||||
|
||||
## Command line
|
||||
|
||||
Let's check first that kheops works correclty, and start to read the manual.
|
||||
|
||||
|
||||
```bash
|
||||
kheops --help
|
||||
```
|
||||
|
||||
usage: kheops [-h] [-v] [-c CONFIG]
|
||||
{schema,gen_doc,lookup,demo,subcommand2} ...
|
||||
|
||||
Kheops, hierarchical data lookup tool
|
||||
|
||||
options:
|
||||
-h, --help show this help message and exit
|
||||
-v, --verbose Increase verbosity (KHEOPS_VERBOSE) (default: 0)
|
||||
-c CONFIG, --config CONFIG
|
||||
Kheops configuration file (KHEOPS_CONFIG) (default:
|
||||
examples/kheops.yml)
|
||||
|
||||
subcommands:
|
||||
valid subcommands
|
||||
|
||||
{schema,gen_doc,lookup,demo,subcommand2}
|
||||
|
||||
|
||||
So we have a working `kheops` command, and we will focus on the `lookup` command. On it's simplest form, a lookup consists in querying a `key` for a given `scope`. The output of the `key` will change depending the `scope` value. A `key` is in simple word.
|
||||
|
||||
## Defining a hierarchy
|
||||
|
||||
To illustrate how Khéops works, let's start with a simple example, we will try to lookup the `profile` key of the following two (fictive) servers:
|
||||
|
||||
* web.domain.org: which act as a webserver role
|
||||
* mysql.domain.org: which act as mysql role
|
||||
|
||||
But first we need to create our hierarchy. It's as simple as creating directories and put some json or yaml data into different files. Let's create our hierarchy. We will first create the default profile:
|
||||
|
||||
|
||||
From our use case, we will build a lookup tree. We want to be able to organise data depending the 3 criterias:
|
||||
|
||||
* node: name of the node
|
||||
* role: assigned role to the node
|
||||
* environment: it can either be dev or prod
|
||||
|
||||
Let's create our lookup hierarchy:
|
||||
|
||||
default:
|
||||
lookups:
|
||||
- path: default # Simplest form, just a path
|
||||
- path: "roles/{role}" # If list, it's auto expanded like in bash
|
||||
- path: "env_{env}" # If list, it's auto expanded like in bash
|
||||
- path: "nodes/{node}"
|
||||
|
||||
|
||||
So for a given key, Khéops will iterate all over those paths to find the requested `key` , and then it will merge all results. Some paths are variabilized, and those variable comes from the scope. The scope come along the `key`, it's can be any metadata. For complex metadata you may want to store those in a file and load your scope with the `-f <yaml_scope_file>` option:
|
||||
|
||||
```
|
||||
kheops lookup -e <var1=val1> -e <var2=val2> <key>
|
||||
```
|
||||
|
||||
A scope is completely optional while keys are required.
|
||||
|
||||
|
||||
```bash
|
||||
|
||||
```
|
||||
|
||||
## Basic hierarchy
|
||||
|
||||
|
||||
```bash
|
||||
# We create a fresh hierachy
|
||||
mkdir -p examples/$KHEOPS_NAMESPACE
|
||||
|
||||
# We create a profile key, which is a dict
|
||||
cat > examples/$KHEOPS_NAMESPACE/default.yml <<EOF
|
||||
---
|
||||
profile:
|
||||
env: "NO_ENV"
|
||||
product: "NO_PRODUCT"
|
||||
|
||||
EOF
|
||||
|
||||
# Let's inspect our hierarchy
|
||||
tree examples/$KHEOPS_NAMESPACE
|
||||
cat examples/$KHEOPS_NAMESPACE/default.yml
|
||||
```
|
||||
|
||||
[01;34mexamples/ex1_enc[00m
|
||||
└── default.yml
|
||||
|
||||
0 directories, 1 file
|
||||
---
|
||||
profile:
|
||||
env: "NO_ENV"
|
||||
product: "NO_PRODUCT"
|
||||
|
||||
|
||||
|
||||
From this point, we defined our profile with two attribute, `team` and `product`. As it's the default case, we set them both unconfigured.
|
||||
|
||||
You are now already able to query your hierarchy:
|
||||
|
||||
|
||||
```bash
|
||||
kheops lookup profile
|
||||
```
|
||||
|
||||
env: NO_ENV
|
||||
product: NO_PRODUCT
|
||||
|
||||
|
||||
|
||||
Good, no surprise. But, we mentionned we wanted to get the profile of two instances, this how would do that:
|
||||
|
||||
|
||||
```bash
|
||||
kheops lookup -e node=web.infra.net profile
|
||||
```
|
||||
|
||||
env: NO_ENV
|
||||
product: NO_PRODUCT
|
||||
|
||||
|
||||
|
||||
## Roles
|
||||
|
||||
However, same result as before, which is expected as we did not finished to configure our hierarchy. Among our instances, we identified 2 roles: web and mysql. Let's create those two roles:
|
||||
|
||||
|
||||
```bash
|
||||
mkdir -p examples/$KHEOPS_NAMESPACE/roles
|
||||
|
||||
# We create a new web role
|
||||
cat > examples/$KHEOPS_NAMESPACE/roles/web.yml <<EOF
|
||||
---
|
||||
profile:
|
||||
product: "httpd_server"
|
||||
|
||||
web_top_domain: ""
|
||||
web_app: "NO_APP"
|
||||
web_port: 80
|
||||
web_user_list:
|
||||
- sysadmins
|
||||
|
||||
EOF
|
||||
|
||||
# We create a new mysql role
|
||||
cat > examples/$KHEOPS_NAMESPACE/roles/mysql.yml <<EOF
|
||||
---
|
||||
profile:
|
||||
product: "mysql_server"
|
||||
|
||||
mysql_database: "NO_DATABASE"
|
||||
mysql_users:
|
||||
- "sysadmin@10.0.42%"
|
||||
mysql_port: 3306
|
||||
mysql_cluster: False
|
||||
|
||||
EOF
|
||||
|
||||
# Let's inspect our hierarchy
|
||||
tree examples/$KHEOPS_NAMESPACE
|
||||
```
|
||||
|
||||
[01;34mexamples/ex1_enc[00m
|
||||
├── default.yml
|
||||
└── [01;34mroles[00m
|
||||
├── mysql.yml
|
||||
└── web.yml
|
||||
|
||||
1 directory, 3 files
|
||||
|
||||
|
||||
|
||||
```bash
|
||||
tail -n 999 examples/$KHEOPS_NAMESPACE/{*.yml,*/*.yml}
|
||||
```
|
||||
|
||||
==> examples/ex1_enc/default.yml <==
|
||||
---
|
||||
profile:
|
||||
env: "NO_ENV"
|
||||
product: "NO_PRODUCT"
|
||||
|
||||
|
||||
==> examples/ex1_enc/roles/mysql.yml <==
|
||||
---
|
||||
profile:
|
||||
product: "mysql_server"
|
||||
|
||||
mysql_database: "NO_DATABASE"
|
||||
mysql_users:
|
||||
- "sysadmin@10.0.42%"
|
||||
mysql_port: 3306
|
||||
mysql_cluster: False
|
||||
|
||||
|
||||
==> examples/ex1_enc/roles/web.yml <==
|
||||
---
|
||||
profile:
|
||||
product: "httpd_server"
|
||||
|
||||
web_top_domain: ""
|
||||
web_app: "NO_APP"
|
||||
web_port: 80
|
||||
web_user_list:
|
||||
- sysadmins
|
||||
|
||||
|
||||
|
||||
|
||||
```bash
|
||||
kheops lookup -e node=web.infra.net -e role=web profile
|
||||
kheops lookup -e node=mysql.infra.net -e role=mysql profile
|
||||
```
|
||||
|
||||
env: NO_ENV
|
||||
product: httpd_server
|
||||
web_top_domain: ''
|
||||
web_app: NO_APP
|
||||
web_port: 80
|
||||
web_user_list:
|
||||
- sysadmins
|
||||
|
||||
env: NO_ENV
|
||||
product: mysql_server
|
||||
mysql_database: NO_DATABASE
|
||||
mysql_users:
|
||||
- sysadmin@10.0.42%
|
||||
mysql_port: 3306
|
||||
mysql_cluster: false
|
||||
|
||||
|
||||
|
||||
## Per node override
|
||||
|
||||
It's getting better, we can see that the profile key has been merged with the key values, across the different locations.
|
||||
|
||||
However, we will have those placeholders, and we want to have personalized value, depending if it's aweb server, it need an unique domain and some unique parameters. So let's create a `nodes` directory and place some data inside.
|
||||
|
||||
|
||||
|
||||
|
||||
```bash
|
||||
mkdir -p examples/$KHEOPS_NAMESPACE/nodes
|
||||
|
||||
# We create a new web role
|
||||
cat > examples/$KHEOPS_NAMESPACE/nodes/web.infra.net.yml <<EOF
|
||||
---
|
||||
profile:
|
||||
web_app: 'myapp'
|
||||
web_user_list:
|
||||
- domain_org
|
||||
- domain_org_external
|
||||
|
||||
EOF
|
||||
|
||||
# We create a new mysql role
|
||||
cat > examples/$KHEOPS_NAMESPACE/nodes/mysql.infra.net.yml <<EOF
|
||||
---
|
||||
profile:
|
||||
mysql_database: "app_domain_org"
|
||||
mysql_users:
|
||||
- "app_domain_org@10.0.51%"
|
||||
|
||||
EOF
|
||||
|
||||
# Let's inspect our hierarchy
|
||||
tree examples/$KHEOPS_NAMESPACE
|
||||
```
|
||||
|
||||
[01;34mexamples/ex1_enc[00m
|
||||
├── default.yml
|
||||
├── [01;34mnodes[00m
|
||||
│ ├── mysql.infra.net.yml
|
||||
│ └── web.infra.net.yml
|
||||
└── [01;34mroles[00m
|
||||
├── mysql.yml
|
||||
└── web.yml
|
||||
|
||||
2 directories, 5 files
|
||||
|
||||
|
||||
And we try again:
|
||||
|
||||
|
||||
```bash
|
||||
kheops lookup -e node=web.infra.net -e role=web profile
|
||||
kheops lookup -e node=mysql.infra.net -e role=mysql profile
|
||||
```
|
||||
|
||||
env: NO_ENV
|
||||
product: httpd_server
|
||||
web_top_domain: ''
|
||||
web_app: myapp
|
||||
web_port: 80
|
||||
web_user_list:
|
||||
- sysadmins
|
||||
- domain_org
|
||||
- domain_org_external
|
||||
|
||||
env: NO_ENV
|
||||
product: mysql_server
|
||||
mysql_database: app_domain_org
|
||||
mysql_users:
|
||||
- sysadmin@10.0.42%
|
||||
- app_domain_org@10.0.51%
|
||||
mysql_port: 3306
|
||||
mysql_cluster: false
|
||||
|
||||
|
||||
|
||||
## Environment override
|
||||
|
||||
Let's say you want to support environment, it's the same:
|
||||
|
||||
|
||||
```bash
|
||||
|
||||
# We create a new dev environment
|
||||
cat > examples/$KHEOPS_NAMESPACE/env_dev.yml <<EOF
|
||||
---
|
||||
profile:
|
||||
env: dev
|
||||
|
||||
# We change the top domain for dev environment, and reduce the cache
|
||||
web_top_domain: dev.infra.net
|
||||
web_cache: 1m
|
||||
|
||||
# We want a debug users
|
||||
web_user_list:
|
||||
- debug_user
|
||||
mysql_users:
|
||||
- debug@10.0.%
|
||||
|
||||
debug: true
|
||||
|
||||
EOF
|
||||
|
||||
# We create a new mysql role
|
||||
cat > examples/$KHEOPS_NAMESPACE/env_prod.yml <<EOF
|
||||
---
|
||||
profile:
|
||||
env: prod
|
||||
|
||||
# On production environment, we always want to use public faced domain and 12 hour cache.
|
||||
web_top_domain: infra.com
|
||||
web_cache: 12h
|
||||
|
||||
EOF
|
||||
|
||||
# Let's inspect our hierarchy
|
||||
tree examples/$KHEOPS_NAMESPACE
|
||||
```
|
||||
|
||||
[01;34mexamples/ex1_enc[00m
|
||||
├── default.yml
|
||||
├── env_dev.yml
|
||||
├── env_prod.yml
|
||||
├── [01;34mnodes[00m
|
||||
│ ├── mysql.infra.net.yml
|
||||
│ └── web.infra.net.yml
|
||||
└── [01;34mroles[00m
|
||||
├── mysql.yml
|
||||
└── web.yml
|
||||
|
||||
2 directories, 7 files
|
||||
|
||||
|
||||
So it's become quite easy to compare the difference between environment, with a simple variable switch:
|
||||
|
||||
|
||||
```bash
|
||||
kheops lookup -e node=web.infra.net -e role=web -e env=prod profile
|
||||
kheops lookup -e node=web.infra.net -e role=web -e env=dev profile
|
||||
```
|
||||
|
||||
env: prod
|
||||
product: httpd_server
|
||||
web_top_domain: infra.com
|
||||
web_app: myapp
|
||||
web_port: 80
|
||||
web_user_list:
|
||||
- sysadmins
|
||||
- domain_org
|
||||
- domain_org_external
|
||||
web_cache: 12h
|
||||
|
||||
env: dev
|
||||
product: httpd_server
|
||||
web_top_domain: dev.infra.net
|
||||
web_app: myapp
|
||||
web_port: 80
|
||||
web_user_list:
|
||||
- sysadmins
|
||||
- debug_user
|
||||
- domain_org
|
||||
- domain_org_external
|
||||
web_cache: 1m
|
||||
mysql_users:
|
||||
- debug@10.0.%
|
||||
debug: true
|
||||
|
||||
|
||||
|
||||
Same for mysql:
|
||||
|
||||
|
||||
```bash
|
||||
kheops lookup -e node=mysql.infra.net -e role=mysql -e env=prod profile
|
||||
kheops lookup -e node=mysql.infra.net -e role=mysql -e env=dev profile
|
||||
```
|
||||
|
||||
env: prod
|
||||
product: mysql_server
|
||||
mysql_database: app_domain_org
|
||||
mysql_users:
|
||||
- sysadmin@10.0.42%
|
||||
- app_domain_org@10.0.51%
|
||||
mysql_port: 3306
|
||||
mysql_cluster: false
|
||||
web_top_domain: infra.com
|
||||
web_cache: 12h
|
||||
|
||||
env: dev
|
||||
product: mysql_server
|
||||
mysql_database: app_domain_org
|
||||
mysql_users:
|
||||
- sysadmin@10.0.42%
|
||||
- debug@10.0.%
|
||||
- app_domain_org@10.0.51%
|
||||
mysql_port: 3306
|
||||
mysql_cluster: false
|
||||
web_top_domain: dev.infra.net
|
||||
web_cache: 1m
|
||||
web_user_list:
|
||||
- debug_user
|
||||
debug: true
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```bash
|
||||
|
||||
|
||||
```
|
||||
|
||||
You have to keep in mind you can query the key with a different scope, and get different views:
|
||||
|
||||
|
||||
```bash
|
||||
kheops lookup profile
|
||||
|
||||
echo "==> Per environment view"
|
||||
kheops lookup -e env=prod profile
|
||||
kheops lookup -e env=dev profile
|
||||
|
||||
echo "==> Per role and environment view"
|
||||
kheops lookup -e role=mysql -e env=prod profile
|
||||
kheops lookup -e role=web -e env=prod profile
|
||||
|
||||
echo "==> Per node view"
|
||||
kheops lookup -e node=web.infra.net -e role=web -e env=dev profile
|
||||
```
|
||||
|
||||
env: NO_ENV
|
||||
product: NO_PRODUCT
|
||||
|
||||
==> Per environment view
|
||||
env: prod
|
||||
product: NO_PRODUCT
|
||||
web_top_domain: infra.com
|
||||
web_cache: 12h
|
||||
|
||||
env: dev
|
||||
product: NO_PRODUCT
|
||||
web_top_domain: dev.infra.net
|
||||
web_cache: 1m
|
||||
web_user_list:
|
||||
- debug_user
|
||||
mysql_users:
|
||||
- debug@10.0.%
|
||||
debug: true
|
||||
|
||||
==> Per role and environment view
|
||||
env: prod
|
||||
product: mysql_server
|
||||
mysql_database: NO_DATABASE
|
||||
mysql_users:
|
||||
- sysadmin@10.0.42%
|
||||
mysql_port: 3306
|
||||
mysql_cluster: false
|
||||
web_top_domain: infra.com
|
||||
web_cache: 12h
|
||||
|
||||
env: prod
|
||||
product: httpd_server
|
||||
web_top_domain: infra.com
|
||||
web_app: NO_APP
|
||||
web_port: 80
|
||||
web_user_list:
|
||||
- sysadmins
|
||||
web_cache: 12h
|
||||
|
||||
==> Per node view
|
||||
env: dev
|
||||
product: httpd_server
|
||||
web_top_domain: dev.infra.net
|
||||
web_app: myapp
|
||||
web_port: 80
|
||||
web_user_list:
|
||||
- sysadmins
|
||||
- debug_user
|
||||
- domain_org
|
||||
- domain_org_external
|
||||
web_cache: 1m
|
||||
mysql_users:
|
||||
- debug@10.0.%
|
||||
debug: true
|
||||
|
||||
|
||||
|
||||
Even if somwaht clunky, this method can help to troubleshoot wrong data by dichotomy.
|
||||
|
||||
|
||||
```bash
|
||||
|
||||
```
|
||||
|
||||
## Tooling and applications
|
||||
|
||||
|
||||
```bash
|
||||
|
||||
```
|
||||
|
||||
|
||||
```bash
|
||||
|
||||
```
|
||||
|
||||
|
||||
```bash
|
||||
|
||||
```
|
||||
|
||||
|
||||
```bash
|
||||
|
||||
```
|
||||
|
||||
|
||||
```bash
|
||||
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
Sometimes, it can may be hard to navigate across file and hierachy, but GNU Utils are here to help. There is a selection of small tips:
|
||||
|
||||
|
||||
```bash
|
||||
set -x
|
||||
|
||||
: Find where a key has been defined
|
||||
grep -r '^profile:' examples/$KHEOPS_NAMESPACE
|
||||
|
||||
: Find where a key has been defined and 5 first lines
|
||||
grep -r -A 5 'web_user_list:' examples/$KHEOPS_NAMESPACE
|
||||
|
||||
: Search from anything related to database
|
||||
grep -R -C 3 'database' examples/$KHEOPS_NAMESPACE
|
||||
|
||||
set +x
|
||||
```
|
||||
|
||||
+ : Find where a key has been defined
|
||||
+ grep --colour=auto -r '^profile:' examples/ex1_enc
|
||||
[35m[Kexamples/ex1_enc/env_prod.yml[m[K[36m[K:[m[K[01;31m[Kprofile:[m[K
|
||||
[35m[Kexamples/ex1_enc/roles/mysql.yml[m[K[36m[K:[m[K[01;31m[Kprofile:[m[K
|
||||
[35m[Kexamples/ex1_enc/roles/web.yml[m[K[36m[K:[m[K[01;31m[Kprofile:[m[K
|
||||
[35m[Kexamples/ex1_enc/nodes/mysql.infra.net.yml[m[K[36m[K:[m[K[01;31m[Kprofile:[m[K
|
||||
[35m[Kexamples/ex1_enc/nodes/web.infra.net.yml[m[K[36m[K:[m[K[01;31m[Kprofile:[m[K
|
||||
[35m[Kexamples/ex1_enc/default.yml[m[K[36m[K:[m[K[01;31m[Kprofile:[m[K
|
||||
[35m[Kexamples/ex1_enc/env_dev.yml[m[K[36m[K:[m[K[01;31m[Kprofile:[m[K
|
||||
+ : Find where a key has been defined and 5 first lines
|
||||
+ grep --colour=auto -r -A 5 web_user_list: examples/ex1_enc
|
||||
[35m[Kexamples/ex1_enc/roles/web.yml[m[K[36m[K:[m[K [01;31m[Kweb_user_list:[m[K
|
||||
[35m[Kexamples/ex1_enc/roles/web.yml[m[K[36m[K-[m[K - sysadmins
|
||||
[35m[Kexamples/ex1_enc/roles/web.yml[m[K[36m[K-[m[K
|
||||
[36m[K--[m[K
|
||||
[35m[Kexamples/ex1_enc/nodes/web.infra.net.yml[m[K[36m[K:[m[K [01;31m[Kweb_user_list:[m[K
|
||||
[35m[Kexamples/ex1_enc/nodes/web.infra.net.yml[m[K[36m[K-[m[K - domain_org
|
||||
[35m[Kexamples/ex1_enc/nodes/web.infra.net.yml[m[K[36m[K-[m[K - domain_org_external
|
||||
[35m[Kexamples/ex1_enc/nodes/web.infra.net.yml[m[K[36m[K-[m[K
|
||||
[36m[K--[m[K
|
||||
[35m[Kexamples/ex1_enc/env_dev.yml[m[K[36m[K:[m[K [01;31m[Kweb_user_list:[m[K
|
||||
[35m[Kexamples/ex1_enc/env_dev.yml[m[K[36m[K-[m[K - debug_user
|
||||
[35m[Kexamples/ex1_enc/env_dev.yml[m[K[36m[K-[m[K mysql_users:
|
||||
[35m[Kexamples/ex1_enc/env_dev.yml[m[K[36m[K-[m[K - debug@10.0.%
|
||||
[35m[Kexamples/ex1_enc/env_dev.yml[m[K[36m[K-[m[K
|
||||
[35m[Kexamples/ex1_enc/env_dev.yml[m[K[36m[K-[m[K debug: true
|
||||
+ : Search from anything related to database
|
||||
+ grep --colour=auto -R -C 3 database examples/ex1_enc
|
||||
[35m[Kexamples/ex1_enc/roles/mysql.yml[m[K[36m[K-[m[Kprofile:
|
||||
[35m[Kexamples/ex1_enc/roles/mysql.yml[m[K[36m[K-[m[K product: "mysql_server"
|
||||
[35m[Kexamples/ex1_enc/roles/mysql.yml[m[K[36m[K-[m[K
|
||||
[35m[Kexamples/ex1_enc/roles/mysql.yml[m[K[36m[K:[m[K mysql_[01;31m[Kdatabase[m[K: "NO_DATABASE"
|
||||
[35m[Kexamples/ex1_enc/roles/mysql.yml[m[K[36m[K-[m[K mysql_users:
|
||||
[35m[Kexamples/ex1_enc/roles/mysql.yml[m[K[36m[K-[m[K - "sysadmin@10.0.42%"
|
||||
[35m[Kexamples/ex1_enc/roles/mysql.yml[m[K[36m[K-[m[K mysql_port: 3306
|
||||
[36m[K--[m[K
|
||||
[35m[Kexamples/ex1_enc/nodes/mysql.infra.net.yml[m[K[36m[K-[m[K---
|
||||
[35m[Kexamples/ex1_enc/nodes/mysql.infra.net.yml[m[K[36m[K-[m[Kprofile:
|
||||
[35m[Kexamples/ex1_enc/nodes/mysql.infra.net.yml[m[K[36m[K:[m[K mysql_[01;31m[Kdatabase[m[K: "app_domain_org"
|
||||
[35m[Kexamples/ex1_enc/nodes/mysql.infra.net.yml[m[K[36m[K-[m[K mysql_users:
|
||||
[35m[Kexamples/ex1_enc/nodes/mysql.infra.net.yml[m[K[36m[K-[m[K - "app_domain_org@10.0.51%"
|
||||
[35m[Kexamples/ex1_enc/nodes/mysql.infra.net.yml[m[K[36m[K-[m[K
|
||||
+ set +x
|
||||
|
||||
|
||||
|
||||
```bash
|
||||
|
||||
```
|
||||
|
||||
The tail/head command is quite usefull to look at multiple files at the same time, it add a nice header for each file:
|
||||
|
||||
|
||||
```bash
|
||||
head -n 999 examples/ex1_enc/roles/*
|
||||
```
|
||||
|
||||
==> examples/ex1_enc/roles/mysql.yml <==
|
||||
---
|
||||
profile:
|
||||
product: "mysql_server"
|
||||
|
||||
mysql_database: "NO_DATABASE"
|
||||
mysql_users:
|
||||
- "sysadmin@10.0.42%"
|
||||
mysql_port: 3306
|
||||
mysql_cluster: False
|
||||
|
||||
|
||||
==> examples/ex1_enc/roles/web.yml <==
|
||||
---
|
||||
profile:
|
||||
product: "httpd_server"
|
||||
|
||||
web_top_domain: ""
|
||||
web_app: "NO_APP"
|
||||
web_port: 80
|
||||
web_user_list:
|
||||
- sysadmins
|
||||
|
||||
|
||||
|
||||
You can also have a view of all files with this command:
|
||||
```
|
||||
find . -type f| xargs head -n 999 | less
|
||||
```
|
||||
|
||||
From there, you will be able to have a nice overview of your data.
|
||||
|
||||
You can even diff your change with this command. There is this simple trick to compare the data difference between 2 lookups:
|
||||
|
||||
|
||||
```bash
|
||||
diff -u \
|
||||
<(kheops lookup -e node=web.infra.net -e role=web -e env=prod profile) \
|
||||
<(kheops lookup -e node=web.infra.net -e role=web -e env=dev profile)
|
||||
```
|
||||
|
||||
--- /dev/fd/63 2022-02-01 20:10:53.094525316 -0500
|
||||
+++ /dev/fd/62 2022-02-01 20:10:53.094525316 -0500
|
||||
@@ -1,11 +1,15 @@
|
||||
-env: prod
|
||||
+env: dev
|
||||
product: httpd_server
|
||||
-web_top_domain: infra.com
|
||||
+web_top_domain: dev.infra.net
|
||||
web_app: myapp
|
||||
web_port: 80
|
||||
web_user_list:
|
||||
- sysadmins
|
||||
+- debug_user
|
||||
- domain_org
|
||||
- domain_org_external
|
||||
-web_cache: 12h
|
||||
+web_cache: 1m
|
||||
+mysql_users:
|
||||
+- debug@10.0.%
|
||||
+debug: true
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```bash
|
||||
|
||||
```
|
||||
|
||||
You can also ask Kheops to explain you how he built the result, you can use the `-x` flag:
|
||||
|
||||
|
||||
```bash
|
||||
kheops lookup -e role=web profile -x
|
||||
```
|
||||
|
||||
INFO: Explain lookups:
|
||||
+------------------------+------------------------------+
|
||||
| Config | Runtime |
|
||||
+------------------------+------------------------------+
|
||||
| | |
|
||||
| Config:{ | Runtime:{ |
|
||||
| "path": "default", | "scope": { |
|
||||
| "backend": "file", | "role": "web" |
|
||||
| "continue": true | }, |
|
||||
| } | "key": "profile", |
|
||||
| | "conf": { |
|
||||
| | "index": 0 |
|
||||
| | }, |
|
||||
| | "raw_path": "default" |
|
||||
| | } |
|
||||
| | |
|
||||
| Config:{ | Runtime:{ |
|
||||
| "path": "roles/web", | "scope": { |
|
||||
| "backend": "file", | "role": "web" |
|
||||
| "continue": true | }, |
|
||||
| } | "key": "profile", |
|
||||
| | "conf": { |
|
||||
| | "index": 1 |
|
||||
| | }, |
|
||||
| | "raw_path": "roles/{role}" |
|
||||
| | } |
|
||||
+------------------------+------------------------------+
|
||||
INFO: Explain candidates:
|
||||
+----------------------------------------------------------------------------------+-------------------------------+------------------------------+
|
||||
| Status | Runtime | Data |
|
||||
+----------------------------------------------------------------------------------+-------------------------------+------------------------------+
|
||||
| | | |
|
||||
| Status:{ | Runtime:{ | Data:{ |
|
||||
| "path": "/home/jez/volumes/data/prj/bell/training/tiger-ansible/ext/kheops ... | "scope": { | "env": "NO_ENV", |
|
||||
| "status": "found", | "role": "web" | "product": "NO_PRODUCT" |
|
||||
| "rel_path": "examples/ex1_enc/default.yml" | }, | } |
|
||||
| } | "key": "profile", | |
|
||||
| | "conf": { | |
|
||||
| | "index": 0 | |
|
||||
| | }, | |
|
||||
| | "raw_path": "default", | |
|
||||
| | "backend_index": 0 | |
|
||||
| | } | |
|
||||
| | | |
|
||||
| Status:{ | Runtime:{ | Data:{ |
|
||||
| "path": "/home/jez/volumes/data/prj/bell/training/tiger-ansible/ext/kheops ... | "scope": { | "product": "httpd_server", |
|
||||
| "status": "found", | "role": "web" | "web_top_domain": "", |
|
||||
| "rel_path": "examples/ex1_enc/roles/web.yml" | }, | "web_app": "NO_APP", |
|
||||
| } | "key": "profile", | "web_port": 80, |
|
||||
| | "conf": { | "web_user_list": [ |
|
||||
| | "index": 1 | "sysadmins" |
|
||||
| | }, | ] |
|
||||
| | "raw_path": "roles/{role}", | } |
|
||||
| | "backend_index": 1 | |
|
||||
| | } | |
|
||||
+----------------------------------------------------------------------------------+-------------------------------+------------------------------+
|
||||
env: NO_ENV
|
||||
product: httpd_server
|
||||
web_top_domain: ''
|
||||
web_app: NO_APP
|
||||
web_port: 80
|
||||
web_user_list:
|
||||
- sysadmins
|
||||
|
||||
|
||||
|
||||
|
||||
```bash
|
||||
|
||||
```
|
||||
701
docs/_build/html/_static/alabaster.css
vendored
701
docs/_build/html/_static/alabaster.css
vendored
@ -1,701 +0,0 @@
|
||||
@import url("basic.css");
|
||||
|
||||
/* -- page layout ----------------------------------------------------------- */
|
||||
|
||||
body {
|
||||
font-family: Georgia, serif;
|
||||
font-size: 17px;
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
||||
div.document {
|
||||
width: 940px;
|
||||
margin: 30px auto 0 auto;
|
||||
}
|
||||
|
||||
div.documentwrapper {
|
||||
float: left;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.bodywrapper {
|
||||
margin: 0 0 0 220px;
|
||||
}
|
||||
|
||||
div.sphinxsidebar {
|
||||
width: 220px;
|
||||
font-size: 14px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: 1px solid #B1B4B6;
|
||||
}
|
||||
|
||||
div.body {
|
||||
background-color: #fff;
|
||||
color: #3E4349;
|
||||
padding: 0 30px 0 30px;
|
||||
}
|
||||
|
||||
div.body > .section {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
div.footer {
|
||||
width: 940px;
|
||||
margin: 20px auto 30px auto;
|
||||
font-size: 14px;
|
||||
color: #888;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.footer a {
|
||||
color: #888;
|
||||
}
|
||||
|
||||
p.caption {
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
|
||||
div.relations {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
div.sphinxsidebar a {
|
||||
color: #444;
|
||||
text-decoration: none;
|
||||
border-bottom: 1px dotted #999;
|
||||
}
|
||||
|
||||
div.sphinxsidebar a:hover {
|
||||
border-bottom: 1px solid #999;
|
||||
}
|
||||
|
||||
div.sphinxsidebarwrapper {
|
||||
padding: 18px 10px;
|
||||
}
|
||||
|
||||
div.sphinxsidebarwrapper p.logo {
|
||||
padding: 0;
|
||||
margin: -10px 0 0 0px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.sphinxsidebarwrapper h1.logo {
|
||||
margin-top: -10px;
|
||||
text-align: center;
|
||||
margin-bottom: 5px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
div.sphinxsidebarwrapper h1.logo-name {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
div.sphinxsidebarwrapper p.blurb {
|
||||
margin-top: 0;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
div.sphinxsidebar h3,
|
||||
div.sphinxsidebar h4 {
|
||||
font-family: Georgia, serif;
|
||||
color: #444;
|
||||
font-size: 24px;
|
||||
font-weight: normal;
|
||||
margin: 0 0 5px 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar h4 {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
div.sphinxsidebar h3 a {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
div.sphinxsidebar p.logo a,
|
||||
div.sphinxsidebar h3 a,
|
||||
div.sphinxsidebar p.logo a:hover,
|
||||
div.sphinxsidebar h3 a:hover {
|
||||
border: none;
|
||||
}
|
||||
|
||||
div.sphinxsidebar p {
|
||||
color: #555;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul {
|
||||
margin: 10px 0;
|
||||
padding: 0;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul li.toctree-l1 > a {
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul li.toctree-l2 > a {
|
||||
font-size: 110%;
|
||||
}
|
||||
|
||||
div.sphinxsidebar input {
|
||||
border: 1px solid #CCC;
|
||||
font-family: Georgia, serif;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
div.sphinxsidebar hr {
|
||||
border: none;
|
||||
height: 1px;
|
||||
color: #AAA;
|
||||
background: #AAA;
|
||||
|
||||
text-align: left;
|
||||
margin-left: 0;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
div.sphinxsidebar .badge {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
div.sphinxsidebar .badge:hover {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
/* To address an issue with donation coming after search */
|
||||
div.sphinxsidebar h3.donation {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
/* -- body styles ----------------------------------------------------------- */
|
||||
|
||||
a {
|
||||
color: #004B6B;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #6D4100;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
div.body h1,
|
||||
div.body h2,
|
||||
div.body h3,
|
||||
div.body h4,
|
||||
div.body h5,
|
||||
div.body h6 {
|
||||
font-family: Georgia, serif;
|
||||
font-weight: normal;
|
||||
margin: 30px 0px 10px 0px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; }
|
||||
div.body h2 { font-size: 180%; }
|
||||
div.body h3 { font-size: 150%; }
|
||||
div.body h4 { font-size: 130%; }
|
||||
div.body h5 { font-size: 100%; }
|
||||
div.body h6 { font-size: 100%; }
|
||||
|
||||
a.headerlink {
|
||||
color: #DDD;
|
||||
padding: 0 4px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a.headerlink:hover {
|
||||
color: #444;
|
||||
background: #EAEAEA;
|
||||
}
|
||||
|
||||
div.body p, div.body dd, div.body li {
|
||||
line-height: 1.4em;
|
||||
}
|
||||
|
||||
div.admonition {
|
||||
margin: 20px 0px;
|
||||
padding: 10px 30px;
|
||||
background-color: #EEE;
|
||||
border: 1px solid #CCC;
|
||||
}
|
||||
|
||||
div.admonition tt.xref, div.admonition code.xref, div.admonition a tt {
|
||||
background-color: #FBFBFB;
|
||||
border-bottom: 1px solid #fafafa;
|
||||
}
|
||||
|
||||
div.admonition p.admonition-title {
|
||||
font-family: Georgia, serif;
|
||||
font-weight: normal;
|
||||
font-size: 24px;
|
||||
margin: 0 0 10px 0;
|
||||
padding: 0;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
div.admonition p.last {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
div.highlight {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
dt:target, .highlight {
|
||||
background: #FAF3E8;
|
||||
}
|
||||
|
||||
div.warning {
|
||||
background-color: #FCC;
|
||||
border: 1px solid #FAA;
|
||||
}
|
||||
|
||||
div.danger {
|
||||
background-color: #FCC;
|
||||
border: 1px solid #FAA;
|
||||
-moz-box-shadow: 2px 2px 4px #D52C2C;
|
||||
-webkit-box-shadow: 2px 2px 4px #D52C2C;
|
||||
box-shadow: 2px 2px 4px #D52C2C;
|
||||
}
|
||||
|
||||
div.error {
|
||||
background-color: #FCC;
|
||||
border: 1px solid #FAA;
|
||||
-moz-box-shadow: 2px 2px 4px #D52C2C;
|
||||
-webkit-box-shadow: 2px 2px 4px #D52C2C;
|
||||
box-shadow: 2px 2px 4px #D52C2C;
|
||||
}
|
||||
|
||||
div.caution {
|
||||
background-color: #FCC;
|
||||
border: 1px solid #FAA;
|
||||
}
|
||||
|
||||
div.attention {
|
||||
background-color: #FCC;
|
||||
border: 1px solid #FAA;
|
||||
}
|
||||
|
||||
div.important {
|
||||
background-color: #EEE;
|
||||
border: 1px solid #CCC;
|
||||
}
|
||||
|
||||
div.note {
|
||||
background-color: #EEE;
|
||||
border: 1px solid #CCC;
|
||||
}
|
||||
|
||||
div.tip {
|
||||
background-color: #EEE;
|
||||
border: 1px solid #CCC;
|
||||
}
|
||||
|
||||
div.hint {
|
||||
background-color: #EEE;
|
||||
border: 1px solid #CCC;
|
||||
}
|
||||
|
||||
div.seealso {
|
||||
background-color: #EEE;
|
||||
border: 1px solid #CCC;
|
||||
}
|
||||
|
||||
div.topic {
|
||||
background-color: #EEE;
|
||||
}
|
||||
|
||||
p.admonition-title {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
p.admonition-title:after {
|
||||
content: ":";
|
||||
}
|
||||
|
||||
pre, tt, code {
|
||||
font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
.hll {
|
||||
background-color: #FFC;
|
||||
margin: 0 -12px;
|
||||
padding: 0 12px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
img.screenshot {
|
||||
}
|
||||
|
||||
tt.descname, tt.descclassname, code.descname, code.descclassname {
|
||||
font-size: 0.95em;
|
||||
}
|
||||
|
||||
tt.descname, code.descname {
|
||||
padding-right: 0.08em;
|
||||
}
|
||||
|
||||
img.screenshot {
|
||||
-moz-box-shadow: 2px 2px 4px #EEE;
|
||||
-webkit-box-shadow: 2px 2px 4px #EEE;
|
||||
box-shadow: 2px 2px 4px #EEE;
|
||||
}
|
||||
|
||||
table.docutils {
|
||||
border: 1px solid #888;
|
||||
-moz-box-shadow: 2px 2px 4px #EEE;
|
||||
-webkit-box-shadow: 2px 2px 4px #EEE;
|
||||
box-shadow: 2px 2px 4px #EEE;
|
||||
}
|
||||
|
||||
table.docutils td, table.docutils th {
|
||||
border: 1px solid #888;
|
||||
padding: 0.25em 0.7em;
|
||||
}
|
||||
|
||||
table.field-list, table.footnote {
|
||||
border: none;
|
||||
-moz-box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
table.footnote {
|
||||
margin: 15px 0;
|
||||
width: 100%;
|
||||
border: 1px solid #EEE;
|
||||
background: #FDFDFD;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
table.footnote + table.footnote {
|
||||
margin-top: -15px;
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
table.field-list th {
|
||||
padding: 0 0.8em 0 0;
|
||||
}
|
||||
|
||||
table.field-list td {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
table.field-list p {
|
||||
margin-bottom: 0.8em;
|
||||
}
|
||||
|
||||
/* Cloned from
|
||||
* https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68
|
||||
*/
|
||||
.field-name {
|
||||
-moz-hyphens: manual;
|
||||
-ms-hyphens: manual;
|
||||
-webkit-hyphens: manual;
|
||||
hyphens: manual;
|
||||
}
|
||||
|
||||
table.footnote td.label {
|
||||
width: .1px;
|
||||
padding: 0.3em 0 0.3em 0.5em;
|
||||
}
|
||||
|
||||
table.footnote td {
|
||||
padding: 0.3em 0.5em;
|
||||
}
|
||||
|
||||
dl {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
dl dd {
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 0 0 0 30px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
/* Matches the 30px from the narrow-screen "li > ul" selector below */
|
||||
margin: 10px 0 10px 30px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
pre {
|
||||
background: #EEE;
|
||||
padding: 7px 30px;
|
||||
margin: 15px 0px;
|
||||
line-height: 1.3em;
|
||||
}
|
||||
|
||||
div.viewcode-block:target {
|
||||
background: #ffd;
|
||||
}
|
||||
|
||||
dl pre, blockquote pre, li pre {
|
||||
margin-left: 0;
|
||||
padding-left: 30px;
|
||||
}
|
||||
|
||||
tt, code {
|
||||
background-color: #ecf0f3;
|
||||
color: #222;
|
||||
/* padding: 1px 2px; */
|
||||
}
|
||||
|
||||
tt.xref, code.xref, a tt {
|
||||
background-color: #FBFBFB;
|
||||
border-bottom: 1px solid #fff;
|
||||
}
|
||||
|
||||
a.reference {
|
||||
text-decoration: none;
|
||||
border-bottom: 1px dotted #004B6B;
|
||||
}
|
||||
|
||||
/* Don't put an underline on images */
|
||||
a.image-reference, a.image-reference:hover {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
a.reference:hover {
|
||||
border-bottom: 1px solid #6D4100;
|
||||
}
|
||||
|
||||
a.footnote-reference {
|
||||
text-decoration: none;
|
||||
font-size: 0.7em;
|
||||
vertical-align: top;
|
||||
border-bottom: 1px dotted #004B6B;
|
||||
}
|
||||
|
||||
a.footnote-reference:hover {
|
||||
border-bottom: 1px solid #6D4100;
|
||||
}
|
||||
|
||||
a:hover tt, a:hover code {
|
||||
background: #EEE;
|
||||
}
|
||||
|
||||
|
||||
@media screen and (max-width: 870px) {
|
||||
|
||||
div.sphinxsidebar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.document {
|
||||
width: 100%;
|
||||
|
||||
}
|
||||
|
||||
div.documentwrapper {
|
||||
margin-left: 0;
|
||||
margin-top: 0;
|
||||
margin-right: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
div.bodywrapper {
|
||||
margin-top: 0;
|
||||
margin-right: 0;
|
||||
margin-bottom: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
li > ul {
|
||||
/* Matches the 30px from the "ul, ol" selector above */
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
.document {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.footer {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.bodywrapper {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.footer {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.github {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@media screen and (max-width: 875px) {
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 20px 30px;
|
||||
}
|
||||
|
||||
div.documentwrapper {
|
||||
float: none;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
div.sphinxsidebar {
|
||||
display: block;
|
||||
float: none;
|
||||
width: 102.5%;
|
||||
margin: 50px -30px -20px -30px;
|
||||
padding: 10px 20px;
|
||||
background: #333;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p,
|
||||
div.sphinxsidebar h3 a {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
div.sphinxsidebar a {
|
||||
color: #AAA;
|
||||
}
|
||||
|
||||
div.sphinxsidebar p.logo {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.document {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
div.footer {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.bodywrapper {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
div.body {
|
||||
min-height: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.rtd_doc_footer {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.document {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.footer {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.footer {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.github {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* misc. */
|
||||
|
||||
.revsys-inline {
|
||||
display: none!important;
|
||||
}
|
||||
|
||||
/* Make nested-list/multi-paragraph items look better in Releases changelog
|
||||
* pages. Without this, docutils' magical list fuckery causes inconsistent
|
||||
* formatting between different release sub-lists.
|
||||
*/
|
||||
div#changelog > div.section > ul > li > p:only-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
/* Hide fugly table cell borders in ..bibliography:: directive output */
|
||||
table.docutils.citation, table.docutils.citation td, table.docutils.citation th {
|
||||
border: none;
|
||||
/* Below needed in some edge cases; if not applied, bottom shadows appear */
|
||||
-moz-box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
|
||||
/* relbar */
|
||||
|
||||
.related {
|
||||
line-height: 30px;
|
||||
width: 100%;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
.related.top {
|
||||
border-bottom: 1px solid #EEE;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.related.bottom {
|
||||
border-top: 1px solid #EEE;
|
||||
}
|
||||
|
||||
.related ul {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.related li {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
nav#rellinks {
|
||||
float: right;
|
||||
}
|
||||
|
||||
nav#rellinks li+li:before {
|
||||
content: "|";
|
||||
}
|
||||
|
||||
nav#breadcrumbs li+li:before {
|
||||
content: "\00BB";
|
||||
}
|
||||
|
||||
/* Hide certain items when printing */
|
||||
@media print {
|
||||
div.related {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
906
docs/_build/html/_static/basic.css
vendored
906
docs/_build/html/_static/basic.css
vendored
@ -1,906 +0,0 @@
|
||||
/*
|
||||
* basic.css
|
||||
* ~~~~~~~~~
|
||||
*
|
||||
* Sphinx stylesheet -- basic theme.
|
||||
*
|
||||
* :copyright: Copyright 2007-2022 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: 450px;
|
||||
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.brackets:before,
|
||||
span.brackets > a:before{
|
||||
content: "[";
|
||||
}
|
||||
|
||||
a.brackets:after,
|
||||
span.brackets > a:after {
|
||||
content: "]";
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
div.admonition, div.topic, blockquote {
|
||||
clear: left;
|
||||
}
|
||||
|
||||
/* -- topics ---------------------------------------------------------------- */
|
||||
|
||||
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,
|
||||
div.topic > :last-child,
|
||||
div.admonition > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
div.sidebar::after,
|
||||
aside.sidebar::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;
|
||||
}
|
||||
|
||||
table.footnote td, table.footnote th {
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
dl.footnote > dt,
|
||||
dl.citation > dt {
|
||||
float: left;
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
|
||||
dl.footnote > dd,
|
||||
dl.citation > dd {
|
||||
margin-bottom: 0em;
|
||||
}
|
||||
|
||||
dl.footnote > dd:after,
|
||||
dl.citation > dd: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 > dt:after {
|
||||
content: ":";
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
/* -- 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;
|
||||
}
|
||||
}
|
||||
1
docs/_build/html/_static/custom.css
vendored
1
docs/_build/html/_static/custom.css
vendored
@ -1 +0,0 @@
|
||||
/* This file intentionally left blank. */
|
||||
326
docs/_build/html/_static/doctools.js
vendored
326
docs/_build/html/_static/doctools.js
vendored
@ -1,326 +0,0 @@
|
||||
/*
|
||||
* doctools.js
|
||||
* ~~~~~~~~~~~
|
||||
*
|
||||
* Sphinx JavaScript utilities for all documentation.
|
||||
*
|
||||
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
|
||||
* :license: BSD, see LICENSE for details.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* select a different prefix for underscore
|
||||
*/
|
||||
$u = _.noConflict();
|
||||
|
||||
/**
|
||||
* make the code below compatible with browsers without
|
||||
* an installed firebug like debugger
|
||||
if (!window.console || !console.firebug) {
|
||||
var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
|
||||
"dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
|
||||
"profile", "profileEnd"];
|
||||
window.console = {};
|
||||
for (var i = 0; i < names.length; ++i)
|
||||
window.console[names[i]] = function() {};
|
||||
}
|
||||
*/
|
||||
|
||||
/**
|
||||
* small helper function to urldecode strings
|
||||
*
|
||||
* 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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Small JavaScript module for the documentation.
|
||||
*/
|
||||
var Documentation = {
|
||||
|
||||
init : function() {
|
||||
this.fixFirefoxAnchorBug();
|
||||
this.highlightSearchWords();
|
||||
this.initIndexTable();
|
||||
if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) {
|
||||
this.initOnKeyListeners();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* i18n support
|
||||
*/
|
||||
TRANSLATIONS : {},
|
||||
PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; },
|
||||
LOCALE : 'unknown',
|
||||
|
||||
// gettext and ngettext don't access this so that the functions
|
||||
// can safely bound to a different name (_ = Documentation.gettext)
|
||||
gettext : function(string) {
|
||||
var translated = Documentation.TRANSLATIONS[string];
|
||||
if (typeof translated === 'undefined')
|
||||
return string;
|
||||
return (typeof translated === 'string') ? translated : translated[0];
|
||||
},
|
||||
|
||||
ngettext : function(singular, plural, n) {
|
||||
var translated = Documentation.TRANSLATIONS[singular];
|
||||
if (typeof translated === 'undefined')
|
||||
return (n == 1) ? singular : plural;
|
||||
return translated[Documentation.PLURALEXPR(n)];
|
||||
},
|
||||
|
||||
addTranslations : function(catalog) {
|
||||
for (var key in catalog.messages)
|
||||
this.TRANSLATIONS[key] = catalog.messages[key];
|
||||
this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
|
||||
this.LOCALE = catalog.locale;
|
||||
},
|
||||
|
||||
/**
|
||||
* add context elements like header anchor links
|
||||
*/
|
||||
addContextElements : function() {
|
||||
$('div[id] > :header:first').each(function() {
|
||||
$('<a class="headerlink">\u00B6</a>').
|
||||
attr('href', '#' + this.id).
|
||||
attr('title', _('Permalink to this headline')).
|
||||
appendTo(this);
|
||||
});
|
||||
$('dt[id]').each(function() {
|
||||
$('<a class="headerlink">\u00B6</a>').
|
||||
attr('href', '#' + this.id).
|
||||
attr('title', _('Permalink to this definition')).
|
||||
appendTo(this);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* workaround a firefox stupidity
|
||||
* see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075
|
||||
*/
|
||||
fixFirefoxAnchorBug : function() {
|
||||
if (document.location.hash && $.browser.mozilla)
|
||||
window.setTimeout(function() {
|
||||
document.location.href += '';
|
||||
}, 10);
|
||||
},
|
||||
|
||||
/**
|
||||
* highlight the search words provided in the url in the text
|
||||
*/
|
||||
highlightSearchWords : function() {
|
||||
var params = $.getQueryParameters();
|
||||
var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
|
||||
if (terms.length) {
|
||||
var body = $('div.body');
|
||||
if (!body.length) {
|
||||
body = $('body');
|
||||
}
|
||||
window.setTimeout(function() {
|
||||
$.each(terms, function() {
|
||||
body.highlightText(this.toLowerCase(), 'highlighted');
|
||||
});
|
||||
}, 10);
|
||||
$('<p class="highlight-link"><a href="javascript:Documentation.' +
|
||||
'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>')
|
||||
.appendTo($('#searchbox'));
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* init the domain index toggle buttons
|
||||
*/
|
||||
initIndexTable : function() {
|
||||
var togglers = $('img.toggler').click(function() {
|
||||
var src = $(this).attr('src');
|
||||
var idnum = $(this).attr('id').substr(7);
|
||||
$('tr.cg-' + idnum).toggle();
|
||||
if (src.substr(-9) === 'minus.png')
|
||||
$(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
|
||||
else
|
||||
$(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
|
||||
}).css('display', '');
|
||||
if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) {
|
||||
togglers.click();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* helper function to hide the search marks again
|
||||
*/
|
||||
hideSearchWords : function() {
|
||||
$('#searchbox .highlight-link').fadeOut(300);
|
||||
$('span.highlighted').removeClass('highlighted');
|
||||
var url = new URL(window.location);
|
||||
url.searchParams.delete('highlight');
|
||||
window.history.replaceState({}, '', url);
|
||||
},
|
||||
|
||||
/**
|
||||
* make the url absolute
|
||||
*/
|
||||
makeURL : function(relativeURL) {
|
||||
return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
|
||||
},
|
||||
|
||||
/**
|
||||
* get the current relative url
|
||||
*/
|
||||
getCurrentURL : function() {
|
||||
var path = document.location.pathname;
|
||||
var parts = path.split(/\//);
|
||||
$.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
|
||||
if (this === '..')
|
||||
parts.pop();
|
||||
});
|
||||
var url = parts.join('/');
|
||||
return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
|
||||
},
|
||||
|
||||
initOnKeyListeners: function() {
|
||||
$(document).keydown(function(event) {
|
||||
var activeElementType = document.activeElement.tagName;
|
||||
// don't navigate when in search box, textarea, dropdown or button
|
||||
if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT'
|
||||
&& activeElementType !== 'BUTTON' && !event.altKey && !event.ctrlKey && !event.metaKey
|
||||
&& !event.shiftKey) {
|
||||
switch (event.keyCode) {
|
||||
case 37: // left
|
||||
var prevHref = $('link[rel="prev"]').prop('href');
|
||||
if (prevHref) {
|
||||
window.location.href = prevHref;
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case 39: // right
|
||||
var nextHref = $('link[rel="next"]').prop('href');
|
||||
if (nextHref) {
|
||||
window.location.href = nextHref;
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// quick alias for translations
|
||||
_ = Documentation.gettext;
|
||||
|
||||
$(document).ready(function() {
|
||||
Documentation.init();
|
||||
});
|
||||
@ -1,12 +0,0 @@
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
|
||||
VERSION: '0.1',
|
||||
LANGUAGE: 'None',
|
||||
COLLAPSE_INDEX: false,
|
||||
BUILDER: 'html',
|
||||
FILE_SUFFIX: '.html',
|
||||
LINK_SUFFIX: '.html',
|
||||
HAS_SOURCE: true,
|
||||
SOURCELINK_SUFFIX: '.txt',
|
||||
NAVIGATION_WITH_KEYS: false
|
||||
};
|
||||
BIN
docs/_build/html/_static/file.png
vendored
BIN
docs/_build/html/_static/file.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 286 B |
10872
docs/_build/html/_static/jquery-3.5.1.js
vendored
10872
docs/_build/html/_static/jquery-3.5.1.js
vendored
File diff suppressed because it is too large
Load Diff
2
docs/_build/html/_static/jquery.js
vendored
2
docs/_build/html/_static/jquery.js
vendored
File diff suppressed because one or more lines are too long
297
docs/_build/html/_static/language_data.js
vendored
297
docs/_build/html/_static/language_data.js
vendored
@ -1,297 +0,0 @@
|
||||
/*
|
||||
* language_data.js
|
||||
* ~~~~~~~~~~~~~~~~
|
||||
*
|
||||
* This script contains the language-specific data used by searchtools.js,
|
||||
* namely the list of stopwords, stemmer, scorer and splitter.
|
||||
*
|
||||
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
|
||||
* :license: BSD, see LICENSE for details.
|
||||
*
|
||||
*/
|
||||
|
||||
var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"];
|
||||
|
||||
|
||||
/* Non-minified version is copied as a separate JS file, is available */
|
||||
|
||||
/**
|
||||
* Porter Stemmer
|
||||
*/
|
||||
var Stemmer = function() {
|
||||
|
||||
var step2list = {
|
||||
ational: 'ate',
|
||||
tional: 'tion',
|
||||
enci: 'ence',
|
||||
anci: 'ance',
|
||||
izer: 'ize',
|
||||
bli: 'ble',
|
||||
alli: 'al',
|
||||
entli: 'ent',
|
||||
eli: 'e',
|
||||
ousli: 'ous',
|
||||
ization: 'ize',
|
||||
ation: 'ate',
|
||||
ator: 'ate',
|
||||
alism: 'al',
|
||||
iveness: 'ive',
|
||||
fulness: 'ful',
|
||||
ousness: 'ous',
|
||||
aliti: 'al',
|
||||
iviti: 'ive',
|
||||
biliti: 'ble',
|
||||
logi: 'log'
|
||||
};
|
||||
|
||||
var step3list = {
|
||||
icate: 'ic',
|
||||
ative: '',
|
||||
alize: 'al',
|
||||
iciti: 'ic',
|
||||
ical: 'ic',
|
||||
ful: '',
|
||||
ness: ''
|
||||
};
|
||||
|
||||
var c = "[^aeiou]"; // consonant
|
||||
var v = "[aeiouy]"; // vowel
|
||||
var C = c + "[^aeiouy]*"; // consonant sequence
|
||||
var V = v + "[aeiou]*"; // vowel sequence
|
||||
|
||||
var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
var splitChars = (function() {
|
||||
var result = {};
|
||||
var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648,
|
||||
1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702,
|
||||
2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971,
|
||||
2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345,
|
||||
3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761,
|
||||
3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823,
|
||||
4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125,
|
||||
8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695,
|
||||
11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587,
|
||||
43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141];
|
||||
var i, j, start, end;
|
||||
for (i = 0; i < singles.length; i++) {
|
||||
result[singles[i]] = true;
|
||||
}
|
||||
var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709],
|
||||
[722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161],
|
||||
[1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568],
|
||||
[1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807],
|
||||
[1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047],
|
||||
[2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383],
|
||||
[2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450],
|
||||
[2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547],
|
||||
[2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673],
|
||||
[2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820],
|
||||
[2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946],
|
||||
[2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023],
|
||||
[3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173],
|
||||
[3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332],
|
||||
[3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481],
|
||||
[3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718],
|
||||
[3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791],
|
||||
[3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095],
|
||||
[4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205],
|
||||
[4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687],
|
||||
[4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968],
|
||||
[4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869],
|
||||
[5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102],
|
||||
[6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271],
|
||||
[6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592],
|
||||
[6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822],
|
||||
[6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167],
|
||||
[7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959],
|
||||
[7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143],
|
||||
[8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318],
|
||||
[8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483],
|
||||
[8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101],
|
||||
[10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567],
|
||||
[11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292],
|
||||
[12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444],
|
||||
[12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783],
|
||||
[12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311],
|
||||
[19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511],
|
||||
[42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774],
|
||||
[42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071],
|
||||
[43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263],
|
||||
[43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519],
|
||||
[43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647],
|
||||
[43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967],
|
||||
[44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295],
|
||||
[57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274],
|
||||
[64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007],
|
||||
[65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381],
|
||||
[65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]];
|
||||
for (i = 0; i < ranges.length; i++) {
|
||||
start = ranges[i][0];
|
||||
end = ranges[i][1];
|
||||
for (j = start; j <= end; j++) {
|
||||
result[j] = true;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
})();
|
||||
|
||||
function splitQuery(query) {
|
||||
var result = [];
|
||||
var start = -1;
|
||||
for (var i = 0; i < query.length; i++) {
|
||||
if (splitChars[query.charCodeAt(i)]) {
|
||||
if (start !== -1) {
|
||||
result.push(query.slice(start, i));
|
||||
start = -1;
|
||||
}
|
||||
} else if (start === -1) {
|
||||
start = i;
|
||||
}
|
||||
}
|
||||
if (start !== -1) {
|
||||
result.push(query.slice(start));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
BIN
docs/_build/html/_static/minus.png
vendored
BIN
docs/_build/html/_static/minus.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 90 B |
BIN
docs/_build/html/_static/plus.png
vendored
BIN
docs/_build/html/_static/plus.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 90 B |
82
docs/_build/html/_static/pygments.css
vendored
82
docs/_build/html/_static/pygments.css
vendored
@ -1,82 +0,0 @@
|
||||
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: #8f5902; font-style: italic } /* Comment */
|
||||
.highlight .err { color: #a40000; border: 1px solid #ef2929 } /* Error */
|
||||
.highlight .g { color: #000000 } /* Generic */
|
||||
.highlight .k { color: #004461; font-weight: bold } /* Keyword */
|
||||
.highlight .l { color: #000000 } /* Literal */
|
||||
.highlight .n { color: #000000 } /* Name */
|
||||
.highlight .o { color: #582800 } /* Operator */
|
||||
.highlight .x { color: #000000 } /* Other */
|
||||
.highlight .p { color: #000000; font-weight: bold } /* Punctuation */
|
||||
.highlight .ch { color: #8f5902; font-style: italic } /* Comment.Hashbang */
|
||||
.highlight .cm { color: #8f5902; font-style: italic } /* Comment.Multiline */
|
||||
.highlight .cp { color: #8f5902 } /* Comment.Preproc */
|
||||
.highlight .cpf { color: #8f5902; font-style: italic } /* Comment.PreprocFile */
|
||||
.highlight .c1 { color: #8f5902; font-style: italic } /* Comment.Single */
|
||||
.highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */
|
||||
.highlight .gd { color: #a40000 } /* Generic.Deleted */
|
||||
.highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */
|
||||
.highlight .gr { color: #ef2929 } /* Generic.Error */
|
||||
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
||||
.highlight .gi { color: #00A000 } /* Generic.Inserted */
|
||||
.highlight .go { color: #888888 } /* Generic.Output */
|
||||
.highlight .gp { color: #745334 } /* Generic.Prompt */
|
||||
.highlight .gs { color: #000000; font-weight: bold } /* Generic.Strong */
|
||||
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
|
||||
.highlight .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */
|
||||
.highlight .kc { color: #004461; font-weight: bold } /* Keyword.Constant */
|
||||
.highlight .kd { color: #004461; font-weight: bold } /* Keyword.Declaration */
|
||||
.highlight .kn { color: #004461; font-weight: bold } /* Keyword.Namespace */
|
||||
.highlight .kp { color: #004461; font-weight: bold } /* Keyword.Pseudo */
|
||||
.highlight .kr { color: #004461; font-weight: bold } /* Keyword.Reserved */
|
||||
.highlight .kt { color: #004461; font-weight: bold } /* Keyword.Type */
|
||||
.highlight .ld { color: #000000 } /* Literal.Date */
|
||||
.highlight .m { color: #990000 } /* Literal.Number */
|
||||
.highlight .s { color: #4e9a06 } /* Literal.String */
|
||||
.highlight .na { color: #c4a000 } /* Name.Attribute */
|
||||
.highlight .nb { color: #004461 } /* Name.Builtin */
|
||||
.highlight .nc { color: #000000 } /* Name.Class */
|
||||
.highlight .no { color: #000000 } /* Name.Constant */
|
||||
.highlight .nd { color: #888888 } /* Name.Decorator */
|
||||
.highlight .ni { color: #ce5c00 } /* Name.Entity */
|
||||
.highlight .ne { color: #cc0000; font-weight: bold } /* Name.Exception */
|
||||
.highlight .nf { color: #000000 } /* Name.Function */
|
||||
.highlight .nl { color: #f57900 } /* Name.Label */
|
||||
.highlight .nn { color: #000000 } /* Name.Namespace */
|
||||
.highlight .nx { color: #000000 } /* Name.Other */
|
||||
.highlight .py { color: #000000 } /* Name.Property */
|
||||
.highlight .nt { color: #004461; font-weight: bold } /* Name.Tag */
|
||||
.highlight .nv { color: #000000 } /* Name.Variable */
|
||||
.highlight .ow { color: #004461; font-weight: bold } /* Operator.Word */
|
||||
.highlight .w { color: #f8f8f8; text-decoration: underline } /* Text.Whitespace */
|
||||
.highlight .mb { color: #990000 } /* Literal.Number.Bin */
|
||||
.highlight .mf { color: #990000 } /* Literal.Number.Float */
|
||||
.highlight .mh { color: #990000 } /* Literal.Number.Hex */
|
||||
.highlight .mi { color: #990000 } /* Literal.Number.Integer */
|
||||
.highlight .mo { color: #990000 } /* Literal.Number.Oct */
|
||||
.highlight .sa { color: #4e9a06 } /* Literal.String.Affix */
|
||||
.highlight .sb { color: #4e9a06 } /* Literal.String.Backtick */
|
||||
.highlight .sc { color: #4e9a06 } /* Literal.String.Char */
|
||||
.highlight .dl { color: #4e9a06 } /* Literal.String.Delimiter */
|
||||
.highlight .sd { color: #8f5902; font-style: italic } /* Literal.String.Doc */
|
||||
.highlight .s2 { color: #4e9a06 } /* Literal.String.Double */
|
||||
.highlight .se { color: #4e9a06 } /* Literal.String.Escape */
|
||||
.highlight .sh { color: #4e9a06 } /* Literal.String.Heredoc */
|
||||
.highlight .si { color: #4e9a06 } /* Literal.String.Interpol */
|
||||
.highlight .sx { color: #4e9a06 } /* Literal.String.Other */
|
||||
.highlight .sr { color: #4e9a06 } /* Literal.String.Regex */
|
||||
.highlight .s1 { color: #4e9a06 } /* Literal.String.Single */
|
||||
.highlight .ss { color: #4e9a06 } /* Literal.String.Symbol */
|
||||
.highlight .bp { color: #3465a4 } /* Name.Builtin.Pseudo */
|
||||
.highlight .fm { color: #000000 } /* Name.Function.Magic */
|
||||
.highlight .vc { color: #000000 } /* Name.Variable.Class */
|
||||
.highlight .vg { color: #000000 } /* Name.Variable.Global */
|
||||
.highlight .vi { color: #000000 } /* Name.Variable.Instance */
|
||||
.highlight .vm { color: #000000 } /* Name.Variable.Magic */
|
||||
.highlight .il { color: #990000 } /* Literal.Number.Integer.Long */
|
||||
529
docs/_build/html/_static/searchtools.js
vendored
529
docs/_build/html/_static/searchtools.js
vendored
@ -1,529 +0,0 @@
|
||||
/*
|
||||
* searchtools.js
|
||||
* ~~~~~~~~~~~~~~~~
|
||||
*
|
||||
* Sphinx JavaScript utilities for the full-text search.
|
||||
*
|
||||
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
|
||||
* :license: BSD, see LICENSE for details.
|
||||
*
|
||||
*/
|
||||
|
||||
if (!Scorer) {
|
||||
/**
|
||||
* Simple result scoring code.
|
||||
*/
|
||||
var Scorer = {
|
||||
// Implement the following function to further tweak the score for each result
|
||||
// The function takes a result array [filename, title, anchor, descr, score]
|
||||
// and returns the new score.
|
||||
/*
|
||||
score: function(result) {
|
||||
return result[4];
|
||||
},
|
||||
*/
|
||||
|
||||
// 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
|
||||
};
|
||||
}
|
||||
|
||||
if (!splitQuery) {
|
||||
function splitQuery(query) {
|
||||
return query.split(/\s+/);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Search Module
|
||||
*/
|
||||
var Search = {
|
||||
|
||||
_index : null,
|
||||
_queued_query : null,
|
||||
_pulse_status : -1,
|
||||
|
||||
htmlToText : function(htmlString) {
|
||||
var virtualDocument = document.implementation.createHTMLDocument('virtual');
|
||||
var htmlElement = $(htmlString, virtualDocument);
|
||||
htmlElement.find('.headerlink').remove();
|
||||
docContent = htmlElement.find('[role=main]')[0];
|
||||
if(docContent === undefined) {
|
||||
console.warn("Content block not found. Sphinx search tries to obtain it " +
|
||||
"via '[role=main]'. Could you check your theme or template.");
|
||||
return "";
|
||||
}
|
||||
return docContent.textContent || docContent.innerText;
|
||||
},
|
||||
|
||||
init : function() {
|
||||
var params = $.getQueryParameters();
|
||||
if (params.q) {
|
||||
var query = params.q[0];
|
||||
$('input[name="q"]')[0].value = query;
|
||||
this.performSearch(query);
|
||||
}
|
||||
},
|
||||
|
||||
loadIndex : function(url) {
|
||||
$.ajax({type: "GET", url: url, data: null,
|
||||
dataType: "script", cache: true,
|
||||
complete: function(jqxhr, textstatus) {
|
||||
if (textstatus != "success") {
|
||||
document.getElementById("searchindexloader").src = url;
|
||||
}
|
||||
}});
|
||||
},
|
||||
|
||||
setIndex : function(index) {
|
||||
var q;
|
||||
this._index = index;
|
||||
if ((q = this._queued_query) !== null) {
|
||||
this._queued_query = null;
|
||||
Search.query(q);
|
||||
}
|
||||
},
|
||||
|
||||
hasIndex : function() {
|
||||
return this._index !== null;
|
||||
},
|
||||
|
||||
deferQuery : function(query) {
|
||||
this._queued_query = query;
|
||||
},
|
||||
|
||||
stopPulse : function() {
|
||||
this._pulse_status = 0;
|
||||
},
|
||||
|
||||
startPulse : function() {
|
||||
if (this._pulse_status >= 0)
|
||||
return;
|
||||
function pulse() {
|
||||
var i;
|
||||
Search._pulse_status = (Search._pulse_status + 1) % 4;
|
||||
var dotString = '';
|
||||
for (i = 0; i < Search._pulse_status; i++)
|
||||
dotString += '.';
|
||||
Search.dots.text(dotString);
|
||||
if (Search._pulse_status > -1)
|
||||
window.setTimeout(pulse, 500);
|
||||
}
|
||||
pulse();
|
||||
},
|
||||
|
||||
/**
|
||||
* perform a search for something (or wait until index is loaded)
|
||||
*/
|
||||
performSearch : function(query) {
|
||||
// create the required interface elements
|
||||
this.out = $('#search-results');
|
||||
this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
|
||||
this.dots = $('<span></span>').appendTo(this.title);
|
||||
this.status = $('<p class="search-summary"> </p>').appendTo(this.out);
|
||||
this.output = $('<ul class="search"/>').appendTo(this.out);
|
||||
|
||||
$('#search-progress').text(_('Preparing search...'));
|
||||
this.startPulse();
|
||||
|
||||
// index already loaded, the browser was quick!
|
||||
if (this.hasIndex())
|
||||
this.query(query);
|
||||
else
|
||||
this.deferQuery(query);
|
||||
},
|
||||
|
||||
/**
|
||||
* execute search (requires search index to be loaded)
|
||||
*/
|
||||
query : function(query) {
|
||||
var i;
|
||||
|
||||
// stem the searchterms and add them to the correct list
|
||||
var stemmer = new Stemmer();
|
||||
var searchterms = [];
|
||||
var excluded = [];
|
||||
var hlterms = [];
|
||||
var tmp = splitQuery(query);
|
||||
var objectterms = [];
|
||||
for (i = 0; i < tmp.length; i++) {
|
||||
if (tmp[i] !== "") {
|
||||
objectterms.push(tmp[i].toLowerCase());
|
||||
}
|
||||
|
||||
if ($u.indexOf(stopwords, tmp[i].toLowerCase()) != -1 || tmp[i] === "") {
|
||||
// skip this "word"
|
||||
continue;
|
||||
}
|
||||
// stem the word
|
||||
var word = stemmer.stemWord(tmp[i].toLowerCase());
|
||||
// prevent stemmer from cutting word smaller than two chars
|
||||
if(word.length < 3 && tmp[i].length >= 3) {
|
||||
word = tmp[i];
|
||||
}
|
||||
var toAppend;
|
||||
// select the correct list
|
||||
if (word[0] == '-') {
|
||||
toAppend = excluded;
|
||||
word = word.substr(1);
|
||||
}
|
||||
else {
|
||||
toAppend = searchterms;
|
||||
hlterms.push(tmp[i].toLowerCase());
|
||||
}
|
||||
// only add if not already in the list
|
||||
if (!$u.contains(toAppend, word))
|
||||
toAppend.push(word);
|
||||
}
|
||||
var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
|
||||
|
||||
// console.debug('SEARCH: searching for:');
|
||||
// console.info('required: ', searchterms);
|
||||
// console.info('excluded: ', excluded);
|
||||
|
||||
// prepare search
|
||||
var terms = this._index.terms;
|
||||
var titleterms = this._index.titleterms;
|
||||
|
||||
// array of [filename, title, anchor, descr, score]
|
||||
var results = [];
|
||||
$('#search-progress').empty();
|
||||
|
||||
// lookup as object
|
||||
for (i = 0; i < objectterms.length; i++) {
|
||||
var others = [].concat(objectterms.slice(0, i),
|
||||
objectterms.slice(i+1, objectterms.length));
|
||||
results = results.concat(this.performObjectSearch(objectterms[i], others));
|
||||
}
|
||||
|
||||
// lookup as search terms in fulltext
|
||||
results = results.concat(this.performTermsSearch(searchterms, excluded, terms, titleterms));
|
||||
|
||||
// let the scorer override scores with a custom scoring function
|
||||
if (Scorer.score) {
|
||||
for (i = 0; i < results.length; i++)
|
||||
results[i][4] = Scorer.score(results[i]);
|
||||
}
|
||||
|
||||
// now sort the results by score (in opposite order of appearance, since the
|
||||
// display function below uses pop() to retrieve items) and then
|
||||
// alphabetically
|
||||
results.sort(function(a, b) {
|
||||
var left = a[4];
|
||||
var right = b[4];
|
||||
if (left > right) {
|
||||
return 1;
|
||||
} else if (left < right) {
|
||||
return -1;
|
||||
} else {
|
||||
// same score: sort alphabetically
|
||||
left = a[1].toLowerCase();
|
||||
right = b[1].toLowerCase();
|
||||
return (left > right) ? -1 : ((left < right) ? 1 : 0);
|
||||
}
|
||||
});
|
||||
|
||||
// for debugging
|
||||
//Search.lastresults = results.slice(); // a copy
|
||||
//console.info('search results:', Search.lastresults);
|
||||
|
||||
// print the results
|
||||
var resultCount = results.length;
|
||||
function displayNextItem() {
|
||||
// results left, load the summary and display it
|
||||
if (results.length) {
|
||||
var item = results.pop();
|
||||
var listItem = $('<li></li>');
|
||||
var requestUrl = "";
|
||||
var linkUrl = "";
|
||||
if (DOCUMENTATION_OPTIONS.BUILDER === 'dirhtml') {
|
||||
// dirhtml builder
|
||||
var dirname = item[0] + '/';
|
||||
if (dirname.match(/\/index\/$/)) {
|
||||
dirname = dirname.substring(0, dirname.length-6);
|
||||
} else if (dirname == 'index/') {
|
||||
dirname = '';
|
||||
}
|
||||
requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + dirname;
|
||||
linkUrl = requestUrl;
|
||||
|
||||
} else {
|
||||
// normal html builders
|
||||
requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX;
|
||||
linkUrl = item[0] + DOCUMENTATION_OPTIONS.LINK_SUFFIX;
|
||||
}
|
||||
listItem.append($('<a/>').attr('href',
|
||||
linkUrl +
|
||||
highlightstring + item[2]).html(item[1]));
|
||||
if (item[3]) {
|
||||
listItem.append($('<span> (' + item[3] + ')</span>'));
|
||||
Search.output.append(listItem);
|
||||
setTimeout(function() {
|
||||
displayNextItem();
|
||||
}, 5);
|
||||
} else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
|
||||
$.ajax({url: requestUrl,
|
||||
dataType: "text",
|
||||
complete: function(jqxhr, textstatus) {
|
||||
var data = jqxhr.responseText;
|
||||
if (data !== '' && data !== undefined) {
|
||||
var summary = Search.makeSearchSummary(data, searchterms, hlterms);
|
||||
if (summary) {
|
||||
listItem.append(summary);
|
||||
}
|
||||
}
|
||||
Search.output.append(listItem);
|
||||
setTimeout(function() {
|
||||
displayNextItem();
|
||||
}, 5);
|
||||
}});
|
||||
} else {
|
||||
// no source available, just display title
|
||||
Search.output.append(listItem);
|
||||
setTimeout(function() {
|
||||
displayNextItem();
|
||||
}, 5);
|
||||
}
|
||||
}
|
||||
// search finished, update title and status message
|
||||
else {
|
||||
Search.stopPulse();
|
||||
Search.title.text(_('Search Results'));
|
||||
if (!resultCount)
|
||||
Search.status.text(_('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.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
|
||||
Search.status.fadeIn(500);
|
||||
}
|
||||
}
|
||||
displayNextItem();
|
||||
},
|
||||
|
||||
/**
|
||||
* search for object names
|
||||
*/
|
||||
performObjectSearch : function(object, otherterms) {
|
||||
var filenames = this._index.filenames;
|
||||
var docnames = this._index.docnames;
|
||||
var objects = this._index.objects;
|
||||
var objnames = this._index.objnames;
|
||||
var titles = this._index.titles;
|
||||
|
||||
var i;
|
||||
var results = [];
|
||||
|
||||
for (var prefix in objects) {
|
||||
for (var iMatch = 0; iMatch != objects[prefix].length; ++iMatch) {
|
||||
var match = objects[prefix][iMatch];
|
||||
var name = match[4];
|
||||
var fullname = (prefix ? prefix + '.' : '') + name;
|
||||
var fullnameLower = fullname.toLowerCase()
|
||||
if (fullnameLower.indexOf(object) > -1) {
|
||||
var score = 0;
|
||||
var 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[parts.length - 1] == object) {
|
||||
score += Scorer.objNameMatch;
|
||||
// matches in last name
|
||||
} else if (parts[parts.length - 1].indexOf(object) > -1) {
|
||||
score += Scorer.objPartialMatch;
|
||||
}
|
||||
var objname = objnames[match[1]][2];
|
||||
var title = titles[match[0]];
|
||||
// If more than one term searched for, we require other words to be
|
||||
// found in the name/title/description
|
||||
if (otherterms.length > 0) {
|
||||
var haystack = (prefix + ' ' + name + ' ' +
|
||||
objname + ' ' + title).toLowerCase();
|
||||
var allfound = true;
|
||||
for (i = 0; i < otherterms.length; i++) {
|
||||
if (haystack.indexOf(otherterms[i]) == -1) {
|
||||
allfound = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!allfound) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
var descr = objname + _(', in ') + title;
|
||||
|
||||
var anchor = match[3];
|
||||
if (anchor === '')
|
||||
anchor = fullname;
|
||||
else if (anchor == '-')
|
||||
anchor = objnames[match[1]][1] + '-' + fullname;
|
||||
// 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]]]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
},
|
||||
|
||||
/**
|
||||
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
|
||||
*/
|
||||
escapeRegExp : function(string) {
|
||||
return string.replace(/[.*+\-?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
|
||||
},
|
||||
|
||||
/**
|
||||
* search for full-text terms in the index
|
||||
*/
|
||||
performTermsSearch : function(searchterms, excluded, terms, titleterms) {
|
||||
var docnames = this._index.docnames;
|
||||
var filenames = this._index.filenames;
|
||||
var titles = this._index.titles;
|
||||
|
||||
var i, j, file;
|
||||
var fileMap = {};
|
||||
var scoreMap = {};
|
||||
var results = [];
|
||||
|
||||
// perform the search on the required terms
|
||||
for (i = 0; i < searchterms.length; i++) {
|
||||
var word = searchterms[i];
|
||||
var files = [];
|
||||
var _o = [
|
||||
{files: terms[word], score: Scorer.term},
|
||||
{files: titleterms[word], score: Scorer.title}
|
||||
];
|
||||
// add support for partial matches
|
||||
if (word.length > 2) {
|
||||
var word_regex = this.escapeRegExp(word);
|
||||
for (var w in terms) {
|
||||
if (w.match(word_regex) && !terms[word]) {
|
||||
_o.push({files: terms[w], score: Scorer.partialTerm})
|
||||
}
|
||||
}
|
||||
for (var w in titleterms) {
|
||||
if (w.match(word_regex) && !titleterms[word]) {
|
||||
_o.push({files: titleterms[w], score: Scorer.partialTitle})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// no match but word was a required one
|
||||
if ($u.every(_o, function(o){return o.files === undefined;})) {
|
||||
break;
|
||||
}
|
||||
// found search word in contents
|
||||
$u.each(_o, function(o) {
|
||||
var _files = o.files;
|
||||
if (_files === undefined)
|
||||
return
|
||||
|
||||
if (_files.length === undefined)
|
||||
_files = [_files];
|
||||
files = files.concat(_files);
|
||||
|
||||
// set score for the word in each file to Scorer.term
|
||||
for (j = 0; j < _files.length; j++) {
|
||||
file = _files[j];
|
||||
if (!(file in scoreMap))
|
||||
scoreMap[file] = {};
|
||||
scoreMap[file][word] = o.score;
|
||||
}
|
||||
});
|
||||
|
||||
// create the mapping
|
||||
for (j = 0; j < files.length; j++) {
|
||||
file = files[j];
|
||||
if (file in fileMap && fileMap[file].indexOf(word) === -1)
|
||||
fileMap[file].push(word);
|
||||
else
|
||||
fileMap[file] = [word];
|
||||
}
|
||||
}
|
||||
|
||||
// now check if the files don't contain excluded terms
|
||||
for (file in fileMap) {
|
||||
var valid = true;
|
||||
|
||||
// check if all requirements are matched
|
||||
var filteredTermCount = // as search terms with length < 3 are discarded: ignore
|
||||
searchterms.filter(function(term){return term.length > 2}).length
|
||||
if (
|
||||
fileMap[file].length != searchterms.length &&
|
||||
fileMap[file].length != filteredTermCount
|
||||
) continue;
|
||||
|
||||
// ensure that none of the excluded terms is in the search result
|
||||
for (i = 0; i < excluded.length; i++) {
|
||||
if (terms[excluded[i]] == file ||
|
||||
titleterms[excluded[i]] == file ||
|
||||
$u.contains(terms[excluded[i]] || [], file) ||
|
||||
$u.contains(titleterms[excluded[i]] || [], file)) {
|
||||
valid = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// if we have still a valid result we can add it to the result list
|
||||
if (valid) {
|
||||
// select one (max) score for the file.
|
||||
// for better ranking, we should calculate ranking by using words statistics like basic tf-idf...
|
||||
var score = $u.max($u.map(fileMap[file], function(w){return scoreMap[file][w]}));
|
||||
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, hlwords is the list of normal, unstemmed
|
||||
* words. the first one is used to find the occurrence, the
|
||||
* latter for highlighting it.
|
||||
*/
|
||||
makeSearchSummary : function(htmlText, keywords, hlwords) {
|
||||
var text = Search.htmlToText(htmlText);
|
||||
if (text == "") {
|
||||
return null;
|
||||
}
|
||||
var textLower = text.toLowerCase();
|
||||
var start = 0;
|
||||
$.each(keywords, function() {
|
||||
var i = textLower.indexOf(this.toLowerCase());
|
||||
if (i > -1)
|
||||
start = i;
|
||||
});
|
||||
start = Math.max(start - 120, 0);
|
||||
var excerpt = ((start > 0) ? '...' : '') +
|
||||
$.trim(text.substr(start, 240)) +
|
||||
((start + 240 - text.length) ? '...' : '');
|
||||
var rv = $('<p class="context"></p>').text(excerpt);
|
||||
$.each(hlwords, function() {
|
||||
rv = rv.highlightText(this, 'highlighted');
|
||||
});
|
||||
return rv;
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready(function() {
|
||||
Search.init();
|
||||
});
|
||||
2042
docs/_build/html/_static/underscore-1.13.1.js
vendored
2042
docs/_build/html/_static/underscore-1.13.1.js
vendored
File diff suppressed because it is too large
Load Diff
6
docs/_build/html/_static/underscore.js
vendored
6
docs/_build/html/_static/underscore.js
vendored
File diff suppressed because one or more lines are too long
391
docs/_build/html/api/kheops.html
vendored
391
docs/_build/html/api/kheops.html
vendored
@ -1,391 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>kheops package — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" />
|
||||
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
|
||||
<script src="../_static/jquery.js"></script>
|
||||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<link rel="next" title="kheops.plugin package" href="kheops.plugin.html" />
|
||||
<link rel="prev" title="kheops" href="modules.html" />
|
||||
|
||||
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="module-kheops">
|
||||
<span id="kheops-package"></span><h1>kheops package<a class="headerlink" href="#module-kheops" title="Permalink to this headline">¶</a></h1>
|
||||
<section id="subpackages">
|
||||
<h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="toctree-wrapper compound">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="kheops.plugin.html">kheops.plugin package</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="kheops.plugin.html#subpackages">Subpackages</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.plugin.backend.html">kheops.plugin.backend package</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="kheops.plugin.backend.html#submodules">Submodules</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="kheops.plugin.backend.html#module-kheops.plugin.backend.file">kheops.plugin.backend.file module</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.plugin.scope.html">kheops.plugin.scope package</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="kheops.plugin.scope.html#submodules">Submodules</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="kheops.plugin.scope.html#module-kheops.plugin.scope.hier">kheops.plugin.scope.hier module</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="kheops.plugin.scope.html#module-kheops.plugin.scope.loop">kheops.plugin.scope.loop module</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.plugin.strategy.html">kheops.plugin.strategy package</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="kheops.plugin.strategy.html#submodules">Submodules</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="kheops.plugin.strategy.html#module-kheops.plugin.strategy.last">kheops.plugin.strategy.last module</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="kheops.plugin.strategy.html#module-kheops.plugin.strategy.merge_deep">kheops.plugin.strategy.merge_deep module</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="kheops.plugin.html#submodules">Submodules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="kheops.plugin.html#module-kheops.plugin.common">kheops.plugin.common module</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
<section id="submodules">
|
||||
<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
|
||||
</section>
|
||||
<section id="module-kheops.app">
|
||||
<span id="kheops-app-module"></span><h2>kheops.app module<a class="headerlink" href="#module-kheops.app" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Kheops App interface</p>
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.app.GenericInstance">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.app.</span></span><span class="sig-name descname"><span class="pre">GenericInstance</span></span><a class="headerlink" href="#kheops.app.GenericInstance" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||||
<p>GenericInstance class</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Variables</dt>
|
||||
<dd class="field-odd"><ul class="simple">
|
||||
<li><p><strong>name</strong> (<em>str</em><em> or </em><em>None</em>) – Name of the instace.</p></li>
|
||||
<li><p><strong>run</strong> (<em>dict</em>) – Json compatible dict for instance runtime data.</p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.app.GenericInstance.name">
|
||||
<span class="sig-name descname"><span class="pre">name</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#kheops.app.GenericInstance.name" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.app.GenericInstance.run">
|
||||
<span class="sig-name descname"><span class="pre">run</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{}</span></em><a class="headerlink" href="#kheops.app.GenericInstance.run" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.app.Kheops">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.app.</span></span><span class="sig-name descname"><span class="pre">Kheops</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">config</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'kheops.yml'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">namespace</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'default'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.app.Kheops" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="#kheops.app.GenericInstance" title="kheops.app.GenericInstance"><code class="xref py py-class docutils literal notranslate"><span class="pre">kheops.app.GenericInstance</span></code></a></p>
|
||||
<p>Kheops Application Class</p>
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.app.Kheops.lookup2">
|
||||
<span class="sig-name descname"><span class="pre">lookup2</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">keys</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">policy</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scope</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">trace</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">explain</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">validate_schema</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">namespace</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'default'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.app.Kheops.lookup2" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Lookup a key in hierarchy</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><ul class="simple">
|
||||
<li><p><strong>keys</strong> (<em>list</em><em>[</em><em>str</em><em>]</em>) – List of keys to query.</p></li>
|
||||
<li><p><strong>scope</strong> (<em>dict</em>) – Scope key.</p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.app.Kheops.parse_conf">
|
||||
<span class="sig-name descname"><span class="pre">parse_conf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">config</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'kheops.yml'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.app.Kheops.parse_conf" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Parse Kheops configuration</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>config</strong> (<em>dict</em><em> or </em><em>str</em><em> or </em><em>None</em>) – Kheops configuration, can either be a file path or a dict.</p>
|
||||
</dd>
|
||||
<dt class="field-even">Returns</dt>
|
||||
<dd class="field-even"><p>The parsed configuration.</p>
|
||||
</dd>
|
||||
<dt class="field-odd">Return type</dt>
|
||||
<dd class="field-odd"><p>dict</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.app.KheopsNamespace">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.app.</span></span><span class="sig-name descname"><span class="pre">KheopsNamespace</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">config</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.app.KheopsNamespace" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="#kheops.app.GenericInstance" title="kheops.app.GenericInstance"><code class="xref py py-class docutils literal notranslate"><span class="pre">kheops.app.GenericInstance</span></code></a>, <a class="reference internal" href="#kheops.controllers.QueryProcessor" title="kheops.controllers.QueryProcessor"><code class="xref py py-class docutils literal notranslate"><span class="pre">kheops.controllers.QueryProcessor</span></code></a></p>
|
||||
<p>Kheops Namespace Class</p>
|
||||
</dd></dl>
|
||||
|
||||
</section>
|
||||
<section id="module-kheops.cli">
|
||||
<span id="kheops-cli-module"></span><h2>kheops.cli module<a class="headerlink" href="#module-kheops.cli" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Kheops CLI interface</p>
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.cli.CmdApp">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.cli.</span></span><span class="sig-name descname"><span class="pre">CmdApp</span></span><a class="headerlink" href="#kheops.cli.CmdApp" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||||
<p>Main CmdApp</p>
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.cli.CmdApp.cli">
|
||||
<span class="sig-name descname"><span class="pre">cli</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#kheops.cli.CmdApp.cli" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Main cli command</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.cli.CmdApp.cli_demo">
|
||||
<span class="sig-name descname"><span class="pre">cli_demo</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#kheops.cli.CmdApp.cli_demo" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Display how to use logging</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.cli.CmdApp.cli_gen_doc">
|
||||
<span class="sig-name descname"><span class="pre">cli_gen_doc</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#kheops.cli.CmdApp.cli_gen_doc" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Generate documentation</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.cli.CmdApp.cli_lookup">
|
||||
<span class="sig-name descname"><span class="pre">cli_lookup</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#kheops.cli.CmdApp.cli_lookup" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Lookup database</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.cli.CmdApp.cli_schema">
|
||||
<span class="sig-name descname"><span class="pre">cli_schema</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#kheops.cli.CmdApp.cli_schema" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Display configuration schema</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.cli.CmdApp.get_args">
|
||||
<span class="sig-name descname"><span class="pre">get_args</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#kheops.cli.CmdApp.get_args" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Prepare command line</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.cli.CmdApp.get_logger">
|
||||
<span class="sig-name descname"><span class="pre">get_logger</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">logger_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">create_file</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">verbose</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.cli.CmdApp.get_logger" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Create CmdApp logger</p>
|
||||
</dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
</section>
|
||||
<section id="module-kheops.controllers">
|
||||
<span id="kheops-controllers-module"></span><h2>kheops.controllers module<a class="headerlink" href="#module-kheops.controllers" title="Permalink to this headline">¶</a></h2>
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.controllers.LoadPlugin">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.controllers.</span></span><span class="sig-name descname"><span class="pre">LoadPlugin</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">plugins</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.controllers.LoadPlugin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||||
<p>Generic class to load plugins</p>
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.controllers.LoadPlugin.load">
|
||||
<span class="sig-name descname"><span class="pre">load</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">kind</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.controllers.LoadPlugin.load" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.controllers.Query">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.controllers.</span></span><span class="sig-name descname"><span class="pre">Query</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scope</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.controllers.Query" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.controllers.Query.key">
|
||||
<span class="sig-name descname"><span class="pre">key</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#kheops.controllers.Query.key" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.controllers.Query.scope">
|
||||
<span class="sig-name descname"><span class="pre">scope</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#kheops.controllers.Query.scope" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.controllers.QueryProcessor">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.controllers.</span></span><span class="sig-name descname"><span class="pre">QueryProcessor</span></span><a class="headerlink" href="#kheops.controllers.QueryProcessor" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||||
<p>QueryProcessor class provides all the methods to be able to make queries</p>
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.controllers.QueryProcessor.CHILDREN_INIT">
|
||||
<span class="sig-name descname"><span class="pre">CHILDREN_INIT</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">config</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.controllers.QueryProcessor.CHILDREN_INIT" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.controllers.QueryProcessor.default_lookup_item">
|
||||
<span class="sig-name descname"><span class="pre">default_lookup_item</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'backend':</span> <span class="pre">'file',</span> <span class="pre">'continue':</span> <span class="pre">True,</span> <span class="pre">'path':</span> <span class="pre">None}</span></em><a class="headerlink" href="#kheops.controllers.QueryProcessor.default_lookup_item" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.controllers.QueryProcessor.default_match_rule">
|
||||
<span class="sig-name descname"><span class="pre">default_match_rule</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'continue':</span> <span class="pre">False,</span> <span class="pre">'key':</span> <span class="pre">None,</span> <span class="pre">'strategy':</span> <span class="pre">'merge_deep'}</span></em><a class="headerlink" href="#kheops.controllers.QueryProcessor.default_match_rule" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.controllers.QueryProcessor.query">
|
||||
<span class="sig-name descname"><span class="pre">query</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scope</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">explain</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.controllers.QueryProcessor.query" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
</section>
|
||||
<section id="module-kheops.utils">
|
||||
<span id="kheops-utils-module"></span><h2>kheops.utils module<a class="headerlink" href="#module-kheops.utils" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Utils class</p>
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.utils.Default">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.utils.</span></span><span class="sig-name descname"><span class="pre">Default</span></span><a class="headerlink" href="#kheops.utils.Default" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="kheops.utils.glob_files">
|
||||
<span class="sig-prename descclassname"><span class="pre">kheops.utils.</span></span><span class="sig-name descname"><span class="pre">glob_files</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">path</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pattern</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.utils.glob_files" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Return a list of path that match a glob</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="kheops.utils.path_assemble_hier">
|
||||
<span class="sig-prename descclassname"><span class="pre">kheops.utils.</span></span><span class="sig-name descname"><span class="pre">path_assemble_hier</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">path</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sep</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'/'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reverse</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">start_index</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.utils.path_assemble_hier" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Append the previous</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="kheops.utils.render_template">
|
||||
<span class="sig-prename descclassname"><span class="pre">kheops.utils.</span></span><span class="sig-name descname"><span class="pre">render_template</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">text</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.utils.render_template" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Render template for a given string</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="kheops.utils.render_template_python">
|
||||
<span class="sig-prename descclassname"><span class="pre">kheops.utils.</span></span><span class="sig-name descname"><span class="pre">render_template_python</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">text</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ignore_missing</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.utils.render_template_python" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Render template for a given string</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="kheops.utils.schema_validate">
|
||||
<span class="sig-prename descclassname"><span class="pre">kheops.utils.</span></span><span class="sig-name descname"><span class="pre">schema_validate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">config</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">schema</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.utils.schema_validate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Validate a config against a jsonschema</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt class="sig sig-object py" id="kheops.utils.str_ellipsis">
|
||||
<span class="sig-prename descclassname"><span class="pre">kheops.utils.</span></span><span class="sig-name descname"><span class="pre">str_ellipsis</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">txt</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">length</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">60</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.utils.str_ellipsis" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Truncate with ellipsis too wide texts</p>
|
||||
</dd></dl>
|
||||
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/app/index.html">Application</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/learn/index.html">Learn</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="modules.html">Python API</a><ul class="current">
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">kheops package</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#subpackages">Subpackages</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#submodules">Submodules</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#module-kheops.app">kheops.app module</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#module-kheops.cli">kheops.cli module</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#module-kheops.controllers">kheops.controllers module</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#module-kheops.utils">kheops.utils module</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../index.html">Documentation overview</a><ul>
|
||||
<li><a href="modules.html">kheops</a><ul>
|
||||
<li>Previous: <a href="modules.html" title="previous chapter">kheops</a></li>
|
||||
<li>Next: <a href="kheops.plugin.html" title="next chapter">kheops.plugin package</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../_sources/api/kheops.rst.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
154
docs/_build/html/api/kheops.plugin.backend.html
vendored
154
docs/_build/html/api/kheops.plugin.backend.html
vendored
@ -1,154 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>kheops.plugin.backend package — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" />
|
||||
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
|
||||
<script src="../_static/jquery.js"></script>
|
||||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<link rel="next" title="kheops.plugin.scope package" href="kheops.plugin.scope.html" />
|
||||
<link rel="prev" title="kheops.plugin package" href="kheops.plugin.html" />
|
||||
|
||||
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="module-kheops.plugin.backend">
|
||||
<span id="kheops-plugin-backend-package"></span><h1>kheops.plugin.backend package<a class="headerlink" href="#module-kheops.plugin.backend" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Backend plugins</p>
|
||||
<section id="submodules">
|
||||
<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
|
||||
</section>
|
||||
<section id="module-kheops.plugin.backend.file">
|
||||
<span id="kheops-plugin-backend-file-module"></span><h2>kheops.plugin.backend.file module<a class="headerlink" href="#module-kheops.plugin.backend.file" title="Permalink to this headline">¶</a></h2>
|
||||
<p>File Backend Code</p>
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.backend.file.Plugin">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.plugin.backend.file.</span></span><span class="sig-name descname"><span class="pre">Plugin</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">namespace</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.plugin.backend.file.Plugin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="kheops.plugin.html#kheops.plugin.common.BackendPlugin" title="kheops.plugin.common.BackendPlugin"><code class="xref py py-class docutils literal notranslate"><span class="pre">kheops.plugin.common.BackendPlugin</span></code></a></p>
|
||||
<p>Generic Plugin Class</p>
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.backend.file.Plugin.extensions">
|
||||
<span class="sig-name descname"><span class="pre">extensions</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'.yaml':</span> <span class="pre">'yaml',</span> <span class="pre">'.yml':</span> <span class="pre">'yaml'}</span></em><a class="headerlink" href="#kheops.plugin.backend.file.Plugin.extensions" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.backend.file.Plugin.fetch_data">
|
||||
<span class="sig-name descname"><span class="pre">fetch_data</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">config</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">list</span></span></span><a class="headerlink" href="#kheops.plugin.backend.file.Plugin.fetch_data" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/app/index.html">Application</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/learn/index.html">Learn</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="modules.html">Python API</a><ul class="current">
|
||||
<li class="toctree-l2 current"><a class="reference internal" href="kheops.html">kheops package</a><ul class="current">
|
||||
<li class="toctree-l3 current"><a class="reference internal" href="kheops.html#subpackages">Subpackages</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#submodules">Submodules</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#module-kheops.app">kheops.app module</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#module-kheops.cli">kheops.cli module</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#module-kheops.controllers">kheops.controllers module</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#module-kheops.utils">kheops.utils module</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../index.html">Documentation overview</a><ul>
|
||||
<li><a href="modules.html">kheops</a><ul>
|
||||
<li><a href="kheops.html">kheops package</a><ul>
|
||||
<li><a href="kheops.plugin.html">kheops.plugin package</a><ul>
|
||||
<li>Previous: <a href="kheops.plugin.html" title="previous chapter">kheops.plugin package</a></li>
|
||||
<li>Next: <a href="kheops.plugin.scope.html" title="next chapter">kheops.plugin.scope package</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../_sources/api/kheops.plugin.backend.rst.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
339
docs/_build/html/api/kheops.plugin.html
vendored
339
docs/_build/html/api/kheops.plugin.html
vendored
@ -1,339 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>kheops.plugin package — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" />
|
||||
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
|
||||
<script src="../_static/jquery.js"></script>
|
||||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<link rel="next" title="kheops.plugin.backend package" href="kheops.plugin.backend.html" />
|
||||
<link rel="prev" title="kheops package" href="kheops.html" />
|
||||
|
||||
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="module-kheops.plugin">
|
||||
<span id="kheops-plugin-package"></span><h1>kheops.plugin package<a class="headerlink" href="#module-kheops.plugin" title="Permalink to this headline">¶</a></h1>
|
||||
<section id="subpackages">
|
||||
<h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="toctree-wrapper compound">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="kheops.plugin.backend.html">kheops.plugin.backend package</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="kheops.plugin.backend.html#submodules">Submodules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="kheops.plugin.backend.html#module-kheops.plugin.backend.file">kheops.plugin.backend.file module</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="kheops.plugin.scope.html">kheops.plugin.scope package</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="kheops.plugin.scope.html#submodules">Submodules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="kheops.plugin.scope.html#module-kheops.plugin.scope.hier">kheops.plugin.scope.hier module</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="kheops.plugin.scope.html#module-kheops.plugin.scope.loop">kheops.plugin.scope.loop module</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="kheops.plugin.strategy.html">kheops.plugin.strategy package</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="kheops.plugin.strategy.html#submodules">Submodules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="kheops.plugin.strategy.html#module-kheops.plugin.strategy.last">kheops.plugin.strategy.last module</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="kheops.plugin.strategy.html#module-kheops.plugin.strategy.merge_deep">kheops.plugin.strategy.merge_deep module</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
<section id="submodules">
|
||||
<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
|
||||
</section>
|
||||
<section id="module-kheops.plugin.common">
|
||||
<span id="kheops-plugin-common-module"></span><h2>kheops.plugin.common module<a class="headerlink" href="#module-kheops.plugin.common" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Common libraries for plugins</p>
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.BackendCandidate">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.plugin.common.</span></span><span class="sig-name descname"><span class="pre">BackendCandidate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">path</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">data</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">run</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">status</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.plugin.common.BackendCandidate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.BackendPlugin">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.plugin.common.</span></span><span class="sig-name descname"><span class="pre">BackendPlugin</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">namespace</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.plugin.common.BackendPlugin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="#kheops.plugin.common.KheopsItemPlugin" title="kheops.plugin.common.KheopsItemPlugin"><code class="xref py py-class docutils literal notranslate"><span class="pre">kheops.plugin.common.KheopsItemPlugin</span></code></a></p>
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.BackendPlugin.fetch_data">
|
||||
<span class="sig-name descname"><span class="pre">fetch_data</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">lookups</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">list</span></span></span><a class="headerlink" href="#kheops.plugin.common.BackendPlugin.fetch_data" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.BackendPlugin.plugin_kind">
|
||||
<span class="sig-name descname"><span class="pre">plugin_kind</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'backend'</span></em><a class="headerlink" href="#kheops.plugin.common.BackendPlugin.plugin_kind" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.BackendPlugin.schema_prop">
|
||||
<span class="sig-name descname"><span class="pre">schema_prop</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'backend':</span> <span class="pre">{},</span> <span class="pre">'consul':</span> <span class="pre">{},</span> <span class="pre">'file':</span> <span class="pre">{},</span> <span class="pre">'glob':</span> <span class="pre">{},</span> <span class="pre">'http':</span> <span class="pre">{},</span> <span class="pre">'vault':</span> <span class="pre">{}}</span></em><a class="headerlink" href="#kheops.plugin.common.BackendPlugin.schema_prop" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.ConfPlugin">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.plugin.common.</span></span><span class="sig-name descname"><span class="pre">ConfPlugin</span></span><a class="headerlink" href="#kheops.plugin.common.ConfPlugin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="#kheops.plugin.common.KheopsListPlugin" title="kheops.plugin.common.KheopsListPlugin"><code class="xref py py-class docutils literal notranslate"><span class="pre">kheops.plugin.common.KheopsListPlugin</span></code></a></p>
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.ConfPlugin.plugin_kind">
|
||||
<span class="sig-name descname"><span class="pre">plugin_kind</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'conf'</span></em><a class="headerlink" href="#kheops.plugin.common.ConfPlugin.plugin_kind" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.ConfPlugin.process_list">
|
||||
<span class="sig-name descname"><span class="pre">process_list</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">item_list</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">list</span></span></span><a class="headerlink" href="#kheops.plugin.common.ConfPlugin.process_list" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.ConfPlugin.schema_prop">
|
||||
<span class="sig-name descname"><span class="pre">schema_prop</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'include':</span> <span class="pre">{}}</span></em><a class="headerlink" href="#kheops.plugin.common.ConfPlugin.schema_prop" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.KheopsItemPlugin">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.plugin.common.</span></span><span class="sig-name descname"><span class="pre">KheopsItemPlugin</span></span><a class="headerlink" href="#kheops.plugin.common.KheopsItemPlugin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="#kheops.plugin.common.KheopsPlugin" title="kheops.plugin.common.KheopsPlugin"><code class="xref py py-class docutils literal notranslate"><span class="pre">kheops.plugin.common.KheopsPlugin</span></code></a></p>
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.KheopsItemPlugin.plugin_type">
|
||||
<span class="sig-name descname"><span class="pre">plugin_type</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'item'</span></em><a class="headerlink" href="#kheops.plugin.common.KheopsItemPlugin.plugin_type" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.KheopsItemPlugin.process_item">
|
||||
<span class="sig-name descname"><span class="pre">process_item</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">item</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">list</span></span></span><a class="headerlink" href="#kheops.plugin.common.KheopsItemPlugin.process_item" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.KheopsListPlugin">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.plugin.common.</span></span><span class="sig-name descname"><span class="pre">KheopsListPlugin</span></span><a class="headerlink" href="#kheops.plugin.common.KheopsListPlugin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="#kheops.plugin.common.KheopsPlugin" title="kheops.plugin.common.KheopsPlugin"><code class="xref py py-class docutils literal notranslate"><span class="pre">kheops.plugin.common.KheopsPlugin</span></code></a></p>
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.KheopsListPlugin.plugin_type">
|
||||
<span class="sig-name descname"><span class="pre">plugin_type</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'list'</span></em><a class="headerlink" href="#kheops.plugin.common.KheopsListPlugin.plugin_type" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.KheopsListPlugin.process_list">
|
||||
<span class="sig-name descname"><span class="pre">process_list</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">item_list</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">list</span></span></span><a class="headerlink" href="#kheops.plugin.common.KheopsListPlugin.process_list" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.KheopsPlugin">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.plugin.common.</span></span><span class="sig-name descname"><span class="pre">KheopsPlugin</span></span><a class="headerlink" href="#kheops.plugin.common.KheopsPlugin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.KheopsPlugin.plugin_kind">
|
||||
<span class="sig-name descname"><span class="pre">plugin_kind</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#kheops.plugin.common.KheopsPlugin.plugin_kind" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.KheopsPlugin.plugin_name">
|
||||
<span class="sig-name descname"><span class="pre">plugin_name</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#kheops.plugin.common.KheopsPlugin.plugin_name" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.KheopsPlugin.plugin_type">
|
||||
<span class="sig-name descname"><span class="pre">plugin_type</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#kheops.plugin.common.KheopsPlugin.plugin_type" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.OutPlugin">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.plugin.common.</span></span><span class="sig-name descname"><span class="pre">OutPlugin</span></span><a class="headerlink" href="#kheops.plugin.common.OutPlugin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="#kheops.plugin.common.KheopsItemPlugin" title="kheops.plugin.common.KheopsItemPlugin"><code class="xref py py-class docutils literal notranslate"><span class="pre">kheops.plugin.common.KheopsItemPlugin</span></code></a></p>
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.OutPlugin.plugin_kind">
|
||||
<span class="sig-name descname"><span class="pre">plugin_kind</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'out'</span></em><a class="headerlink" href="#kheops.plugin.common.OutPlugin.plugin_kind" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.OutPlugin.process_item">
|
||||
<span class="sig-name descname"><span class="pre">process_item</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">item</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">list</span></span></span><a class="headerlink" href="#kheops.plugin.common.OutPlugin.process_item" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.OutPlugin.schema_prop">
|
||||
<span class="sig-name descname"><span class="pre">schema_prop</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'_out':</span> <span class="pre">{},</span> <span class="pre">'toml':</span> <span class="pre">{},</span> <span class="pre">'validate':</span> <span class="pre">{}}</span></em><a class="headerlink" href="#kheops.plugin.common.OutPlugin.schema_prop" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.ScopeExtLoop">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.plugin.common.</span></span><span class="sig-name descname"><span class="pre">ScopeExtLoop</span></span><a class="headerlink" href="#kheops.plugin.common.ScopeExtLoop" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||||
<p>This Scope Extension allow to loop over a lookup</p>
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.ScopeExtLoop.loop_over">
|
||||
<span class="sig-name descname"><span class="pre">loop_over</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">lookups</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">conf</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">var_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'item'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">callback_context</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">callback</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.plugin.common.ScopeExtLoop.loop_over" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.ScopeExtLoop.schema_props">
|
||||
<span class="sig-name descname"><span class="pre">schema_props</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'properties':</span> <span class="pre">{'data':</span> <span class="pre">{'anyOf':</span> <span class="pre">[{'type':</span> <span class="pre">'null'},</span> <span class="pre">{'type':</span> <span class="pre">'string'},</span> <span class="pre">{'type':</span> <span class="pre">'array'}],</span> <span class="pre">'default':</span> <span class="pre">None},</span> <span class="pre">'var':</span> <span class="pre">{'default':</span> <span class="pre">'item',</span> <span class="pre">'optional':</span> <span class="pre">True,</span> <span class="pre">'type':</span> <span class="pre">'string'}}}</span></em><a class="headerlink" href="#kheops.plugin.common.ScopeExtLoop.schema_props" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.ScopePlugin">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.plugin.common.</span></span><span class="sig-name descname"><span class="pre">ScopePlugin</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">namespace</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.plugin.common.ScopePlugin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="#kheops.plugin.common.KheopsListPlugin" title="kheops.plugin.common.KheopsListPlugin"><code class="xref py py-class docutils literal notranslate"><span class="pre">kheops.plugin.common.KheopsListPlugin</span></code></a></p>
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.ScopePlugin.plugin_kind">
|
||||
<span class="sig-name descname"><span class="pre">plugin_kind</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'scope'</span></em><a class="headerlink" href="#kheops.plugin.common.ScopePlugin.plugin_kind" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.ScopePlugin.process_item">
|
||||
<span class="sig-name descname"><span class="pre">process_item</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">item_list</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">list</span></span></span><a class="headerlink" href="#kheops.plugin.common.ScopePlugin.process_item" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.ScopePlugin.schema_prop">
|
||||
<span class="sig-name descname"><span class="pre">schema_prop</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'_scope':</span> <span class="pre">[],</span> <span class="pre">'hier_N':</span> <span class="pre">{},</span> <span class="pre">'init':</span> <span class="pre">{},</span> <span class="pre">'loop_N':</span> <span class="pre">{}}</span></em><a class="headerlink" href="#kheops.plugin.common.ScopePlugin.schema_prop" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.StrategyPlugin">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.plugin.common.</span></span><span class="sig-name descname"><span class="pre">StrategyPlugin</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">namespace</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.plugin.common.StrategyPlugin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="#kheops.plugin.common.KheopsItemPlugin" title="kheops.plugin.common.KheopsItemPlugin"><code class="xref py py-class docutils literal notranslate"><span class="pre">kheops.plugin.common.KheopsItemPlugin</span></code></a></p>
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.StrategyPlugin.merge_results">
|
||||
<span class="sig-name descname"><span class="pre">merge_results</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">candidates</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rule</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">list</span></span></span><a class="headerlink" href="#kheops.plugin.common.StrategyPlugin.merge_results" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.StrategyPlugin.plugin_kind">
|
||||
<span class="sig-name descname"><span class="pre">plugin_kind</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'strategy'</span></em><a class="headerlink" href="#kheops.plugin.common.StrategyPlugin.plugin_kind" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.common.StrategyPlugin.schema_prop">
|
||||
<span class="sig-name descname"><span class="pre">schema_prop</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'_strategy':</span> <span class="pre">{},</span> <span class="pre">'first':</span> <span class="pre">{},</span> <span class="pre">'last':</span> <span class="pre">{},</span> <span class="pre">'merge':</span> <span class="pre">{},</span> <span class="pre">'schema':</span> <span class="pre">{},</span> <span class="pre">'smart':</span> <span class="pre">{}}</span></em><a class="headerlink" href="#kheops.plugin.common.StrategyPlugin.schema_prop" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/app/index.html">Application</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/learn/index.html">Learn</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="modules.html">Python API</a><ul class="current">
|
||||
<li class="toctree-l2 current"><a class="reference internal" href="kheops.html">kheops package</a><ul class="current">
|
||||
<li class="toctree-l3 current"><a class="reference internal" href="kheops.html#subpackages">Subpackages</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#submodules">Submodules</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#module-kheops.app">kheops.app module</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#module-kheops.cli">kheops.cli module</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#module-kheops.controllers">kheops.controllers module</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#module-kheops.utils">kheops.utils module</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../index.html">Documentation overview</a><ul>
|
||||
<li><a href="modules.html">kheops</a><ul>
|
||||
<li><a href="kheops.html">kheops package</a><ul>
|
||||
<li>Previous: <a href="kheops.html" title="previous chapter">kheops package</a></li>
|
||||
<li>Next: <a href="kheops.plugin.backend.html" title="next chapter">kheops.plugin.backend package</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../_sources/api/kheops.plugin.rst.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
165
docs/_build/html/api/kheops.plugin.scope.html
vendored
165
docs/_build/html/api/kheops.plugin.scope.html
vendored
@ -1,165 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>kheops.plugin.scope package — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" />
|
||||
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
|
||||
<script src="../_static/jquery.js"></script>
|
||||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<link rel="next" title="kheops.plugin.strategy package" href="kheops.plugin.strategy.html" />
|
||||
<link rel="prev" title="kheops.plugin.backend package" href="kheops.plugin.backend.html" />
|
||||
|
||||
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="module-kheops.plugin.scope">
|
||||
<span id="kheops-plugin-scope-package"></span><h1>kheops.plugin.scope package<a class="headerlink" href="#module-kheops.plugin.scope" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Scope plugins</p>
|
||||
<section id="submodules">
|
||||
<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
|
||||
</section>
|
||||
<section id="module-kheops.plugin.scope.hier">
|
||||
<span id="kheops-plugin-scope-hier-module"></span><h2>kheops.plugin.scope.hier module<a class="headerlink" href="#module-kheops.plugin.scope.hier" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Hierarchy backend plugin</p>
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.scope.hier.Plugin">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.plugin.scope.hier.</span></span><span class="sig-name descname"><span class="pre">Plugin</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">namespace</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.plugin.scope.hier.Plugin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="kheops.plugin.html#kheops.plugin.common.ScopePlugin" title="kheops.plugin.common.ScopePlugin"><code class="xref py py-class docutils literal notranslate"><span class="pre">kheops.plugin.common.ScopePlugin</span></code></a>, <a class="reference internal" href="kheops.plugin.html#kheops.plugin.common.ScopeExtLoop" title="kheops.plugin.common.ScopeExtLoop"><code class="xref py py-class docutils literal notranslate"><span class="pre">kheops.plugin.common.ScopeExtLoop</span></code></a></p>
|
||||
<p>Hierarchy plugin</p>
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.scope.hier.Plugin.process_items">
|
||||
<span class="sig-name descname"><span class="pre">process_items</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">lookups</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">conf</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.plugin.scope.hier.Plugin.process_items" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
</section>
|
||||
<section id="module-kheops.plugin.scope.loop">
|
||||
<span id="kheops-plugin-scope-loop-module"></span><h2>kheops.plugin.scope.loop module<a class="headerlink" href="#module-kheops.plugin.scope.loop" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Hierarchy backend plugin</p>
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.scope.loop.Plugin">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.plugin.scope.loop.</span></span><span class="sig-name descname"><span class="pre">Plugin</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">namespace</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.plugin.scope.loop.Plugin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="kheops.plugin.html#kheops.plugin.common.ScopePlugin" title="kheops.plugin.common.ScopePlugin"><code class="xref py py-class docutils literal notranslate"><span class="pre">kheops.plugin.common.ScopePlugin</span></code></a>, <a class="reference internal" href="kheops.plugin.html#kheops.plugin.common.ScopeExtLoop" title="kheops.plugin.common.ScopeExtLoop"><code class="xref py py-class docutils literal notranslate"><span class="pre">kheops.plugin.common.ScopeExtLoop</span></code></a></p>
|
||||
<p>Hierarchy plugin</p>
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.scope.loop.Plugin.process_items">
|
||||
<span class="sig-name descname"><span class="pre">process_items</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">lookups</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">conf</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.plugin.scope.loop.Plugin.process_items" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/app/index.html">Application</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/learn/index.html">Learn</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="modules.html">Python API</a><ul class="current">
|
||||
<li class="toctree-l2 current"><a class="reference internal" href="kheops.html">kheops package</a><ul class="current">
|
||||
<li class="toctree-l3 current"><a class="reference internal" href="kheops.html#subpackages">Subpackages</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#submodules">Submodules</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#module-kheops.app">kheops.app module</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#module-kheops.cli">kheops.cli module</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#module-kheops.controllers">kheops.controllers module</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#module-kheops.utils">kheops.utils module</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../index.html">Documentation overview</a><ul>
|
||||
<li><a href="modules.html">kheops</a><ul>
|
||||
<li><a href="kheops.html">kheops package</a><ul>
|
||||
<li><a href="kheops.plugin.html">kheops.plugin package</a><ul>
|
||||
<li>Previous: <a href="kheops.plugin.backend.html" title="previous chapter">kheops.plugin.backend package</a></li>
|
||||
<li>Next: <a href="kheops.plugin.strategy.html" title="next chapter">kheops.plugin.strategy package</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../_sources/api/kheops.plugin.scope.rst.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
175
docs/_build/html/api/kheops.plugin.strategy.html
vendored
175
docs/_build/html/api/kheops.plugin.strategy.html
vendored
@ -1,175 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>kheops.plugin.strategy package — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" />
|
||||
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
|
||||
<script src="../_static/jquery.js"></script>
|
||||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<link rel="prev" title="kheops.plugin.scope package" href="kheops.plugin.scope.html" />
|
||||
|
||||
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="module-kheops.plugin.strategy">
|
||||
<span id="kheops-plugin-strategy-package"></span><h1>kheops.plugin.strategy package<a class="headerlink" href="#module-kheops.plugin.strategy" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Strategy plugins</p>
|
||||
<section id="submodules">
|
||||
<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
|
||||
</section>
|
||||
<section id="module-kheops.plugin.strategy.last">
|
||||
<span id="kheops-plugin-strategy-last-module"></span><h2>kheops.plugin.strategy.last module<a class="headerlink" href="#module-kheops.plugin.strategy.last" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Last strategy Plugin</p>
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.strategy.last.Plugin">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.plugin.strategy.last.</span></span><span class="sig-name descname"><span class="pre">Plugin</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">namespace</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.plugin.strategy.last.Plugin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="kheops.plugin.html#kheops.plugin.common.StrategyPlugin" title="kheops.plugin.common.StrategyPlugin"><code class="xref py py-class docutils literal notranslate"><span class="pre">kheops.plugin.common.StrategyPlugin</span></code></a></p>
|
||||
<p>Last strategy plugin</p>
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.strategy.last.Plugin.merge_results">
|
||||
<span class="sig-name descname"><span class="pre">merge_results</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">candidates:</span> <span class="pre">list</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rule:</span> <span class="pre">dict</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">query)</span> <span class="pre">-></span> <span class="pre">(<class</span> <span class="pre">'list'></span></span></em>, <em class="sig-param"><span class="n"><span class="pre"><class</span> <span class="pre">'dict'></span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.plugin.strategy.last.Plugin.merge_results" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Return results</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.strategy.last.Plugin.selector">
|
||||
<span class="sig-name descname"><span class="pre">selector</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'last'</span></em><a class="headerlink" href="#kheops.plugin.strategy.last.Plugin.selector" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
</section>
|
||||
<section id="module-kheops.plugin.strategy.merge_deep">
|
||||
<span id="kheops-plugin-strategy-merge-deep-module"></span><h2>kheops.plugin.strategy.merge_deep module<a class="headerlink" href="#module-kheops.plugin.strategy.merge_deep" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Last strategy Plugin</p>
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.strategy.merge_deep.Plugin">
|
||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">kheops.plugin.strategy.merge_deep.</span></span><span class="sig-name descname"><span class="pre">Plugin</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">namespace</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.plugin.strategy.merge_deep.Plugin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="kheops.plugin.html#kheops.plugin.common.StrategyPlugin" title="kheops.plugin.common.StrategyPlugin"><code class="xref py py-class docutils literal notranslate"><span class="pre">kheops.plugin.common.StrategyPlugin</span></code></a></p>
|
||||
<p>Last strategy plugin</p>
|
||||
<dl class="py method">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.strategy.merge_deep.Plugin.merge_results">
|
||||
<span class="sig-name descname"><span class="pre">merge_results</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">candidates:</span> <span class="pre">list</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rule:</span> <span class="pre">dict</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">query)</span> <span class="pre">-></span> <span class="pre">(<class</span> <span class="pre">'list'></span></span></em>, <em class="sig-param"><span class="n"><span class="pre"><class</span> <span class="pre">'dict'></span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#kheops.plugin.strategy.merge_deep.Plugin.merge_results" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Return results</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
<dt class="sig sig-object py" id="kheops.plugin.strategy.merge_deep.Plugin.selector">
|
||||
<span class="sig-name descname"><span class="pre">selector</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'matched'</span></em><a class="headerlink" href="#kheops.plugin.strategy.merge_deep.Plugin.selector" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/app/index.html">Application</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/learn/index.html">Learn</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="modules.html">Python API</a><ul class="current">
|
||||
<li class="toctree-l2 current"><a class="reference internal" href="kheops.html">kheops package</a><ul class="current">
|
||||
<li class="toctree-l3 current"><a class="reference internal" href="kheops.html#subpackages">Subpackages</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#submodules">Submodules</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#module-kheops.app">kheops.app module</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#module-kheops.cli">kheops.cli module</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#module-kheops.controllers">kheops.controllers module</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.html#module-kheops.utils">kheops.utils module</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../index.html">Documentation overview</a><ul>
|
||||
<li><a href="modules.html">kheops</a><ul>
|
||||
<li><a href="kheops.html">kheops package</a><ul>
|
||||
<li><a href="kheops.plugin.html">kheops.plugin package</a><ul>
|
||||
<li>Previous: <a href="kheops.plugin.scope.html" title="previous chapter">kheops.plugin.scope package</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../_sources/api/kheops.plugin.strategy.rst.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
136
docs/_build/html/api/modules.html
vendored
136
docs/_build/html/api/modules.html
vendored
@ -1,136 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>kheops — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" />
|
||||
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
|
||||
<script src="../_static/jquery.js"></script>
|
||||
<script src="../_static/underscore.js"></script>
|
||||
<script src="../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<link rel="next" title="kheops package" href="kheops.html" />
|
||||
<link rel="prev" title="Ansible" href="../docs/guide/ansible/index.html" />
|
||||
|
||||
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="kheops">
|
||||
<h1>kheops<a class="headerlink" href="#kheops" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="toctree-wrapper compound">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="kheops.html">kheops package</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="kheops.html#subpackages">Subpackages</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="kheops.plugin.html">kheops.plugin package</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="kheops.plugin.html#subpackages">Subpackages</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="kheops.plugin.html#submodules">Submodules</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="kheops.plugin.html#module-kheops.plugin.common">kheops.plugin.common module</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="kheops.html#submodules">Submodules</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="kheops.html#module-kheops.app">kheops.app module</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="kheops.html#module-kheops.cli">kheops.cli module</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="kheops.html#module-kheops.controllers">kheops.controllers module</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="kheops.html#module-kheops.utils">kheops.utils module</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/app/index.html">Application</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/learn/index.html">Learn</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../docs/guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Python API</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="kheops.html">kheops package</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../index.html">Documentation overview</a><ul>
|
||||
<li>Previous: <a href="../docs/guide/ansible/index.html" title="previous chapter">Ansible</a></li>
|
||||
<li>Next: <a href="kheops.html" title="next chapter">kheops package</a></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../_sources/api/modules.rst.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
122
docs/_build/html/docs/app/cli.html
vendored
122
docs/_build/html/docs/app/cli.html
vendored
@ -1,122 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>CLI — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/alabaster.css" />
|
||||
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/jquery.js"></script>
|
||||
<script src="../../_static/underscore.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="Config" href="config.html" />
|
||||
<link rel="prev" title="usage !!!" href="usage.html" />
|
||||
|
||||
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="cli">
|
||||
<h1>CLI<a class="headerlink" href="#cli" title="Permalink to this headline">¶</a></h1>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Application</a><ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="installation.html">Instalation procedure</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="usage.html">usage !!!</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">CLI</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html">Config</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html">Examples …</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="internal.html">Internals</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../learn/index.html">Learn</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../api/modules.html">Python API</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../../index.html">Documentation overview</a><ul>
|
||||
<li><a href="index.html">Application</a><ul>
|
||||
<li>Previous: <a href="usage.html" title="previous chapter">usage !!!</a></li>
|
||||
<li>Next: <a href="config.html" title="next chapter">Config</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../../_sources/docs/app/cli.md.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
122
docs/_build/html/docs/app/config.html
vendored
122
docs/_build/html/docs/app/config.html
vendored
@ -1,122 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>Config — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/alabaster.css" />
|
||||
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/jquery.js"></script>
|
||||
<script src="../../_static/underscore.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="Examples …" href="examples.html" />
|
||||
<link rel="prev" title="CLI" href="cli.html" />
|
||||
|
||||
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="config">
|
||||
<h1>Config<a class="headerlink" href="#config" title="Permalink to this headline">¶</a></h1>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Application</a><ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="installation.html">Instalation procedure</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="usage.html">usage !!!</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="cli.html">CLI</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Config</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html">Examples …</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="internal.html">Internals</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../learn/index.html">Learn</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../api/modules.html">Python API</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../../index.html">Documentation overview</a><ul>
|
||||
<li><a href="index.html">Application</a><ul>
|
||||
<li>Previous: <a href="cli.html" title="previous chapter">CLI</a></li>
|
||||
<li>Next: <a href="examples.html" title="next chapter">Examples …</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../../_sources/docs/app/config.md.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
129
docs/_build/html/docs/app/examples.html
vendored
129
docs/_build/html/docs/app/examples.html
vendored
@ -1,129 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>Examples … — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/alabaster.css" />
|
||||
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/jquery.js"></script>
|
||||
<script src="../../_static/underscore.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="Internals" href="internal.html" />
|
||||
<link rel="prev" title="Config" href="config.html" />
|
||||
|
||||
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="examples">
|
||||
<h1><a class="toc-backref" href="#id1">Examples …</a><a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h1>
|
||||
<p>examples</p>
|
||||
<div class="contents topic" id="table-of-contents">
|
||||
<p class="topic-title">Table of Contents</p>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="#examples" id="id1">Examples …</a></p></li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Application</a><ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="installation.html">Instalation procedure</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="usage.html">usage !!!</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="cli.html">CLI</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html">Config</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Examples …</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="internal.html">Internals</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../learn/index.html">Learn</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../api/modules.html">Python API</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../../index.html">Documentation overview</a><ul>
|
||||
<li><a href="index.html">Application</a><ul>
|
||||
<li>Previous: <a href="config.html" title="previous chapter">Config</a></li>
|
||||
<li>Next: <a href="internal.html" title="next chapter">Internals</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../../_sources/docs/app/examples.rst.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
132
docs/_build/html/docs/app/index.html
vendored
132
docs/_build/html/docs/app/index.html
vendored
@ -1,132 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>Application — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/alabaster.css" />
|
||||
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/jquery.js"></script>
|
||||
<script src="../../_static/underscore.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="Instalation procedure" href="installation.html" />
|
||||
<link rel="prev" title="Khéops documentation" href="../../index.html" />
|
||||
|
||||
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="application">
|
||||
<h1>Application<a class="headerlink" href="#application" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="toctree-wrapper compound">
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="installation.html">Instalation procedure</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="usage.html">usage !!!</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="cli.html">CLI</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="config.html">Config</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="examples.html">Examples …</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="internal.html">Internals</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<p>Application documentation</p>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Application</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="installation.html">Instalation procedure</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="usage.html">usage !!!</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="cli.html">CLI</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html">Config</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html">Examples …</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="internal.html">Internals</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../learn/index.html">Learn</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../api/modules.html">Python API</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../../index.html">Documentation overview</a><ul>
|
||||
<li>Previous: <a href="../../index.html" title="previous chapter">Khéops documentation</a></li>
|
||||
<li>Next: <a href="installation.html" title="next chapter">Instalation procedure</a></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../../_sources/docs/app/index.rst.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
122
docs/_build/html/docs/app/installation.html
vendored
122
docs/_build/html/docs/app/installation.html
vendored
@ -1,122 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>Instalation procedure — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/alabaster.css" />
|
||||
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/jquery.js"></script>
|
||||
<script src="../../_static/underscore.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="usage !!!" href="usage.html" />
|
||||
<link rel="prev" title="Application" href="index.html" />
|
||||
|
||||
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="instalation-procedure">
|
||||
<h1>Instalation procedure<a class="headerlink" href="#instalation-procedure" title="Permalink to this headline">¶</a></h1>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Application</a><ul class="current">
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Instalation procedure</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="usage.html">usage !!!</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="cli.html">CLI</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html">Config</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html">Examples …</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="internal.html">Internals</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../learn/index.html">Learn</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../api/modules.html">Python API</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../../index.html">Documentation overview</a><ul>
|
||||
<li><a href="index.html">Application</a><ul>
|
||||
<li>Previous: <a href="index.html" title="previous chapter">Application</a></li>
|
||||
<li>Next: <a href="usage.html" title="next chapter">usage !!!</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../../_sources/docs/app/installation.rst.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
178
docs/_build/html/docs/app/internal.html
vendored
178
docs/_build/html/docs/app/internal.html
vendored
@ -1,178 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>Internals — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/alabaster.css" />
|
||||
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/jquery.js"></script>
|
||||
<script src="../../_static/underscore.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="Learn" href="../learn/index.html" />
|
||||
<link rel="prev" title="Examples …" href="examples.html" />
|
||||
|
||||
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="internals">
|
||||
<h1>Internals<a class="headerlink" href="#internals" title="Permalink to this headline">¶</a></h1>
|
||||
<ul class="simple">
|
||||
<li><p>101: TECHINICAL How works a hierarchical data lookup?</p>
|
||||
<ul>
|
||||
<li><p>Query a key</p>
|
||||
<ul>
|
||||
<li><p>Can be a simple string or complex data</p></li>
|
||||
<li><p>Can be anything in json compatible</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>Kheops will resolve query in 2 parts:</p>
|
||||
<ul>
|
||||
<li><p>It will first look in different locations the key. It is usually files, but it can also be an url or anything. The queried data must be a valid json data type (TOFIX: So it works also for yaml, toml …. it supports <a class="reference external" href="https://github.com/ssato/python-anyconfig">anyconfig</a> )</p>
|
||||
<ul>
|
||||
<li><p>Example: The <code class="docutils literal notranslate"><span class="pre">path</span></code> strategy will allow you to target</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>Then it will process all results and load a strategy to resolve which results to keep.
|
||||
Example: The <code class="docutils literal notranslate"><span class="pre">last</span></code> strategy consists in keeping always the last result while the <code class="docutils literal notranslate"><span class="pre">merge</span></code> strategy consists in merging inteligentelly data. This is quite useful for dict or lists.</p></li>
|
||||
<li></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>Lookup data in a tree of files</p>
|
||||
<ul>
|
||||
<li><p>Goes sequentially according the backends list</p>
|
||||
<ul>
|
||||
<li><p>Backend/Engine list is modular</p></li>
|
||||
<li><p>Engine Plugin: Jerakia/HIera/Ansible/Curl</p></li>
|
||||
<li><p>Backend Plugin: loop/hier</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>All result are returned, and then the rules are applied</p></li>
|
||||
<li><p>Rules match to a key and apply a strategy (essentially determine if and how the different value are merged or replaced). It can also apply filter to the result and modify its content (future).</p>
|
||||
<ul>
|
||||
<li><p>This is modular</p></li>
|
||||
<li><p>Strategy: last/schema</p>
|
||||
<ul>
|
||||
<li><p>Last will always take the last found value, whatever what it previously found.</p></li>
|
||||
<li><p>schema: It will take into account the strucutre of the data and try to merge them intelligentelly. See more on</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>Then it returns the result</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>Use cases</p>
|
||||
<ul>
|
||||
<li><p>Ansible integration</p></li>
|
||||
<li><p>Generic SOT</p></li>
|
||||
<li><p>Rest API (Future)</p></li>
|
||||
<li><p>More !!!!</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Application</a><ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="installation.html">Instalation procedure</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="usage.html">usage !!!</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="cli.html">CLI</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html">Config</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html">Examples …</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Internals</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../learn/index.html">Learn</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../api/modules.html">Python API</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../../index.html">Documentation overview</a><ul>
|
||||
<li><a href="index.html">Application</a><ul>
|
||||
<li>Previous: <a href="examples.html" title="previous chapter">Examples …</a></li>
|
||||
<li>Next: <a href="../learn/index.html" title="next chapter">Learn</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../../_sources/docs/app/internal.md.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
122
docs/_build/html/docs/app/usage.html
vendored
122
docs/_build/html/docs/app/usage.html
vendored
@ -1,122 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>usage !!! — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/alabaster.css" />
|
||||
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/jquery.js"></script>
|
||||
<script src="../../_static/underscore.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="CLI" href="cli.html" />
|
||||
<link rel="prev" title="Instalation procedure" href="installation.html" />
|
||||
|
||||
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="usage">
|
||||
<h1>usage !!!<a class="headerlink" href="#usage" title="Permalink to this headline">¶</a></h1>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Application</a><ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="installation.html">Instalation procedure</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">usage !!!</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="cli.html">CLI</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html">Config</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html">Examples …</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="internal.html">Internals</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../learn/index.html">Learn</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../api/modules.html">Python API</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../../index.html">Documentation overview</a><ul>
|
||||
<li><a href="index.html">Application</a><ul>
|
||||
<li>Previous: <a href="installation.html" title="previous chapter">Instalation procedure</a></li>
|
||||
<li>Next: <a href="cli.html" title="next chapter">CLI</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../../_sources/docs/app/usage.rst.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
138
docs/_build/html/docs/guide/ansible/index.html
vendored
138
docs/_build/html/docs/guide/ansible/index.html
vendored
@ -1,138 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>Ansible — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../../_static/alabaster.css" />
|
||||
<script data-url_root="../../../" id="documentation_options" src="../../../_static/documentation_options.js"></script>
|
||||
<script src="../../../_static/jquery.js"></script>
|
||||
<script src="../../../_static/underscore.js"></script>
|
||||
<script src="../../../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../../search.html" />
|
||||
<link rel="next" title="kheops" href="../../../api/modules.html" />
|
||||
<link rel="prev" title="Learn 104" href="../best_practices.html" />
|
||||
|
||||
<link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="ansible">
|
||||
<h1>Ansible<a class="headerlink" href="#ansible" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Topics:</p>
|
||||
<ol class="arabic simple">
|
||||
<li><p>Apply role/profile pattern</p></li>
|
||||
</ol>
|
||||
<ul class="simple">
|
||||
<li><p>Mission: We want to apply to profile/class pattern to ansible inventories and playbooks.</p></li>
|
||||
<li><p>Always use dynamic inventories</p>
|
||||
<ul>
|
||||
<li><p>Static inventories are for shorthand aliases</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>Design a simple tree</p></li>
|
||||
<li><p>Take advantages of this to generate dynamic ansible groups</p>
|
||||
<ul>
|
||||
<li><p>Use composed plugin</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>THe power of ansible-tree</p></li>
|
||||
<li><p>Assign playbooks to specific roles</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../../../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../app/index.html">Application</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../learn/index.html">Learn</a></li>
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">Guides</a><ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="../best_practices.html">Learn 104</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Ansible</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../../api/modules.html">Python API</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../../../index.html">Documentation overview</a><ul>
|
||||
<li><a href="../index.html">Guides</a><ul>
|
||||
<li>Previous: <a href="../best_practices.html" title="previous chapter">Learn 104</a></li>
|
||||
<li>Next: <a href="../../../api/modules.html" title="next chapter">kheops</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../../../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../../../_sources/docs/guide/ansible/index.md.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
188
docs/_build/html/docs/guide/best_practices.html
vendored
188
docs/_build/html/docs/guide/best_practices.html
vendored
@ -1,188 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>Learn 104 — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/alabaster.css" />
|
||||
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/jquery.js"></script>
|
||||
<script src="../../_static/underscore.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="Ansible" href="ansible/index.html" />
|
||||
<link rel="prev" title="Guides" href="index.html" />
|
||||
|
||||
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="learn-104">
|
||||
<h1>Learn 104<a class="headerlink" href="#learn-104" title="Permalink to this headline">¶</a></h1>
|
||||
<ul>
|
||||
<li><p>104: Best practices</p>
|
||||
<ul>
|
||||
<li><p>Going into IaC</p>
|
||||
<ul class="simple">
|
||||
<li><p>Use git to track your tree</p></li>
|
||||
</ul>
|
||||
<ul class="simple">
|
||||
<li><p>D.R.Y.</p>
|
||||
<ul>
|
||||
<li><p>Things are quite easily moving</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>Code structure</p>
|
||||
<ul class="simple">
|
||||
<li><p>Profile and Class</p>
|
||||
<ul>
|
||||
<li><p>Role and profiles key lookup</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>Hierarchies</p>
|
||||
<ul>
|
||||
<li><p>Foreman</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>Use environnements, site, locatation …</p></li>
|
||||
<li><p>Common keys vs dedicated keys</p>
|
||||
<ul>
|
||||
<li><p>The profile key, default placeholder</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>The resource modele</p>
|
||||
<ul>
|
||||
<li><p>It’s like a puppet resource, a catalog of items to apply</p></li>
|
||||
<li><p>It’s possible to use this model with ansible, and it change radically the way Ansible can be used then. See integration.</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>Debugging</p>
|
||||
<ul class="simple">
|
||||
<li><p>Use the explain mode</p>
|
||||
<ul>
|
||||
<li><p>And trace mode</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>Use GNU tools</p>
|
||||
<ul>
|
||||
<li><p>tree</p></li>
|
||||
<li><p>grep -Rw <key> .</p></li>
|
||||
<li><p>git status -sb</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>With ansible.</p>
|
||||
<ul class="simple">
|
||||
<li><p>Use a strict naming scheme, apply your Ansible usual name schema into Kheops</p></li>
|
||||
<li><p>You can put some jinja variable into Kheops, Ansible will be able to replace and understand them during the runtime</p></li>
|
||||
<li><p>Dynamic inventories and ENC</p></li>
|
||||
<li><p>Apply products</p></li>
|
||||
<li><p>Apply roles/profiles pattern</p></li>
|
||||
<li><p>Use resource based roles => See my collection, it just works</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../app/index.html">Application</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../learn/index.html">Learn</a></li>
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Guides</a><ul class="current">
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Learn 104</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="ansible/index.html">Ansible</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../api/modules.html">Python API</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../../index.html">Documentation overview</a><ul>
|
||||
<li><a href="index.html">Guides</a><ul>
|
||||
<li>Previous: <a href="index.html" title="previous chapter">Guides</a></li>
|
||||
<li>Next: <a href="ansible/index.html" title="next chapter">Ansible</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../../_sources/docs/guide/best_practices.md.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
122
docs/_build/html/docs/guide/index.html
vendored
122
docs/_build/html/docs/guide/index.html
vendored
@ -1,122 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>Guides — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/alabaster.css" />
|
||||
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/jquery.js"></script>
|
||||
<script src="../../_static/underscore.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="Learn 104" href="best_practices.html" />
|
||||
<link rel="prev" title="Learn 105" href="../learn/105.html" />
|
||||
|
||||
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="guides">
|
||||
<h1>Guides<a class="headerlink" href="#guides" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="toctree-wrapper compound">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="best_practices.html">Learn 104</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="ansible/index.html">Ansible</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../app/index.html">Application</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../learn/index.html">Learn</a></li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Guides</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="best_practices.html">Learn 104</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="ansible/index.html">Ansible</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../api/modules.html">Python API</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../../index.html">Documentation overview</a><ul>
|
||||
<li>Previous: <a href="../learn/105.html" title="previous chapter">Learn 105</a></li>
|
||||
<li>Next: <a href="best_practices.html" title="next chapter">Learn 104</a></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../../_sources/docs/guide/index.rst.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
193
docs/_build/html/docs/learn/100.html
vendored
193
docs/_build/html/docs/learn/100.html
vendored
@ -1,193 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>Introduction — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/alabaster.css" />
|
||||
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/jquery.js"></script>
|
||||
<script src="../../_static/underscore.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="Learn 101" href="101.html" />
|
||||
<link rel="prev" title="Khéops 101" href="../../learn/learn101.html" />
|
||||
|
||||
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="introduction">
|
||||
<h1><a class="toc-backref" href="#id2">Introduction</a><a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h1>
|
||||
<p>This part introduce the concept of hierarchical lookups.</p>
|
||||
<div class="contents topic" id="table-of-contents">
|
||||
<p class="topic-title">Table of Contents</p>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="#introduction" id="id2">Introduction</a></p>
|
||||
<ul>
|
||||
<li><p><a class="reference internal" href="#concept" id="id3">Concept</a></p></li>
|
||||
<li><p><a class="reference internal" href="#hierarchical-lookups" id="id4">Hierarchical Lookups</a></p>
|
||||
<ul>
|
||||
<li><p><a class="reference internal" href="#a-hierarchy" id="id5">A hierarchy</a></p></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p><a class="reference internal" href="#applying-this-to-infrastructure-management" id="id6">Applying this to infrastructure management</a></p>
|
||||
<ul>
|
||||
<li><p><a class="reference internal" href="#id1" id="id7">A hierarchy</a></p></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p>Note: This documentation has been partially taken and adapted from <a class="reference external" href="https://web.archive.org/web/20170818010043/http://jerakia.io/documentation/">Jerakia’s Documentation</a></p>
|
||||
</div>
|
||||
<section id="concept">
|
||||
<h2><a class="toc-backref" href="#id3">Concept</a><a class="headerlink" href="#concept" title="Permalink to this headline">¶</a></h2>
|
||||
<p>In essence, Khéops is a tool that can be used to lookup a key value pair, that is to say, given a key it will give back the appropriate value. This is certainly nothing special or new, but the crucial difference here is the way in which the data is looked up. Rather than just querying a flat data source and returning the value for a requested key, when doing a hierarchical lookup we perform multiple queries against a configured hierarchy, transcending down to the next layer in the hierarchy until we find an answer. The end result is that we can define key value pairs on a global basis but then override them under certain conditions based on the hierarchical resolution by placing that key value pair further up the hierarchy for a particular condition.</p>
|
||||
</section>
|
||||
<section id="hierarchical-lookups">
|
||||
<h2><a class="toc-backref" href="#id4">Hierarchical Lookups</a><a class="headerlink" href="#hierarchical-lookups" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Let’s look at a fairly simple example, you need to determine from a data lookup what currency you need to bill a user coming into your site. You already have data that tells you which country and continent that your user is based in. You determine that to start with you will bill everyone in USD regardless of where they come from. So you store the key currency with a value of USD in a data source somewhere, and whenever a user starts a transaction, you look up that key, and they get billed in USD</p>
|
||||
<p>Now comes the fun part. You decide that you would like to now start billing customers from European countries in EUR. Since you already know the continent your user is coming from you could add another key to your data store and then use conditional logic within your code to determine which key to look up, but now we’re adding complexity within the code implementing conditional logic to determine how to resolve the correct value. This is the very thing that hierarchical lookups aim to solve, to structure the data and perform the lookups in such a way that is transparent to the program requesting the data.</p>
|
||||
<p>Lets add another layer of complexity, you’ve agreed to use EUR for all users based in Europe, but you must now account for the UK and Switzerland which deal in GBP and CHF respectively, and potentially more. Now the demands for conditional logic on the program requesting the data are getting more complicated. To avoid lots of very convoluted conditional logic in your code you could simply map every country in the world to a currency and look up one key, that would be the cleanest method right now. But remember that we generally want to use USD for everyone and only care about changing this default under certain circumstances. If we think about this carefully, we have a hierarchy of importance. The country (in the case of UK or Switzerland), the continent in the case of Europe and then the rest of the world. This is where a hierarchical lookup simplifies the management of this data. The hierarchy we need to search here is quite simple;</p>
|
||||
<section id="a-hierarchy">
|
||||
<h3><a class="toc-backref" href="#id5">A hierarchy</a><a class="headerlink" href="#a-hierarchy" title="Permalink to this headline">¶</a></h3>
|
||||
<p>When we’re dealing with storing data for hierarchical searches, we end up with a tiered hierarchy that looks something like this. A lookup request to Khéops contains two things, they key that is being looked up, in this case “currency”, and some data about the context of the request which Khéops refers to as the scope. In this instance the scope contains the country and continent of the user. The scope and the key are used together, so when we are talking about hierarchical lookups, rather than just saying “return the value for this key” we are saying “return the value for this key in the context of this scope”. That’s the main distinction between a normal key value lookup and a hierarchical lookup. If you’re thinking of ways to do this in a structured query language (SQL) or some other database API, you might be ok to solve this problem - but this is a stripped down example looking up one value, now imagine we throw in tax parameters, shipping costs, and other fun things into the mix - this becomes a complex beast - but not when we think of this as a simple hierarchy.</p>
|
||||
<p>With a hierarchical data source we can declare a key value pair at the bottom level, in this case Worldwide. We can set that to USD, at this point any lookup request for the currency will return USD. But a hierarchical data source allows us to add a different value for the key “currency” at a different level of the hierarchy, for example we can add a value of EUR at the continent level that will only return that value if the continent is Europe. We can then add separate entries right at the top of the hierarchy for the UK and Switzerland, for requests where the country meets that criteria.</p>
|
||||
<p>From our program we are still making one lookup request for the data, but that data is looked up using a series of queries behind the scenes to resolve the right data. Essentially the lookup will trigger up to three queries. If one query doesn’t return an answer (because there is nothing specific configured in that level of the hierarchy) then it will fall back to the next level, and keep going until it hits an answer, eventually landing at the last level, Worldwide in our example. So a typical lookup for the currency of a user would be handled as;</p>
|
||||
<ul class="simple">
|
||||
<li><p>What is the value for currency for this specific country?</p></li>
|
||||
<li><p>What is the value for currency for this specific continent?</p></li>
|
||||
<li><p>What is the value for currency for everything worldwide?</p></li>
|
||||
</ul>
|
||||
<p>Whichever level of the hierarchy responds first will win, meaning that if a user from China will get a value of USD - because we haven’t specified anything for Asia or China on the continent or country levels of the hierarchy so the lookup will fall through to our default set at the “worldwide” level. However, at the continent level of the hierarchy we specified an override of EUR for requests where the continent of the requestor is Europe, so users from Germany, France and Spain would get EUR. This wouldn’t be the case for the UK or Switzerland though because we’ve specifically overridden this at the country level, which is higher in the hierarchy so will win over the continent that the country belongs to.</p>
|
||||
<p>So hierarchical lookups are generally about defining a value at the widest possible catchment (eg: worldwide) and moving up the hierarchy overriding that value at the right level.</p>
|
||||
<p>What is key here is that rather than implementing three levels of conditional logic in our code, or mapping the lowest common denominator (country) one to one with currencies for every country in the world (remember in some cases we may not be able to identify the lowest common denominator) we have found a way to express the data in a simple way and provide one simple path to looking up the data. Our program still makes one request for the key currency, the logic involved in resolving the correct value is completely transparent.</p>
|
||||
<p>In this case, we had a scope (the country and continent of the requestor) and a hierarchy to search against that uses both elements of the scope and then falls back to a common catch all.</p>
|
||||
</section>
|
||||
</section>
|
||||
<section id="applying-this-to-infrastructure-management">
|
||||
<h2><a class="toc-backref" href="#id6">Applying this to infrastructure management</a><a class="headerlink" href="#applying-this-to-infrastructure-management" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Khéops is standalone and can be used for any number of applications that can make use of a hierarchical type of data lookup, but it was originally built with configuration management in mind. Infrastructure data lends itself incredibly well to this model of data lookup. Infrastructure data tends to consist of any number of configurable attributes that are used to drive your infrastructure. These could be DNS resolvers, server hostnames, IP addresses, ports, API endpoints…. there is a ton of stuff that we configure on our infrastructures, but most of it is hierarchical. Generally speaking a lot of infrastructure data starts off with a baseline default, for example, what DNS resolver to use. That could be a default value thats used across the whole of your company and you add that as a key value pair to a datastore. Then you find yourself having to override that value for systems configured in your development environment because that environment can’t connect to the production resolvers on your network, you then may deploy your production environment out to a second data centre and you need that location to be different. But we are still dealing with simple hierarchies, so rather than programming conditionals to determine the resolution path of a DNS resolver we could build a simple hierarchy that best represents our infrastructure, such as;</p>
|
||||
<section id="id1">
|
||||
<h3><a class="toc-backref" href="#id7">A hierarchy</a><a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h3>
|
||||
<p>When dealing with a hierarchy like this, a data lookup must give us a key to lookup and contain a scope that tells us the hostname, environment and location of the request. Using the same principles as before our lookup will make up to 4 queries;</p>
|
||||
<blockquote>
|
||||
<div><p>What is the DNS resolver for my particular hostname?
|
||||
What is the DNS resolver for machines that are in my environment?
|
||||
What is the DNS resolver for machines that are in my location?
|
||||
What is the DNS resolver for everyone else?</p>
|
||||
</div></blockquote>
|
||||
<p>Again, this is hierarchical search pattern that will stop at the first query to return an answer and return that value. We can set our global parameters and then override them at the areas we care about. We’ve even got a top level hierarchy entry for that one edge case special snowflake server that is different from everything else on the network, but the lookup method is identical and transparent to the application requesting the data.
|
||||
Khéops</p>
|
||||
<p>This is a generic overview of hierarchical lookups, but in particular as they relate to Khéops. Khéops has way more features that build on top of this principle, like cascading lookups which don’t stop at the first result and will build a combined data structure (HashMap or Array) from all levels of the hierarchy and return a unified result based on the route taken through the hierarchy, and I’ll cover those in a follow up post. It’s also built to be extremely flexible and pluggable allowing you to source your data from pretty much anywhere and ships with an HTTP API meaning you can integrate Khéops with any tool regardless of the underlying language.</p>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../app/index.html">Application</a></li>
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Learn</a><ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../learn/learn101.html">Khéops 101</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#concept">Concept</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#hierarchical-lookups">Hierarchical Lookups</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#applying-this-to-infrastructure-management">Applying this to infrastructure management</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="101.html">Learn 101</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="102.html">Learn 102</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="105.html">Learn 105</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../api/modules.html">Python API</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../../index.html">Documentation overview</a><ul>
|
||||
<li><a href="index.html">Learn</a><ul>
|
||||
<li>Previous: <a href="../../learn/learn101.html" title="previous chapter">Khéops 101</a></li>
|
||||
<li>Next: <a href="101.html" title="next chapter">Learn 101</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../../_sources/docs/learn/100.rst.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
157
docs/_build/html/docs/learn/101.html
vendored
157
docs/_build/html/docs/learn/101.html
vendored
@ -1,157 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>Learn 101 — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/alabaster.css" />
|
||||
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/jquery.js"></script>
|
||||
<script src="../../_static/underscore.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="Learn 102" href="102.html" />
|
||||
<link rel="prev" title="Introduction" href="100.html" />
|
||||
|
||||
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="learn-101">
|
||||
<h1>Learn 101<a class="headerlink" href="#learn-101" title="Permalink to this headline">¶</a></h1>
|
||||
<ul class="simple">
|
||||
<li><p>100: KEEPE IT SIMPLEME How works a hierarchical data lookup?</p>
|
||||
<ul>
|
||||
<li><p>Query a key</p></li>
|
||||
<li><p>Kheops is composed of 2 parts:</p>
|
||||
<ul>
|
||||
<li><p>It will first look in different locations the key. It is usually files, but it can also be an url or anything.</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>Lookup data in a tree of files</p>
|
||||
<ul>
|
||||
<li><p>Goes sequentially according the backends list</p>
|
||||
<ul>
|
||||
<li><p>Backend/Engine list is modular</p></li>
|
||||
<li><p>Engine Plugin: Jerakia/HIera/Ansible/Curl</p></li>
|
||||
<li><p>Backend Plugin: loop/hier</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>All result are returned, and then the rules are applied</p></li>
|
||||
<li><p>Rules match to a key and apply a strategy (essentially determine if and how the different value are merged or replaced). It can also apply filter to the result and modify its content (future).</p>
|
||||
<ul>
|
||||
<li><p>This is modular</p></li>
|
||||
<li><p>Strategy: last/schema</p>
|
||||
<ul>
|
||||
<li><p>Last will always take the last found value, whatever what it previously found.</p></li>
|
||||
<li><p>schema: It will take into account the strucutre of the data and try to merge them intelligentelly.</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>Then it returns the result</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../app/index.html">Application</a></li>
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Learn</a><ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../learn/learn101.html">Khéops 101</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="100.html">Introduction</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Learn 101</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="102.html">Learn 102</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="105.html">Learn 105</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../api/modules.html">Python API</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../../index.html">Documentation overview</a><ul>
|
||||
<li><a href="index.html">Learn</a><ul>
|
||||
<li>Previous: <a href="100.html" title="previous chapter">Introduction</a></li>
|
||||
<li>Next: <a href="102.html" title="next chapter">Learn 102</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../../_sources/docs/learn/101.md.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
156
docs/_build/html/docs/learn/102.html
vendored
156
docs/_build/html/docs/learn/102.html
vendored
@ -1,156 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>Learn 102 — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/alabaster.css" />
|
||||
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/jquery.js"></script>
|
||||
<script src="../../_static/underscore.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="Learn 105" href="105.html" />
|
||||
<link rel="prev" title="Learn 101" href="101.html" />
|
||||
|
||||
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="learn-102">
|
||||
<h1>Learn 102<a class="headerlink" href="#learn-102" title="Permalink to this headline">¶</a></h1>
|
||||
<ul class="simple">
|
||||
<li><p>102: Merging data</p>
|
||||
<ul>
|
||||
<li><p>Query on items/dicts</p>
|
||||
<ul>
|
||||
<li><p>With merge strategy</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>Query on arrays/lists</p>
|
||||
<ul>
|
||||
<li><p>It appends, replace or what ?</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>Query other types</p></li>
|
||||
<li><p>Query without key (!)</p>
|
||||
<ul>
|
||||
<li><p>Not the actual result, schema are not sub applied</p>
|
||||
<ul>
|
||||
<li><p>BUG: TO Fix ? Performance issue ?</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><p>103: Scoped queries</p>
|
||||
<ul>
|
||||
<li><p>Add scoped variables</p></li>
|
||||
<li><p>Add variables to trees</p></li>
|
||||
<li><p>Use loops</p></li>
|
||||
<li><p>Use hierarchies, for hostgroups</p></li>
|
||||
<li><p>Use includes for other files (Future)</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../app/index.html">Application</a></li>
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Learn</a><ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../learn/learn101.html">Khéops 101</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="100.html">Introduction</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="101.html">Learn 101</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Learn 102</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="105.html">Learn 105</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../api/modules.html">Python API</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../../index.html">Documentation overview</a><ul>
|
||||
<li><a href="index.html">Learn</a><ul>
|
||||
<li>Previous: <a href="101.html" title="previous chapter">Learn 101</a></li>
|
||||
<li>Next: <a href="105.html" title="next chapter">Learn 105</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../../_sources/docs/learn/102.md.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
131
docs/_build/html/docs/learn/105.html
vendored
131
docs/_build/html/docs/learn/105.html
vendored
@ -1,131 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>Learn 105 — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/alabaster.css" />
|
||||
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/jquery.js"></script>
|
||||
<script src="../../_static/underscore.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="Guides" href="../guide/index.html" />
|
||||
<link rel="prev" title="Learn 102" href="102.html" />
|
||||
|
||||
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="learn-105">
|
||||
<h1>Learn 105<a class="headerlink" href="#learn-105" title="Permalink to this headline">¶</a></h1>
|
||||
<ul class="simple">
|
||||
<li><p>105: Integrations</p>
|
||||
<ul>
|
||||
<li><p>Integration in Ansible</p></li>
|
||||
<li><p>Integration as a web server (future)</p></li>
|
||||
<li><p>Integration with Puppet</p></li>
|
||||
<li><p>Integration with Foreman</p></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../app/index.html">Application</a></li>
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Learn</a><ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../learn/learn101.html">Khéops 101</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="100.html">Introduction</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="101.html">Learn 101</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="102.html">Learn 102</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Learn 105</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../api/modules.html">Python API</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../../index.html">Documentation overview</a><ul>
|
||||
<li><a href="index.html">Learn</a><ul>
|
||||
<li>Previous: <a href="102.html" title="previous chapter">Learn 102</a></li>
|
||||
<li>Next: <a href="../guide/index.html" title="next chapter">Guides</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../../_sources/docs/learn/105.md.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
145
docs/_build/html/docs/learn/index.html
vendored
145
docs/_build/html/docs/learn/index.html
vendored
@ -1,145 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>Learn — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/alabaster.css" />
|
||||
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/jquery.js"></script>
|
||||
<script src="../../_static/underscore.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="Khéops 101" href="../../learn/learn101.html" />
|
||||
<link rel="prev" title="Internals" href="../app/internal.html" />
|
||||
|
||||
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="learn">
|
||||
<h1>Learn<a class="headerlink" href="#learn" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="toctree-wrapper compound">
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../learn/learn101.html">Khéops 101</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../learn/learn101.html#command-line">Command line</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../learn/learn101.html#defining-a-hierarchy">Defining a hierarchy</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../learn/learn101.html#basic-hierarchy">Basic hierarchy</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../learn/learn101.html#roles">Roles</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../learn/learn101.html#per-node-override">Per node override</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../learn/learn101.html#environment-override">Environment override</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../learn/learn101.html#tooling-and-applications">Tooling and applications</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../learn/learn101.html#troubleshooting">Troubleshooting</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="100.html">Introduction</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="100.html#concept">Concept</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="100.html#hierarchical-lookups">Hierarchical Lookups</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="100.html#applying-this-to-infrastructure-management">Applying this to infrastructure management</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="101.html">Learn 101</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="102.html">Learn 102</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="105.html">Learn 105</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<p>Learning resources</p>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../../index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../app/index.html">Application</a></li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Learn</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../learn/learn101.html">Khéops 101</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="100.html">Introduction</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="101.html">Learn 101</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="102.html">Learn 102</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="105.html">Learn 105</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../api/modules.html">Python API</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../../index.html">Documentation overview</a><ul>
|
||||
<li>Previous: <a href="../app/internal.html" title="previous chapter">Internals</a></li>
|
||||
<li>Next: <a href="../../learn/learn101.html" title="next chapter">Khéops 101</a></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="../../_sources/docs/learn/index.rst.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
550
docs/_build/html/genindex.html
vendored
550
docs/_build/html/genindex.html
vendored
@ -1,550 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Index — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/alabaster.css" />
|
||||
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
|
||||
<script src="_static/jquery.js"></script>
|
||||
<script src="_static/underscore.js"></script>
|
||||
<script src="_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="#" />
|
||||
<link rel="search" title="Search" href="search.html" />
|
||||
|
||||
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
|
||||
<h1 id="index">Index</h1>
|
||||
|
||||
<div class="genindex-jumpbox">
|
||||
<a href="#B"><strong>B</strong></a>
|
||||
| <a href="#C"><strong>C</strong></a>
|
||||
| <a href="#D"><strong>D</strong></a>
|
||||
| <a href="#E"><strong>E</strong></a>
|
||||
| <a href="#F"><strong>F</strong></a>
|
||||
| <a href="#G"><strong>G</strong></a>
|
||||
| <a href="#K"><strong>K</strong></a>
|
||||
| <a href="#L"><strong>L</strong></a>
|
||||
| <a href="#M"><strong>M</strong></a>
|
||||
| <a href="#N"><strong>N</strong></a>
|
||||
| <a href="#O"><strong>O</strong></a>
|
||||
| <a href="#P"><strong>P</strong></a>
|
||||
| <a href="#Q"><strong>Q</strong></a>
|
||||
| <a href="#R"><strong>R</strong></a>
|
||||
| <a href="#S"><strong>S</strong></a>
|
||||
|
||||
</div>
|
||||
<h2 id="B">B</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.BackendCandidate">BackendCandidate (class in kheops.plugin.common)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.BackendPlugin">BackendPlugin (class in kheops.plugin.common)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
</tr></table>
|
||||
|
||||
<h2 id="C">C</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.html#kheops.controllers.QueryProcessor.CHILDREN_INIT">CHILDREN_INIT() (kheops.controllers.QueryProcessor method)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.html#kheops.cli.CmdApp.cli">cli() (kheops.cli.CmdApp method)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.html#kheops.cli.CmdApp.cli_demo">cli_demo() (kheops.cli.CmdApp method)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.html#kheops.cli.CmdApp.cli_gen_doc">cli_gen_doc() (kheops.cli.CmdApp method)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.html#kheops.cli.CmdApp.cli_lookup">cli_lookup() (kheops.cli.CmdApp method)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.html#kheops.cli.CmdApp.cli_schema">cli_schema() (kheops.cli.CmdApp method)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.html#kheops.cli.CmdApp">CmdApp (class in kheops.cli)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.ConfPlugin">ConfPlugin (class in kheops.plugin.common)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
</tr></table>
|
||||
|
||||
<h2 id="D">D</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.html#kheops.utils.Default">Default (class in kheops.utils)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.html#kheops.controllers.QueryProcessor.default_lookup_item">default_lookup_item (kheops.controllers.QueryProcessor attribute)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.html#kheops.controllers.QueryProcessor.default_match_rule">default_match_rule (kheops.controllers.QueryProcessor attribute)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
</tr></table>
|
||||
|
||||
<h2 id="E">E</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.plugin.backend.html#kheops.plugin.backend.file.Plugin.extensions">extensions (kheops.plugin.backend.file.Plugin attribute)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
</tr></table>
|
||||
|
||||
<h2 id="F">F</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.plugin.backend.html#kheops.plugin.backend.file.Plugin.fetch_data">fetch_data() (kheops.plugin.backend.file.Plugin method)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.BackendPlugin.fetch_data">(kheops.plugin.common.BackendPlugin method)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
</ul></td>
|
||||
</tr></table>
|
||||
|
||||
<h2 id="G">G</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.html#kheops.app.GenericInstance">GenericInstance (class in kheops.app)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.html#kheops.cli.CmdApp.get_args">get_args() (kheops.cli.CmdApp method)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.html#kheops.cli.CmdApp.get_logger">get_logger() (kheops.cli.CmdApp method)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.html#kheops.utils.glob_files">glob_files() (in module kheops.utils)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
</tr></table>
|
||||
|
||||
<h2 id="K">K</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.html#kheops.controllers.Query.key">key (kheops.controllers.Query attribute)</a>
|
||||
</li>
|
||||
<li>
|
||||
kheops
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.html#module-kheops">module</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/kheops.html#kheops.app.Kheops">Kheops (class in kheops.app)</a>
|
||||
</li>
|
||||
<li>
|
||||
kheops.app
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.html#module-kheops.app">module</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li>
|
||||
kheops.cli
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.html#module-kheops.cli">module</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li>
|
||||
kheops.controllers
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.html#module-kheops.controllers">module</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li>
|
||||
kheops.plugin
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.html#module-kheops.plugin">module</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li>
|
||||
kheops.plugin.backend
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.backend.html#module-kheops.plugin.backend">module</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li>
|
||||
kheops.plugin.backend.file
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.backend.html#module-kheops.plugin.backend.file">module</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li>
|
||||
kheops.plugin.common
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.html#module-kheops.plugin.common">module</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li>
|
||||
kheops.plugin.scope
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.scope.html#module-kheops.plugin.scope">module</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li>
|
||||
kheops.plugin.scope.hier
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.scope.html#module-kheops.plugin.scope.hier">module</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li>
|
||||
kheops.plugin.scope.loop
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.scope.html#module-kheops.plugin.scope.loop">module</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li>
|
||||
kheops.plugin.strategy
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.strategy.html#module-kheops.plugin.strategy">module</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li>
|
||||
kheops.plugin.strategy.last
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.strategy.html#module-kheops.plugin.strategy.last">module</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li>
|
||||
kheops.plugin.strategy.merge_deep
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.strategy.html#module-kheops.plugin.strategy.merge_deep">module</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li>
|
||||
kheops.utils
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.html#module-kheops.utils">module</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.KheopsItemPlugin">KheopsItemPlugin (class in kheops.plugin.common)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.KheopsListPlugin">KheopsListPlugin (class in kheops.plugin.common)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.html#kheops.app.KheopsNamespace">KheopsNamespace (class in kheops.app)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.KheopsPlugin">KheopsPlugin (class in kheops.plugin.common)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
</tr></table>
|
||||
|
||||
<h2 id="L">L</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.html#kheops.controllers.LoadPlugin.load">load() (kheops.controllers.LoadPlugin method)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.html#kheops.controllers.LoadPlugin">LoadPlugin (class in kheops.controllers)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.html#kheops.app.Kheops.lookup2">lookup2() (kheops.app.Kheops method)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.ScopeExtLoop.loop_over">loop_over() (kheops.plugin.common.ScopeExtLoop method)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
</tr></table>
|
||||
|
||||
<h2 id="M">M</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.StrategyPlugin.merge_results">merge_results() (kheops.plugin.common.StrategyPlugin method)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.strategy.html#kheops.plugin.strategy.last.Plugin.merge_results">(kheops.plugin.strategy.last.Plugin method)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.strategy.html#kheops.plugin.strategy.merge_deep.Plugin.merge_results">(kheops.plugin.strategy.merge_deep.Plugin method)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li>
|
||||
module
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.html#module-kheops">kheops</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.html#module-kheops.app">kheops.app</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.html#module-kheops.cli">kheops.cli</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.html#module-kheops.controllers">kheops.controllers</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.html#module-kheops.plugin">kheops.plugin</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.backend.html#module-kheops.plugin.backend">kheops.plugin.backend</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.backend.html#module-kheops.plugin.backend.file">kheops.plugin.backend.file</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.html#module-kheops.plugin.common">kheops.plugin.common</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.scope.html#module-kheops.plugin.scope">kheops.plugin.scope</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.scope.html#module-kheops.plugin.scope.hier">kheops.plugin.scope.hier</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.scope.html#module-kheops.plugin.scope.loop">kheops.plugin.scope.loop</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.strategy.html#module-kheops.plugin.strategy">kheops.plugin.strategy</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.strategy.html#module-kheops.plugin.strategy.last">kheops.plugin.strategy.last</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.strategy.html#module-kheops.plugin.strategy.merge_deep">kheops.plugin.strategy.merge_deep</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.html#module-kheops.utils">kheops.utils</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
</ul></td>
|
||||
</tr></table>
|
||||
|
||||
<h2 id="N">N</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.html#kheops.app.GenericInstance.name">name (kheops.app.GenericInstance attribute)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
</tr></table>
|
||||
|
||||
<h2 id="O">O</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.OutPlugin">OutPlugin (class in kheops.plugin.common)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
</tr></table>
|
||||
|
||||
<h2 id="P">P</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.html#kheops.app.Kheops.parse_conf">parse_conf() (kheops.app.Kheops method)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.html#kheops.utils.path_assemble_hier">path_assemble_hier() (in module kheops.utils)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.backend.html#kheops.plugin.backend.file.Plugin">Plugin (class in kheops.plugin.backend.file)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.scope.html#kheops.plugin.scope.hier.Plugin">(class in kheops.plugin.scope.hier)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.scope.html#kheops.plugin.scope.loop.Plugin">(class in kheops.plugin.scope.loop)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.strategy.html#kheops.plugin.strategy.last.Plugin">(class in kheops.plugin.strategy.last)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.strategy.html#kheops.plugin.strategy.merge_deep.Plugin">(class in kheops.plugin.strategy.merge_deep)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.BackendPlugin.plugin_kind">plugin_kind (kheops.plugin.common.BackendPlugin attribute)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.ConfPlugin.plugin_kind">(kheops.plugin.common.ConfPlugin attribute)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.KheopsPlugin.plugin_kind">(kheops.plugin.common.KheopsPlugin attribute)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.OutPlugin.plugin_kind">(kheops.plugin.common.OutPlugin attribute)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.ScopePlugin.plugin_kind">(kheops.plugin.common.ScopePlugin attribute)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.StrategyPlugin.plugin_kind">(kheops.plugin.common.StrategyPlugin attribute)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.KheopsPlugin.plugin_name">plugin_name (kheops.plugin.common.KheopsPlugin attribute)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.KheopsItemPlugin.plugin_type">plugin_type (kheops.plugin.common.KheopsItemPlugin attribute)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.KheopsListPlugin.plugin_type">(kheops.plugin.common.KheopsListPlugin attribute)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.KheopsPlugin.plugin_type">(kheops.plugin.common.KheopsPlugin attribute)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.KheopsItemPlugin.process_item">process_item() (kheops.plugin.common.KheopsItemPlugin method)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.OutPlugin.process_item">(kheops.plugin.common.OutPlugin method)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.ScopePlugin.process_item">(kheops.plugin.common.ScopePlugin method)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/kheops.plugin.scope.html#kheops.plugin.scope.hier.Plugin.process_items">process_items() (kheops.plugin.scope.hier.Plugin method)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.scope.html#kheops.plugin.scope.loop.Plugin.process_items">(kheops.plugin.scope.loop.Plugin method)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.ConfPlugin.process_list">process_list() (kheops.plugin.common.ConfPlugin method)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.KheopsListPlugin.process_list">(kheops.plugin.common.KheopsListPlugin method)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
</ul></td>
|
||||
</tr></table>
|
||||
|
||||
<h2 id="Q">Q</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.html#kheops.controllers.Query">Query (class in kheops.controllers)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.html#kheops.controllers.QueryProcessor.query">query() (kheops.controllers.QueryProcessor method)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.html#kheops.controllers.QueryProcessor">QueryProcessor (class in kheops.controllers)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
</tr></table>
|
||||
|
||||
<h2 id="R">R</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.html#kheops.utils.render_template">render_template() (in module kheops.utils)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.html#kheops.utils.render_template_python">render_template_python() (in module kheops.utils)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.html#kheops.app.GenericInstance.run">run (kheops.app.GenericInstance attribute)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
</tr></table>
|
||||
|
||||
<h2 id="S">S</h2>
|
||||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.BackendPlugin.schema_prop">schema_prop (kheops.plugin.common.BackendPlugin attribute)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.ConfPlugin.schema_prop">(kheops.plugin.common.ConfPlugin attribute)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.OutPlugin.schema_prop">(kheops.plugin.common.OutPlugin attribute)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.ScopePlugin.schema_prop">(kheops.plugin.common.ScopePlugin attribute)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.StrategyPlugin.schema_prop">(kheops.plugin.common.StrategyPlugin attribute)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.ScopeExtLoop.schema_props">schema_props (kheops.plugin.common.ScopeExtLoop attribute)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.html#kheops.utils.schema_validate">schema_validate() (in module kheops.utils)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="api/kheops.html#kheops.controllers.Query.scope">scope (kheops.controllers.Query attribute)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.ScopeExtLoop">ScopeExtLoop (class in kheops.plugin.common)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.ScopePlugin">ScopePlugin (class in kheops.plugin.common)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.strategy.html#kheops.plugin.strategy.last.Plugin.selector">selector (kheops.plugin.strategy.last.Plugin attribute)</a>
|
||||
|
||||
<ul>
|
||||
<li><a href="api/kheops.plugin.strategy.html#kheops.plugin.strategy.merge_deep.Plugin.selector">(kheops.plugin.strategy.merge_deep.Plugin attribute)</a>
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><a href="api/kheops.html#kheops.utils.str_ellipsis">str_ellipsis() (in module kheops.utils)</a>
|
||||
</li>
|
||||
<li><a href="api/kheops.plugin.html#kheops.plugin.common.StrategyPlugin">StrategyPlugin (class in kheops.plugin.common)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
</tr></table>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="index.html">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/app/index.html">Application</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/learn/index.html">Learn</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="api/modules.html">Python API</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="index.html">Documentation overview</a><ul>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
186
docs/_build/html/index.html
vendored
186
docs/_build/html/index.html
vendored
@ -1,186 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>Khéops documentation — Khéops 0.1 documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/alabaster.css" />
|
||||
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
|
||||
<script src="_static/jquery.js"></script>
|
||||
<script src="_static/underscore.js"></script>
|
||||
<script src="_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="genindex.html" />
|
||||
<link rel="search" title="Search" href="search.html" />
|
||||
<link rel="next" title="Application" href="docs/app/index.html" />
|
||||
|
||||
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<a class="reference external image-reference" href="https://amoffat.github.com/sh"><img alt="Logo" src="_images/kheops_brand.png" /></a>
|
||||
<section id="kheops-documentation">
|
||||
<h1><a class="toc-backref" href="#id1">Khéops documentation</a><a class="headerlink" href="#kheops-documentation" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="contents topic" id="table-of-contents">
|
||||
<p class="topic-title">Table of Contents</p>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="#kheops-documentation" id="id1">Khéops documentation</a></p></li>
|
||||
<li><p><a class="reference internal" href="#content" id="id2">Content</a></p></li>
|
||||
<li><p><a class="reference internal" href="#indices-and-tables" id="id3">Indices and tables</a></p></li>
|
||||
</ul>
|
||||
</div>
|
||||
<p>Welcome in Khéops documentation.</p>
|
||||
<p>Khéops is a tool that can be used to lookup a key value pair, that is to say, given a key it will give back the appropriate value. This is certainly nothing special or new, but the crucial difference here is the way in which the data is looked up. Rather than just querying a flat data source and returning the value for a requested key, when doing a hierarchical lookup we perform multiple queries against a configured hierarchy, transcending down to the next layer in the hierarchy until we find an answer. The end result is that we can define key value pairs on a global basis but then override them under certain conditions based on the hierarchical resolution by placing that key value pair further up the hierarchy for a particular condition.</p>
|
||||
</section>
|
||||
<section id="content">
|
||||
<h1><a class="toc-backref" href="#id2">Content</a><a class="headerlink" href="#content" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="toctree-wrapper compound">
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/app/index.html">Application</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="docs/app/installation.html">Instalation procedure</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="docs/app/usage.html">usage !!!</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="docs/app/cli.html">CLI</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="docs/app/config.html">Config</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="docs/app/examples.html">Examples …</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="docs/app/internal.html">Internals</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/learn/index.html">Learn</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="learn/learn101.html">Khéops 101</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="learn/learn101.html#command-line">Command line</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="learn/learn101.html#defining-a-hierarchy">Defining a hierarchy</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="learn/learn101.html#basic-hierarchy">Basic hierarchy</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="learn/learn101.html#roles">Roles</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="learn/learn101.html#per-node-override">Per node override</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="learn/learn101.html#environment-override">Environment override</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="learn/learn101.html#tooling-and-applications">Tooling and applications</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="learn/learn101.html#troubleshooting">Troubleshooting</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="docs/learn/100.html">Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="docs/learn/100.html#concept">Concept</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="docs/learn/100.html#hierarchical-lookups">Hierarchical Lookups</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="docs/learn/100.html#applying-this-to-infrastructure-management">Applying this to infrastructure management</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="docs/learn/101.html">Learn 101</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="docs/learn/102.html">Learn 102</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="docs/learn/105.html">Learn 105</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/guide/index.html">Guides</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="docs/guide/best_practices.html">Learn 104</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="docs/guide/ansible/index.html">Ansible</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="api/modules.html">Python API</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="api/kheops.html">kheops package</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="api/kheops.html#subpackages">Subpackages</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="api/kheops.html#submodules">Submodules</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="api/kheops.html#module-kheops.app">kheops.app module</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="api/kheops.html#module-kheops.cli">kheops.cli module</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="api/kheops.html#module-kheops.controllers">kheops.controllers module</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="api/kheops.html#module-kheops.utils">kheops.utils module</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
<section id="indices-and-tables">
|
||||
<h1><a class="toc-backref" href="#id3">Indices and tables</a><a class="headerlink" href="#indices-and-tables" title="Permalink to this headline">¶</a></h1>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="py-modindex.html"><span class="std std-ref">Module Index</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></p></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="#">Khéops</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/app/index.html">Application</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/learn/index.html">Learn</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="docs/guide/index.html">Guides</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="api/modules.html">Python API</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="#">Documentation overview</a><ul>
|
||||
<li>Next: <a href="docs/app/index.html" title="next chapter">Application</a></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2022, Barbu IT.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.4.0</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
|
|
||||
<a href="_sources/index.rst.txt"
|
||||
rel="nofollow">Page source</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user