Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • pagoda/tools/mkdocs_template
1 result
Show changes
.image-center {
display : block;
margin : auto;
}
\ No newline at end of file
@charset "UTF-8";
/* Codehilight */
:root [data-md-color-scheme="rdeville-dark"] .highlight [data-linenos]::before
{
/* Default line numbers */
color: var(--md-default-fg-color--lightest);
}
:root [data-md-color-scheme="rdeville-dark"] .highlight [data-linenos].special::before
{
/* Special line numbers, i.e. when alternating line colors*/
background-color:var(--md-code-special-bg-color);
}
:root [data-md-color-scheme="rdeville-light"] .highlight [data-linenos]::before
{
/* Default line numbers */
color: var(--md-default-fg-color--darkest);
}
:root [data-md-color-scheme="rdeville-light"] .highlight [data-linenos].special::before
{
/* Special line numbers, i.e. when alternating line colors*/
background-color:var(--md-code-special-bg-color);
}
/* Superfences tabs */
:root [data-md-color-scheme="rdeville-dark"] .md-typeset .tabbed-set > input:not(.focus-visible) + label
{
/* Tab background not focus */
background: var(--md-default-bg-color--light);
color: var(--md-default-fg-color--lightest);
}
:root [data-md-color-scheme="rdeville-dark"] .md-typeset .tabbed-set > input:checked + label,
:root [data-md-color-scheme="rdeville-dark"] .md-typeset .tabbed-content
{
/* Tab and content focus */
background: var(--md-default-bg-color--dark);
color: var(--md-default-fg-color);
}
:root [data-md-color-scheme="rdeville-light"] .md-typeset .tabbed-set > input:not(.focus-visible) + label
{
/* Tab background not focus */
background: var(--md-default-bg-color--darkest);
color: var(--md-default-fg-color--darkest);
}
:root [data-md-color-scheme="rdeville-light"] .md-typeset .tabbed-set > input:checked + label,
:root [data-md-color-scheme="rdeville-light"] .md-typeset .tabbed-content
{
/* Tab and content focus */
background: var(--md-default-bg-color--lightest);
color: var(--md-default-fg-color);
}
/* Codehilight */
.md-typeset .highlight .special::before
{
background-color:var(--md-code-special-bg-color);
}
.md-typeset .highlighttable .linenodiv .special
{
background-color : var(--md-code-special-bg-color)
}
/* Progress bar */
.progress-label
{
position : absolute;
text-align : center;
font-weight : 700;
width : 100%;
margin : 0;
line-height : 1.2rem;
white-space : nowrap;
overflow : hidden;
}
.md-typeset .progress.candystripe-animate .progress-bar
{
-webkit-animation:animate-stripes 3s linear infinite;
animation:animate-stripes 3s linear infinite
}
:root [data-md-color-scheme="rdeville-light"] .md-typeset .progress.candystripe .progress-bar
{
background-image: linear-gradient(
135deg,
rgba(var(--md_color__white),0.25) 27%,
transparent 27%,
transparent 52%,
rgba(var(--md_color__white),0.25) 52%,
rgba(var(--md_color__white),0.25) 77%,
transparent 77%,
transparent);
background-size:2rem 2rem
}
:root [data-md-color-scheme="rdeville-dark"] .md-typeset .progress.candystripe .progress-bar
{
background-image: linear-gradient(
135deg,
rgba(var(--md_color__black),0.25) 27%,
transparent 27%,
transparent 52%,
rgba(var(--md_color__black),0.25) 52%,
rgba(var(--md_color__black),0.25) 77%,
transparent 77%,
transparent);
background-size:2rem 2rem
}
.progress-bar
{
height : 1.2rem;
float : left;
background-color : var(--md-code-bf-color);
}
.md-typeset .progress
{
display : block;
width : 100%;
margin : 0.5rem 0;
height : 1.2rem;
background-color : var(--md-code-bg-color);
position : relative;
}
.progress-100plus .progress-bar
{
background-color: rgba(var(--md_color__green_500));
}
.progress-80plus .progress-bar
{
background-color: rgba(var(--md_color__light_green_500));
}
.progress-60plus .progress-bar
{
background-color: rgba(var(--md_color__lime_500));
}
.progress-40plus .progress-bar
{
background-color: rgba(var(--md_color__yellow_500));
}
.progress-20plus .progress-bar
{
background-color: rgba(var(--md_color__amber_500));
}
.progress-0plus .progress-bar
{
background-color: rgba(var(--md_color__red_500));
}
.default-color .progress-bar
{
background-color : var(--md-primary-fg-color);
}
.default-color .progress-bar
{
background-color : var(--md-primary-fg-color);
}
.red-color .progress-bar
{
background-color : rgba(var(--md_color__red_500),1);
}
.pink-color .progress-bar
{
background-color : rgba(var(--md_color__pink_500),1);
}
.purple-color .progress-bar
{
background-color : rgba(var(--md_color__purple_500),1);
}
.deep-purple-color .progress-bar
{
background-color : rgba(var(--md_color__deep_purple_500),1);
}
.indigo-color .progress-bar
{
background-color : rgba(var(--md_color__indigo_500),1);
}
.blue-color .progress-bar
{
background-color : rgba(var(--md_color__blue_500),1);
}
.light-blue-color .progress-bar
{
background-color : rgba(var(--md_color__light_blue_500),1);
}
.cyan-color .progress-bar
{
background-color : rgba(var(--md_color__cyan_500),1);
}
.teal-color .progress-bar
{
background-color : rgba(var(--md_color__teal_500),1);
}
.green-color .progress-bar
{
background-color : rgba(var(--md_color__green_500),1);
}
.light-green-color .progress-bar
{
background-color : rgba(var(--md_color__light_green_500),1);
}
.lime-color .progress-bar
{
background-color : rgba(var(--md_color__lime_500),1);
}
.yellow-color .progress-bar
{
background-color : rgba(var(--md_color__yellow_500),1);
}
.amber-color .progress-bar
{
background-color : rgba(var(--md_color__amber_500),1);
}
.orange-color .progress-bar
{
background-color : rgba(var(--md_color__orange_500),1);
}
.deep-orange-color .progress-bar
{
background-color : rgba(var(--md_color__deep_orange_500),1);
}
.brown-color .progress-bar
{
background-color : rgba(var(--md_color__brown_500),1);
}
.grey-color .progress-bar
{
background-color : rgba(var(--md_color__grey_500),1);
}
.blue-grey-color .progress-bar
{
background-color : rgba(var(--md_color__blue_grey_500),1);
}
.rounded .progress-bar
{
border-top-right-radius : 1em;
border-bottom-right-radius : 1em;
}
@-webkit-keyframes animate-stripes
{
0% {
background-position:0 0
}
100% {
background-position:6rem 0
}
}
@keyframes animate-stripes
{
0%
{
background-position:0 0
}
100%
{
background-position:6rem 0
}
}
/* Tasklist */
.md-typeset [type="checkbox"]:checked + .task-list-indicator::before
{
background-color: rgba(var(--md_color__green_500),1);
}
/* *****************************************************************************
* VIM MODELINE
* vim: fdm=indent
* ****************************************************************************/
@charset "UTF-8";
/* DARK THEME
* =============================================================================
*/
:root [data-md-color-scheme="pagoda-dark"]
{
/* MAIN CONFIGURATION
* ---------------------------------------------------------------------------
*/
/* Default background colors */
--md-default-bg-color--true-dark : rgba(var(--md_color__grey_900), 1.00);
--md-default-bg-color--darkest : rgba(var(--md_color__grey_900), 0.50);
--md-default-bg-color--darker : rgba(var(--md_color__grey_900), 0.25);
--md-default-bg-color--dark : rgba(var(--md_color__grey_900), 0.10);
--md-default-bg-color : rgba(var(--md_color__grey_800), 1.00);
--md-default-bg-color--light : rgba(var(--md_color__grey_700), 0.10);
--md-default-bg-color--lighter : rgba(var(--md_color__grey_700), 0.25);
--md-default-bg-color--lightest : rgba(var(--md_color__grey_700), 0.50);
--md-default-bg-color--true-light : rgba(var(--md_color__grey_700), 1.00);
/* Default foreground colors */
--md-default-fg-color--true-dark : rgba(var(--md_color__grey_200), 1.00);
--md-default-fg-color--darkest : rgba(var(--md_color__grey_200), 0.50);
--md-default-fg-color--darker : rgba(var(--md_color__grey_200), 0.25);
--md-default-fg-color--dark : rgba(var(--md_color__grey_200), 0.10);
--md-default-fg-color : rgba(var(--md_color__grey_100), 1.00);
--md-default-fg-color--light : rgba(var(--md_color__grey_50), 0.10);
--md-default-fg-color--lighter : rgba(var(--md_color__grey_50), 0.25);
--md-default-fg-color--lightest : rgba(var(--md_color__grey_50), 0.50);
--md-default-fg-color--true-light : rgba(var(--md_color__grey_50), 1.00);
/* Default font color */
--md-typeset-color : var(--md-default-fg-color);
/* Hyperlink font color */
--md-typeset-a-color : var(--md-primary-fg-color);
/* Font color for mark */
--md-typeset-mark-color : rgba(var(--md_color__yellow_800),0.50);
--md-typeset-del-color : rgba(var(--md_color__red_800),0.50);
--md-typeset-ins-color : rgba(var(--md_color__green_800),0.50);
/* CODE BLOCKS
* ---------------------------------------------------------------------------
*/
/* Code blocks background */
--md-code-fg-color : rgba(var(--md_color__grey_200),1.00);
/* Code blocks foreground */
--md-code-bg-color : rgba(var(--md_color__grey_900),1.00);
/* Color when line is highlighted */
--md-code-hl-color : rgba(var(--md_color__yellow_500),0.25);
/* SYNTAX HIGHLIGHT
* ---------------------------------------------------------------------------
*/
/* Color when line number shown and alternated */
--md-code-special-bg-color : rgba(var(--md_color__blue_grey_900),1.00);
/* Color for builtin */
--md-code-hl-builtin-color : rgba(var(--md_color__blue_300) ,1.00);
/* Color for comment */
--md-code-hl-comment-color : rgba(var(--md_color__grey_100) ,0.50);
/* Color for constant method */
--md-code-hl-constant-color : rgba(var(--md_color__purple_300),1.00);
/* Color for method */
--md-code-hl-function-color : rgba(var(--md_color__blue_300),1.00);
/* Color for generic keyword, such as emph, strong, etc */
--md-code-hl-generic-color : rgba(var(--md_color__grey_50),1.00);
/* Color for keyword */
--md-code-hl-keyword-color : rgba(var(--md_color__purple_300),1.00);
/* Color for name keyword, such as variable name, etc */
--md-code-hl-name-color : var(--md-code-fg-color);
/* Color for number */
--md-code-hl-number-color : rgba(var(--md_color__red_300),1.00);
/* Color for operator */
--md-code-hl-operator-color : rgba(var(--md_color__purple_300),1.00);
/* Color for punctuation */
--md-code-hl-punctuation-color : rgba(var(--md_color__amber_300),1.00);
/* Color for special character such as '\n' */
--md-code-hl-special-color : rgba(var(--md_color__amber_900),1.00);
/* Color for string */
--md-code-hl-string-color : rgba(var(--md_color__red_300),1.00);
/* Color for variables, such as tag in html */
--md-code-hl-variable-color : rgba(var(--md_color__green_300,1));
/* KEYBOARD KEYS
* ---------------------------------------------------------------------------
*/
/* Color when showing keyboard keys */
--md-typeset-kbd-color : rgba(var(--md_color__grey_700) , 1.00);
--md-typeset-kbd-accent-color : rgba(var(--md_color__grey_800) , 0.66);
--md-typeset-kbd-border-color : rgba(var(--md_color__grey_900) , 0.66);
/* FOOTER
* ---------------------------------------------------------------------------
*/
/* Footer configuration */
--md-footer-fg-color : rgba(var(--md_color__grey_100) , 1.00);
--md-footer-fg-color--light : rgba(var(--md_color__grey_100) , 0.5);
--md-footer-fg-color--lighter : rgba(var(--md_color__grey_100) , 0.25);
--md-footer-bg-color : rgba(var(--md_color__grey_900) , 0.5);
--md-footer-bg-color--dark : rgba(var(--md_color__grey_900) , 1.00);
/* ADMONITION
* ---------------------------------------------------------------------------
*/
/* Default admonition color */
--md-admonition-fg-color : var(--md-default-fg-color);
--md-admonition-bg-color : var(--md-default-bg-color);
}
/* LIGHT THEME
* =============================================================================
*/
:root [data-md-color-scheme="pagoda-light"]
{
/* MAIN CONFIGURATION
* ---------------------------------------------------------------------------
*/
/* Default background colors */
--md-default-bg-color--true-dark : rgba(var(--md_color__grey_300), 1.00);
--md-default-bg-color--darkest : rgba(var(--md_color__grey_300), 0.50);
--md-default-bg-color--darker : rgba(var(--md_color__grey_300), 0.25);
--md-default-bg-color--dark : rgba(var(--md_color__grey_300), 0.10);
--md-default-bg-color : rgba(var(--md_color__grey_200), 1.00);
--md-default-bg-color--light : rgba(var(--md_color__grey_100), 0.10);
--md-default-bg-color--lighter : rgba(var(--md_color__grey_100), 0.25);
--md-default-bg-color--lightest : rgba(var(--md_color__grey_100), 0.50);
--md-default-bg-color--true-light : rgba(var(--md_color__grey_100), 1.00);
/* Default foreground colors */
--md-default-fg-color--true-dark : rgba(var(--md_color__grey_900), 1.00);
--md-default-fg-color--darkest : rgba(var(--md_color__grey_900), 0.50);
--md-default-fg-color--darker : rgba(var(--md_color__grey_900), 0.25);
--md-default-fg-color--dark : rgba(var(--md_color__grey_900), 0.10);
--md-default-fg-color : rgba(var(--md_color__grey_800), 1.00);
--md-default-fg-color--light : rgba(var(--md_color__grey_700), 0.10);
--md-default-fg-color--lighter : rgba(var(--md_color__grey_700), 0.25);
--md-default-fg-color--lightest : rgba(var(--md_color__grey_700), 0.50);
--md-default-fg-color--true-light : rgba(var(--md_color__grey_700), 1.00);
/* Default font color */
--md-typeset-color : var(--md-default-fg-color);
/* Hyperlink font color */
--md-typeset-a-color : var(--md-primary-fg-color);
/* Font color for mark */
--md-typeset-mark-color : rgba(var(--md_color__yellow_200) , 0.50);
--md-typeset-del-color : rgba(var(--md_color__red_200) , 0.50);
--md-typeset-ins-color : rgba(var(--md_color__green_200) , 0.50);
/* CODE BLOCKS
* ---------------------------------------------------------------------------
*/
/* Code blocks background */
--md-code-fg-color : rgba(var(--md_color__grey_800),1.00);
/* Code blocks foreground */
--md-code-bg-color : rgba(var(--md_color__grey_100),1.00);
/* Color when line is highlighted */
--md-code-hl-color : rgba(var(--md_color__yellow_500),0.25);
/* SYNTAX HIGHLIGHT
* ---------------------------------------------------------------------------
*/
/* Color when line number shown and alternated */
--md-code-special-bg-color : rgba(var(--md_color__blue_grey_100),1.00);
/* Color for builtin */
--md-code-hl-builtin-color : rgba(var(--md_color__blue_700));
/* Color for comment */
--md-code-hl-comment-color : rgba(var(--md_color__grey_900),0.50);
/* Color for constant method */
--md-code-hl-constant-color : rgba(var(--md_color__purple_700),1.00);
/* Color for method */
--md-code-hl-function-color : rgba(var(--md_color__blue_700),1.00);
/* Color for generic keyword, such as emph, strong, etc */
--md-code-hl-generic-color : rgba(var(--md_color__grey_900),1.00);
/* Color for keyword */
--md-code-hl-keyword-color : rgba(var(--md_color__purple_700),1.00);
/* Color for name keyword, such as variable name, etc */
--md-code-hl-name-color : var(--md-code-fg-color);
/* Color for number */
--md-code-hl-number-color : rgba(var(--md_color__red_700),1.00);
/* Color for operator */
--md-code-hl-operator-color : rgba(var(--md_color__purple_700),1.00);
/* Color for punctuation */
--md-code-hl-punctuation-color : rgba(var(--md_color__amber_700),1.00);
/* Color for special character such as '\n' */
--md-code-hl-special-color : rgba(var(--md_color__amber_100),1.00);
/* Color for string */
--md-code-hl-string-color : rgba(var(--md_color__red_700),1.00);
/* Color for variables, such as tag in html */
--md-code-hl-variable-color : rgba(var(--md_color__green_700,1));
/* KEYBOARD KEYS
* ---------------------------------------------------------------------------
*/
/* Color when showing keyboard keys */
--md-typeset-kbd-color : rgba(var(--md_color__grey_300),1.00);
--md-typeset-kbd-accent-color : rgba(var(--md_color__grey_400),0.66);
--md-typeset-kbd-border-color : rgba(var(--md_color__grey_500),0.66);
/* FOOTER
* ---------------------------------------------------------------------------
*/
/* Footer configuration */
--md-footer-fg-color : rgba(var(--md_color__grey_900),1.00);
--md-footer-fg-color--light : rgba(var(--md_color__grey_900),0.5);
--md-footer-fg-color--lighter : rgba(var(--md_color__grey_900),0.25);
--md-footer-bg-color : rgba(var(--md_color__grey_100),0.5);
--md-footer-bg-color--dark : rgba(var(--md_color__grey_100),1.00);
/* ADMONITION
* ---------------------------------------------------------------------------
*/
/* Default admonition color */
--md-admonition-fg-color : var(--md-default-fg-color);
--md-admonition-bg-color : var(--md-default-bg-color);
}
/* PRIMARY COLOR PALETTE
* =============================================================================
*/
:root [data-md-color-primary="pagoda-red-dark"]
{
--md-primary-fg-color : rgba(var(--md_color__red_400),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__red_400),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__red_300),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__red_500),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-red-light"]
{
--md-primary-fg-color : rgba(var(--md_color__red_600),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__red_600),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__red_500),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__red_700),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-pink-dark"]
{
--md-primary-fg-color : rgba(var(--md_color__pink_400),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__pink_400),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__pink_300),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__pink_500),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-pink-light"]
{
--md-primary-fg-color : rgba(var(--md_color__pink_600),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__pink_600),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__pink_500),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__pink_700),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-purple-dark"]
{
--md-primary-fg-color : rgba(var(--md_color__purple_400),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__purple_400),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__purple_300),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__purple_500),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-purple-light"]
{
--md-primary-fg-color : rgba(var(--md_color__purple_600),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__purple_600),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__purple_500),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__purple_700),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-deep-purple-dark"]
{
--md-primary-fg-color : rgba(var(--md_color__deep_purple_400),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__deep_purple_400),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__deep_purple_300),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__deep_purple_500),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-deep-purple-light"]
{
--md-primary-fg-color : rgba(var(--md_color__deep_purple_600),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__deep_purple_600),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__deep_purple_500),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__deep_purple_700),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-indigo-dark"]
{
--md-primary-fg-color : rgba(var(--md_color__indigo_400),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__indigo_400),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__indigo_300),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__indigo_500),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-indigo-light"]
{
--md-primary-fg-color : rgba(var(--md_color__indigo_600),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__indigo_600),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__indigo_500),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__indigo_700),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-blue-dark"]
{
--md-primary-fg-color : rgba(var(--md_color__blue_400),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__blue_400),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__blue_300),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__blue_500),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-blue-light"]
{
--md-primary-fg-color : rgba(var(--md_color__blue_600),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__blue_600),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__blue_500),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__blue_700),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-light-blue-dark"]
{
--md-primary-fg-color : rgba(var(--md_color__light_blue_400),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__light_blue_400),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__light_blue_300),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__light_blue_500),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-light-blue-light"]
{
--md-primary-fg-color : rgba(var(--md_color__light_blue_600),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__light_blue_600),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__light_blue_500),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__light_blue_700),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-cyan-dark"]
{
--md-primary-fg-color : rgba(var(--md_color__cyan_400),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__cyan_400),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__cyan_300),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__cyan_500),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-cyan-light"]
{
--md-primary-fg-color : rgba(var(--md_color__cyan_600),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__cyan_600),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__cyan_500),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__cyan_700),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-teal-dark"]
{
--md-primary-fg-color : rgba(var(--md_color__teal_400),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__teal_400),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__teal_300),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__teal_500),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-teal-light"]
{
--md-primary-fg-color : rgba(var(--md_color__teal_600),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__teal_600),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__teal_500),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__teal_700),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-green-dark"]
{
--md-primary-fg-color : rgba(var(--md_color__green_400),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__green_400),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__green_300),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__green_500),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-green-light"]
{
--md-primary-fg-color : rgba(var(--md_color__green_600),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__green_600),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__green_500),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__green_700),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-light-green-dark"]
{
--md-primary-fg-color : rgba(var(--md_color__light_green_400),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__light_green_400),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__light_green_300),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__light_green_500),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-light-green-light"]
{
--md-primary-fg-color : rgba(var(--md_color__light_green_600),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__light_green_600),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__light_green_500),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__light_green_700),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-lime-dark"]
{
--md-primary-fg-color : rgba(var(--md_color__lime_400),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__lime_400),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__lime_300),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__lime_500),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-lime-light"]
{
--md-primary-fg-color : rgba(var(--md_color__lime_600),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__lime_600),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__lime_500),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__lime_700),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-yellow-dark"]
{
--md-primary-fg-color : rgba(var(--md_color__yellow_400),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__yellow_400),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__yellow_300),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__yellow_500),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-yellow-light"]
{
--md-primary-fg-color : rgba(var(--md_color__yellow_600),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__yellow_600),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__yellow_500),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__yellow_700),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-amber-dark"]
{
--md-primary-fg-color : rgba(var(--md_color__amber_400),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__amber_400),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__amber_300),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__amber_500),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-amber-light"]
{
--md-primary-fg-color : rgba(var(--md_color__amber_600),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__amber_600),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__amber_500),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__amber_700),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-orange-dark"]
{
--md-primary-fg-color : rgba(var(--md_color__orange_400),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__orange_400),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__orange_300),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__orange_500),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-orange-light"]
{
--md-primary-fg-color : rgba(var(--md_color__orange_600),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__orange_600),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__orange_500),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__orange_700),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-deep-orange-dark"]
{
--md-primary-fg-color : rgba(var(--md_color__deep_orange_400),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__deep_orange_400),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__deep_orange_300),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__deep_orange_500),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-deep-orange-light"]
{
--md-primary-fg-color : rgba(var(--md_color__deep_orange_600),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__deep_orange_600),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__deep_orange_500),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__deep_orange_700),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-brown-dark"]
{
--md-primary-fg-color : rgba(var(--md_color__brown_400),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__brown_400),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__brown_300),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__brown_500),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-brown-light"]
{
--md-primary-fg-color : rgba(var(--md_color__brown_600),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__brown_600),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__brown_500),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__brown_700),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-grey-dark"]
{
--md-primary-fg-color : rgba(var(--md_color__grey_400),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__grey_400),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__grey_300),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__grey_500),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-grey-light"]
{
--md-primary-fg-color : rgba(var(--md_color__grey_600),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__grey_600),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__grey_500),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__grey_700),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-blue-grey-dark"]
{
--md-primary-fg-color : rgba(var(--md_color__blue_grey_400),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__blue_grey_400),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__blue_grey_300),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__blue_grey_500),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-primary="pagoda-blue-grey-light"]
{
--md-primary-fg-color : rgba(var(--md_color__blue_grey_600),1.00);
--md-primary-fg-color--transparent : rgba(var(--md_color__blue_grey_600),0.10);
--md-primary-fg-color--light : rgba(var(--md_color__blue_grey_500),1.00);
--md-primary-fg-color--dark : rgba(var(--md_color__blue_grey_700),1.00);
--md-primary-bg-color : var(--md-default-bg-color);
--md-primary-bg-color--light : var(--md-default-bg-color--light);
}
/* ACCENT COLOR PALETTE
* =============================================================================
*/
:root [data-md-color-accent="pagoda-red-dark"]
{
--md-accent-fg-color : rgba(var(--md_color__red_400),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__red_400),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__red_300),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__red_500),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-red-light"]
{
--md-accent-fg-color : rgba(var(--md_color__red_600),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__red_600),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__red_500),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__red_700),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-pink-dark"]
{
--md-accent-fg-color : rgba(var(--md_color__pink_400),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__pink_400),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__pink_300),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__pink_500),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-pink-light"]
{
--md-accent-fg-color : rgba(var(--md_color__pink_600),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__pink_600),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__pink_500),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__pink_700),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-purple-dark"]
{
--md-accent-fg-color : rgba(var(--md_color__purple_400),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__purple_400),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__purple_300),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__purple_500),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-purple-light"]
{
--md-accent-fg-color : rgba(var(--md_color__purple_600),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__purple_600),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__purple_500),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__purple_700),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-deep-purple-dark"]
{
--md-accent-fg-color : rgba(var(--md_color__deep_purple_400),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__deep_purple_400),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__deep_purple_300),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__deep_purple_500),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-deep-purple-light"]
{
--md-accent-fg-color : rgba(var(--md_color__deep_purple_600),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__deep_purple_600),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__deep_purple_500),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__deep_purple_700),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-indigo-dark"]
{
--md-accent-fg-color : rgba(var(--md_color__indigo_400),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__indigo_400),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__indigo_300),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__indigo_500),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-indigo-light"]
{
--md-accent-fg-color : rgba(var(--md_color__indigo_600),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__indigo_600),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__indigo_500),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__indigo_700),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-blue-dark"]
{
--md-accent-fg-color : rgba(var(--md_color__blue_400),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__blue_400),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__blue_300),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__blue_500),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-blue-light"]
{
--md-accent-fg-color : rgba(var(--md_color__blue_600),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__blue_600),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__blue_500),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__blue_700),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-light-blue-dark"]
{
--md-accent-fg-color : rgba(var(--md_color__light_blue_400),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__light_blue_400),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__light_blue_300),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__light_blue_500),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-light-blue-light"]
{
--md-accent-fg-color : rgba(var(--md_color__light_blue_600),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__light_blue_600),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__light_blue_500),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__light_blue_700),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-cyan-dark"]
{
--md-accent-fg-color : rgba(var(--md_color__cyan_400),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__cyan_400),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__cyan_300),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__cyan_500),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-cyan-light"]
{
--md-accent-fg-color : rgba(var(--md_color__cyan_600),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__cyan_600),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__cyan_500),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__cyan_700),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-teal-dark"]
{
--md-accent-fg-color : rgba(var(--md_color__teal_400),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__teal_400),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__teal_300),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__teal_500),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-teal-light"]
{
--md-accent-fg-color : rgba(var(--md_color__teal_600),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__teal_600),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__teal_500),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__teal_700),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-green-dark"]
{
--md-accent-fg-color : rgba(var(--md_color__green_400),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__green_400),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__green_300),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__green_500),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-green-light"]
{
--md-accent-fg-color : rgba(var(--md_color__green_600),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__green_600),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__green_500),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__green_700),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-light-green-dark"]
{
--md-accent-fg-color : rgba(var(--md_color__light_green_400),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__light_green_400),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__light_green_300),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__light_green_500),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-light-green-light"]
{
--md-accent-fg-color : rgba(var(--md_color__light_green_600),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__light_green_600),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__light_green_500),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__light_green_700),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-lime-dark"]
{
--md-accent-fg-color : rgba(var(--md_color__lime_400),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__lime_400),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__lime_300),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__lime_500),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-lime-light"]
{
--md-accent-fg-color : rgba(var(--md_color__lime_600),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__lime_600),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__lime_500),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__lime_700),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-yellow-dark"]
{
--md-accent-fg-color : rgba(var(--md_color__yellow_400),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__yellow_400),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__yellow_300),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__yellow_500),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-yellow-light"]
{
--md-accent-fg-color : rgba(var(--md_color__yellow_600),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__yellow_600),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__yellow_500),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__yellow_700),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-amber-dark"]
{
--md-accent-fg-color : rgba(var(--md_color__amber_400),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__amber_400),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__amber_300),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__amber_500),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-amber-light"]
{
--md-accent-fg-color : rgba(var(--md_color__amber_600),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__amber_600),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__amber_500),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__amber_700),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-orange-dark"]
{
--md-accent-fg-color : rgba(var(--md_color__orange_400),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__orange_400),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__orange_300),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__orange_500),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-orange-light"]
{
--md-accent-fg-color : rgba(var(--md_color__orange_600),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__orange_600),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__orange_500),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__orange_700),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-deep-orange-dark"]
{
--md-accent-fg-color : rgba(var(--md_color__deep_orange_400),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__deep_orange_400),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__deep_orange_300),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__deep_orange_500),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-deep-orange-light"]
{
--md-accent-fg-color : rgba(var(--md_color__deep_orange_600),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__deep_orange_600),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__deep_orange_500),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__deep_orange_700),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-brown-dark"]
{
--md-accent-fg-color : rgba(var(--md_color__brown_400),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__brown_400),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__brown_300),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__brown_500),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-brown-light"]
{
--md-accent-fg-color : rgba(var(--md_color__brown_600),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__brown_600),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__brown_500),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__brown_700),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-grey-dark"]
{
--md-accent-fg-color : rgba(var(--md_color__grey_400),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__grey_400),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__grey_300),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__grey_500),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-grey-light"]
{
--md-accent-fg-color : rgba(var(--md_color__grey_600),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__grey_600),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__grey_500),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__grey_700),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-blue-grey-dark"]
{
--md-accent-fg-color : rgba(var(--md_color__blue_grey_400),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__blue_grey_400),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__blue_grey_300),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__blue_grey_500),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
:root [data-md-color-accent="pagoda-blue-grey-light"]
{
--md-accent-fg-color : rgba(var(--md_color__blue_grey_600),1.00);
--md-accent-fg-color--transparent : rgba(var(--md_color__blue_grey_600),0.10);
--md-accent-fg-color--light : rgba(var(--md_color__blue_grey_500),1.00);
--md-accent-fg-color--dark : rgba(var(--md_color__blue_grey_700),1.00);
--md-accent-bg-color : var(--md-default-bg-color);
--md-accent-bg-color--light : var(--md-default-bg-color--light);
}
/* Title style */
:root [data-md-color-scheme="pagoda-dark"] .md-typeset h1,
:root [data-md-color-scheme="pagoda-dark"] .md-typeset h2
{
color: var(--md-default-fg-color--true-light);
}
:root [data-md-color-scheme="pagoda-dark"] .md-typeset h3,
:root [data-md-color-scheme="pagoda-dark"] .md-typeset h4
{
color: var(--md-default-fg-color--lightest);
}
:root [data-md-color-scheme="pagoda-dark"] .md-typeset h5,
:root [data-md-color-scheme="pagoda-dark"] .md-typeset h6
{
color: var(--md-default-fg-color--lighter);
}
:root [data-md-color-scheme="pagoda-light"] .md-typeset h1,
:root [data-md-color-scheme="pagoda-light"] .md-typeset h2
{
color: var(--md-default-fg-color--true-dark);
}
:root [data-md-color-scheme="pagoda-light"] .md-typeset h3,
:root [data-md-color-scheme="pagoda-light"] .md-typeset h4
{
color: var(--md-default-fg-color--darkest);
}
:root [data-md-color-scheme="pagoda-light"] .md-typeset h5,
:root [data-md-color-scheme="pagoda-light"] .md-typeset h6
{
color: var(--md-default-fg-color--darker);
}
/* Header style */
.md-header
{
border-bottom-width: 1%;
border-bottom-style: solid;
border-bottom-color: var(--md-primary-fg-color--light);
color: var(--md-primary-fg-color);
}
:root [data-md-color-scheme="pagoda-dark"] .md-header
{
background-color: rgba(var(--md_color__grey_900),1.00);
}
:root [data-md-color-scheme="pagoda-light"] .md-header
{
background-color: rgba(var(--md_color__grey_100),1.00);
}
/* Footer style */
.md-footer-meta
{
border-top-width: 1%;
border-top-style: solid;
border-top-color: var(--md-primary-fg-color--light);
color: var(--md-primary-fg-color);
}
:root [data-md-color-scheme="pagoda-dark"] .md-footer-meta
{
background-color: rgba(var(--md_color__grey_900),1.00);
}
:root [data-md-color-scheme="pagoda-light"] .md-footer-meta
{
background-color: rgba(var(--md_color__grey_100),1.00);
}
/* Source part on the header on the top right */
.md-header-nav__source
{
float: right;
width: 20%;
}
:root [data-md-color-scheme="pagoda-light"] .md-typeset table:not([class]) thead
{
background: var(--md-default-fg-color--darkest);
color: var(--md-default-fg-color--lightest)
}
:root [data-md-color-scheme="pagoda-dark"] .md-typeset table:not([class]) thead
{
background: var(--md-default-fg-color--lightest);
color: var(--md-default-fg-color--darkest)
}
/* Table of content */
:root [data-md-color-scheme="pagoda-dark"] .md-nav__link[data-md-state="blur"]
{
color: var(--md-default-fg-color--dark);
}
:root [data-md-color-scheme="pagoda-dark"] .md-nav__link[data-md-state="blur"]:hover
{
color: var(--md-accent-fg-color);
}
:root [data-md-color-scheme="pagoda-dark"] .md-nav__list li
{
color: var(--md-default-fg-color--true-light);
}
:root [data-md-color-scheme="pagoda-dark"] .md-nav__list li ul li
{
color: var(--md-default-fg-color--lightest);
}
:root [data-md-color-scheme="pagoda-dark"] .md-nav__list li ul li ul li
{
color: var(--md-default-fg-color--lighter);
}
:root [data-md-color-scheme="pagoda-light"] .md-nav__link[data-md-state="blur"]
{
color: var(--md-default-fg-color--light);
}
:root [data-md-color-scheme="pagoda-light"] .md-nav__link[data-md-state="blur"]:hover
{
color: var(--md-accent-fg-color);
}
:root [data-md-color-scheme="pagoda-light"] .md-nav__list li
{
color: var(--md-default-fg-color--true-dark);
}
:root [data-md-color-scheme="pagoda-light"] .md-nav__list li ul li
{
color: var(--md-default-fg-color--darkest);
}
:root [data-md-color-scheme="pagoda-light"] .md-nav__list li ul li ul li
{
color: var(--md-default-fg-color--darker);
}
/* Blockquote */
:root [data-md-color-scheme="pagoda-dark"] .md-typeset blockquote
{
color: var(--md-default-fg-color--lightest);
border-left: .2rem solid var(--md-default-fg-color--lightest);
}
:root [data-md-color-scheme="pagoda-light"] .md-typeset blockquote
{
color: var(--md-default-fg-color--darkest);
border-left: .2rem solid var(--md-default-fg-color--darkest);
}
/* Abbrevations */
:root [data-md-color-scheme="pagoda-dark"] .md-typeset abbr
{
border-bottom: .05em dotted var(--md-default-fg-color--lightest);
cursor: help;
text-decoration: var(--md-default-fg-color--lightest);
}
:root [data-md-color-scheme="pagoda-light"] .md-typeset abbr
{
border-bottom: .05em dotted var(--md-default-fg-color--darkest);
cursor: help;
text-decoration: var(--md-default-fg-color--darkest);
}
/* nav */
.md-nav--primary .md-nav__title
{
color: var(--md-default-fg-color);
}
/* *****************************************************************************
* VIM MODELINE
* vim: fdm=indent
* ****************************************************************************/
/*
* LIGHTGALLERY
* ----------------------------------------------------------------------------
* Lightgallery extra javascript
* From: https://github.com/g-provost/lightgallery-markdown
*/
/*
* Loading lightgallery
*/
var elements = document.getElementsByClassName("lightgallery");
for(var i=0; i<elements.length; i++) {
lightGallery(elements[i]);
}
/*
* Loading video plugins for lightgallery
*/
lightGallery(document.getElementById('html5-videos'));
/*
* Loading parameter to auto-generate thumbnails for vimeo/youtube video
*/
lightGallery(document.getElementById('video-thumbnails'), {
loadYoutubeThumbnail: true,
youtubeThumbSize: 'default',
loadVimeoThumbnail: true,
vimeoThumbSize: 'thumbnail_medium',
});
/*
* Table Sort
* ----------------------------------------------------------------------------
* Code snippet to allow sorting table
* From: https://squidfunk.github.io/mkdocs-material/reference/data-tables/#sortable-tables
*/
document$.subscribe(function() {
var tables = document.querySelectorAll("article table")
tables.forEach(function(table) {
new Tablesort(table)
})
})
/*
* Mermaid Configuration to support dark/light switching
* ----------------------------------------------------------------------------
* Table Sort
* Optional config
* If your document is not specifying `data-md-color-scheme` for color schemes
* you just need to specify `default`.
*/
window.mermaidConfig = {
"rdeville-light": {
startOnLoad: false,
theme: "default",
flowchart: {
htmlLabels: false
},
er: {
useMaxWidth: false
},
sequence: {
useMaxWidth: false,
/*
* Mermaid handles Firefox a little different. For some reason, it
* doesn't attach font sizes to the labels in Firefox. If we specify the
* documented defaults, font sizes are written to the labels in Firefox.
*/
noteFontWeight: "14px",
actorFontSize: "14px",
messageFontSize: "16px"
}
},
"rdeville-dark": {
startOnLoad: false,
theme: "dark",
flowchart: {
htmlLabels: false
},
er: {
useMaxWidth: false
},
sequence: {
useMaxWidth: false,
noteFontWeight: "14px",
actorFontSize: "14px",
messageFontSize: "16px"
}
}
}
/*!
* tablesort v5.2.1 (2020-06-02)
* http://tristen.ca/tablesort/demo/
* Copyright (c) 2020 ; Licensed MIT
*/
!function(){function a(b,c){if(!(this instanceof a))return new a(b,c);if(!b||"TABLE"!==b.tagName)throw new Error("Element must be a table");this.init(b,c||{})}var b=[],c=function(a){var b;return window.CustomEvent&&"function"==typeof window.CustomEvent?b=new CustomEvent(a):(b=document.createEvent("CustomEvent"),b.initCustomEvent(a,!1,!1,void 0)),b},d=function(a){return a.getAttribute("data-sort")||a.textContent||a.innerText||""},e=function(a,b){return a=a.trim().toLowerCase(),b=b.trim().toLowerCase(),a===b?0:a<b?1:-1},f=function(a,b){return[].slice.call(a).find(function(a){return a.getAttribute("data-sort-column-key")===b})},g=function(a,b){return function(c,d){var e=a(c.td,d.td);return 0===e?b?d.index-c.index:c.index-d.index:e}};a.extend=function(a,c,d){if("function"!=typeof c||"function"!=typeof d)throw new Error("Pattern and sort must be a function");b.push({name:a,pattern:c,sort:d})},a.prototype={init:function(a,b){var c,d,e,f,g=this;if(g.table=a,g.thead=!1,g.options=b,a.rows&&a.rows.length>0)if(a.tHead&&a.tHead.rows.length>0){for(e=0;e<a.tHead.rows.length;e++)if("thead"===a.tHead.rows[e].getAttribute("data-sort-method")){c=a.tHead.rows[e];break}c||(c=a.tHead.rows[a.tHead.rows.length-1]),g.thead=!0}else c=a.rows[0];if(c){var h=function(){g.current&&g.current!==this&&g.current.removeAttribute("aria-sort"),g.current=this,g.sortTable(this)};for(e=0;e<c.cells.length;e++)f=c.cells[e],f.setAttribute("role","columnheader"),"none"!==f.getAttribute("data-sort-method")&&(f.tabindex=0,f.addEventListener("click",h,!1),null!==f.getAttribute("data-sort-default")&&(d=f));d&&(g.current=d,g.sortTable(d))}},sortTable:function(a,h){var i=this,j=a.getAttribute("data-sort-column-key"),k=a.cellIndex,l=e,m="",n=[],o=i.thead?0:1,p=a.getAttribute("data-sort-method"),q=a.getAttribute("aria-sort");if(i.table.dispatchEvent(c("beforeSort")),h||(q="ascending"===q?"descending":"descending"===q?"ascending":i.options.descending?"descending":"ascending",a.setAttribute("aria-sort",q)),!(i.table.rows.length<2)){if(!p){for(var r;n.length<3&&o<i.table.tBodies[0].rows.length;)r=j?f(i.table.tBodies[0].rows[o].cells,j):i.table.tBodies[0].rows[o].cells[k],m=r?d(r):"",m=m.trim(),m.length>0&&n.push(m),o++;if(!n)return}for(o=0;o<b.length;o++)if(m=b[o],p){if(m.name===p){l=m.sort;break}}else if(n.every(m.pattern)){l=m.sort;break}for(i.col=k,o=0;o<i.table.tBodies.length;o++){var s,t=[],u={},v=0,w=0;if(!(i.table.tBodies[o].rows.length<2)){for(s=0;s<i.table.tBodies[o].rows.length;s++){var r;m=i.table.tBodies[o].rows[s],"none"===m.getAttribute("data-sort-method")?u[v]=m:(r=j?f(m.cells,j):m.cells[i.col],t.push({tr:m,td:r?d(r):"",index:v})),v++}for("descending"===q?t.sort(g(l,!0)):(t.sort(g(l,!1)),t.reverse()),s=0;s<v;s++)u[s]?(m=u[s],w++):m=t[s-w].tr,i.table.tBodies[o].appendChild(m)}}i.table.dispatchEvent(c("afterSort"))}},refresh:function(){void 0!==this.current&&this.sortTable(this.current,!0)}},"undefined"!=typeof module&&module.exports?module.exports=a:window.Tablesort=a}();
\ No newline at end of file
### BEGIN MKDOCS TEMPLATE ###
# ---------------------------------------------------------------------------
# Below content is automatically managed with repo mkdocs_template.
# Do not edit manually
# ---------------------------------------------------------------------------
# Website Information
# ---------------------------------------------------------------------------
site_name: "" # Automatically set by mkdocs_macros_plugin (see docs/_data/plugins.py)
#site_description: # Automatically set by mkdocs_macros_plugin (see docs/_data/plugins.py)
#site_url: # Automatically set by mkdocs_macros_plugin (see docs/_data/plugins.py)
#copyright: # Automatically set by mkdocs_macros_plugin (see docs/_data/plugins.py)
docs_dir: docs
# Repository Information
# ---------------------------------------------------------------------------
#repo_name: # Automatically set by mkdocs_macros_plugin (see docs/_data/plugins.py)
#repo_url: # Automatically set by mkdocs_macros_plugin (see docs/_data/plugins.py)
edit_uri: ""
# This setting controls the style used for linking to pages within the
# documentation.
use_directory_urls: false
# Theme Configuration
# ---------------------------------------------------------------------------
theme:
# Using mkdocs-material theme
# https://squidfunk.github.io/mkdocs-material/
name: material
# Overriding parent theme configuration
custom_dir: docs/theme
# Determines whether the search plugin expects the theme to provide a
# dedicated search page via a template located at search/search.html.
include_search_page: false
# Determines whether the search plugin should only generate a search
# index or a complete search solution.
search_index_only: true
# Language site
language: en
# Optional features like tabs and instant loading are now implemented
# as flags and can be enabled by listing them in mkdocs.yml under
# theme.features:
features:
- navigation.tabs
- navigation.instant
- navigation.top
# Setting colors palette (these are defined in docs/theme/css/{colors,theme}.css)
palette:
# Light mode
- media: "(prefers-color-scheme: light)"
scheme: pagoda-light
primary: pagoda-deep-purple-light
accent: pagoda-orange-light
toggle:
icon: material/weather-night
name: Switch to dark mode
# Dark mode
- media: "(prefers-color-scheme: dark)"
scheme: pagoda-dark
primary: pagoda-deep-purple-dark
accent: pagoda-orange-dark
toggle:
icon: material/weather-sunny
name: Switch to light mode
# Font configuration for the website (FurCode are provided in
# docs/theme/fonts)
font: false
# text: FuraCode Nerd Font
# code: FuraCode Nerd Font
# Path to logo and icons to use for the website
#logo: # Automatically set by mkdocs_macros_plugin (see docs/_data/plugins.py)
#icon:
# repo: # Automatically set by mkdocs_macros_plugin (see docs/_data/plugins.py)
#favicon: # Automatically set by mkdocs_macros_plugin (see docs/_data/plugins.py)
# External CSS
# ---------------------------------------------------------------------------
extra_css:
# Define personal extra css
- theme/css/extra.css
# Define colors (all materials colors RGB code)
- theme/css/colors.css
# Define themes
- theme/css/theme.css
# Define css of base markdown extension and pymdown extension
- theme/css/python_markdown_extension.css
# External JS
# ---------------------------------------------------------------------------
extra_javascript:
# Define javascript to allow table sorting
# From: https://squidfunk.github.io/mkdocs-material/reference/data-tables/#sortable-tables
- theme/js/tablesort.min.js
# Define personal custom javascript
- theme/js/extra.js
# Extensions
# ---------------------------------------------------------------------------
markdown_extensions:
# Allow to include markdown files
# https://github.com/sethen/markdown-include
- markdown_include.include:
base_path: ./
# Python Markdown Extensions
# https://python-markdown.github.io/extensions/
- markdown.extensions.toc:
slugify: !!python/name:pymdownx.slugs.uslugify
permalink: ""
- markdown.extensions.admonition:
- markdown.extensions.smarty:
smart_quotes: false
- markdown.extensions.attr_list:
- markdown.extensions.def_list:
- markdown.extensions.tables:
- markdown.extensions.abbr:
- markdown.extensions.footnotes:
- markdown.extensions.meta:
- markdown.extensions.md_in_html:
# Pymdown Extensions
- pymdownx.extra:
- pymdownx.betterem:
- pymdownx.details:
- pymdownx.caret:
- pymdownx.escapeall:
hardbreak: True
nbsp: True
- pymdownx.critic:
- pymdownx.emoji:
emoji_index: !!python/name:pymdownx.emoji.twemoji
emoji_generator: !!python/name:pymdownx.emoji.to_svg
- pymdownx.inlinehilite:
- pymdownx.highlight:
linenums: true
linenums_special: 2
linenums_style: pymdownx-inline
guess_lang: false
extend_pygments_lang:
- name: pycon3
lang: pycon
options:
python3: true
- pymdownx.keys:
separator: "\uff0b"
- pymdownx.mark:
- pymdownx.magiclink:
repo_url_shortener: true
- pymdownx.progressbar:
- pymdownx.pathconverter:
- pymdownx.smartsymbols:
- pymdownx.snippets:
- pymdownx.striphtml:
- pymdownx.superfences:
preserve_tabs: true
- pymdownx.tabbed:
- pymdownx.tasklist:
custom_checkbox: true
- pymdownx.tilde:
# Locally installed in docs/theme/plugins/ from original repo
# https://github.com/g-provost/lightgallery-markdown
- lightgallery:
# Extra Data Information & Customization
# ---------------------------------------------------------------------------
# Dictionary storing social icon that will be shown on the bottom right.
extra:
social:
- icon: fontawesome/solid/globe
link: https://projet.liris.cnrs.fr/pagoda
name: PAGoDA Website
- icon: fontawesome/brands/gitlab
link: https://gitlab.liris.cnrs.fr/pagoda/
name: "@pagoda on Gitlab LIRIS"
version:
provider: mike
# Plugins
# ---------------------------------------------------------------------------
plugins:
- search:
# https://github.com/timvink/mkdocs-git-revision-date-localized-plugin
# MkDocs plugin that enables displaying the date of the last git
# modification of a page.
- git-revision-date-localized:
locale: en
fallback_to_build_date: true
# https://github.com/oprypin/mkdocs-section-index
# MkDocs plugin to allow clickable sections that lead to an index page
- section-index:
# https://github.com/apenwarr/mkdocs-exclude
# A mkdocs plugin that lets you exclude files or trees.
- exclude:
regex:
- .*theme.*.md
# https://github.com/fralau/mkdocs_macros_plugin
# Unleash the power of MkDocs with variables and macros
- macros:
module_name: docs/_data/plugins
include_dir: ./
include_yaml:
- docs/_data/vars.yaml
# Others yaml include are done automatically using
# mkdocs_macros_plugin (see docs/_data/plugins.py)
# https://spotify.github.io/mkdocs-monorepo-plugin/
# This plugin enables you to build multiple sets of documentation in a
# single Mkdocs.
- monorepo:
# https://pawamoy.github.io/mkdocstrings/
# Automatic documentation from sources, for MkDocs.
- mkdocstrings:
default_handler: python
handlers:
python:
rendering:
show_source: true
show_if_no_docstring: true
show_root_heading: false
show_root_toc_entry: false
show_root_full_path: true
show_object_full_path: true
show_root_members_full_path: true
show_category_heading: true
show_signature_annotations: false
group_by_category: true
heading_level: 2
setup_commands:
- import sys
# Others command such as sys.path.append("path") are
# Automatically added using mkdocs_macros_plugin
# (see docs/_data/plugins.py)
# DO NOT FORGET TO ADD/UPDATE THE \`nav\` KEY BELOW.
### END MKDOCS TEMPLATE ###
# - redirects:
# redirect_maps:
# index.md: index.fork.md
# Navigation Pane
# ---------------------------------------------------------------------------
nav:
- Home: index.md
- About:
- about/index.md
- Code of Conduct: about/code_of_conduct.md
- Contributing: about/contributing.md
- Data Privacy: about/data_privacy.md
- License: about/license.md
- Release Notes: about/release_notes.md
# *****************************************************************************
# VIM MODELINE
# vim: ft=yaml: fdm=indent
# *****************************************************************************
#!/usr/bin/env bash
# """Post setup script to handle the README.md file
#
# SYNOPSIS:
# NOT TO BE USED ALONE, MUST BE SOURCED
#
# DESCRIPTION:
# This script will define methods to install/upgrade the file README.md base
# on the git remote origin if its exists else, will ask the user to provide
# information.
#
# """
# Set constant variables
BASE_ONLINE_DOC_URL="https://docs.romaindeville.fr/"
REPO_URL=""
REPO_NAME=""
REPO_NAME_FIRST_UPPERCASE=""
REPO_ONLINE_DOC_URL=""
main_post_setup()
{
# """User defined post-setup config which handle update of `README.md`
#
# Main post-setup method which handle the management of `README.md` file from
# `user_config` folder using git repo information. If current repo is not a
# git repository without `origin` remote defined, print an error and exit.
#
# Globals:
# MKDOCS_ROOT
# MKDOCS_CLONE_ROOT
# UPGRADE
#
# Arguments:
# None
#
# Output:
# None
#
# Returns:
# 0, If everything went right
# 1, If something went wrong
#
# """
# - SC2034: var appears unused, Verify use (or export if used externally)
# shellcheck disable=SC2034
mkdocs_log()
{
# """Print debug message in colors depending on message severity on stderr.
#
# Echo colored log depending on user provided message severity. Message
# severity are associated to following color output:
#
# - `DEBUG` print in the fifth color of the terminal (usually magenta)
# - `INFO` print in the second color of the terminal (usually green)
# - `WARNING` print in the third color of the terminal (usually yellow)
# - `ERROR` print in the third color of the terminal (usually red)
#
# If no message severity is provided, severity will automatically be set to
# INFO.
#
# Globals:
# ZSH_VERSION
# MKDOCS_DEBUG_LEVEL
#
# Arguments:
# $1 : string, message severity or message content
# $@ : string, message content
#
# Output:
# Colored log informations
#
# Returns:
# None
#
# """
# Store color prefixes in variable to ease their use.
# Base on only 8 colors to ensure portability of color when in tty
local e_normal="\e[0m" # Normal (usually white fg & transparent bg)
local e_bold="\e[1m" # Bold
local e_underline="\e[4m" # Underline
local e_debug="\e[0;35m" # Fifth term color (usually magenta fg)
local e_info="\e[0;32m" # Second term color (usually green fg)
local e_warning="\e[0;33m" # Third term color (usually yellow fg)
local e_error="\e[0;31m" # First term color (usually red fg)
# Store preformated colored prefix for log message
local error="${e_bold}${e_error}[ERROR]${e_normal}${e_error}"
local warning="${e_bold}${e_warning}[WARNING]${e_normal}${e_warning}"
local info="${e_bold}${e_info}[INFO]${e_normal}${e_info}"
local debug="${e_bold}${e_debug}[DEBUG]${e_normal}${e_debug}"
local color_output="e_error"
local msg_severity
local msg
# Not using ${1^^} to ensure portability when using ZSH
msg_severity=$(echo "$1" | tr '[:upper:]' '[:lower:]')
if [[ "${msg_severity}" =~ ^(error|time|warning|info|debug)$ ]]
then
# Shift arguments by one such that $@ start from the second arguments
shift
# Place the content of variable which name is defined by ${msg_severity}
# For instance, if `msg_severity` is INFO, then `prefix` will have the same
# value as variable `info`.
if [[ -n "${ZSH_VERSION}" ]]
then
prefix="${(P)msg_severity}"
else
prefix="${!msg_severity}"
fi
color_output="e_${msg_severity}"
else
prefix="${info}"
fi
if [[ -n "${ZSH_VERSION}" ]]
then
color_output="${(P)color_output}"
else
color_output="${!color_output}"
fi
# Concat all remaining arguments in the message content and apply markdown
# like syntax.
msg_content=$(echo "$*" \
| sed -e "s/ \*\*/ \\${e_bold}/g" \
-e "s/\*\*\./\\${e_normal}\\${color_output}./g" \
-e "s/\*\* /\\${e_normal}\\${color_output} /g" \
-e "s/\*\*$/\\${e_normal}\\${color_output} /g" \
-e "s/ \_\_/ \\${e_underline}/g" \
-e "s/\_\_\./\\${e_normal}\\${color_output}./g" \
-e "s/\_\_ /\\${e_normal}\\${color_output} /g")
msg="${prefix} ${msg_content}${e_normal}"
# Print message or not depending on message severity and MKDOCS_DEBUG_LEVEL
if [[ -z "${MKDOCS_DEBUG_LEVEL}" ]] && [[ "${msg_severity}" == "error" ]]
then
echo -e "${msg}" 1>&2
elif [[ -n "${MKDOCS_DEBUG_LEVEL}" ]]
then
case ${MKDOCS_DEBUG_LEVEL} in
DEBUG)
echo "${msg_severity}" \
| grep -q -E "(debug|info|warning|error)" && echo -e "${msg}" 1>&2
;;
INFO)
echo "${msg_severity}" \
| grep -q -E "(info|warning|error)" && echo -e "${msg}" 1>&2
;;
WARNING)
echo "${msg_severity}" \
| grep -q -E "(warning|error)" && echo -e "${msg}" 1>&2
;;
ERROR)
echo "${msg_severity}" \
| grep -q -E "error" && echo -e "${msg}" 1>&2
;;
esac
fi
}
extract_repo_info()
{
# """Extract repository from the origin remote
#
# Parse output of command `git remote -v | grep origin` to setup repo
# information store in `REPO_*` variables
#
# Globals:
# REPO_URL
# REPO_NAME
# REPO_NAME_FIRST_UPPERCASE
# REPO_NAME_FIRST_UPPERCASE_ARRAY
# REPO_ONLINE_DOC_URL
#
# Arguments:
# None
#
# Output:
# None
#
# Returns:
# None
# """
local repo_remote
local repo_domain
repo_remote=$(git remote -v | \
grep origin | \
head -1 | \
sed -e "s/origin\t//g" -e "s/ *([a-z]*)//g")
if [[ "${repo_remote}" =~ @ ]]
then
repo_remote=${repo_remote##*@}
repo_domain="https://${repo_remote%%:*}/"
repo_with_namespace="${repo_remote##*:}"
else
repo_domain=${repo_remote##https:\/\/}
repo_domain="https://${repo_domain%%/*}/"
repo_with_namespace="${repo_remote/${repo_domain}/}"
fi
REPO_URL="${repo_domain}${repo_with_namespace/.git/}"
REPO_NAME="${repo_with_namespace##*/}"
REPO_NAME="${REPO_NAME/.git/}"
REPO_NAME_FIRST_UPPERCASE="${REPO_NAME/_/ }"
REPO_NAME_FIRST_UPPERCASE="${REPO_NAME_FIRST_UPPERCASE/-/ }"
# shellcheck disable=SC2206
# - SC2206: Quote to prevent word splitting/globbing
REPO_NAME_FIRST_UPPERCASE_ARRAY=( ${REPO_NAME_FIRST_UPPERCASE} )
# shellcheck disable=SC2178
# - SC2178: Variabel was used as an array but is now assigned a string
REPO_NAME_FIRST_UPPERCASE="${REPO_NAME_FIRST_UPPERCASE_ARRAY[*]^}"
REPO_ONLINE_DOC_URL="${BASE_ONLINE_DOC_URL}${repo_with_namespace/.git/}"
}
ensure_remote_origin()
{
# """Ensure remote `origin` exists and parse remote info
#
# Ensure current folder is a git folder with an `origin` remote defined. If
# not, print an error else extract repository information from remote.
#
# Globals:
# None
#
# Arguments:
# None
#
# Output:
# Error message if git remote `origin` does not exists
#
# Returns:
# 0, if everything went right
# 1, if remote `origin` does not exists or not in a git repository
# """
if ! git remote -v | grep origin &> /dev/null
then
mkdocs_log "WARNING" "Unable to fetch git remote **\`origin\`**!"
mkdocs_log "WARNING" "Are you sure you are in a git repository with an origin remote defined ?"
return 1
else
extract_repo_info
fi
}
upgrade_readme()
{
# """Upgrade latest version of README.md
#
# Check if latest version of README.md is different from the old version. If
# yes, then move the old version to ${MKDOCS_ROOT}/.old then upgrade to
# latest version.
#
# Globals:
# MKDOCS_ROOT
# REPO_URL
# REPO_NAME
# REPO_NAME_FIRST_UPPERCASE
# REPO_NAME_FIRST_UPPERCASE_ARRAY
# REPO_ONLINE_DOC_URL
#
# Arguments:
# $1, string, absolute path to the latest file version to be installed
# $2, string, absolute path to the location of the installation
#
# Output:
# Log messages
#
# Returns:
# None
#
# """
local file_from="$1"
local file_to="$2"
local relative_file_to="${file_to##*${MKDOCS_ROOT}\/}"
local tmp_file_from="${MKDOCS_TMP}/${relative_file_to}.new"
local tmp_file_to="${MKDOCS_TMP}/${relative_file_to}.old"
local bak_file=${file_to//${MKDOCS_ROOT}/${MKDOCS_ROOT}\/.old}
local begin="<\!-- BEGIN MKDOCS TEMPLATE -->"
local end="<\!-- END MKDOCS TEMPLATE -->"
local bak_dir
bak_file=${bak_file}.$(date "+%Y-%m-%d-%H-%M")
bak_dir=$(dirname "${bak_file}")
sed -n -e "/${begin}/,/${end}/"p "${file_from}" > "${tmp_file_from}"
sed -i \
-e "s|<TPL:REPO_NAME>|${REPO_NAME}|g" \
-e "s|<TPL:REPO_URL>|${REPO_URL}|g" \
-e "s|<TPL:REPO_ONLINE_DOC_URL>|${REPO_ONLINE_DOC_URL}|g" \
-e "s|<TPL:REPO_NAME_FIRST_UPPERCASE>|${REPO_NAME_FIRST_UPPERCASE}|g" \
"${tmp_file_from}"
sed -n -e "/${begin}/,/${end}/"p "${file_to}" > "${tmp_file_to}"
if [[ "$(sha1sum "${tmp_file_from}" | cut -d " " -f 1 )" \
!= "$(sha1sum "${tmp_file_to}" | cut -d " " -f 1 )" ]]
then
mkdocs_log "INFO" "Backup file **${relative_file_to}** to **${bak_file##*${MKDOCS_ROOT}\/}.**"
if ! [[ -d "${bak_dir}" ]]
then
mkdir -p "${bak_dir}"
fi
cp "${file_to}" "${bak_file}"
grep -B 1000000 "${begin}" "${file_to}" | sed -e "s/${begin}//g" > "${tmp_file_to}"
cat "${tmp_file_from}" >> "${tmp_file_to}"
grep -A 1000000 "${end}" "${file_to}" | sed -e "s/${end}//g" >> "${tmp_file_to}"
cat "${tmp_file_to}" > "${file_to}"
fi
}
setup_readme()
{
# """Install latest version of README.md from user_config folder
#
# Simply install README.md file replacing <TPL:XXX> with previously computed
# value.
#
# Globals:
# MKDOCS_ROOT
# REPO_URL
# REPO_NAME
# REPO_NAME_FIRST_UPPERCASE
# REPO_NAME_FIRST_UPPERCASE_ARRAY
# REPO_ONLINE_DOC_URL
#
#
# Arguments:
# $1, string, absolute path to the latest file version to be installed
# $2, string, absolute path to the location of the installation
#
# Output:
# Log messages
#
# Returns:
# None
#
# """
local file_from="$1"
local file_to="$2"
local relative_file_to="${file_to##*${MKDOCS_ROOT}\/}"
local begin="<!-- BEGIN MKDOCS TEMPLATE -->"
local end="<!-- END MKDOCS TEMPLATE -->"
mkdocs_log "INFO" "Installing file **${relative_file_to}**."
content=""
if ! grep "${begin}" "${file_from}" &> /dev/null
then
content+="\
${begin}
<!--
WARNING, DO NOT UPDATE CONTENT BETWEEN MKDOCS TEMPLATE TAG !
Modified content will be overwritten when updating
-->
$(cat "${file_from}")
${end}"
else
content="$(cat "${file_from}")"
fi
echo -e "${content}" | \
sed -e "s|<TPL:REPO_NAME>|${REPO_NAME}|g" \
-e "s|<TPL:REPO_URL>|${REPO_URL}|g" \
-e "s|<TPL:REPO_ONLINE_DOC_URL>|${REPO_ONLINE_DOC_URL}|g" \
-e "s|<TPL:REPO_NAME_FIRST_UPPERCASE>|${REPO_NAME_FIRST_UPPERCASE}|g" \
> "${file_to}"
}
if ! ensure_remote_origin
then
return 1
fi
file_from="${MKDOCS_CLONE_ROOT}/user_config/README.md"
file_to="${MKDOCS_ROOT}/README.md"
if [[ "${UPGRADE}" == "true" ]]
then
upgrade_readme "${file_from}" "${file_to}"
else
setup_readme "${file_from}" "${file_to}"
fi
}
# *****************************************************************************
# VIM MODELINE
# vim: fdm=indent:fdi=
# *****************************************************************************
# No need for [build-system] as this pyproject.toml per PEP-518 as this file
# serve to a centralized configuration file for development tools such as
# black, flake8/flake9, pylint, pycodestyle, etc.
[build-system]
requires = [
"setuptools",
"wheel"
]
build-backend = "setuptools.build_meta"
# -----------------------------------------------------------------------------
# Tox (Test automation) configuration
# https://tox.readthedocs.io/en/latest/#
[tool.tox]
legacy_tox_ini="""
# Global configuration
[tox]
isolated_build=true
skipsdist=true
envlist=format_{python,shell},build_doc
[testenv:format_python]
# Allow external commands
allowlist_externals=
/usr/bin/bash
skip_install=true
deps =
-r./requirements.prod.txt
-r./requirements.dev.txt
commands =
# Automatically sort import in python files
isort .
# Automatically format code
black ./
# Lint python files using pylint
bash -c '\
pylint \
$(find . -type f \\( \
-name "*.py" \
-not -path "./.*" \
-not -path "./docs/theme/*" \
-not -path "./python_venv/*" \
-not -path "./tmp/*" \
-not -path "./site**/*" \\) )'
# Lint python files using flake8
flake8
# Ensure docstring convention (google is mkdocs rendering documentation)
pydocstyle --count --convention=google
[testenv:format_shell]
# Allow external commands
allowlist_externals=
/usr/bin/bash
skip_install=true
deps =
-r./requirements.prod.txt
-r./requirements.dev.txt
commands =
# Linter bash script using shellcheck
bash -c '\
shellcheck \
-s bash \
-x \
$(find . -type f \\( \
-name "*.sh" \
-not -path "./.*" \
-not -path "./python_venv/*" \\) ) '
bash -c 'DIRENV_ROOT="$(pwd)" ./tools/generate_source_docs.sh --dry-run'
[testenv:build_doc]
# Allow external commands
allowlist_externals=
/usr/bin/bash
/usr/bin/rm
skip_install=true
deps =
-r./requirements.docs.txt
commands =
# Ensure build of documentation website is working
mkdocs build -d site_local
# If everything went right, remove build site
rm -rf site_local
bash -c '\
if [[ -f "mkdocs.local.yml" ]]; \
then \
mkdocs build -f mkdocs.local.yml -d site_monorepo; \
rm -rf site_monorepo; \
fi'
"""
### BEGIN MKDOCS TEMPLATE ###
### WARNING, DO NOT UPDATE CONTENT BETWEEN MKDOCS TEMPLATE TAG ! ###
### Modified content will be overwritten when updating. ###
# -----------------------------------------------------------------------------
# Pytest configuration
# https://docs.pytest.org/en/latest/customize.html?highlight=pyproject#pyproject-toml
[tool.pytest.ini_options]
# TODO: Find online documentation about this option.
ignore=[".tox",".direnv", "python_venv"]
# Sets list of directories that should be searched for tests when no specific
# directories, files or test ids are given in the command line when executing
# pytest from the rootdir directory. Useful when all project tests are in a
# known location to speed up test collection and to avoid picking up undesired
# tests by accident.
testpaths=[ "test" ]
# -----------------------------------------------------------------------------
# For sorting imports
# https://timothycrosley.github.io/isort/
[tool.isort]
# Tells isort to set the known standard library based on the specified Python
# version. Default is to assume any Python 3 version could be the target, and use
# a union of all stdlib modules across versions. If auto is specified, the
# version of the interpreter used to run isort (currently: 38) will be used.
# Default:`py3`
#py_version="py3"
# Force specific imports to the top of their appropriate section.
# Default: `frozenset()`
#force_to_top=[]
# Files that sort imports should skip over. If you want to skip multiple files
# you should specify twice: --skip file1 --skip file2.
# Default: `('.bzr', '.direnv', '.eggs', '.git', '.hg', '.mypy_cache', '.nox',
# '.pants.d', '.svn', '.tox', '.venv', '_build', 'buck-out', 'build', 'dist',
# 'node_modules', 'venv')`
skip=['.bzr',
'.direnv',
'.eggs',
'.git',
'.hg',
'.mypy_cache',
'.nox',
'.pants.d',
'.svn',
'.tox',
'.venv',
'_build',
'buck-out',
'build',
'dist',
'node_modules',
'venv',
'python_venv']
# Files that sort imports should skip over.
# Default: frozenset()
#skip_glob=[]
# Treat project as a git repository and ignore files listed in .gitignore
# Default: `False`
skip_gitignore=true
# The max length of an import line (used for wrapping long imports).
# Default: `79`
line_length=80
# Specifies how long lines that are wrapped should be, if not set line_length is
# used. NOTE: wrap_length must be LOWER than or equal to line_length.
# Default: `0`
#wrap_length=0
# Forces line endings to the specified value. If not set, values will be guessed
# per-file.
# Default: ``
#line_ending
# Order of import
# Default:`('FUTURE', 'STDLIB', 'THIRDPARTY', 'FIRSTPARTY', 'LOCALFOLDER')`
#sections=
# Put all imports into the same section bucket
# Default: `False`
#no_sections=false
# Force isort to recognize a module as part of Python's internal future
# compatibility libraries. WARNING: this overrides the behavior of __future__
# handling and therefore can result in code that can't execute. If you're looking
# to add dependencies such as six a better option is to create a another section
# below --future using custom sections. See:
# https://github.com/PyCQA/isort#custom-sections-and-ordering and the discussion
# here: https://github.com/PyCQA/isort/issues/1463.
# Default: `('__future__',)`
#known_future_library=
# Force isort to recognize a module as being part of a third party library.
# Default: `frozenset()`
#known_third_party=
# Force isort to recognize a module as being part of the current python project.
# Default: `frozenset()`
#known_first_party=
# Force isort to recognize a module as being a local folder. Generally, this is
# reserved for relative imports (from . import module).
# Default: `frozenset()`
#known_local_folder=
# Force isort to recognize a module as part of Python's standard library.
# Default: `('_dummy_thread', '_thread', 'abc', 'aifc', 'argparse', 'array',
# 'ast', 'asynchat', 'asyncio', 'asyncore', 'atexit', 'audioop', 'base64',
# 'bdb', 'binascii', 'binhex', 'bisect', 'builtins', 'bz2', 'cProfile',
# 'calendar', 'cgi', 'cgitb', 'chunk', 'cmath', 'cmd', 'code', 'codecs',
# 'codeop', 'collections', 'colorsys', 'compileall', 'concurrent',
# 'configparser', 'contextlib', 'contextvars', 'copy', 'copyreg', 'crypt',
# 'csv', 'ctypes', 'curses', 'dataclasses', 'datetime', 'dbm', 'decimal',
# 'difflib', 'dis', 'distutils', 'doctest', 'dummy_threading', 'email',
# 'encodings', 'ensurepip', 'enum', 'errno', 'faulthandler', 'fcntl', 'filecmp',
# 'fileinput', 'fnmatch', 'formatter', 'fpectl', 'fractions', 'ftplib',
# 'functools', 'gc', 'getopt', 'getpass', 'gettext', 'glob', 'graphlib', 'grp',
# 'gzip', 'hashlib', 'heapq', 'hmac', 'html', 'http', 'imaplib', 'imghdr',
# 'imp', 'importlib', 'inspect', 'io', 'ipaddress', 'itertools', 'json',
# 'keyword', 'lib2to3', 'linecache', 'locale', 'logging', 'lzma', 'macpath',
# 'mailbox', 'mailcap', 'marshal', 'math', 'mimetypes', 'mmap', 'modulefinder',
# 'msilib', 'msvcrt', 'multiprocessing', 'netrc', 'nis', 'nntplib', 'ntpath',
# 'numbers', 'operator', 'optparse', 'os', 'ossaudiodev', 'parser', 'pathlib',
# 'pdb', 'pickle', 'pickletools', 'pipes', 'pkgutil', 'platform', 'plistlib',
# 'poplib', 'posix', 'posixpath', 'pprint', 'profile', 'pstats', 'pty', 'pwd',
# 'py_compile', 'pyclbr', 'pydoc', 'queue', 'quopri', 'random', 're',
# 'readline', 'reprlib', 'resource', 'rlcompleter', 'runpy', 'sched', 'secrets',
# 'select', 'selectors', 'shelve', 'shlex', 'shutil', 'signal', 'site', 'smtpd',
# 'smtplib', 'sndhdr', 'socket', 'socketserver', 'spwd', 'sqlite3', 'sre',
# 'sre_compile', 'sre_constants', 'sre_parse', 'ssl', 'stat', 'statistics',
# 'string', 'stringprep', 'struct', 'subprocess', 'sunau', 'symbol', 'symtable',
# 'sys', 'sysconfig', 'syslog', 'tabnanny', 'tarfile', 'telnetlib', 'tempfile',
# 'termios', 'test', 'textwrap', 'threading', 'time', 'timeit', 'tkinter',
# 'token', 'tokenize', 'trace', 'traceback', 'tracemalloc', 'tty', 'turtle',
# 'turtledemo', 'types', 'typing', 'unicodedata', 'unittest', 'urllib', 'uu',
# 'uuid', 'venv', 'warnings', 'wave', 'weakref', 'webbrowser', 'winreg',
# 'winsound', 'wsgiref', 'xdrlib', 'xml', 'xmlrpc', 'zipapp', 'zipfile',
# 'zipimport', 'zlib', 'zoneinfo')`
#known_standard_library=
# Extra modules to be included in the list of ones in Python's standard library.
# Default: `frozenset()`
#extra_standard_library=
# No Description
# ----- Example `pyproject.toml`
# ```
# [tool.isort]
# sections=['FUTURE', 'STDLIB', 'THIRDPARTY', 'AIRFLOW', 'FIRSTPARTY', 'LOCALFOLDER']
# known_airflow=['airflow']
# ```
# Default: `{}`
#known_other=
# Multi line output (0-grid, 1-vertical, 2-hanging, 3-vert-hanging, 4-vert-grid,
# 5-vert-grid-grouped, 6-vert-grid-grouped-no-comma, 7-noqa,
# 8-vertical-hanging-indent-bracket, 9-vertical-prefix-from-module-import,
# 10-hanging-indent-with-parentheses).
# Default: `WrapModes.GRID`
multi_line_output=3
# No Description**
# Default: `()`
#forced_separate=
# String to place for indents defaults to " " (4 spaces).
# Default: ` `
#indent=
# No Description
# Default: ` #`
#comment_prefix=
# Sort imports by their string length.
# Default: `False`
#length_sort=false
# Sort straight imports by their string length. Similar to `length_sort` but
# applies only to straight imports and doesn't affect from imports.
# Default: `False`
#length_sort_straight=false
# No Description
# Default: `frozenset()`
#length_sort_sections=[]
# Adds the specified import line to all files, automatically determining correct
# placement.
# Default: `frozenset()`
#add_imports=[]
# Removes the specified import from all files.
# Default: `frozenset()`
#remove_imports=[]
# Only adds the imports specified in --add-import if the file contains existing
# imports.
# Default: `False`
#append_only=false
# Reverse order of relative imports.
# Default: `False`
#reverse_relative=false
# Forces all from imports to appear on their own line
# Default: `False`
#force_single_line=false
# One or more modules to exclude from the single line rule.
# Default: `()`
#single_line_exclusions=[]
# Sets the default section for import options: ('FUTURE', 'STDLIB',
# 'THIRDPARTY', 'FIRSTPARTY', 'LOCALFOLDER')
# Default: `THIRDPARTY`
#default_section="THIRDPARTY
# No Description
# Default: `{}`
#import_headings=[]
# Balances wrapping to produce the most consistent line length possible
# Default: `False`
#balanced_wrapping=false
# Use parentheses for line continuation on length limit instead of slashes.
# **NOTE**: This is separate from wrap modes, and only affects how individual
# lines that are too long get continued, not sections of multiple imports.
# Default: `False`
use_parentheses=true
# Order imports by type, which is determined by case, in addition to alphabetically.
# **NOTE**: type here refers to the implied type from the import name
# capitalization. isort does not do type introspection for the imports. These
# "types" are simply: CONSTANT_VARIABLE, CamelCaseClass, variable_or_function.
# If your project follows PEP8 or a related coding standard and has many imports
# this is a good default, otherwise you likely will want to turn it off. From
# the CLI the `--dont-order-by-type` option will turn this off.
# Default:*`True`
#order_by_type=true
# Ensures the output doesn't save if the resulting file contains syntax errors.
# Default: `False`
#atomic=false
# Lines after inmports
# Default: `-1`
#lines_after_imports=-1
# Lines Between Sections
# Default: `1`
#lines_between_sections=1
# Lines Between Types
# Default: `0`
#lines_between_types=0
# Combines as imports on the same line.
# Default: `False`
#combine_as_imports=false
# Ensures that if a star import is present, nothing else is imported from that
# namespace.
# Default: `False`
#combine_star=false
# Includes a trailing comma on multi line imports that include parentheses.
# Default: `False`
include_trailing_comma=true
# Switches the typical ordering preference, showing from imports first then
# straight ones.
# Default: `False`
#from_first=false
# Shows verbose output, such as when files are skipped or when a check is
# successful.
# Default: `False`
#verbose=false
# Shows extra quiet output, only errors are outputted.
# Default:`False`
#quiet=false
# Forces import adds even if the original file is empty.
# Default: `False`
#force_adds=false
# Force all imports to be sorted alphabetically within a section
# Default: `False`
#force_alphabetical_sort_within_sections= false
# Force all imports to be sorted as a single section
# Default: `False`
#force_alphabetical_sort=false
# Force number of from imports (defaults to 2 when passed as CLI flag without
# value)to be grid wrapped regardless of line length. If 0 is passed in (the
# global default) only line length is considered.
# Default: `0`
force_grid_wrap=0
# Don't sort straight-style imports (like import sys) before from-style imports
# (like from itertools import groupby). Instead, sort the imports by module,
# independent of import style.
# Default: `False`
#force_sort_within_sections=false
# Lexicographical
# Default: `False`
#lexicographical=false
# Group By Package
# Default: `False`
#group_by_package=false
# Tells isort to ignore whitespace differences when --check-only is being used.
# Default: `False`
#ignore_whitespace+false
# Sections which should not be split with previous by empty lines
# Default: `frozenset()`
#no_lines_before=[]
# Leaves `from` imports with multiple imports 'as-is' (e.g. `from foo import a,
# c ,b`).
# Default: `False`
#no_inline_sort=false
# Ignore Comments
# Default: `False`
#ignore_comments=false
# Tells isort to include casing when sorting module names
# Default: `False`
#case_sensitive=false
# Sources
# Default: `()`
#sources=[]
# Virtual environment to use for determining whether a package is third-party
# Default: ``
#virtual_env=
# Conda environment to use for determining whether a package is third-party
# Default: ``
#conda_env=
# Inserts a blank line before a comment following an import.
# Default: `False`
#ensure_newline_before_comments=false
# Directory
# Default: ``
#directory+
# Profile
# Base profile type to use for configuration. Profiles include: black, django,
# pycharm, google, open_stack, plone, attrs, hug. As well as any shared profiles.
# Default: ``
profile="black"
# Tells isort to honor noqa comments to enforce skipping those comments.
# Default: `False`
#honor_noqa=false
# Add an explicitly defined source path (modules within src paths have their
# imports automatically categorized as first_party).
# Default: `()`
src_paths=["src"]
# Use the old deprecated finder logic that relies on environment introspection magic.
# Default: `False`
#old_finders=false
# Tells isort to remove redundant aliases from imports, such as `import os as
# os`. This defaults to `False` simply because some projects use these seemingly
# useless aliases to signify intent and change behaviour.
# Default: `False`
#remove_redundant_aliases=false
# Causes all non-indented imports to float to the top of the file having its
# imports sorted (immediately below the top of file comment).
# This can be an excellent shortcut for collecting imports every once in a while
# when you place them in the middle of a file to avoid context switching.
# *NOTE*: It currently doesn't work with cimports and introduces some extra
# over-head and a performance penalty.
# Default: `False`
#float_to_top=false
# Tells isort to filter files even when they are explicitly passed in as part of
# the CLI command.
# Default: `False`
#filter_files=false
# Specifies the name of a formatting plugin to use when producing output.
# Default: ``
#formatter
# Formatting Function
# Default: `None`
#formatting_function=None
# Color Output
# Tells isort to use color in terminal output.
# Default: `False`
color_output=true
# Tells isort to treat the specified single line comment(s) as if they are code.
# Default: `frozenset()`
#treat_comments_as_code=[]
# Tells isort to treat all single line comments as if they are code.
# Default: `False`
#treat_all_comments_as_code=false
# Specifies what extensions isort can be ran against.
# Default: `('pxd', 'py', 'pyi', 'pyx')`
#supported_extensions=['pxd', 'py', 'pyi', 'pyx']
# Specifies what extensions isort can never be ran against.
# Default: `('pex',)`
#blocked_extensions=["pex"]
# Constants
# Default: `frozenset()`
#constants
# Classes
# Default: `frozenset()`
#classes
# Variables
# Default: `frozenset()`
#variables
# Tells isort to only show an identical custom import heading comment once, even
# if there are multiple sections with the comment set.
# Default: `False`
#dedup_headings=false
# Causes imports to be sorted only based on their sections like
# STDLIB,THIRDPARTY etc. Imports are unaltered and keep their relative positions
# within the different sections.
# Default: `False`
#only_sections=false
# Suppresses verbose output for non-modified files.
# Default: `False`
#only_modified=false
# Combines all the bare straight imports of the same section in a single line.
# Won't work with sections which have 'as' imports
# Default: `False`
#combine_straight_imports=false
# Auto Identify Namespace Packages
# Default: `True`
#auto_identify_namespace_packages+true
# Namespace Packages
# Default: `frozenset()`
#namespace_packages
# Follow Links
# Default: `True`
#follow_links=
# -----------------------------------------------------------------------------
# Black (Optionless formatter) configuration
# https://black.readthedocs.io/en/stable/index.html
[tool.black]
# How many characters per line to allow.
line-length=80
# Python versions that should be supported by Black's output
target-version=['py38']
# A regular expression that matches files and directories that should be
# included on recursive searches. An empty value means all files are included
# regardless of the name. Use forward slashes for directories on all platforms
# (Windows, too). Exclusions are calculated first, inclusions later.
include='\.pyi?$'
# A regular expression that matches files and directories that should be
# excluded on recursive searches. An empty value means no paths are excluded.
# Use forward slashes for directories on all platforms (Windows, too).
# Exclusions are calculated first, inclusions later.
exclude='''
(
/(
\.eggs # exclude a few common directories in the
| \.eggs-info
| \.git # root of the project
| \.tox
| \.venv
| \.sha1
| \.direnv/python_venv
| \.direnv/.sha1
| python_venv
| build
| dist
| site
| site.tox
)/
)
'''
# -----------------------------------------------------------------------------
# Pylint configuration
# Automatically generated with 'pylint --generate-rcfile'
# https://pylint.readthedocs.io/en/latest/index.html
[tool.pylint.'MASTER']
# A comma-separated list of package or module names from where C extensions may
# be loaded. Extensions are loading into the active Python interpreter and may
# run arbitrary code.
extension-pkg-whitelist=[]
# Specify a score threshold to be exceeded before program exits with error.
fail-under=10
# Add files or directories to the blacklist. They should be base names, not
# paths.
ignore=[".tox",".direnv", "python_venv"]
# Add files or directories matching the regex patterns to the blacklist. The
# regex matches against base names, not paths.
ignore-patterns=[]
# Python code to execute, usually for sys.path manipulation such as
# pygtk.require().
# init-hook=
# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the
# number of processors available to use.
jobs=0
# Control the amount of potential inferred values when inferring a single
# object. This can help the performance when dealing with large functions or
# complex, nested conditions.
limit-inference-results=100
# List of plugins (as comma separated values of python module names) to load,
# usually to register additional checkers.
load-plugins=[]
# Pickle collected data for later comparisons.
persistent=true
# When enabled, pylint would attempt to guess common misconfiguration and emit
# user-friendly hints instead of false-positive error messages.
suggestion-mode=true
# Allow loading of arbitrary C extensions. Extensions are imported into the
# active Python interpreter and may run arbitrary code.
unsafe-load-any-extension=false
[tool.pylint.'MESSAGES CONTROL']
# Only show warnings with the listed confidence levels. Leave empty to show
# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED.
confidence=[]
# Disable the message, report, category or checker with the given id(s). You
# can either give multiple identifiers separated by comma (,) or put this
# option multiple times (only on the command line, not in the configuration
# file where it should appear only once). You can also use "--disable=all" to
# disable everything first and then reenable specific checks. For example, if
# you want to run only the similarities checker, you can use "--disable=all
# --enable=similarities". If you want to run only the classes checker, but have
# no Warning level messages displayed, use "--disable=all --enable=classes
# --disable=W".
disable=[]
# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
# multiple time (only on the command line, not in the configuration file where
# it should appear only once). See also the "--disable" option for examples.
enable=["c-extension-no-member"]
[tool.pylint.'REPORTS']
# Python expression which should return a score less than or equal to 10. You
# have access to the variables 'error', 'warning', 'refactor', and 'convention'
# which contain the number of messages in each category, as well as 'statement'
# which is the total number of statements analyzed. This score is used by the
# global evaluation report (RP0004).
evaluation="10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)"
# Template used to display messages. This is a python new-style format string
# used to format the message information. See doc for all details.
#msg-template=
# Set the output format. Available formats are text, parseable, colorized, json
# and msvs (visual studio). You can also give a reporter class, e.g.
# mypackage.mymodule.MyReporterClass.
output-format="text"
# Tells whether to display a full report or only the messages.
reports=false
# Activate the evaluation score.
score=true
[tool.pylint.'REFACTORING']
# Maximum number of nested blocks for function / method body
max-nested-blocks=5
# Complete name of functions that never returns. When checking for
# inconsistent-return-statements if a never returning function is called then
# it will be considered as an explicit return statement and no message will be
# printed.
never-returning-functions=["sys.exit"]
[tool.pylint.'TYPECHECK']
# List of decorators that produce context managers, such as
# contextlib.contextmanager. Add to this list to register other decorators that
# produce valid context managers.
contextmanager-decorators=["contextlib.contextmanager"]
# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E1101 when accessed. Python regular
# expressions are accepted.
generated-members=[]
# Tells whether missing members accessed in mixin class should be ignored. A
# mixin class is detected if its name ends with "mixin" (case insensitive).
ignore-mixin-members=true
# Tells whether to warn about missing members when the owner of the attribute
# is inferred to be None.
ignore-none=true
# This flag controls whether pylint should warn about no-member and similar
# checks whenever an opaque object is returned when inferring. The inference
# can return multiple potential results while evaluating a Python object, but
# some branches might not be evaluated, which results in partial inference. In
# that case, it might be useful to still emit no-member and other checks for
# the rest of the inferred objects.
ignore-on-opaque-inference=true
# List of class names for which member attributes should not be checked (useful
# for classes with dynamically set attributes). This supports the use of
# qualified names.
ignored-classes=["optparse.Values","thread._local","_thread._local"]
# List of module names for which member attributes should not be checked
# (useful for modules/projects where namespaces are manipulated during runtime
# and thus existing member attributes cannot be deduced by static analysis). It
# supports qualified module names, as well as Unix pattern matching.
ignored-modules=[]
# Show a hint with possible names when a member name was not found. The aspect
# of finding the hint is based on edit distance.
missing-member-hint=true
# The minimum edit distance a name should have in order to be considered a
# similar match for a missing member name.
missing-member-hint-distance=1
# The total number of similar names that should be taken in consideration when
# showing a hint for a missing member.
missing-member-max-choices=1
# List of decorators that change the signature of a decorated function.
signature-mutators=[]
[tool.pylint.'VARIABLES']
# List of additional names supposed to be defined in builtins. Remember that
# you should avoid defining new builtins when possible.
additional-builtins=[]
# Tells whether unused global variables should be treated as a violation.
allow-global-unused-variables=true
# List of strings which can identify a callback function by name. A callback
# name must start or end with one of those strings.
callbacks=["cb_","_cb"]
# A regular expression matching the name of dummy variables (i.e. expected to
# not be used).
#dummy-variables-rgx="+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_"
# Argument names that match this expression will be ignored. Default to name
# with leading underscore.
ignored-argument-names="_.*|^ignored_|^unused_"
# Tells whether we should check for unused import in __init__ files.
init-import=false
# List of qualified module names which can have objects that can redefine
# builtins.
redefining-builtins-modules=["six.moves","past.builtins","future.builtins","builtins","io"]
[tool.pylint.'LOGGING']
# The type of string formatting that logging methods do. `old` means using %
# formatting, `new` is for `{}` formatting.
logging-format-style="old"
# Logging modules to check that the string format arguments are in logging
# function parameter format.
logging-modules="logging"
[tool.pylint.'MISCELLANEOUS']
# List of note tags to take in consideration, separated by a comma.
notes=["FIXME","XXX","TODO"]
# Regular expression of note tags to take in consideration.
# notes-rgx=
[tool.pylint.'SIMILARITIES']
# Ignore comments when computing similarities.
ignore-comments=true
# Ignore docstrings when computing similarities.
ignore-docstrings=true
# Ignore imports when computing similarities.
ignore-imports=false
# Minimum lines number of a similarity.
min-similarity-lines=4
[tool.pylint.'SPELLING']
# Limits count of emitted suggestions for spelling mistakes.
max-spelling-suggestions=4
# Spelling dictionary name. Available dictionaries: none. To make it work,
# install the python-enchant package.
spelling-dict=[]
# List of comma separated words that should not be checked.
spelling-ignore-words=[]
# A path to a file that contains the private dictionary; one word per line.
spelling-private-dict-file=[]
# Tells whether to store unknown words to the private dictionary (see the
# --spelling-private-dict-file option) instead of raising a message.
spelling-store-unknown-words=false
[tool.pylint.'STRING']
# This flag controls whether inconsistent-quotes generates a warning when the
# character used as a quote delimiter is used inconsistently within a module.
check-quote-consistency=false
# This flag controls whether the implicit-str-concat should generate a warning
# on implicit string concatenation in sequences defined over several lines.
check-str-concat-over-line-jumps=false
[tool.pylint.'FORMAT']
# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.
expected-line-ending-format=[]
# Regexp for a line that is allowed to be longer than the limit.
ignore-long-lines='^\s*(# )?<?https?://\S+>?$'
# Number of spaces of indent required inside a hanging or continued line.
indent-after-paren=4
# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
# tab).
indent-string=' '
# Maximum number of characters on a single line.
max-line-length=100
# Maximum number of lines in a module.
max-module-lines=1000
# List of optional constructs for which whitespace checking is disabled. `dict-
# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}.
# `trailing-comma` allows a space between comma and closing bracket: (a, ).
# `empty-line` allows space-only lines.
no-space-check=["trailing-comma","dict-separator"]
# Allow the body of a class to be on the same line as the declaration if body
# contains single statement.
single-line-class-stmt=false
# Allow the body of an if to be on the same line as the test if there is no
# else.
single-line-if-stmt=false
[tool.pylint.'BASIC']
# Naming style matching correct argument names.
argument-naming-style="snake_case"
# Regular expression matching correct argument names. Overrides argument-
# naming-style.
#argument-rgx=
# Naming style matching correct attribute names.
attr-naming-style="snake_case"
# Regular expression matching correct attribute names. Overrides attr-naming-
# style.
#attr-rgx=
# Bad variable names which should always be refused, separated by a comma.
bad-names=["foo","bar","baz","toto","tutu","tata"]
# Bad variable names regexes, separated by a comma. If names match any regex,
# they will always be refused
bad-names-rgxs=[]
# Naming style matching correct class attribute names.
class-attribute-naming-style="any"
# Regular expression matching correct class attribute names. Overrides class-
# attribute-naming-style.
#class-attribute-rgx=
# Naming style matching correct class names.
class-naming-style="PascalCase"
# Regular expression matching correct class names. Overrides class-naming-
# style.
#class-rgx=
# Naming style matching correct constant names.
const-naming-style="UPPER_CASE"
# Regular expression matching correct constant names. Overrides const-naming-
# style.
#const-rgx=
# Minimum line length for functions/classes that require docstrings, shorter
# ones are exempt.
docstring-min-length=-1
# Naming style matching correct function names.
function-naming-style="snake_case"
# Regular expression matching correct function names. Overrides function-
# naming-style.
#function-rgx=
# Good variable names which should always be accepted, separated by a comma.
#good-names= ["i","j","k","ex","Run","_"]
# Good variable names regexes, separated by a comma. If names match any regex,
# they will always be accepted
good-names-rgxs=[]
# Include a hint for the correct naming format with invalid-name.
include-naming-hint=true
# Naming style matching correct inline iteration names.
inlinevar-naming-style="any"
# Regular expression matching correct inline iteration names. Overrides
# inlinevar-naming-style.
#inlinevar-rgx=
# Naming style matching correct method names.
method-naming-style="snake_case"
# Regular expression matching correct method names. Overrides method-naming-
# style.
#method-rgx=
# Naming style matching correct module names.
module-naming-style="snake_case"
# Regular expression matching correct module names. Overrides module-naming-
# style.
#module-rgx=
# Colon-delimited sets of names that determine each other's naming style when
# the name regexes allow several styles.
name-group=[]
# Regular expression which should only match function or class names that do
# not require a docstring.
no-docstring-rgx="^_"
# List of decorators that produce properties, such as abc.abstractproperty. Add
# to this list to register other decorators that produce valid properties.
# These decorators are taken in consideration only for invalid-name.
property-classes="abc.abstractproperty"
# Naming style matching correct variable names.
variable-naming-style="snake_case"
# Regular expression matching correct variable names. Overrides variable-
# naming-style.
# variable-rgx=
[tool.pylint.'IMPORTS']
# List of modules that can be imported at any level, not just the top level
# one.
allow-any-import-level=[]
# Allow wildcard imports from modules that define __all__.
allow-wildcard-with-all=false
# Analyse import fallback blocks. This can be used to support both Python 2 and
# 3 compatible code, which means that the block might have code that exists
# only in one or another interpreter, leading to false positives when analysed.
analyse-fallback-blocks=false
# Deprecated modules which should not be used, separated by a comma.
deprecated-modules="optparse,tkinter.tix"
# Create a graph of external dependencies in the given file (report RP0402 must
# not be disabled).
ext-import-graph=[]
# Create a graph of every (i.e. internal and external) dependencies in the
# given file (report RP0402 must not be disabled).
import-graph=[]
# Create a graph of internal dependencies in the given file (report RP0402 must
# not be disabled).
int-import-graph=[]
# Force import order to recognize a module as part of the standard
# compatibility libraries.
known-standard-library=[]
# Force import order to recognize a module as part of a third party library.
known-third-party="enchant"
# Couples of modules and preferred modules, separated by a comma.
preferred-modules=[]
[tool.pylint.'CLASSES']
# List of method names used to declare (i.e. assign) instance attributes.
defining-attr-methods=["__init__","__new__","setUp","__post_init__"]
# List of member names, which should be excluded from the protected access
# warning.
exclude-protected=["_asdict","_fields","_replace","_source","_make"]
# List of valid names for the first argument in a class method.
valid-classmethod-first-arg="cls"
# List of valid names for the first argument in a metaclass class method.
valid-metaclass-classmethod-first-arg="cls"
[tool.pylint.'DESIGN']
# Maximum number of arguments for function / method.
max-args=5
# Maximum number of attributes for a class (see R0902).
max-attributes=7
# Maximum number of boolean expressions in an if statement (see R0916).
max-bool-expr=5
# Maximum number of branch for function / method body.
max-branches=12
# Maximum number of locals for function / method body.
max-locals=15
# Maximum number of parents for a class (see R0901).
max-parents=7
# Maximum number of public methods for a class (see R0904).
max-public-methods=20
# Maximum number of return / yield for function / method body.
max-returns=6
# Maximum number of statements in function / method body.
max-statements=50
# Minimum number of public methods for a class (see R0903).
min-public-methods=2
[tool.pylint.'EXCEPTIONS']
# Exceptions that will emit a warning when being caught. Defaults to
# "BaseException, Exception".
overgeneral-exceptions=["BaseException","Exception"]
# -----------------------------------------------------------------------------
# Flake8/flake9
# https://flake8.pycqa.org/en/latest/user/configuration.html
[tool.flake8]
# Optionally inherit from remote config (or local if you want)
#base=https://url.git.com/pyproject.toml
# Specify any flake8 options.
# Print the total number of errors.
# Default False
count = true
# Provide a comma-separated list of glob patterns to exclude from checks.
exclude = ".git,__pycache__,.eggs,.env,.venv,.direnv,.tox,.sha1,build,dist,docs,site"
# Provide a comma-separate list of glob patterns to include for checks.
filename = "*.py"
# Select the formatter used to display errors to the user.
# This defaults to: default
# - default
# - pylint
# - grouped
# - colored
# The default formatter has a format string of:
# '%(path)s:%(row)d:%(col)d: %(code)s %(text)s'
#format="colored
# Toggle whether pycodestyle should enforce matching the indentation of the
# opening bracket’s line. When you specify this, it will prefer that you hang
# the closing bracket rather than match the indentation.
hang-closing = false
# Specify a list of codes to ignore. The list is expected to be comma-separated,
# and does not need to specify an error code exactly. Since Flake8 3.0, this can
# be combined with --select. See --select for more information.
# For example, if you wish to only ignore W234, then you can specify that. But
# if you want to ignore all codes that start with W23 you need only specify W23
# to ignore them. This also works for W2 and W (for example).
# This defaults to: E121,E123,E126,E226,E24,E704
ignore = "E121,E123,E126,E226,E24,E704,W503,E501"
# W503 : line break before binary operator
# E501 : line to long (already handled by black)
# Set the maximum length that any line (with some exceptions) may be.
# Exceptions include lines that are either strings or comments which are
# entirely URLs. For example:
# ```
# # https://some-super-long-domain-name.com/with/some/very/long/path
# url=(
# 'http://...'
# )
# This defaults to: 79
max-line-length = 80
# Report all errors, even if it is on the same line as a # NOQA comment. # NOQA
# can be used to silence messages on specific lines. Sometimes, users will want
# to see what errors are being silenced without editing the file. This option
# allows you to see all the warnings, errors, etc. reported.
# This default to : False
disable-noqa = true
# Print the source code generating the error/warning in question.
show-source = true
# Count the number of occurrences of each error/warning code and print a report.
statistics = true
# Enable off-by-default extensions.
# Plugins to Flake8 have the option of registering themselves as off-by-default.
# These plugins effectively add themselves to the default ignore list.
#enable-extensions =
# H111,
# G123
# Specify the number of subprocesses that Flake8 will use to run checks in parallel.
# Note
# This option is ignored on Windows because multiprocessing does not support
# Windows across all supported versions of Python.
# This defaults to: auto
# The default behaviour will use the number of CPUs on your machine as reported
# by multiprocessing.cpu_count().
jobs = "auto"
# Also print output to stdout if output-file has been configured.
tee = true
# Provide a custom list of builtin functions, objects, names, etc.
# This allows you to let pyflakes know about builtins that it may not
# immediately recognize so it does not report warnings for using an undefined
# name.
# This is registered by the default PyFlakes plugin.
#builtins =
# _,
# _LE,
# _LW
# Enable PyFlakes syntax checking of doctests in docstrings.
# This is registered by the default PyFlakes plugin.
#doctests = True
# Specify which files are checked by PyFlakes for doctest syntax.
# This is registered by the default PyFlakes plugin.
#include-in-doctest =
# dir/subdir/file.py,
# dir/other/file.py
# Specify which files are not to be checked by PyFlakes for doctest syntax.
# This is registered by the default PyFlakes plugin.
#exclude-in-doctest =
# dir/subdir/file.py,
# dir/other/file.py
### END MKDOCS TEMPLATE ###
# *****************************************************************************
# VIM MODELINE
# vim: ft=toml:fdm=indent:fdi=
# *****************************************************************************
# DEVELOPER REQUIREMENTS
# ============================================================
# DESCRIPTION:
# Mainly testing suite tools to ensure and/or enfore code syntax
# Testing tools
# ------------------------------------------------------------
# Tox is a generic virtualenv management and test command line tool
# https://pypi.org/project/tox/
tox
# The uncompromising code formatter.
# https://pypi.org/project/black/
black
# A Python utility / library to sort Python imports.
# https://pypi.org/project/isort/
isort
# pytest: simple powerful testing with Python
# https://pypi.org/project/pytest/
pytest
# Flake8 with pyproject support
# https://pypi.org/project/flake9/
flake9
# python code static checker
# https://pypi.org/project/pylint/
pylint
# Python docstring style checker
# https://pypi.org/project/pydocstyle/
pydocstyle
# Python wrapper around invoking shellcheck (https://www.shellcheck.net/)
# https://pypi.org/project/shellcheck-py/
shellcheck-py
# A linter for YAML files.
# https://pypi.org/project/yamllint/
yamllint
\ No newline at end of file
#
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile requirements.dev.in
#
appdirs==1.4.4
# via
# black
# virtualenv
astroid==2.5.6
# via pylint
attrs==21.2.0
# via pytest
black==21.5b0
# via -r requirements.dev.in
click==7.1.2
# via black
distlib==0.3.1
# via virtualenv
filelock==3.0.12
# via
# tox
# virtualenv
flake9==3.8.3.post2
# via -r requirements.dev.in
iniconfig==1.1.1
# via pytest
isort==5.8.0
# via
# -r requirements.dev.in
# pylint
lazy-object-proxy==1.6.0
# via astroid
mccabe==0.6.1
# via
# flake9
# pylint
mypy-extensions==0.4.3
# via black
packaging==20.9
# via
# pytest
# tox
pathspec==0.8.1
# via
# black
# yamllint
pluggy==0.13.1
# via
# pytest
# tox
py==1.10.0
# via
# pytest
# tox
pycodestyle==2.6.0
# via flake9
pydocstyle==6.0.0
# via -r requirements.dev.in
pyflakes==2.2.0
# via flake9
pylint==2.8.2
# via -r requirements.dev.in
pyparsing==2.4.7
# via packaging
pytest==6.2.4
# via -r requirements.dev.in
pyyaml==5.4.1
# via yamllint
regex==2021.4.4
# via black
shellcheck-py==0.7.2.1
# via -r requirements.dev.in
six==1.16.0
# via
# tox
# virtualenv
snowballstemmer==2.1.0
# via pydocstyle
toml==0.10.2
# via
# black
# pylint
# pytest
# tox
tox==3.23.1
# via -r requirements.dev.in
virtualenv==20.4.6
# via tox
wrapt==1.12.1
# via astroid
yamllint==1.26.1
# via -r requirements.dev.in
# DOCUMENTATION REQUIREMENTS
# ============================================================
# DESCRIPTION:
# Requirements to be able to render documentation locally
# Documentation rendering dependencies
# ------------------------------------------------------------
# Project documentation with Markdown.
# https://pypi.org/project/mkdocs/
mkdocs
# A Material Design theme for MkDocs
# https://pypi.org/project/mkdocs-material/
mkdocs-material>=7.1
# Plugin for adding monorepository support in Mkdocs.
# https://pypi.org/project/mkdocs-monorepo-plugin/
mkdocs-monorepo-plugin
# Mkdocs plugin that enables displaying the localized date of the last git
# modification of a markdown file.
# https://pypi.org/project/mkdocs-git-revision-date-localized-plugin/
mkdocs-git-revision-date-localized-plugin
# MkDocs plugin to allow clickable sections that lead to an index page
# https://pypi.org/project/mkdocs-section-index/
mkdocs-section-index
# Automatic documentation from sources, for MkDocs.
# https://pypi.org/project/mkdocstrings/
mkdocstrings
# This is an extension to Python-Markdown which provides an "include" function.
# https://pypi.org/project/markdown-include/
markdown-include
# Unleash the power of MkDocs with macros and variables
# https://pypi.org/project/mkdocs-macros-plugin/
mkdocs-macros-plugin
# A mkdocs plugin that lets you exclude files or trees.
# https://github.com/apenwarr/mkdocs-exclude
mkdocs-exclude
# Python lib/cli for JSON/YAML schema validation
# https://pypi.org/project/pykwalify/
pykwalify
# A MkDocs plugin for dynamic page redirects to prevent broken links.
# https://pypi.org/project/mkdocs-redirects/
mkdocs-redirects
#
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile requirements.docs.in
#
astunparse==1.6.3
# via pytkdocs
babel==2.9.1
# via mkdocs-git-revision-date-localized-plugin
click==8.0.0
# via
# mkdocs
# nltk
docopt==0.6.2
# via pykwalify
future==0.18.2
# via lunr
gitdb==4.0.7
# via gitpython
gitpython==3.1.17
# via mkdocs-git-revision-date-localized-plugin
jinja2==3.0.0
# via
# mkdocs
# mkdocs-macros-plugin
# mkdocstrings
joblib==1.0.1
# via nltk
livereload==2.6.3
# via mkdocs
lunr[languages]==0.5.8
# via mkdocs
markdown-include==0.6.0
# via -r requirements.docs.in
markdown==3.3.4
# via
# markdown-include
# mkdocs
# mkdocs-autorefs
# mkdocs-material
# mkdocstrings
# pymdown-extensions
markupsafe==2.0.0
# via
# jinja2
# mkdocstrings
mkdocs-autorefs==0.2.1
# via mkdocstrings
mkdocs-exclude==1.0.2
# via -r requirements.docs.in
mkdocs-git-revision-date-localized-plugin==0.9.2
# via -r requirements.docs.in
mkdocs-macros-plugin==0.5.5
# via -r requirements.docs.in
mkdocs-material-extensions==1.0.1
# via mkdocs-material
mkdocs-material==7.1.4
# via
# -r requirements.docs.in
# mkdocs-macros-plugin
# mkdocs-material-extensions
mkdocs-monorepo-plugin==0.4.14
# via -r requirements.docs.in
mkdocs-redirects==1.0.3
# via -r requirements.docs.in
mkdocs-section-index==0.3.0
# via -r requirements.docs.in
mkdocs==1.1.2
# via
# -r requirements.docs.in
# mkdocs-autorefs
# mkdocs-exclude
# mkdocs-git-revision-date-localized-plugin
# mkdocs-macros-plugin
# mkdocs-material
# mkdocs-monorepo-plugin
# mkdocs-redirects
# mkdocs-section-index
# mkdocstrings
mkdocstrings==0.15.1
# via -r requirements.docs.in
nltk==3.6.2
# via lunr
pygments==2.9.0
# via mkdocs-material
pykwalify==1.8.0
# via -r requirements.docs.in
pymdown-extensions==8.2
# via
# mkdocs-material
# mkdocstrings
python-dateutil==2.8.1
# via
# mkdocs-macros-plugin
# pykwalify
pytkdocs==0.11.1
# via mkdocstrings
pytz==2021.1
# via babel
pyyaml==5.4.1
# via
# mkdocs
# mkdocs-macros-plugin
regex==2021.4.4
# via nltk
ruamel.yaml.clib==0.2.2
# via ruamel.yaml
ruamel.yaml==0.17.4
# via pykwalify
six==1.16.0
# via
# astunparse
# livereload
# lunr
# mkdocs-redirects
# python-dateutil
smmap==4.0.0
# via gitdb
termcolor==1.1.0
# via mkdocs-macros-plugin
tornado==6.1
# via
# livereload
# mkdocs
tqdm==4.60.0
# via nltk
wheel==0.36.2
# via astunparse