From a7fd9404aa9fb3c977e38bee6aa6c794dbb04b1d Mon Sep 17 00:00:00 2001 From: Dirk Alders Date: Fri, 15 Aug 2025 21:53:24 +0200 Subject: [PATCH] Release 6d1216d2ba09e60ad320112430818420 - after ut update --- __init__.py | 2 +- _docs_/.buildinfo | 4 + _docs_/_sources/index.rst.txt | 24 + _docs_/_static/basic.css | 906 +++++ _docs_/_static/classic.css | 262 ++ _docs_/_static/copybutton.js | 84 + _docs_/_static/default.css | 1 + _docs_/_static/doctools.js | 149 + _docs_/_static/documentation_options.js | 13 + _docs_/_static/file.png | Bin 0 -> 286 bytes _docs_/_static/language_data.js | 192 + _docs_/_static/menu.js | 57 + _docs_/_static/minus.png | Bin 0 -> 90 bytes _docs_/_static/plus.png | Bin 0 -> 90 bytes _docs_/_static/py.png | Bin 0 -> 695 bytes _docs_/_static/py.svg | 14 + _docs_/_static/pydoctheme.css | 773 +++++ _docs_/_static/pydoctheme_dark.css | 191 + _docs_/_static/pygments.css | 75 + _docs_/_static/pygments_dark.css | 85 + _docs_/_static/search-focus.js | 21 + _docs_/_static/searchtools.js | 635 ++++ _docs_/_static/sidebar.js | 64 + _docs_/_static/sphinx_highlight.js | 154 + _docs_/_static/themetoggle.js | 24 + _docs_/genindex.html | 361 ++ _docs_/index.html | 474 +++ _docs_/objects.inv | 6 + _docs_/py-modindex.html | 238 ++ _docs_/search.html | 198 ++ _docs_/searchindex.js | 1 + _examples_/Makefile | 29 + _requirements_/specification.pdf | Bin 64607 -> 64609 bytes _testresults_/unittest.json | 4247 ++++++++++++----------- _testresults_/unittest.pdf | Bin 204310 -> 203960 bytes 35 files changed, 7172 insertions(+), 2112 deletions(-) create mode 100644 _docs_/.buildinfo create mode 100644 _docs_/_sources/index.rst.txt create mode 100644 _docs_/_static/basic.css create mode 100644 _docs_/_static/classic.css create mode 100644 _docs_/_static/copybutton.js create mode 100644 _docs_/_static/default.css create mode 100644 _docs_/_static/doctools.js create mode 100644 _docs_/_static/documentation_options.js create mode 100644 _docs_/_static/file.png create mode 100644 _docs_/_static/language_data.js create mode 100644 _docs_/_static/menu.js create mode 100644 _docs_/_static/minus.png create mode 100644 _docs_/_static/plus.png create mode 100644 _docs_/_static/py.png create mode 100644 _docs_/_static/py.svg create mode 100644 _docs_/_static/pydoctheme.css create mode 100644 _docs_/_static/pydoctheme_dark.css create mode 100644 _docs_/_static/pygments.css create mode 100644 _docs_/_static/pygments_dark.css create mode 100644 _docs_/_static/search-focus.js create mode 100644 _docs_/_static/searchtools.js create mode 100644 _docs_/_static/sidebar.js create mode 100644 _docs_/_static/sphinx_highlight.js create mode 100644 _docs_/_static/themetoggle.js create mode 100644 _docs_/genindex.html create mode 100644 _docs_/index.html create mode 100644 _docs_/objects.inv create mode 100644 _docs_/py-modindex.html create mode 100644 _docs_/search.html create mode 100644 _docs_/searchindex.js create mode 100644 _examples_/Makefile diff --git a/__init__.py b/__init__.py index fce7ebb..dd4248e 100644 --- a/__init__.py +++ b/__init__.py @@ -55,7 +55,7 @@ except ImportError: logger = logging.getLogger(ROOT_LOGGER_NAME).getChild(__name__) __DESCRIPTION__ = """The Module {\\tt %s} is designed to help with python logging and to support some handlers for logging to memory. -For more Information read the sphinx documentation.""" % __name__.replace('_', '\_') +For more Information read the sphinx documentation.""" % __name__.replace('_', '\\_') """The Module Description""" __INTERPRETER__ = (3, ) """The Tested Interpreter-Versions""" diff --git a/_docs_/.buildinfo b/_docs_/.buildinfo new file mode 100644 index 0000000..1472607 --- /dev/null +++ b/_docs_/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file records the configuration used when building these files. When it is not found, a full rebuild will be done. +config: b54dc23cafbc11dba07ed88b9970bb2a +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/_docs_/_sources/index.rst.txt b/_docs_/_sources/index.rst.txt new file mode 100644 index 0000000..e9e9e68 --- /dev/null +++ b/_docs_/_sources/index.rst.txt @@ -0,0 +1,24 @@ +.. documentation master file, created by + sphinx-quickstart on Fri Jan 1 19:56:01 2021. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to report documentation! +======================================= + +.. automodule:: report + :members: + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/_docs_/_static/basic.css b/_docs_/_static/basic.css new file mode 100644 index 0000000..4738b2e --- /dev/null +++ b/_docs_/_static/basic.css @@ -0,0 +1,906 @@ +/* + * Sphinx stylesheet -- basic theme. + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin-top: 10px; +} + +ul.search li { + padding: 5px 0; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/_docs_/_static/classic.css b/_docs_/_static/classic.css new file mode 100644 index 0000000..6553d2c --- /dev/null +++ b/_docs_/_static/classic.css @@ -0,0 +1,262 @@ +/* + * Sphinx stylesheet -- classic theme. + */ + +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +html { + /* CSS hack for macOS's scrollbar (see #1125) */ + background-color: #FFFFFF; +} + +body { + font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif; + font-size: 100%; + background-color: white; + color: #000; + margin: 0; + padding: 0; +} + +div.document { + display: flex; + background-color: white; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 230px; +} + +div.body { + background-color: white; + color: #222222; + padding: 0 20px 30px 20px; +} + +div.footer { + color: #555555; + width: 100%; + padding: 9px 0 9px 0; + text-align: center; + font-size: 75%; +} + +div.footer a { + color: #555555; + text-decoration: underline; +} + +div.related { + background-color: white; + line-height: 30px; + color: #666666; +} + +div.related a { + color: #444444; +} + +div.sphinxsidebar { +} + +div.sphinxsidebar h3 { + font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif; + color: #444444; + font-size: 1.4em; + font-weight: normal; + margin: 0; + padding: 0; +} + +div.sphinxsidebar h3 a { + color: #444444; +} + +div.sphinxsidebar h4 { + font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif; + color: #444444; + font-size: 1.3em; + font-weight: normal; + margin: 5px 0 0 0; + padding: 0; +} + +div.sphinxsidebar p { + color: #444444; +} + +div.sphinxsidebar p.topless { + margin: 5px 10px 10px 10px; +} + +div.sphinxsidebar ul { + margin: 10px; + padding: 0; + color: #444444; +} + +div.sphinxsidebar a { + color: #444444; +} + +div.sphinxsidebar input { + border: 1px solid #444444; + font-family: sans-serif; + font-size: 1em; +} + + + +/* -- hyperlink styles ------------------------------------------------------ */ + +a { + color: #0090c0; + text-decoration: none; +} + +a:visited { + color: #00608f; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + + + +/* -- body styles ----------------------------------------------------------- */ + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif; + background-color: white; + font-weight: normal; + color: #1a1a1a; + border-bottom: 1px solid #ccc; + margin: 20px -20px 10px -20px; + padding: 3px 0 3px 10px; +} + +div.body h1 { margin-top: 0; font-size: 200%; } +div.body h2 { font-size: 160%; } +div.body h3 { font-size: 140%; } +div.body h4 { font-size: 120%; } +div.body h5 { font-size: 110%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: #aaaaaa; + font-size: 0.8em; + padding: 0 4px 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + background-color: #aaaaaa; + color: white; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + text-align: justify; + line-height: 130%; +} + +div.admonition p.admonition-title + p { + display: inline; +} + +div.admonition p { + margin-bottom: 5px; +} + +div.admonition pre { + margin-bottom: 5px; +} + +div.admonition ul, div.admonition ol { + margin-bottom: 5px; +} + +div.note { + background-color: #eee; + border: 1px solid #ccc; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +nav.contents, +aside.topic, +div.topic { + background-color: #eee; +} + +div.warning { + background-color: #ffe4e4; + border: 1px solid #f66; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre { + padding: 5px; + background-color: #eeffcc; + color: #333333; + line-height: 120%; + border: 1px solid #ac9; + border-left: none; + border-right: none; +} + +code { + background-color: #ecf0f3; + padding: 0 1px 0 1px; + font-size: 0.95em; +} + +th, dl.field-list > dt { + background-color: #ede; +} + +.warning code { + background: #efc2c2; +} + +.note code { + background: #d6d6d6; +} + +.viewcode-back { + font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif; +} + +div.viewcode-block:target { + background-color: #f4debf; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} + +div.code-block-caption { + color: #efefef; + background-color: #1c4e63; +} \ No newline at end of file diff --git a/_docs_/_static/copybutton.js b/_docs_/_static/copybutton.js new file mode 100644 index 0000000..de071f4 --- /dev/null +++ b/_docs_/_static/copybutton.js @@ -0,0 +1,84 @@ +// Extract copyable text from the code block ignoring the +// prompts and output. +function getCopyableText(rootElement) { + rootElement = rootElement.cloneNode(true) + // tracebacks (.gt) contain bare text elements that + // need to be removed + const tracebacks = rootElement.querySelectorAll(".gt") + for (const el of tracebacks) { + while ( + el.nextSibling && + (el.nextSibling.nodeType !== Node.ELEMENT_NODE || + !el.nextSibling.matches(".gp, .go")) + ) { + el.nextSibling.remove() + } + } + // Remove all elements with the "go" (Generic.Output), + // "gp" (Generic.Prompt), or "gt" (Generic.Traceback) CSS class + const elements = rootElement.querySelectorAll(".gp, .go, .gt") + for (const el of elements) { + el.remove() + } + return rootElement.innerText.trim() +} + +const loadCopyButton = () => { + const button = document.createElement("button") + button.classList.add("copybutton") + button.type = "button" + button.innerText = _("Copy") + button.title = _("Copy to clipboard") + + const makeOnButtonClick = () => { + let timeout = null + // define the behavior of the button when it's clicked + return async event => { + // check if the clipboard is available + if (!navigator.clipboard || !navigator.clipboard.writeText) { + return; + } + + clearTimeout(timeout) + const buttonEl = event.currentTarget + const codeEl = buttonEl.nextElementSibling + + try { + await navigator.clipboard.writeText(getCopyableText(codeEl)) + } catch (e) { + console.error(e.message) + return + } + + buttonEl.innerText = _("Copied!") + timeout = setTimeout(() => { + buttonEl.innerText = _("Copy") + }, 1500) + } + } + + const highlightedElements = document.querySelectorAll( + ".highlight-python .highlight," + + ".highlight-python3 .highlight," + + ".highlight-pycon .highlight," + + ".highlight-pycon3 .highlight," + + ".highlight-default .highlight" + ) + + // create and add the button to all the code blocks that contain >>> + highlightedElements.forEach(el => { + el.style.position = "relative" + + // if we find a console prompt (.gp), prepend the (deeply cloned) button + const clonedButton = button.cloneNode(true) + // the onclick attribute is not cloned, set it on the new element + clonedButton.onclick = makeOnButtonClick() + el.prepend(clonedButton) + }) +} + +if (document.readyState !== "loading") { + loadCopyButton() +} else { + document.addEventListener("DOMContentLoaded", loadCopyButton) +} diff --git a/_docs_/_static/default.css b/_docs_/_static/default.css new file mode 100644 index 0000000..81b9363 --- /dev/null +++ b/_docs_/_static/default.css @@ -0,0 +1 @@ +@import url("classic.css"); diff --git a/_docs_/_static/doctools.js b/_docs_/_static/doctools.js new file mode 100644 index 0000000..0398ebb --- /dev/null +++ b/_docs_/_static/doctools.js @@ -0,0 +1,149 @@ +/* + * Base JavaScript utilities for all Sphinx HTML documentation. + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/_docs_/_static/documentation_options.js b/_docs_/_static/documentation_options.js new file mode 100644 index 0000000..7e4c114 --- /dev/null +++ b/_docs_/_static/documentation_options.js @@ -0,0 +1,13 @@ +const DOCUMENTATION_OPTIONS = { + VERSION: '', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/_docs_/_static/file.png b/_docs_/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/_docs_/_static/language_data.js b/_docs_/_static/language_data.js new file mode 100644 index 0000000..c7fe6c6 --- /dev/null +++ b/_docs_/_static/language_data.js @@ -0,0 +1,192 @@ +/* + * This script contains the language-specific data used by searchtools.js, + * namely the list of stopwords, stemmer, scorer and splitter. + */ + +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; + + +/* Non-minified version is copied as a separate JS file, if available */ + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/_docs_/_static/menu.js b/_docs_/_static/menu.js new file mode 100644 index 0000000..c7ab03e --- /dev/null +++ b/_docs_/_static/menu.js @@ -0,0 +1,57 @@ +document.addEventListener("DOMContentLoaded", function () { + + // Make tables responsive by wrapping them in a div and making them scrollable + const tables = document.querySelectorAll("table.docutils") + tables.forEach(function(table){ + table.outerHTML = '
' + table.outerHTML + "
" + }) + + const togglerInput = document.querySelector(".toggler__input") + const togglerLabel = document.querySelector(".toggler__label") + const sideMenu = document.querySelector(".menu-wrapper") + const menuItems = document.querySelectorAll(".menu") + const doc = document.querySelector(".document") + const body = document.querySelector("body") + + function closeMenu() { + togglerInput.checked = false + sideMenu.setAttribute("aria-expanded", "false") + sideMenu.setAttribute("aria-hidden", "true") + togglerLabel.setAttribute("aria-pressed", "false") + body.style.overflow = "visible" + } + function openMenu() { + togglerInput.checked = true + sideMenu.setAttribute("aria-expanded", "true") + sideMenu.setAttribute("aria-hidden", "false") + togglerLabel.setAttribute("aria-pressed", "true") + body.style.overflow = "hidden" + } + + // Close menu when link on the sideMenu is clicked + sideMenu.addEventListener("click", function (event) { + let target = event.target + if (target.tagName.toLowerCase() !== "a") { + return + } + closeMenu() + }) + // Add accessibility data when sideMenu is opened/closed + togglerInput.addEventListener("change", function (_event) { + togglerInput.checked ? openMenu() : closeMenu() + }) + // Make sideMenu links tabbable only when visible + for(let menuItem of menuItems) { + if(togglerInput.checked) { + menuItem.setAttribute("tabindex", "0") + } else { + menuItem.setAttribute("tabindex", "-1") + } + } + // Close sideMenu when document body is clicked + doc.addEventListener("click", function () { + if (togglerInput.checked) { + closeMenu() + } + }) +}) diff --git a/_docs_/_static/minus.png b/_docs_/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..d96755fdaf8bb2214971e0db9c1fd3077d7c419d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu=nj kDsEF_5m^0CR;1wuP-*O&G^0G}KYk!hp00i_>zopr08q^qX#fBK literal 0 HcmV?d00001 diff --git a/_docs_/_static/plus.png b/_docs_/_static/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..7107cec93a979b9a5f64843235a16651d563ce2d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu>-2 m3q%Vub%g%s<8sJhVPMczOq}xhg9DJoz~JfX=d#Wzp$Pyb1r*Kz literal 0 HcmV?d00001 diff --git a/_docs_/_static/py.png b/_docs_/_static/py.png new file mode 100644 index 0000000000000000000000000000000000000000..93e4a02c3d321c545898a2ebb8873c26dd8a9e5b GIT binary patch literal 695 zcmV;o0!aOdP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOD~ z5jY_RGbdgE00K8jL_t(I%Vm>KNL4`;hrfH@vv+$Uln|xSCTLTOHmzE;5FTwpDtJ)a zz)exE-2_34AR^i+ZCXeh7m*-F5k*FrmbSHs%rX_!{PXUec{69`w(#D(>Vd<+%=bIz zH_V)XUD5sE?K5ebbKaSDu}#Dnq^Y!3`tis9>wSO*T+WBP3wS3NNBU~*PAtw^yjZ+< zQ5yK0z%d{y@_Pz6YdL>s7$6Y^hI$}5GUX?Ns>+iCUiRP z7h|*&%kQa?wQA%pYzqpaf*4?WM!x_ygY0K@07rplx^QhGhnE)r4wbx0x11<&3V?63 z=F8ch)p6iQ88E;iumPmSZif%JIwIgKh$T3)*ab8ImGLVf;IoYtVAb11Z&@wm>96=S z)!B&hojbAPoik&f)Lp;=N!HK;X~5oyfJ49$pbcorTyADv dm$H!t;2#0MumAjv0Ga>*002ovPDHLkV1gIiH5UK? literal 0 HcmV?d00001 diff --git a/_docs_/_static/py.svg b/_docs_/_static/py.svg new file mode 100644 index 0000000..90b6c90 --- /dev/null +++ b/_docs_/_static/py.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/_docs_/_static/pydoctheme.css b/_docs_/_static/pydoctheme.css new file mode 100644 index 0000000..4873116 --- /dev/null +++ b/_docs_/_static/pydoctheme.css @@ -0,0 +1,773 @@ +/* Common colours */ +:root { + --good-color: rgb(41 100 51); + --good-border: rgb(79 196 100); + --middle-color: rgb(133 72 38); + --middle-border: rgb(244, 227, 76); + --bad-color: rgb(159 49 51); + --bad-border: rgb(244, 76, 78); +} + +/* unset some styles from the classic stylesheet */ +div.document, +div.body, +div.related, +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6, +div.sphinxsidebar a, +div.sphinxsidebar p, +div.sphinxsidebar ul, +div.sphinxsidebar h3, +div.sphinxsidebar h3 a, +div.sphinxsidebar h4, +.menu a, +.menu p, +.menu ul, +.menu h3, +.menu h3 a, +.menu h4, +table.docutils td, +table.indextable tr.cap, +pre { + background-color: inherit; + color: inherit; +} + +/* Add underlines to links */ +a[href] { + text-decoration: underline 1px; +} + +/* Increase the underline offset for code to avoid obscuring underscores */ +a[href]:has(> code) { + text-underline-offset: 0.25em; +} + +/* No underline for navigation */ +a.headerlink, +div.genindex-jumpbox a, +div.modindex-jumpbox a, +div#search-results a, +div.sphinxsidebar a, +div.toctree-wrapper a, +div[role=navigation] a, +table.contentstable a, +table.indextable a { + text-decoration: none; +} + +/* Except when hovered */ +div.genindex-jumpbox a:hover, +div.modindex-jumpbox a:hover, +div#search-results a:hover, +div.sphinxsidebar a:hover, +div.toctree-wrapper a:hover, +div[role=navigation] a:hover, +table.contentstable a:hover, +table.indextable a:hover { + text-decoration: underline; + text-underline-offset: auto; +} + +body { + margin-left: 1em; + margin-right: 1em; +} + +.mobile-nav, +.menu-wrapper { + display: none; +} + +div.related { + margin-top: 0.5em; + margin-bottom: 1.2em; + padding: 0.5em 0; + border-width: 1px; + border-color: #ccc; +} + +.mobile-nav + div.related { + border-bottom-style: solid; +} + +.document + div.related { + border-top-style: solid; +} + +div.related a:hover { + color: #0095c4; +} + +.related .switchers { + display: inline-flex; +} + +.switchers > div { + margin-right: 5px; +} + +div.related ul::after { + content: ''; + clear: both; + display: block; +} + +.inline-search, +form.inline-search input { + display: inline; +} + +form.inline-search input[type='submit'] { + width: 40px; +} + +div.document { + display: flex; + /* Don't let long code literals extend beyond the right side of the screen */ + overflow-wrap: break-word; +} + +/* Don't let long code literals extend beyond the right side of the screen */ +span.pre { + white-space: unset; +} + +div.sphinxsidebar { + display: flex; + width: min(25vw, 350px); + float: none; + position: sticky; + top: 0; + max-height: 100vh; + color: #444; + background-color: #eee; + border-radius: 5px; + line-height: 130%; + font-size: smaller; +} + +div.sphinxsidebar h3, +div.sphinxsidebar h4 { + margin-top: 1.5em; +} + +div.bodywrapper { + margin-left: min(25vw, 350px); +} + +div.sphinxsidebarwrapper { + box-sizing: border-box; + height: 100%; + overflow-x: hidden; + overflow-y: auto; + float: none; + flex-grow: 1; +} + +div.sphinxsidebarwrapper > h3:first-child { + margin-top: 0.2em; +} + +div.sphinxsidebarwrapper > ul > li > ul > li { + margin-bottom: 0.4em; +} + +div.sphinxsidebar a:hover { + color: #0095c4; +} + +form.inline-search input, +div.sphinxsidebar input, +div.related input { + font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif; + border: 1px solid #999999; + font-size: smaller; + border-radius: 3px; +} + +div.sphinxsidebar input[type='text'] { + max-width: 150px; +} + +#sidebarbutton { + display: flex; + justify-content: center; + align-items: center; + width: 12px; + min-width: 12px; + border-radius: 0 5px 5px 0; + border-left: none; +} + +#sidebarbutton:hover { + background-color: #AAAAAA; +} + +div.body { + padding: 0 0 0 1.2em; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + text-align: left; + line-height: 1.6; +} +div.body h1, div.body h2, div.body h3, div.body h4, div.body h5, div.body h6 { + margin: 0; + border: 0; + padding: 0.3em 0; +} + +div.body hr { + border: 0; + background-color: #ccc; + height: 1px; +} + +div.body pre { + border-radius: 3px; + border: 1px solid #ac9; +} + +/* Admonitions */ +:root { + --admonition-background: #eee; + --admonition-border: #ccc; + --admonition-color: black; + --attention-background: #bbddff5c; + --attention-border: #0000ff36; + --caution-background: #ffc; + --caution-border: #dd6; + --danger-background: #ffe4e4; + --danger-border: red; + --error-background: #ffe4e4; + --error-border: red; + --hint-background: #dfd; + --hint-border: green; + --seealso-background: #ffc; + --seealso-border: #dd6; + --tip-background: #dfd; + --tip-border: green; + --warning-background: #ffe4e4; + --warning-border: red; +} + +div.body div.admonition { + background-color: var(--admonition-background); + border: 1px solid var(--admonition-border); + border-radius: 3px; + color: var(--admonition-color); +} + +div.body div.admonition.attention { + background-color: var(--attention-background); + border-color: var(--attention-border); +} + +div.body div.admonition.caution { + background-color: var(--caution-background); + border-color: var(--caution-border); +} + +div.body div.admonition.danger { + background-color: var(--danger-background); + border-color: var(--danger-border); +} + +div.body div.admonition.error { + background-color: var(--error-background); + border-color: var(--error-border); +} + +div.body div.admonition.hint { + background-color: var(--hint-background); + border-color: var(--hint-border); +} + +div.body div.admonition.seealso { + background-color: var(--seealso-background); + border-color: var(--seealso-border); +} + +div.body div.admonition.tip { + background-color: var(--tip-background); + border-color: var(--tip-border); +} + +div.body div.admonition.warning { + background-color: var(--warning-background); + border-color: var(--warning-border); +} + +div.body div.impl-detail { + border-radius: 3px; +} + +div.body div.impl-detail > p { + margin: 0; +} + +div.body a { + color: #0072aa; +} + +div.body a:visited { + color: #6363bb; +} + +div.body a:hover { + color: #00b0e4; +} + +tt, code, pre { + font-family: Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace; + font-size: 96.5%; +} + +div.body pre { + line-height: 120%; +} + +div.body tt, +div.body code { + border-radius: 3px; +} + +div.body tt.descname, +div.body code.descname { + font-size: 120%; +} + +div.body tt.xref, +div.body a tt, +div.body code.xref, +div.body a code { + font-weight: normal; +} + +table.docutils { + border: 1px solid #ddd; + min-width: 20%; + border-radius: 3px; + margin-top: 10px; + margin-bottom: 10px; +} + +table.docutils td, +table.docutils th { + border: 1px solid #ddd !important; + border-radius: 3px; + padding: 0.3em 0.5em; +} + +table p, +table li { + text-align: left !important; +} + +table.docutils th { + background-color: #eee; +} + +table.footnote, +table.footnote td { + border: 0 !important; +} + +div.footer { + line-height: 150%; + text-align: right; + width: auto; + margin-right: 10px; +} + +div.footer a { + text-underline-offset: auto; +} + +div.footer a:hover { + color: #0095c4; +} + +/* C API return value annotations */ +:root { + --refcount: var(--good-color); + --refcount-return-borrowed-ref: var(--middle-color); +} + +.refcount { + color: var(--refcount); +} + +.refcount.return_borrowed_ref { + color: var(--refcount-return-borrowed-ref) +} + +.stableabi { + color: #229; +} + +dl > dt span ~ em, +.sig { + font-family: Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace; +} + +.toctree-wrapper ul { + padding-left: 20px; +} + +.theme-selector { + margin-left: .5em; +} + +div.genindex-jumpbox, +div.genindex-jumpbox > p { + display: inline-flex; + flex-wrap: wrap; +} + +div.genindex-jumpbox a { + margin: 0 5px; + min-width: 30px; + text-align: center; +} + +.copybutton { + cursor: pointer; + position: absolute; + top: 0; + right: 0; + font-family: Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace; + font-size: 80%; + padding-left: .5em; + padding-right: .5em; + height: 100%; + max-height: min(100%, 2.4em); + border-radius: 0 3px 0 0; + color: #000; + background-color: #fff; + border: 1px solid #ac9; /* follows div.body pre */ + display: none; +} + +.copybutton:hover { + background-color: #eee; +} + +.copybutton:active { + background-color: #ddd; +} + +.highlight:active .copybutton { + display: block; +} + +.highlight:hover .copybutton { + display: block; +} + +@media (max-width: 1023px) { + /* Body layout */ + div.body { + min-width: 100%; + padding: 0; + font-size: 0.875rem; + } + div.bodywrapper { + margin: 0; + } + /* Typography */ + div.body h1 { + font-size: 1.625rem; + } + div.body h2 { + font-size: 1.25rem; + } + div.body h3, div.body h4, div.body h5 { + font-size: 1rem; + } + /* Override default styles to make more readable */ + div.body ul { + padding-inline-start: 1rem; + } + div.body blockquote { + margin-inline-start: 1rem; + margin-inline-end: 0; + } + /* Remove sidebar and top related bar */ + div.related, div.sphinxsidebar { + display: none; + } + /* Anchorlinks are not hidden by fixed-positioned navbar when scrolled to */ + html { + scroll-padding-top: 40px; + } + body { + margin-top: 40px; + } + + /* Top navigation bar */ + .mobile-nav { + display: block; + height: 40px; + width: 100%; + position: fixed; + top: 0; + left: 0; + box-shadow: rgba(0, 0, 0, 0.25) 0 0 2px 0; + z-index: 1; + } + .mobile-nav * { + box-sizing: border-box; + } + .nav-content { + position: absolute; + z-index: 1; + height: 40px; + width: 100%; + display: flex; + background-color: white; + } + .nav-items-wrapper { + display: flex; + flex: auto; + padding: .25rem; + align-items: stretch; + } + .nav-logo { + margin-right: 1rem; + flex-shrink: 0; + align-self: center; + } + .nav-content img { + display: block; + width: 20px; + } + .version_switcher_placeholder { + margin-right: 1rem; + } + .version_switcher_placeholder > select { + height: 100%; + } + .nav-content .search { + display: flex; + flex: auto; + border: 1px solid #a9a9a9; + align-items: stretch; + } + .nav-content .search input[type=search] { + border: 0; + padding-left: 24px; + width: 100%; + flex: 1; + } + .nav-content .search input[type=submit] { + height: 100%; + box-shadow: none; + border: 0; + border-left: 1px solid #a9a9a9; + cursor: pointer; + margin-right: 0; + } + .nav-content .search svg { + position: absolute; + align-self: center; + padding-left: 4px; + } + .toggler__input { + display: none; + } + .toggler__label { + width: 40px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + padding: 8px; + flex-shrink: 0; + } + .toggler__label:hover, .toggler__label:focus { + background-color: rgba(127 127 127 / 50%); + } + .toggler__label > span { + position: relative; + flex: none; + height: 2px; + width: 100%; + background: currentColor; + transition: all 400ms ease; + } + .toggler__label > span::before, + .toggler__label > span::after { + content: ''; + height: 2px; + width: 100%; + background: inherit; + position: absolute; + left: 0; + top: -8px; + } + .toggler__label > span::after { + top: 8px; + } + .toggler__input:checked ~ nav > .toggler__label span { + transform: rotate(135deg); + } + .toggler__input:checked ~ nav > .toggler__label span::before { + transform: rotate(90deg); + } + .toggler__input:checked ~ nav > .toggler__label span::before, + .toggler__input:checked ~ nav > .toggler__label span::after { + top: 0; + } + .toggler__input:checked:hover ~ nav > .toggler__label span { + transform: rotate(315deg); + } + .toggler__input:checked ~ .menu-wrapper { + visibility: visible; + left: 0; + } + + /* Sliding side menu */ + .menu-wrapper { + display: block; + position: fixed; + top: 0; + transition: left 400ms ease; + left: -310px; + width: 300px; + height: 100%; + background-color: #eee; + color: #444444; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); + overflow-y: auto; + } + .menu-wrapper.open { + visibility: visible; + left: 0; + } + .menu { + padding: 40px 10px 30px 20px; + } + .menu-wrapper h3, + .menu-wrapper h4 { + margin-bottom: 0; + font-weight: normal; + } + .menu-wrapper h4 { + font-size: 1.3em; + } + .menu-wrapper h3 { + font-size: 1.4em; + } + .menu-wrapper h3 + p, + .menu-wrapper h4 + p { + margin-top: 0.5rem; + } + .menu a { + font-size: smaller; + text-decoration: none; + } + .menu ul { + list-style: none; + line-height: 1.4; + overflow-wrap: break-word; + padding-left: 0; + } + .menu ul ul { + margin-left: 20px; + list-style: square; + } + .menu ul li { + margin-bottom: 0.5rem; + } + .language_switcher_placeholder { + margin-top: 2rem; + } + .language_switcher_placeholder select { + width: 100%; + } + .document { + position: relative; + z-index: 0; + } + /*Responsive tables*/ + .responsive-table__container { + width: 100%; + overflow-x: auto; + } + + .menu .theme-selector-label { + margin-top: .5em; + display: flex; + width: 100%; + } + + .menu .theme-selector { + flex: auto; + } +} + +@media (min-width: 1024px) { + div.footer { + margin-top: -2em; + } +} + +/* Version change directives */ +:root { + --versionadded: var(--good-color); + --versionchanged: var(--middle-color); + --deprecated: var(--bad-color); + + --versionadded-border: var(--good-border); + --versionchanged-border: var(--middle-border); + --deprecated-border: var(--bad-border); +} + +div.versionadded, +div.versionchanged, +div.deprecated, +div.deprecated-removed { + border-left: 3px solid; + padding: 0 1rem; +} + +div.versionadded { + border-left-color: var(--versionadded-border); +} + +div.versionchanged { + border-left-color: var(--versionchanged-border); +} + +div.deprecated, +div.deprecated-removed, +div.versionremoved { + border-left-color: var(--deprecated-border); +} + +div.versionadded .versionmodified { + color: var(--versionadded); +} + +div.versionchanged .versionmodified { + color: var(--versionchanged); +} + +div.deprecated .versionmodified, +div.deprecated-removed .versionmodified, +div.versionremoved .versionmodified { + color: var(--deprecated); +} + +/* Hide header when printing */ +@media print { + div.mobile-nav { + display: none; + } +} diff --git a/_docs_/_static/pydoctheme_dark.css b/_docs_/_static/pydoctheme_dark.css new file mode 100644 index 0000000..582e4dd --- /dev/null +++ b/_docs_/_static/pydoctheme_dark.css @@ -0,0 +1,191 @@ +/* Common colours */ +:root { + --good-color: rgb(79 196 100); + --good-border: var(--good-color); + --middle-color: rgb(244, 227, 76); + --middle-border: var(--middle-color); + --bad-color: rgb(244, 76, 78); + --bad-border: var(--bad-color); +} + + +/* Browser elements */ +:root { + scrollbar-color: #616161 transparent; + color-scheme: dark; +} + +html, +body { + background-color: #222; + color: rgba(255, 255, 255, 0.87); +} + +div.related { + color: rgba(255, 255, 255, 0.7); /* classic overwrite */ + border-color: #424242; +} + +/* SIDEBAR */ +div.sphinxsidebar, .menu-wrapper { + background-color: #333; + color: inherit; +} + +#sidebarbutton { + /* important to overwrite style attribute */ + background-color: #555 !important; + color: inherit !important; +} + +div.sidebar, aside.sidebar { + background-color: #424242; + border-color: #616161; +} + +/* ANCHORS AND HIGHLIGHTS */ +div.body a { + color: #7af; +} + +div.body a:visited { + color: #09e; +} + +a.headerlink:hover { + background-color: #424242; +} + +div.related a { + color: currentColor; +} + +div.footer, +div.footer a { + color: currentColor; /* classic overwrites */ +} + +dt:target, +span.highlighted { + background-color: #616161; +} + +.footnote:target { + background-color: #2c3e50; +} + +/* Below for most things in text */ + +dl.field-list > dt { + background-color: #434; +} + +table.docutils td, +table.docutils th { + border-color: #616161 !important; +} + +table.docutils th { + background-color: #424242; +} + +.stableabi { + color: #bbf; +} + +div.body pre { + border-color: #616161; +} + +code { + background-color: #424242; +} + +div.body div.seealso { + background-color: rgba(255, 255, 0, 0.1); +} + +div.warning { + background-color: rgba(255, 0, 0, 0.2); +} + +.warning code { + background-color: rgba(255, 0, 0, 0.5); +} + +/* Admonitions */ +:root { + --admonition-background: #ffffff1a; + --admonition-border: currentColor; + --admonition-color: #ffffffde; + --attention-background: #ffffff1a; + --attention-border: currentColor; + --caution-background: #ffff001a; + --caution-border: #dd6; + --danger-background: #f003; + --danger-border: #f66; + --error-background: #f003; + --error-border: #f66; + --hint-background: #0044117a; + --hint-border: green; + --seealso-background: #ffff001a; + --seealso-border: #dd6; + --tip-background: #0044117a; + --tip-border: green; + --warning-background: #ff000033; + --warning-border: #ff6666; +} + +aside.topic, +div.topic, +div.note, +nav.contents { + background-color: rgba(255, 255, 255, 0.1); + border-color: currentColor; +} + +.note code { + background-color: rgba(255, 255, 255, 0.1); +} + +.mobile-nav { + box-shadow: rgba(255, 255, 255, 0.25) 0 0 2px 0; +} + +.nav-content { + background-color: black; +} + +img.invert-in-dark-mode { + filter: invert(1) hue-rotate(.5turn); +} + +/* -- object description styles --------------------------------------------- */ + +/* C++ specific styling */ + +/* Override Sphinx's basic.css to fix colour contrast */ +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #5283ff; +} + +/* Version change directives */ +:root { + --versionadded: var(--good-color); + --versionchanged: var(--middle-color); + --deprecated: var(--bad-color); +} + +.copybutton { + color: #ac9; /* follows div.body pre */ + background-color: #222222; /* follows body */ +} + +.copybutton:hover { + background-color: #434343; +} + +.copybutton:active { + background-color: #656565; +} diff --git a/_docs_/_static/pygments.css b/_docs_/_static/pygments.css new file mode 100644 index 0000000..6f8b210 --- /dev/null +++ b/_docs_/_static/pygments.css @@ -0,0 +1,75 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #f8f8f8; } +.highlight .c { color: #3D7B7B; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #F00 } /* Error */ +.highlight .k { color: #008000; font-weight: bold } /* Keyword */ +.highlight .o { color: #666 } /* Operator */ +.highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #9C6500 } /* Comment.Preproc */ +.highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +.highlight .gr { color: #E40000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #008400 } /* Generic.Inserted */ +.highlight .go { color: #717171 } /* Generic.Output */ +.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #04D } /* Generic.Traceback */ +.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #008000 } /* Keyword.Pseudo */ +.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #B00040 } /* Keyword.Type */ +.highlight .m { color: #666 } /* Literal.Number */ +.highlight .s { color: #BA2121 } /* Literal.String */ +.highlight .na { color: #687822 } /* Name.Attribute */ +.highlight .nb { color: #008000 } /* Name.Builtin */ +.highlight .nc { color: #00F; font-weight: bold } /* Name.Class */ +.highlight .no { color: #800 } /* Name.Constant */ +.highlight .nd { color: #A2F } /* Name.Decorator */ +.highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #00F } /* Name.Function */ +.highlight .nl { color: #767600 } /* Name.Label */ +.highlight .nn { color: #00F; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #19177C } /* Name.Variable */ +.highlight .ow { color: #A2F; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #BBB } /* Text.Whitespace */ +.highlight .mb { color: #666 } /* Literal.Number.Bin */ +.highlight .mf { color: #666 } /* Literal.Number.Float */ +.highlight .mh { color: #666 } /* Literal.Number.Hex */ +.highlight .mi { color: #666 } /* Literal.Number.Integer */ +.highlight .mo { color: #666 } /* Literal.Number.Oct */ +.highlight .sa { color: #BA2121 } /* Literal.String.Affix */ +.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ +.highlight .sc { color: #BA2121 } /* Literal.String.Char */ +.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */ +.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #BA2121 } /* Literal.String.Double */ +.highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ +.highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ +.highlight .sx { color: #008000 } /* Literal.String.Other */ +.highlight .sr { color: #A45A77 } /* Literal.String.Regex */ +.highlight .s1 { color: #BA2121 } /* Literal.String.Single */ +.highlight .ss { color: #19177C } /* Literal.String.Symbol */ +.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #00F } /* Name.Function.Magic */ +.highlight .vc { color: #19177C } /* Name.Variable.Class */ +.highlight .vg { color: #19177C } /* Name.Variable.Global */ +.highlight .vi { color: #19177C } /* Name.Variable.Instance */ +.highlight .vm { color: #19177C } /* Name.Variable.Magic */ +.highlight .il { color: #666 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/_docs_/_static/pygments_dark.css b/_docs_/_static/pygments_dark.css new file mode 100644 index 0000000..a5da35b --- /dev/null +++ b/_docs_/_static/pygments_dark.css @@ -0,0 +1,85 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #49483e } +.highlight { background: #272822; color: #F8F8F2 } +.highlight .c { color: #959077 } /* Comment */ +.highlight .err { color: #ED007E; background-color: #1E0010 } /* Error */ +.highlight .esc { color: #F8F8F2 } /* Escape */ +.highlight .g { color: #F8F8F2 } /* Generic */ +.highlight .k { color: #66D9EF } /* Keyword */ +.highlight .l { color: #AE81FF } /* Literal */ +.highlight .n { color: #F8F8F2 } /* Name */ +.highlight .o { color: #FF4689 } /* Operator */ +.highlight .x { color: #F8F8F2 } /* Other */ +.highlight .p { color: #F8F8F2 } /* Punctuation */ +.highlight .ch { color: #959077 } /* Comment.Hashbang */ +.highlight .cm { color: #959077 } /* Comment.Multiline */ +.highlight .cp { color: #959077 } /* Comment.Preproc */ +.highlight .cpf { color: #959077 } /* Comment.PreprocFile */ +.highlight .c1 { color: #959077 } /* Comment.Single */ +.highlight .cs { color: #959077 } /* Comment.Special */ +.highlight .gd { color: #FF4689 } /* Generic.Deleted */ +.highlight .ge { color: #F8F8F2; font-style: italic } /* Generic.Emph */ +.highlight .ges { color: #F8F8F2; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +.highlight .gr { color: #F8F8F2 } /* Generic.Error */ +.highlight .gh { color: #F8F8F2 } /* Generic.Heading */ +.highlight .gi { color: #A6E22E } /* Generic.Inserted */ +.highlight .go { color: #66D9EF } /* Generic.Output */ +.highlight .gp { color: #FF4689; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { color: #F8F8F2; font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #959077 } /* Generic.Subheading */ +.highlight .gt { color: #F8F8F2 } /* Generic.Traceback */ +.highlight .kc { color: #66D9EF } /* Keyword.Constant */ +.highlight .kd { color: #66D9EF } /* Keyword.Declaration */ +.highlight .kn { color: #FF4689 } /* Keyword.Namespace */ +.highlight .kp { color: #66D9EF } /* Keyword.Pseudo */ +.highlight .kr { color: #66D9EF } /* Keyword.Reserved */ +.highlight .kt { color: #66D9EF } /* Keyword.Type */ +.highlight .ld { color: #E6DB74 } /* Literal.Date */ +.highlight .m { color: #AE81FF } /* Literal.Number */ +.highlight .s { color: #E6DB74 } /* Literal.String */ +.highlight .na { color: #A6E22E } /* Name.Attribute */ +.highlight .nb { color: #F8F8F2 } /* Name.Builtin */ +.highlight .nc { color: #A6E22E } /* Name.Class */ +.highlight .no { color: #66D9EF } /* Name.Constant */ +.highlight .nd { color: #A6E22E } /* Name.Decorator */ +.highlight .ni { color: #F8F8F2 } /* Name.Entity */ +.highlight .ne { color: #A6E22E } /* Name.Exception */ +.highlight .nf { color: #A6E22E } /* Name.Function */ +.highlight .nl { color: #F8F8F2 } /* Name.Label */ +.highlight .nn { color: #F8F8F2 } /* Name.Namespace */ +.highlight .nx { color: #A6E22E } /* Name.Other */ +.highlight .py { color: #F8F8F2 } /* Name.Property */ +.highlight .nt { color: #FF4689 } /* Name.Tag */ +.highlight .nv { color: #F8F8F2 } /* Name.Variable */ +.highlight .ow { color: #FF4689 } /* Operator.Word */ +.highlight .pm { color: #F8F8F2 } /* Punctuation.Marker */ +.highlight .w { color: #F8F8F2 } /* Text.Whitespace */ +.highlight .mb { color: #AE81FF } /* Literal.Number.Bin */ +.highlight .mf { color: #AE81FF } /* Literal.Number.Float */ +.highlight .mh { color: #AE81FF } /* Literal.Number.Hex */ +.highlight .mi { color: #AE81FF } /* Literal.Number.Integer */ +.highlight .mo { color: #AE81FF } /* Literal.Number.Oct */ +.highlight .sa { color: #E6DB74 } /* Literal.String.Affix */ +.highlight .sb { color: #E6DB74 } /* Literal.String.Backtick */ +.highlight .sc { color: #E6DB74 } /* Literal.String.Char */ +.highlight .dl { color: #E6DB74 } /* Literal.String.Delimiter */ +.highlight .sd { color: #E6DB74 } /* Literal.String.Doc */ +.highlight .s2 { color: #E6DB74 } /* Literal.String.Double */ +.highlight .se { color: #AE81FF } /* Literal.String.Escape */ +.highlight .sh { color: #E6DB74 } /* Literal.String.Heredoc */ +.highlight .si { color: #E6DB74 } /* Literal.String.Interpol */ +.highlight .sx { color: #E6DB74 } /* Literal.String.Other */ +.highlight .sr { color: #E6DB74 } /* Literal.String.Regex */ +.highlight .s1 { color: #E6DB74 } /* Literal.String.Single */ +.highlight .ss { color: #E6DB74 } /* Literal.String.Symbol */ +.highlight .bp { color: #F8F8F2 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #A6E22E } /* Name.Function.Magic */ +.highlight .vc { color: #F8F8F2 } /* Name.Variable.Class */ +.highlight .vg { color: #F8F8F2 } /* Name.Variable.Global */ +.highlight .vi { color: #F8F8F2 } /* Name.Variable.Instance */ +.highlight .vm { color: #F8F8F2 } /* Name.Variable.Magic */ +.highlight .il { color: #AE81FF } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/_docs_/_static/search-focus.js b/_docs_/_static/search-focus.js new file mode 100644 index 0000000..aa5b42f --- /dev/null +++ b/_docs_/_static/search-focus.js @@ -0,0 +1,21 @@ +function isInputFocused() { + const activeElement = document.activeElement; + return ( + activeElement.tagName === 'INPUT' || + activeElement.tagName === 'TEXTAREA' || + activeElement.isContentEditable + ); +} + +document.addEventListener('keydown', function(event) { + if (event.key === '/') { + if (!isInputFocused()) { + // Prevent "/" from being entered in the search box + event.preventDefault(); + + // Set the focus on the search box + const searchBox = document.getElementById('search-box'); + searchBox.focus(); + } + } +}); diff --git a/_docs_/_static/searchtools.js b/_docs_/_static/searchtools.js new file mode 100644 index 0000000..91f4be5 --- /dev/null +++ b/_docs_/_static/searchtools.js @@ -0,0 +1,635 @@ +/* + * Sphinx JavaScript utilities for the full-text search. + */ +"use strict"; + +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [docname, title, anchor, descr, score, filename] + // and returns the new score. + /* + score: result => { + const [docname, title, anchor, descr, score, filename, kind] = result + return score + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +// Global search result kind enum, used by themes to style search results. +class SearchResultKind { + static get index() { return "index"; } + static get object() { return "object"; } + static get text() { return "text"; } + static get title() { return "title"; } +} + +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms, highlightTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + const contentRoot = document.documentElement.dataset.content_root; + + const [docName, title, anchor, descr, score, _filename, kind] = item; + + let listItem = document.createElement("li"); + // Add a class representing the item's type: + // can be used by a theme's CSS selector for styling + // See SearchResultKind for the class names. + listItem.classList.add(`kind-${kind}`); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = contentRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = contentRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; + } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) { + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + // highlight search terms in the description + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + } + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms, anchor) + ); + // highlight search terms in the summary + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = Documentation.ngettext( + "Search finished, found one page matching the search query.", + "Search finished, found ${resultCount} pages matching the search query.", + resultCount, + ).replace('${resultCount}', resultCount); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms, + highlightTerms, +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms, highlightTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename, kind]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings +} + +/** + * Search Module + */ +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString, anchor) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + for (const removalQuery of [".headerlink", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent) return docContent.textContent; + + console.warn( + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." + ); + return ""; + }, + + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); + }, + + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), + + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); + } + }, + + hasIndex: () => Search._index !== null, + + deferQuery: (query) => (Search._queued_query = query), + + stopPulse: () => (Search._pulse_status = -1), + + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { + Search._pulse_status = (Search._pulse_status + 1) % 4; + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: (query) => { + // create the required interface elements + const searchText = document.createElement("h2"); + searchText.textContent = _("Searching"); + const searchSummary = document.createElement("p"); + searchSummary.classList.add("search-summary"); + searchSummary.innerText = ""; + const searchList = document.createElement("ul"); + searchList.setAttribute("role", "list"); + searchList.classList.add("search"); + + const out = document.getElementById("search-results"); + Search.title = out.appendChild(searchText); + Search.dots = Search.title.appendChild(document.createElement("span")); + Search.status = out.appendChild(searchSummary); + Search.output = out.appendChild(searchList); + + const searchProgress = document.getElementById("search-progress"); + // Some themes don't use the search progress node + if (searchProgress) { + searchProgress.innerText = _("Preparing search..."); + } + Search.startPulse(); + + // index already loaded, the browser was quick! + if (Search.hasIndex()) Search.query(query); + else Search.deferQuery(query); + }, + + _parseQuery: (query) => { + // stem the search terms and add them to the correct list + const stemmer = new Stemmer(); + const searchTerms = new Set(); + const excludedTerms = new Set(); + const highlightTerms = new Set(); + const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); + splitQuery(query.trim()).forEach((queryTerm) => { + const queryTermLower = queryTerm.toLowerCase(); + + // maybe skip this "word" + // stopwords array is from language_data.js + if ( + stopwords.indexOf(queryTermLower) !== -1 || + queryTerm.match(/^\d+$/) + ) + return; + + // stem the word + let word = stemmer.stemWord(queryTermLower); + // select the correct list + if (word[0] === "-") excludedTerms.add(word.substr(1)); + else { + searchTerms.add(word); + highlightTerms.add(queryTermLower); + } + }); + + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + + // console.debug("SEARCH: searching for:"); + // console.info("required: ", [...searchTerms]); + // console.info("excluded: ", [...excludedTerms]); + + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename, kind]. + const normalResults = []; + const nonMainIndexResults = []; + + _removeChildren(document.getElementById("search-progress")); + + const queryLower = query.toLowerCase().trim(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + const score = Math.round(Scorer.title * queryLower.length / title.length); + const boost = titles[file] === title ? 1 : 0; // add a boost for document titles + normalResults.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score + boost, + filenames[file], + SearchResultKind.title, + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + SearchResultKind.index, + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } + } + } + } + + // lookup as object + objectTerms.forEach((term) => + normalResults.push(...Search.performObjectSearch(term, objectTerms)) + ); + + // lookup as search terms in fulltext + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + + // let the scorer override scores with a custom scoring function + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; + + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); + + // for debugging + //Search.lastresults = results.slice(); // a copy + // console.info("search results:", Search.lastresults); + + // print the results + _displayNextItem(results, results.length, searchTerms, highlightTerms); + }, + + /** + * search for object names + */ + performObjectSearch: (object, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const objects = Search._index.objects; + const objNames = Search._index.objnames; + const titles = Search._index.titles; + + const results = []; + + const objectSearchCallback = (prefix, match) => { + const name = match[4] + const fullname = (prefix ? prefix + "." : "") + name; + const fullnameLower = fullname.toLowerCase(); + if (fullnameLower.indexOf(object) < 0) return; + + let score = 0; + const parts = fullnameLower.split("."); + + // check for different match types: exact matches of full name or + // "last name" (i.e. last dotted part) + if (fullnameLower === object || parts.slice(-1)[0] === object) + score += Scorer.objNameMatch; + else if (parts.slice(-1)[0].indexOf(object) > -1) + score += Scorer.objPartialMatch; // matches in last name + + const objName = objNames[match[1]][2]; + const title = titles[match[0]]; + + // If more than one term searched for, we require other words to be + // found in the name/title/description + const otherTerms = new Set(objectTerms); + otherTerms.delete(object); + if (otherTerms.size > 0) { + const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); + if ( + [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) + ) + return; + } + + let anchor = match[3]; + if (anchor === "") anchor = fullname; + else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; + + const descr = objName + _(", in ") + title; + + // add custom score for some objects according to scorer + if (Scorer.objPrio.hasOwnProperty(match[2])) + score += Scorer.objPrio[match[2]]; + else score += Scorer.objPrioDefault; + + results.push([ + docNames[match[0]], + fullname, + "#" + anchor, + descr, + score, + filenames[match[0]], + SearchResultKind.object, + ]); + }; + Object.keys(objects).forEach((prefix) => + objects[prefix].forEach((array) => + objectSearchCallback(prefix, array) + ) + ); + return results; + }, + + /** + * search for full-text terms in the index + */ + performTermsSearch: (searchTerms, excludedTerms) => { + // prepare search + const terms = Search._index.terms; + const titleTerms = Search._index.titleterms; + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + + const scoreMap = new Map(); + const fileMap = new Map(); + + // perform the search on the required terms + searchTerms.forEach((word) => { + const files = []; + // find documents, if any, containing the query word in their text/title term indices + // use Object.hasOwnProperty to avoid mismatching against prototype properties + const arr = [ + { files: terms.hasOwnProperty(word) ? terms[word] : undefined, score: Scorer.term }, + { files: titleTerms.hasOwnProperty(word) ? titleTerms[word] : undefined, score: Scorer.title }, + ]; + // add support for partial matches + if (word.length > 2) { + const escapedWord = _escapeRegExp(word); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } + } + + // no match but word was a required one + if (arr.every((record) => record.files === undefined)) return; + + // found search word in contents + arr.forEach((record) => { + if (record.files === undefined) return; + + let recordFiles = record.files; + if (recordFiles.length === undefined) recordFiles = [recordFiles]; + files.push(...recordFiles); + + // set score for the word in each file + recordFiles.forEach((file) => { + if (!scoreMap.has(file)) scoreMap.set(file, new Map()); + const fileScores = scoreMap.get(file); + fileScores.set(word, record.score); + }); + }); + + // create the mapping + files.forEach((file) => { + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); + }); + }); + + // now check if the files don't contain excluded terms + const results = []; + for (const [file, wordList] of fileMap) { + // check if all requirements are matched + + // as search terms with length < 3 are discarded + const filteredTermCount = [...searchTerms].filter( + (term) => term.length > 2 + ).length; + if ( + wordList.length !== searchTerms.size && + wordList.length !== filteredTermCount + ) + continue; + + // ensure that none of the excluded terms is in the search result + if ( + [...excludedTerms].some( + (term) => + terms[term] === file || + titleTerms[term] === file || + (terms[term] || []).includes(file) || + (titleTerms[term] || []).includes(file) + ) + ) + break; + + // select one (max) score for the file. + const score = Math.max(...wordList.map((w) => scoreMap.get(file).get(w))); + // add result to the result list + results.push([ + docNames[file], + titles[file], + "", + null, + score, + filenames[file], + SearchResultKind.text, + ]); + } + return results; + }, + + /** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words. + */ + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); + if (text === "") return null; + + const textLower = text.toLowerCase(); + const actualStartPosition = [...keywords] + .map((k) => textLower.indexOf(k.toLowerCase())) + .filter((i) => i > -1) + .slice(-1)[0]; + const startWithContext = Math.max(actualStartPosition - 120, 0); + + const top = startWithContext === 0 ? "" : "..."; + const tail = startWithContext + 240 < text.length ? "..." : ""; + + let summary = document.createElement("p"); + summary.classList.add("context"); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + + return summary; + }, +}; + +_ready(Search.init); diff --git a/_docs_/_static/sidebar.js b/_docs_/_static/sidebar.js new file mode 100644 index 0000000..ac7b39e --- /dev/null +++ b/_docs_/_static/sidebar.js @@ -0,0 +1,64 @@ +/* + * This script makes the Sphinx sidebar collapsible. + * + * .sphinxsidebar contains .sphinxsidebarwrapper. This script adds + * in .sphixsidebar, after .sphinxsidebarwrapper, the #sidebarbutton + * used to collapse and expand the sidebar. + * + * When the sidebar is collapsed the .sphinxsidebarwrapper is hidden + * and the width of the sidebar and the margin-left of the document + * are decreased. When the sidebar is expanded the opposite happens. + * This script saves a per-browser/per-session cookie used to + * remember the position of the sidebar among the pages. + * Once the browser is closed the cookie is deleted and the position + * reset to the default (expanded). + * + */ + +const initialiseSidebar = () => { + + + + + // global elements used by the functions. + const bodyWrapper = document.getElementsByClassName("bodywrapper")[0] + const sidebar = document.getElementsByClassName("sphinxsidebar")[0] + const sidebarWrapper = document.getElementsByClassName('sphinxsidebarwrapper')[0] + const sidebarButton = document.getElementById("sidebarbutton") + const sidebarArrow = sidebarButton.querySelector('span') + + // for some reason, the document has no sidebar; do not run into errors + if (typeof sidebar === "undefined") return; + + const flipArrow = element => element.innerText = (element.innerText === "»") ? "«" : "»" + + const collapse_sidebar = () => { + bodyWrapper.style.marginLeft = ".8em"; + sidebar.style.width = ".8em" + sidebarWrapper.style.display = "none" + flipArrow(sidebarArrow) + sidebarButton.title = _('Expand sidebar') + window.localStorage.setItem("sidebar", "collapsed") + } + + const expand_sidebar = () => { + bodyWrapper.style.marginLeft = "" + sidebar.style.removeProperty("width") + sidebarWrapper.style.display = "" + flipArrow(sidebarArrow) + sidebarButton.title = _('Collapse sidebar') + window.localStorage.setItem("sidebar", "expanded") + } + + sidebarButton.addEventListener("click", () => { + (sidebarWrapper.style.display === "none") ? expand_sidebar() : collapse_sidebar() + }) + + if (!window.localStorage.getItem("sidebar")) return + const value = window.localStorage.getItem("sidebar") + if (value === "collapsed") collapse_sidebar(); + else if (value === "expanded") expand_sidebar(); +} + +if (document.readyState !== "loading") initialiseSidebar() +else document.addEventListener("DOMContentLoaded", initialiseSidebar) \ No newline at end of file diff --git a/_docs_/_static/sphinx_highlight.js b/_docs_/_static/sphinx_highlight.js new file mode 100644 index 0000000..8a96c69 --- /dev/null +++ b/_docs_/_static/sphinx_highlight.js @@ -0,0 +1,154 @@ +/* Highlighting utilities for Sphinx HTML documentation. */ +"use strict"; + +const SPHINX_HIGHLIGHT_ENABLED = true + +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + const rest = document.createTextNode(val.substr(pos + text.length)); + parent.insertBefore( + span, + parent.insertBefore( + rest, + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + /* There may be more occurrences of search term in this node. So call this + * function recursively on the remaining fragment. + */ + _highlight(rest, addItems, text, className); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + +/** + * Small JavaScript module for the documentation. + */ +const SphinxHighlight = { + + /** + * highlight the search words provided in localstorage in the text + */ + highlightSearchWords: () => { + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + + // get and clear terms from localstorage + const url = new URL(window.location); + const highlight = + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms") + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + + // get individual terms from highlight string + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/_docs_/_static/themetoggle.js b/_docs_/_static/themetoggle.js new file mode 100644 index 0000000..f9394c6 --- /dev/null +++ b/_docs_/_static/themetoggle.js @@ -0,0 +1,24 @@ +const pydocthemeDark = document.getElementById('pydoctheme_dark_css') +const pygmentsDark = document.getElementById('pygments_dark_css') +const themeSelectors = document.getElementsByClassName('theme-selector') + +function activateTheme(theme) { + localStorage.setItem('currentTheme', theme); + [...themeSelectors].forEach(e => e.value = theme) + switch (theme) { + case 'light': + pydocthemeDark.media = 'not all' + pygmentsDark.media = 'not all' + break; + case 'dark': + pydocthemeDark.media = 'all' + pygmentsDark.media = 'all' + break; + default: + // auto + pydocthemeDark.media = '(prefers-color-scheme: dark)' + pygmentsDark.media = '(prefers-color-scheme: dark)' + } +} + +activateTheme(localStorage.getItem('currentTheme') || 'auto') diff --git a/_docs_/genindex.html b/_docs_/genindex.html new file mode 100644 index 0000000..cefdede --- /dev/null +++ b/_docs_/genindex.html @@ -0,0 +1,361 @@ + + + + + + + Index — report documentation + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+ + +
+
+ + + + + \ No newline at end of file diff --git a/_docs_/index.html b/_docs_/index.html new file mode 100644 index 0000000..a360360 --- /dev/null +++ b/_docs_/index.html @@ -0,0 +1,474 @@ + + + + + + + + Welcome to report documentation! — report documentation + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Welcome to report documentation!¶

+
+

report (Report Module)¶

+

Author:

+ +

Description:

+
+

The Module is designed to help with python logging and to support some handlers for logging to memory.

+
+

Submodules:

+ +

Unittest:

+
+

See also the unittest documentation.

+
+
+
+
+report.DEFAULT_FMT = '%(asctime)s: %(levelname)8s - %(name)s - %(message)s\n                                    File "%(pathname)s", line %(lineno)d, in %(funcName)s'¶
+

The default formatstring

+
+ +
+
+report.JOURNAL_FMT = '%(levelname)8s - %(name)s - %(message)s'¶
+

A short journal formatter including the most important information

+
+ +
+
+class report.JsonFormatter(fmt=None, datefmt=None, style='%', validate=True, *, defaults=None)¶
+
+
+format(record)¶
+

Format the specified record as text.

+

The record’s attribute dictionary is used as the operand to a +string formatting operation which yields the returned string. +Before formatting the dictionary, a couple of preparatory steps +are carried out. The message attribute of the record is computed +using LogRecord.getMessage(). If the formatting string uses the +time (as determined by a call to usesTime(), formatTime() is +called to format the event time. If there is exception information, +it is formatted using formatException() and appended to the message.

+
+ +
+ +
+
+report.LONG_FMT = '%(asctime)s: %(levelname)8s - %(name)s - %(message)s\n                                    File "%(pathname)s", line %(lineno)d, in %(funcName)s'¶
+

A long formatter which results in links to the source code inside Eclipse

+
+ +
+
+report.SHORT_FMT = '%(asctime)s: %(levelname)8s - %(name)s - %(message)s'¶
+

A short formatter including the most important information

+
+ +
+
+report.TCEL_FULL = 90¶
+

Testcase level (full), this is a complete test for the full functionality

+
+ +
+
+report.TCEL_NAMES = {0: 'Single Test', 10: 'Smoke Test (Minumum subset)', 50: 'Short Test (Subset)', 90: 'Full Test (all defined tests)'}¶
+

Dictionary for resolving the test case levels (TCL) to a (human readable) name

+
+ +
+
+report.TCEL_REVERSE_NAMED = {'full': 90, 'short': 50, 'single': 0, 'smoke': 10}¶
+

Dictionary for resolving named test case levels (TCL) to test case level number

+
+ +
+
+report.TCEL_SHORT = 50¶
+

Testcase level (short), this is a short test for an extended functionality

+
+ +
+
+report.TCEL_SINGLE = 0¶
+

Testcase level (smoke), this is just a rough test for the main functionality

+
+ +
+
+report.TCEL_SMOKE = 10¶
+

Testcase level (smoke), this is just a rough test for the main functionality

+
+ +
+
+report.app_logging_config()¶
+

For details see comment in default_logging_config.

+
+ +
+
+class report.collectingHandler¶
+
+
+emit(record)¶
+

Do whatever it takes to actually log the specified logging record.

+

This version is intended to be implemented by subclasses and so +raises a NotImplementedError.

+
+ +
+ +
+
+class report.collectingRingHandler(max_logs=None)¶
+
+ +
+
+class report.collectingTestcaseHandler¶
+
+
+emit(record)¶
+

Do whatever it takes to actually log the specified logging record.

+

This version is intended to be implemented by subclasses and so +raises a NotImplementedError.

+
+ +
+ +
+
+report.default_logging_config(fmt='%(levelname)8s - %(name)s - %(message)s')¶
+

You are able to configure logging by a config file including these line:

+

import logging

+

DEBUG = False +# +# Logging +# +APP_NAME = “<YOUR_APP_NAME>†+LOG_HOSTNAME = “loggy†# When DEBUG is True +LOG_LEVEL = logging.INFO # STDOUT logging

+
+ +
+
+class report.testSession(module_names=[], **kwargs)¶
+
+ +
+
+
+
+

Indices and tables¶

+ +
+ + +
+
+
+
+ +
+
+ + + + + \ No newline at end of file diff --git a/_docs_/objects.inv b/_docs_/objects.inv new file mode 100644 index 0000000..c817409 --- /dev/null +++ b/_docs_/objects.inv @@ -0,0 +1,6 @@ +# Sphinx inventory version 2 +# Project: report +# Version: +# The remainder of this file is compressed using zlib. +xÚµVMoÚ0¾ó+ + + + + + + Python Module Index — report documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+
+
+ + +

Python Module Index

+ +
+ r +
+ + + + + + + +
 
+ r
+ report +
+ + +
+
+
+
+ +
+
+ + + + + \ No newline at end of file diff --git a/_docs_/search.html b/_docs_/search.html new file mode 100644 index 0000000..63cf0f4 --- /dev/null +++ b/_docs_/search.html @@ -0,0 +1,198 @@ + + + + + + + Search — report documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+
+
+ +

Search

+ + + + +

+ Searching for multiple words only shows matches that contain + all words. +

+ + +
+ + + +
+ + +
+ + +
+
+
+
+ +
+
+ + + + + \ No newline at end of file diff --git a/_docs_/searchindex.js b/_docs_/searchindex.js new file mode 100644 index 0000000..410d7c4 --- /dev/null +++ b/_docs_/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"alltitles":{"1. Copyright and Related Rights.":[[3,"copyright-and-related-rights"],[10,"copyright-and-related-rights"]],"2. Waiver.":[[3,"waiver"],[10,"waiver"]],"3. Public License Fallback.":[[3,"public-license-fallback"],[10,"public-license-fallback"]],"4. Limitations and Disclaimers.":[[3,"limitations-and-disclaimers"],[10,"limitations-and-disclaimers"]],"CC0 1.0 Universal licence":[[3,"cc0-1-0-universal-licence"],[10,"cc0-1-0-universal-licence"]],"Indices and tables":[[0,"indices-and-tables"]],"Licence":[[3,null],[10,null]],"License for Sphinx":[[4,null],[11,null]],"Statement of Purpose":[[3,"statement-of-purpose"],[10,"statement-of-purpose"]],"The MIT License (MIT)":[[2,null],[9,null]],"Welcome to report documentation!":[[0,null]],"Zero-Clause BSD Licence":[[3,"zero-clause-bsd-licence"],[10,"zero-clause-bsd-licence"]],"report (Report Module)":[[0,"report-report-module"]]},"docnames":["index","venv/lib/python3.13/site-packages/alabaster-1.0.0.dist-info/LICENSE","venv/lib/python3.13/site-packages/imagesize-1.4.1.dist-info/LICENSE","venv/lib/python3.13/site-packages/roman_numerals_py-3.1.0.dist-info/licenses/LICENCE","venv/lib/python3.13/site-packages/sphinx-8.2.3.dist-info/licenses/LICENSE","venv/lib/python3.13/site-packages/sphinx/ext/autosummary/templates/autosummary/base","venv/lib/python3.13/site-packages/sphinx/ext/autosummary/templates/autosummary/class","venv/lib/python3.13/site-packages/sphinx/ext/autosummary/templates/autosummary/module","venv/lib64/python3.13/site-packages/alabaster-1.0.0.dist-info/LICENSE","venv/lib64/python3.13/site-packages/imagesize-1.4.1.dist-info/LICENSE","venv/lib64/python3.13/site-packages/roman_numerals_py-3.1.0.dist-info/licenses/LICENCE","venv/lib64/python3.13/site-packages/sphinx-8.2.3.dist-info/licenses/LICENSE","venv/lib64/python3.13/site-packages/sphinx/ext/autosummary/templates/autosummary/base","venv/lib64/python3.13/site-packages/sphinx/ext/autosummary/templates/autosummary/class","venv/lib64/python3.13/site-packages/sphinx/ext/autosummary/templates/autosummary/module"],"envversion":{"sphinx":65,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["index.rst","venv/lib/python3.13/site-packages/alabaster-1.0.0.dist-info/LICENSE.rst","venv/lib/python3.13/site-packages/imagesize-1.4.1.dist-info/LICENSE.rst","venv/lib/python3.13/site-packages/roman_numerals_py-3.1.0.dist-info/licenses/LICENCE.rst","venv/lib/python3.13/site-packages/sphinx-8.2.3.dist-info/licenses/LICENSE.rst","venv/lib/python3.13/site-packages/sphinx/ext/autosummary/templates/autosummary/base.rst","venv/lib/python3.13/site-packages/sphinx/ext/autosummary/templates/autosummary/class.rst","venv/lib/python3.13/site-packages/sphinx/ext/autosummary/templates/autosummary/module.rst","venv/lib64/python3.13/site-packages/alabaster-1.0.0.dist-info/LICENSE.rst","venv/lib64/python3.13/site-packages/imagesize-1.4.1.dist-info/LICENSE.rst","venv/lib64/python3.13/site-packages/roman_numerals_py-3.1.0.dist-info/licenses/LICENCE.rst","venv/lib64/python3.13/site-packages/sphinx-8.2.3.dist-info/licenses/LICENSE.rst","venv/lib64/python3.13/site-packages/sphinx/ext/autosummary/templates/autosummary/base.rst","venv/lib64/python3.13/site-packages/sphinx/ext/autosummary/templates/autosummary/class.rst","venv/lib64/python3.13/site-packages/sphinx/ext/autosummary/templates/autosummary/module.rst"],"indexentries":{"app_logging_config() (in module report)":[[0,"report.app_logging_config",false]],"collectinghandler (class in report)":[[0,"report.collectingHandler",false]],"collectingringhandler (class in report)":[[0,"report.collectingRingHandler",false]],"collectingtestcasehandler (class in report)":[[0,"report.collectingTestcaseHandler",false]],"default_fmt (in module report)":[[0,"report.DEFAULT_FMT",false]],"default_logging_config() (in module report)":[[0,"report.default_logging_config",false]],"emit() (report.collectinghandler method)":[[0,"report.collectingHandler.emit",false]],"emit() (report.collectingtestcasehandler method)":[[0,"report.collectingTestcaseHandler.emit",false]],"format() (report.jsonformatter method)":[[0,"report.JsonFormatter.format",false]],"journal_fmt (in module report)":[[0,"report.JOURNAL_FMT",false]],"jsonformatter (class in report)":[[0,"report.JsonFormatter",false]],"long_fmt (in module report)":[[0,"report.LONG_FMT",false]],"module":[[0,"module-report",false]],"report":[[0,"module-report",false]],"short_fmt (in module report)":[[0,"report.SHORT_FMT",false]],"tcel_full (in module report)":[[0,"report.TCEL_FULL",false]],"tcel_names (in module report)":[[0,"report.TCEL_NAMES",false]],"tcel_reverse_named (in module report)":[[0,"report.TCEL_REVERSE_NAMED",false]],"tcel_short (in module report)":[[0,"report.TCEL_SHORT",false]],"tcel_single (in module report)":[[0,"report.TCEL_SINGLE",false]],"tcel_smoke (in module report)":[[0,"report.TCEL_SMOKE",false]],"testsession (class in report)":[[0,"report.testSession",false]]},"objects":{"":[[0,0,0,"-","report"]],"report":[[0,1,1,"","DEFAULT_FMT"],[0,1,1,"","JOURNAL_FMT"],[0,2,1,"","JsonFormatter"],[0,1,1,"","LONG_FMT"],[0,1,1,"","SHORT_FMT"],[0,1,1,"","TCEL_FULL"],[0,1,1,"","TCEL_NAMES"],[0,1,1,"","TCEL_REVERSE_NAMED"],[0,1,1,"","TCEL_SHORT"],[0,1,1,"","TCEL_SINGLE"],[0,1,1,"","TCEL_SMOKE"],[0,4,1,"","app_logging_config"],[0,2,1,"","collectingHandler"],[0,2,1,"","collectingRingHandler"],[0,2,1,"","collectingTestcaseHandler"],[0,4,1,"","default_logging_config"],[0,2,1,"","testSession"]],"report.JsonFormatter":[[0,3,1,"","format"]],"report.collectingHandler":[[0,3,1,"","emit"]],"report.collectingTestcaseHandler":[[0,3,1,"","emit"]]},"objnames":{"0":["py","module","Python module"],"1":["py","data","Python data"],"2":["py","class","Python class"],"3":["py","method","Python method"],"4":["py","function","Python function"]},"objtypes":{"0":"py:module","1":"py:data","2":"py:class","3":"py:method","4":"py:function"},"terms":{"":[0,3,10],"0":0,"10":0,"11":[3,10],"1996":[3,10],"2007":[4,11],"2010":[1,8],"2011":[1,8],"2016":[2,9],"2020":[1,8],"2024":[3,10],"2025":[4,11],"50":0,"8":0,"9":[3,10],"90":0,"96":[3,10],"A":[0,1,2,3,4,8,9,10,11],"AND":[1,2,3,4,8,9,10,11],"AS":[1,2,3,4,8,9,10,11],"BE":[1,2,3,4,8,9,10,11],"BUT":[1,2,4,8,9,11],"BY":[1,4,8,11],"FOR":[1,2,3,4,8,9,10,11],"For":[0,3,10],"IF":[1,4,8,11],"IN":[1,2,3,4,8,9,10,11],"If":0,"In":[3,10],"NO":[1,2,3,4,8,9,10,11],"NOT":[1,2,4,8,9,11],"No":[3,10],"OF":[1,2,3,4,8,9,10,11],"ON":[1,4,8,11],"OR":[1,2,3,4,8,9,10,11],"SUCH":[1,4,8,11],"THE":[1,2,3,4,8,9,10,11],"TO":[1,2,3,4,8,9,10,11],"The":[0,1,3,8,10],"These":[3,10],"To":[3,10],"WITH":[2,3,9,10],"abandon":[3,10],"abl":0,"abov":[1,2,4,8,9,11],"absenc":[3,10],"account":[3,10],"accuraci":[3,10],"acknowledg":[3,10],"action":[2,3,9,10],"actual":0,"adam":[3,10],"adapt":[3,10],"addit":[3,10],"advertis":[3,10],"advis":[1,4,8,11],"affect":[3,10],"affirm":[3,10],"against":[3,10],"alder":0,"all":[0,2,3,4,9,10,11],"also":0,"amend":[3,10],"an":[0,2,3,9,10],"ani":[1,2,3,4,8,9,10,11],"app_logging_config":0,"app_nam":0,"append":0,"appli":[3,10],"applic":[3,10],"ar":[0,1,3,4,8,10,11],"aris":[1,2,3,4,8,9,10,11],"armin":[1,8],"asctim":0,"assert":[3,10],"associ":[2,3,9,10],"attribut":0,"author":[0,2,3,4,9,10,11],"authorship":[3,10],"automat":[3,10],"avail":[3,10],"base":[1,3,8,10],"befor":0,"below":[3,4,10,11],"benefit":[3,10],"binari":[1,4,8,11],"block":[7,14],"bsd":[4,11],"build":[3,10],"busi":[1,4,8,11],"c":[1,3,4,8,10,11],"call":0,"can":[3,10],"cancel":[3,10],"carri":0,"case":[0,3,10],"caus":[1,3,4,8,10,11],"certain":[3,10],"charg":[2,9],"claim":[2,3,9,10],"class":0,"claus":[4,11],"clear":[3,10],"code":[0,1,4,8,11],"collectinghandl":0,"collectingringhandl":0,"collectingtestcasehandl":0,"comment":0,"commerci":[3,10],"common":[3,10],"commun":[3,10],"compens":[3,10],"competit":[3,10],"complet":0,"comput":0,"concern":[3,10],"condit":[1,2,4,8,9,11],"confer":[3,10],"config":0,"configur":0,"connect":[2,3,9,10],"consent":[3,10],"consequenti":[1,3,4,8,10,11],"consider":[3,10],"consoleloggingconfigur":0,"contempl":[3,10],"contract":[1,2,3,4,8,9,10,11],"contrari":[3,10],"contravent":[3,10],"contribut":[3,10],"contributor":[1,4,8,11],"copi":[2,3,9,10],"copyright":[1,2,4,8,9,11],"correspond":[3,10],"council":[3,10],"coupl":0,"creativ":[3,10],"creator":[3,10],"cultur":[3,10],"current":[3,10],"d":0,"damag":[1,2,3,4,8,9,10,11],"data":[1,3,4,8,10,11],"databas":[3,10],"date":[3,10],"datefmt":0,"de":0,"deal":[2,9],"debug":0,"deem":[3,10],"default":0,"default_fmt":0,"default_logging_config":0,"defect":[3,10],"defin":[0,3,10],"depict":[3,10],"deriv":[1,8],"descript":0,"design":0,"detail":0,"determin":0,"detriment":[3,10],"dictionari":0,"direct":[1,3,4,8,10,11],"dirk":0,"disclaim":[1,4,8,11],"discover":[3,10],"displai":[3,10],"disrupt":[3,10],"dissemin":[3,10],"distribut":[1,2,3,4,8,9,10,11],"do":[0,2,9],"document":[1,2,3,4,8,9,10,11],"durat":[3,10],"duti":[3,10],"each":[3,10],"ec":[3,10],"eclips":0,"effect":[3,10],"effort":[3,10],"either":[3,10],"elect":[3,10],"emit":0,"endblock":[7,14],"endfor":[7,14],"endif":[7,14],"endors":[1,8],"enjoy":[3,10],"equit":[3,10],"equival":[3,10],"error":[3,10],"escap":[5,6,7,12,13,14],"european":[3,10],"even":[1,4,8,11],"event":[0,1,2,3,4,8,9,10,11],"except":0,"exclus":[3,10],"exemplari":[1,4,8,11],"exercis":[3,10],"exist":[3,10],"expect":[3,10],"express":[1,2,3,4,8,9,10,11],"extend":0,"extens":[3,10],"extent":[3,10],"extract":[3,10],"fals":0,"fear":[3,10],"fee":[3,10],"file":[0,2,4,9,11],"fit":[1,2,3,4,8,9,10,11],"fmt":0,"follow":[1,2,3,4,8,9,10,11],"forcier":[1,8],"form":[1,3,4,8,10,11],"format":0,"formatexcept":0,"formatstr":0,"formatt":0,"formattim":0,"free":[2,3,9,10],"freeli":[3,10],"from":[1,2,3,8,9,10],"full":0,"fulli":[3,10],"fullnam":[5,6,7,12,13,14],"funcnam":0,"function":0,"furnish":[2,9],"further":[3,10],"futur":[3,10],"gain":[3,10],"getmessag":0,"good":[1,4,8,11],"grant":[2,3,9,10],"greater":[3,10],"greatest":[3,10],"ha":[3,10],"handler":0,"he":[3,10],"heir":[3,10],"held":[3,10],"help":0,"her":[3,10],"herebi":[2,3,9,10],"hi":[3,10],"holder":[1,2,4,8,9,11],"howev":[1,4,8,11],"human":0,"i":[0,1,2,3,4,8,9,10,11],"ideal":[3,10],"ii":[3,10],"iii":[3,10],"imag":[3,10],"implement":[0,3,10],"impli":[1,2,3,4,8,9,10,11],"import":0,"incident":[1,4,8,11],"includ":[0,1,2,3,4,8,9,10,11],"incorpor":[3,10],"index":0,"indic":[4,11],"indirect":[1,3,4,8,10,11],"ineffect":[3,10],"info":0,"inform":0,"infring":[3,10],"insid":0,"intend":[0,3,10],"interrupt":[1,4,8,11],"invalid":[3,10],"irrevoc":[3,10],"item":[7,14],"its":[3,10],"iv":[3,10],"jeff":[1,8],"journal":0,"journal_fmt":0,"jsonformatt":0,"judg":[3,10],"jurisdict":[3,10],"just":0,"kenneth":[1,8],"kind":[2,3,9,10],"knowledg":[3,10],"known":[3,10],"kwarg":0,"larg":[3,10],"latent":[3,10],"later":[3,10],"law":[3,10],"legal":[3,10],"level":0,"levelnam":0,"liabil":[1,2,4,8,9,11],"liabl":[1,2,3,4,8,9,10,11],"licenc":[4,11],"like":[3,10],"limit":[1,2,4,8,9,11],"line":0,"lineno":0,"link":0,"list":[1,4,8,11],"log":0,"log_hostnam":0,"log_level":0,"loggi":0,"logrecord":0,"long":0,"long_fmt":0,"loss":[1,3,4,8,10,11],"made":[3,10],"mai":[1,3,8,10],"main":0,"make":[3,10],"march":[3,10],"materi":[1,4,8,11],"max_log":0,"maximum":[3,10],"mean":[3,10],"medium":[3,10],"member":[3,10],"memori":0,"merchant":[1,2,3,4,8,9,10,11],"merg":[2,9],"messag":0,"met":[1,4,8,11],"minumum":0,"mockeri":0,"modif":[1,4,8,11],"modifi":[2,3,9,10],"modul":[7,14],"module_nam":0,"moral":[3,10],"most":[0,3,10],"motiv":[3,10],"mount":0,"must":[1,4,8,11],"n":0,"name":[0,1,8],"nation":[3,10],"necessari":[3,10],"neglig":[1,3,4,8,10,11],"neighbor":[3,10],"non":[3,10],"none":0,"noninfring":[2,9],"notic":[1,2,4,8,9,11],"notimplementederror":0,"now":[3,10],"number":[0,3,10],"oblig":[3,10],"obtain":[2,3,9,10],"offer":[3,10],"oper":0,"operand":0,"origin":[1,3,8,10],"other":[1,2,3,4,8,9,10,11],"otherwis":[1,2,3,4,8,9,10,11],"out":[0,1,2,3,4,8,9,10,11],"overtli":[3,10],"owner":[1,3,8,10],"page":0,"paragraph":[3,10],"parliament":[3,10],"part":[3,10],"parti":[3,10],"partial":[3,10],"particular":[1,2,3,4,8,9,10,11],"patent":[3,10],"pathnam":0,"perform":[3,10],"perman":[3,10],"permiss":[1,2,3,8,9,10],"permit":[1,2,3,4,8,9,10,11],"person":[2,3,9,10],"pertain":[3,10],"portion":[2,9],"possibl":[1,3,4,8,10,11],"preparatori":0,"present":[3,10],"preserv":[3,10],"prior":[1,8],"privaci":[3,10],"procur":[1,4,8,11],"product":[1,3,8,10],"profit":[1,3,4,8,10,11],"project":[3,4,10,11],"promot":[1,3,8,10],"protect":[3,10],"provid":[1,2,3,4,8,9,10,11],"publicli":[3,10],"publish":[2,9],"purpos":[1,2,4,8,9,11],"python":0,"quiet":[3,10],"rais":0,"readabl":0,"reason":[3,10],"record":0,"redistribut":[1,3,4,8,10,11],"regard":[3,10],"reitz":[1,8],"reliabl":[3,10],"relinquish":[3,10],"remain":[3,10],"remaind":[3,10],"represent":[3,10],"reproduc":[1,3,4,8,10,11],"reput":[3,10],"requir":[3,10],"resciss":[3,10],"reserv":[1,4,8,11],"resolv":0,"respect":[3,10],"respons":[3,10],"restrict":[2,9],"result":[0,3,10],"retain":[1,3,4,8,10,11],"return":0,"reus":[3,10],"revoc":[3,10],"right":[1,2,4,8,9,11],"ronach":[1,8],"rough":0,"royalti":[3,10],"rubric":[7,14],"scientif":[3,10],"search":0,"see":[0,4,11],"sell":[2,9],"servic":[1,4,8,11],"shall":[1,2,3,4,8,9,10,11],"she":[3,10],"shibukawa":[2,9],"short":0,"short_fmt":0,"should":[3,10],"similar":[3,10],"singl":0,"smoke":0,"so":[0,2,3,9,10],"softwar":[1,2,3,4,8,9,10,11],"some":[0,1,8],"sourc":[0,1,4,8,11],"special":[1,3,4,8,10,11],"specif":[1,8],"specifi":0,"statutori":[3,10],"stdout":0,"step":0,"strict":[1,4,8,11],"string":0,"style":0,"subclass":0,"subject":[2,3,9,10],"sublicens":[2,3,9,10],"submodul":0,"subsequ":[3,10],"subset":0,"substanti":[2,9],"substitut":[1,4,8,11],"successor":[3,10],"sudo":0,"support":0,"surrend":[3,10],"take":[0,3,10],"tcel_ful":0,"tcel_nam":0,"tcel_reverse_nam":0,"tcel_short":0,"tcel_singl":0,"tcel_smok":0,"tcl":0,"team":[4,11],"term":[3,10],"termin":[3,10],"territori":[3,10],"test":0,"testcas":0,"testsess":0,"text":0,"theme":[1,8],"theori":[1,4,8,11],"thereof":[3,10],"thi":[0,1,2,3,4,8,9,10,11],"those":[3,10],"through":[3,10],"throughout":[3,10],"time":[0,3,10],"titl":[3,10],"tort":[1,2,4,8,9,11],"tortiou":[3,10],"trademark":[3,10],"transfer":[3,10],"translat":[3,10],"treati":[3,10],"true":0,"turner":[3,10],"two":[4,11],"uncondit":[3,10],"uncondition":[3,10],"under":[3,4,10,11],"underlin":[5,6,7,12,13,14],"understand":[3,10],"unfair":[3,10],"unittest":0,"unknown":[3,10],"unless":[4,11],"upon":[3,10],"us":[0,1,2,3,4,8,9,10,11],"usestim":0,"valid":0,"version":[0,3,10],"voluntarili":[3,10],"wa":[3,10],"wai":[1,4,8,11],"waiv":[3,10],"warranti":[1,2,3,4,8,9,10,11],"well":[3,10],"whatev":0,"whatsoev":[3,10],"when":0,"whether":[1,2,3,4,8,9,10,11],"which":0,"whom":[2,9],"wish":[3,10],"without":[1,2,3,4,8,9,10,11],"work":[1,3,8,10],"world":[3,10],"worldwid":[3,10],"written":[1,8],"yield":0,"yoshiki":[2,9],"you":0,"your_app_nam":0},"titles":["Welcome to report documentation!","<no title>","The MIT License (MIT)","Licence","License for Sphinx","<no title>","<no title>","<no title>","<no title>","The MIT License (MIT)","Licence","License for Sphinx","<no title>","<no title>","<no title>"],"titleterms":{"0":[3,10],"1":[3,10],"2":[3,10],"3":[3,10],"4":[3,10],"The":[2,9],"bsd":[3,10],"cc0":[3,10],"claus":[3,10],"copyright":[3,10],"disclaim":[3,10],"document":0,"fallback":[3,10],"indic":0,"licenc":[3,10],"licens":[2,3,4,9,10,11],"limit":[3,10],"mit":[2,9],"modul":0,"public":[3,10],"purpos":[3,10],"relat":[3,10],"report":0,"right":[3,10],"sphinx":[4,11],"statement":[3,10],"tabl":0,"univers":[3,10],"waiver":[3,10],"welcom":0,"zero":[3,10]}}) \ No newline at end of file diff --git a/_examples_/Makefile b/_examples_/Makefile new file mode 100644 index 0000000..f1b262b --- /dev/null +++ b/_examples_/Makefile @@ -0,0 +1,29 @@ +# pylibs examples Makefile: Version 1.0 (2025-08-15) + +.ONESHELL: +SHELL = /usr/bin/bash +MAKEFLAGS += --no-print-directory +.SILENT: + +INTERPRETER = python3 + +.PHONY: all +EXAMPLES := $(wildcard *.py) +EXAMPLES := $(filter-out config.py, $(EXAMPLES)) +LOGFILES := ${EXAMPLES:.py=.log} +LOGFILES_1st := ${EXAMPLES:.py=.log_1st} + +all: $(LOGFILES) + +-include __make.d__/*.mk + +%.log: %.py + $(MAKE) $@_1st 2> /dev/null + echo -e "\e[1m * Running example $<\e[0m" + $(INTERPRETER) $< > $@ + +localclean: +clean: localclean + echo -e "\e[1m * Example logs...\e[0m" + rm -f $(LOGFILES) + rm -f $(LOGFILES_1st) diff --git a/_requirements_/specification.pdf b/_requirements_/specification.pdf index 41348daf1d33848939b9b267fe0fe9e5406218df..6e756d20ab5ea264e069a67d8885f76f38040923 100644 GIT binary patch delta 559 zcmccrgZbeP<_W5k7cy(rxAxoeHyH@DmDe5Z%~krkPF}>#_sWqYuDe$@H#&KU2t52B zonly6u*>_N&H26U0gQ+A4%rvKUGy|;sY95DkyH$)kZ_}y)1-w8xd%lH(%k>cyuN2& zWBegvV$$-y<3@>g>-9aX_VbqB_UTMZJ?(tq^Xl8|rQgi;E%)$8f4ZEq4p{b#P>Eu6eWnk>h^6z%@1e!TJ8k@UWS~?q<7@HZmnwp!NnOd4S zIhvYVSQwa?y4oq&5L6P&rSFrPmtK;gU}S7C*^p7QUiREcy~B(G$3Oo3>m91Q^;%F! z^x9ilEB9^{+j{SgjT`^DN3WhS%Is~aVAfYC%ut%h!Plo(bNr$4{**K$N#ozVItI12 z0nLUoP8<_lMHNjH+L=w1dJ5kx<`jIgu|3Vju#qe3LYL>8MZ9lk9O6rQ;hf zd$Y}bh1JZgOG(#HOfeQb_muJE9RJwJaOb2WTc;UjJiWMn@va|X*~^PI2{R-8Lc&Y-+)2H|i~`3${`~8`a_zN6 z)3R1x3yOZbc56tW`Et89@AZ#fJ!6cqZK+_^a}0PAJ=%m4rY diff --git a/_testresults_/unittest.json b/_testresults_/unittest.json index 8efcfff..69e04b0 100644 --- a/_testresults_/unittest.json +++ b/_testresults_/unittest.json @@ -1,27 +1,17 @@ { "coverage_information": [ { - "branch_coverage": 60.78, - "filepath": "/home/dirk/my_repositories/unittest/report/pylibs/report", + "branch_coverage": 55.559999999999995, + "filepath": "/home/dirk/work/unittest_collection/report/pylibs/report", "files": [ { - "branch_coverage": 60.78, - "filepath": "/home/dirk/my_repositories/unittest/report/pylibs/report/__init__.py", + "branch_coverage": 55.559999999999995, + "filepath": "/home/dirk/work/unittest_collection/report/pylibs/report/__init__.py", "fragments": [ - { - "coverage_state": "clean", - "end": 3, - "start": 1 - }, - { - "coverage_state": "covered", - "end": 4, - "start": 4 - }, { "coverage_state": "clean", "end": 28, - "start": 5 + "start": 1 }, { "coverage_state": "covered", @@ -35,103 +25,63 @@ }, { "coverage_state": "covered", - "end": 36, + "end": 37, "start": 31 }, { "coverage_state": "clean", - "end": 37, - "start": 37 - }, - { - "coverage_state": "covered", - "end": 42, + "end": 38, "start": 38 }, - { - "coverage_state": "clean", - "end": 43, - "start": 43 - }, { "coverage_state": "covered", - "end": 44, - "start": 44 - }, - { - "coverage_state": "clean", - "end": 45, - "start": 45 - }, - { - "coverage_state": "covered", - "end": 48, - "start": 46 - }, - { - "coverage_state": "clean", - "end": 49, - "start": 49 - }, - { - "coverage_state": "covered", - "end": 52, - "start": 50 - }, - { - "coverage_state": "clean", "end": 55, - "start": 53 + "start": 39 + }, + { + "coverage_state": "clean", + "end": 56, + "start": 56 }, { "coverage_state": "covered", "end": 57, - "start": 56 + "start": 57 }, { "coverage_state": "clean", - "end": 73, + "end": 58, "start": 58 }, { "coverage_state": "covered", - "end": 75, - "start": 74 + "end": 61, + "start": 59 }, { "coverage_state": "clean", - "end": 77, - "start": 76 + "end": 62, + "start": 62 }, { "coverage_state": "covered", - "end": 79, - "start": 78 - }, - { - "coverage_state": "clean", - "end": 80, - "start": 80 - }, - { - "coverage_state": "covered", - "end": 84, - "start": 81 + "end": 69, + "start": 63 }, { "coverage_state": "clean", "end": 85, - "start": 85 + "start": 70 }, { "coverage_state": "covered", - "end": 88, + "end": 87, "start": 86 }, { "coverage_state": "clean", "end": 89, - "start": 89 + "start": 88 }, { "coverage_state": "covered", @@ -145,631 +95,682 @@ }, { "coverage_state": "covered", - "end": 97, + "end": 96, "start": 93 }, { "coverage_state": "clean", - "end": 98, + "end": 97, + "start": 97 + }, + { + "coverage_state": "covered", + "end": 100, "start": 98 }, { - "coverage_state": "covered", + "coverage_state": "clean", "end": 101, - "start": 99 + "start": 101 }, { - "coverage_state": "clean", - "end": 102, + "coverage_state": "covered", + "end": 103, "start": 102 }, - { - "coverage_state": "covered", - "end": 104, - "start": 103 - }, { "coverage_state": "clean", - "end": 105, - "start": 105 + "end": 104, + "start": 104 }, { "coverage_state": "covered", - "end": 106, - "start": 106 - }, - { - "coverage_state": "uncovered", - "end": 107, - "start": 107 + "end": 108, + "start": 105 }, { "coverage_state": "clean", "end": 109, - "start": 108 + "start": 109 }, { "coverage_state": "covered", - "end": 111, + "end": 113, "start": 110 }, { "coverage_state": "clean", - "end": 112, - "start": 112 + "end": 114, + "start": 114 }, { "coverage_state": "covered", - "end": 116, - "start": 113 + "end": 117, + "start": 115 }, { "coverage_state": "clean", - "end": 117, - "start": 117 - }, - { - "coverage_state": "covered", - "end": 119, + "end": 118, "start": 118 }, { - "coverage_state": "clean", + "coverage_state": "covered", "end": 120, - "start": 120 + "start": 119 + }, + { + "coverage_state": "clean", + "end": 121, + "start": 121 }, { "coverage_state": "covered", "end": 122, - "start": 121 + "start": 122 }, { - "coverage_state": "clean", - "end": 124, + "coverage_state": "uncovered", + "end": 123, "start": 123 }, + { + "coverage_state": "clean", + "end": 125, + "start": 124 + }, { "coverage_state": "covered", - "end": 133, - "start": 125 + "end": 127, + "start": 126 }, { "coverage_state": "clean", - "end": 138, - "start": 134 + "end": 128, + "start": 128 }, { "coverage_state": "covered", - "end": 139, - "start": 139 + "end": 132, + "start": 129 + }, + { + "coverage_state": "clean", + "end": 133, + "start": 133 + }, + { + "coverage_state": "covered", + "end": 135, + "start": 134 + }, + { + "coverage_state": "clean", + "end": 136, + "start": 136 + }, + { + "coverage_state": "covered", + "end": 138, + "start": 137 }, { "coverage_state": "clean", "end": 140, - "start": 140 + "start": 139 }, { "coverage_state": "covered", - "end": 141, + "end": 149, "start": 141 }, { "coverage_state": "clean", - "end": 146, - "start": 142 - }, - { - "coverage_state": "covered", - "end": 147, - "start": 147 - }, - { - "coverage_state": "clean", - "end": 149, - "start": 148 - }, - { - "coverage_state": "covered", - "end": 151, + "end": 154, "start": 150 }, + { + "coverage_state": "covered", + "end": 155, + "start": 155 + }, { "coverage_state": "clean", - "end": 152, - "start": 152 + "end": 156, + "start": 156 }, { "coverage_state": "covered", - "end": 156, - "start": 153 - }, - { - "coverage_state": "clean", - "end": 158, + "end": 157, "start": 157 }, { - "coverage_state": "covered", - "end": 160, - "start": 159 + "coverage_state": "clean", + "end": 162, + "start": 158 }, { - "coverage_state": "uncovered", - "end": 165, - "start": 161 + "coverage_state": "covered", + "end": 163, + "start": 163 }, { "coverage_state": "clean", + "end": 165, + "start": 164 + }, + { + "coverage_state": "covered", "end": 167, "start": 166 }, { - "coverage_state": "covered", + "coverage_state": "clean", "end": 168, "start": 168 }, { - "coverage_state": "uncovered", - "end": 169, + "coverage_state": "covered", + "end": 172, "start": 169 }, { "coverage_state": "clean", - "end": 171, - "start": 170 + "end": 174, + "start": 173 + }, + { + "coverage_state": "covered", + "end": 176, + "start": 175 }, { "coverage_state": "uncovered", - "end": 173, - "start": 172 + "end": 181, + "start": 177 }, { "coverage_state": "clean", - "end": 178, - "start": 174 + "end": 183, + "start": 182 + }, + { + "coverage_state": "covered", + "end": 184, + "start": 184 }, { "coverage_state": "uncovered", - "end": 180, - "start": 179 + "end": 185, + "start": 185 }, { "coverage_state": "clean", - "end": 189, - "start": 181 + "end": 186, + "start": 186 }, { "coverage_state": "uncovered", - "end": 190, - "start": 190 + "end": 191, + "start": 187 }, { "coverage_state": "clean", + "end": 193, + "start": 192 + }, + { + "coverage_state": "covered", "end": 194, - "start": 191 + "start": 194 }, { "coverage_state": "uncovered", - "end": 197, + "end": 198, "start": 195 }, { "coverage_state": "clean", - "end": 202, - "start": 198 + "end": 199, + "start": 199 }, { "coverage_state": "uncovered", - "end": 205, - "start": 203 + "end": 200, + "start": 200 }, { "coverage_state": "clean", - "end": 210, - "start": 206 + "end": 201, + "start": 201 }, { "coverage_state": "uncovered", - "end": 213, + "end": 206, + "start": 202 + }, + { + "coverage_state": "clean", + "end": 208, + "start": 207 + }, + { + "coverage_state": "covered", + "end": 209, + "start": 209 + }, + { + "coverage_state": "uncovered", + "end": 210, + "start": 210 + }, + { + "coverage_state": "clean", + "end": 211, "start": 211 }, - { - "coverage_state": "clean", - "end": 219, - "start": 214 - }, { "coverage_state": "uncovered", - "end": 220, - "start": 220 + "end": 215, + "start": 212 }, { "coverage_state": "clean", - "end": 237, - "start": 221 + "end": 217, + "start": 216 }, { "coverage_state": "covered", - "end": 238, + "end": 218, + "start": 218 + }, + { + "coverage_state": "clean", + "end": 231, + "start": 219 + }, + { + "coverage_state": "uncovered", + "end": 232, + "start": 232 + }, + { + "coverage_state": "clean", + "end": 233, + "start": 233 + }, + { + "coverage_state": "uncovered", + "end": 237, + "start": 234 + }, + { + "coverage_state": "clean", + "end": 239, "start": 238 }, { - "coverage_state": "uncovered", - "end": 239, - "start": 239 - }, - { - "coverage_state": "clean", - "end": 241, + "coverage_state": "covered", + "end": 240, "start": 240 }, { - "coverage_state": "covered", - "end": 252, - "start": 242 + "coverage_state": "clean", + "end": 243, + "start": 241 + }, + { + "coverage_state": "uncovered", + "end": 244, + "start": 244 }, { "coverage_state": "clean", - "end": 253, - "start": 253 + "end": 246, + "start": 245 }, { "coverage_state": "covered", - "end": 254, - "start": 254 + "end": 257, + "start": 247 }, { "coverage_state": "clean", - "end": 264, - "start": 255 + "end": 258, + "start": 258 }, { "coverage_state": "covered", + "end": 259, + "start": 259 + }, + { + "coverage_state": "clean", "end": 269, - "start": 265 + "start": 260 }, { - "coverage_state": "clean", - "end": 270, + "coverage_state": "covered", + "end": 274, "start": 270 }, { - "coverage_state": "covered", + "coverage_state": "clean", "end": 275, - "start": 271 + "start": 275 }, { - "coverage_state": "clean", - "end": 276, + "coverage_state": "covered", + "end": 280, "start": 276 }, - { - "coverage_state": "covered", - "end": 277, - "start": 277 - }, { "coverage_state": "clean", - "end": 280, - "start": 278 - }, - { - "coverage_state": "covered", "end": 281, "start": 281 }, { - "coverage_state": "clean", - "end": 309, + "coverage_state": "covered", + "end": 282, "start": 282 }, + { + "coverage_state": "clean", + "end": 285, + "start": 283 + }, { "coverage_state": "covered", - "end": 310, - "start": 310 + "end": 286, + "start": 286 }, { "coverage_state": "clean", - "end": 311, - "start": 311 + "end": 314, + "start": 287 }, { "coverage_state": "covered", - "end": 317, - "start": 312 + "end": 315, + "start": 315 }, { "coverage_state": "clean", - "end": 318, - "start": 318 + "end": 316, + "start": 316 }, { "coverage_state": "covered", - "end": 319, - "start": 319 + "end": 322, + "start": 317 }, { - "coverage_state": "partially-covered", - "end": 320, - "start": 320 - }, - { - "coverage_state": "covered", + "coverage_state": "clean", "end": 323, - "start": 321 + "start": 323 }, { - "coverage_state": "partially-covered", + "coverage_state": "covered", "end": 324, "start": 324 }, { - "coverage_state": "uncovered", + "coverage_state": "partially-covered", "end": 325, "start": 325 }, { "coverage_state": "covered", - "end": 326, + "end": 328, "start": 326 }, { "coverage_state": "partially-covered", - "end": 327, - "start": 327 + "end": 329, + "start": 329 }, { "coverage_state": "uncovered", - "end": 328, - "start": 328 + "end": 330, + "start": 330 }, { "coverage_state": "covered", "end": 331, - "start": 329 + "start": 331 }, { - "coverage_state": "clean", + "coverage_state": "partially-covered", "end": 332, "start": 332 }, { - "coverage_state": "covered", + "coverage_state": "uncovered", "end": 333, "start": 333 }, { - "coverage_state": "partially-covered", - "end": 334, + "coverage_state": "covered", + "end": 336, "start": 334 }, { - "coverage_state": "covered", - "end": 335, - "start": 335 + "coverage_state": "clean", + "end": 337, + "start": 337 }, { - "coverage_state": "clean", + "coverage_state": "covered", "end": 338, - "start": 336 + "start": 338 + }, + { + "coverage_state": "partially-covered", + "end": 339, + "start": 339 }, { "coverage_state": "covered", "end": 340, - "start": 339 - }, - { - "coverage_state": "partially-covered", - "end": 341, - "start": 341 - }, - { - "coverage_state": "uncovered", - "end": 342, - "start": 342 - }, - { - "coverage_state": "covered", - "end": 344, - "start": 343 + "start": 340 }, { "coverage_state": "clean", - "end": 347, - "start": 345 + "end": 343, + "start": 341 }, { "coverage_state": "covered", - "end": 350, + "end": 345, + "start": 344 + }, + { + "coverage_state": "partially-covered", + "end": 346, + "start": 346 + }, + { + "coverage_state": "uncovered", + "end": 347, + "start": 347 + }, + { + "coverage_state": "covered", + "end": 349, "start": 348 }, { "coverage_state": "clean", - "end": 351, - "start": 351 + "end": 352, + "start": 350 }, { "coverage_state": "covered", - "end": 354, - "start": 352 + "end": 355, + "start": 353 }, { "coverage_state": "clean", - "end": 355, - "start": 355 - }, - { - "coverage_state": "covered", - "end": 357, + "end": 356, "start": 356 }, { - "coverage_state": "uncovered", + "coverage_state": "covered", "end": 359, - "start": 358 + "start": 357 }, { "coverage_state": "clean", - "end": 362, + "end": 360, "start": 360 }, { "coverage_state": "covered", - "end": 363, - "start": 363 - }, - { - "coverage_state": "partially-covered", - "end": 364, - "start": 364 - }, - { - "coverage_state": "covered", - "end": 366, - "start": 365 + "end": 362, + "start": 361 }, { "coverage_state": "uncovered", - "end": 369, - "start": 367 + "end": 364, + "start": 363 }, { "coverage_state": "clean", - "end": 370, + "end": 367, + "start": 365 + }, + { + "coverage_state": "covered", + "end": 368, + "start": 368 + }, + { + "coverage_state": "partially-covered", + "end": 369, + "start": 369 + }, + { + "coverage_state": "covered", + "end": 371, "start": 370 }, { "coverage_state": "uncovered", - "end": 372, - "start": 371 + "end": 374, + "start": 372 }, { "coverage_state": "clean", - "end": 373, - "start": 373 + "end": 375, + "start": 375 }, { - "coverage_state": "covered", - "end": 376, - "start": 374 - }, - { - "coverage_state": "clean", + "coverage_state": "uncovered", "end": 377, - "start": 377 + "start": 376 + }, + { + "coverage_state": "clean", + "end": 378, + "start": 378 }, { "coverage_state": "covered", - "end": 379, - "start": 378 + "end": 381, + "start": 379 + }, + { + "coverage_state": "clean", + "end": 382, + "start": 382 + }, + { + "coverage_state": "covered", + "end": 384, + "start": 383 }, { "coverage_state": "clean", "end": null, - "start": 380 + "start": 385 } ], - "line_coverage": 81.46, + "line_coverage": 79.33, "name": "report.__init__.py" } ], - "line_coverage": 81.46, + "line_coverage": 79.33, "name": "report" } ], "lost_souls": { - "item_list": [], - "testcase_list": [] - }, - "specification": { - "comment": "Comment", - "item_dict": { - "_5ZAecCvUEeqssZLMJF_fcg": { - "Heading": "collectingHandler", - "last_change": "2019-12-31T14:53:09.820+01:00", - "system_type_uid": "_4-K5EHYYEem_kd-7nxt1sg", - "system_uid": "_5ZAecCvUEeqssZLMJF_fcg", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" - }, - "_ErFPoCvVEeqssZLMJF_fcg": { - "Heading": "String representation (collectingHandler)", - "ID": "REQ-2", - "last_change": "2019-12-31T14:58:31.681+01:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_ErFPoCvVEeqssZLMJF_fcg", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" - }, - "_MR7eOHYYEem_kd-7nxt1sg": { - "Description": "Many Methods and Classes in this Module are used for the unittest itself. Others are configuring python logging, which is also used for the unittest itself. Therefore, the unittest for this Module is limited. Also the coverage information is not only reached by the testcases, cause the Module is used by the unittest itself.", - "Heading": "General Information", - "last_change": "2019-12-31T14:53:09.779+01:00", - "system_type_uid": "_4-K5EHYYEem_kd-7nxt1sg", - "system_uid": "_MR7eOHYYEem_kd-7nxt1sg", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" - }, - "_NXT_8CvVEeqssZLMJF_fcg": { - "Heading": "collectingRingHandler", - "last_change": "2019-12-31T14:55:23.658+01:00", - "system_type_uid": "_4-K5EHYYEem_kd-7nxt1sg", - "system_uid": "_NXT_8CvVEeqssZLMJF_fcg", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" - }, - "_PVhZECvVEeqssZLMJF_fcg": { - "Heading": "Store log records (collectingRingHandler)", - "ID": "REQ-3", - "last_change": "2019-12-31T14:59:27.841+01:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_PVhZECvVEeqssZLMJF_fcg", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" - }, - "_QBmb8CvVEeqssZLMJF_fcg": { - "Heading": "String representation (collectingRingHandler)", - "ID": "REQ-4", - "last_change": "2019-12-31T14:59:35.961+01:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_QBmb8CvVEeqssZLMJF_fcg", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" - }, - "_XzMFcHYZEem_kd-7nxt1sg": { - "Description": "Description 1.", - "Fitcriterion": "", - "Heading": "Store log records (collectingHandler)", - "ID": "REQ-1", - "ReasonForImplementation": "", - "last_change": "2019-12-31T15:00:22.677+01:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_XzMFcHYZEem_kd-7nxt1sg", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" - }, - "_fW5s8CzQEeqYsdFh5Cd6ng": { - "Description": "The number of stored log-records shall be given on initialisation or reinitialisation. ", - "Heading": "Number of stored logs in the RingHandler", - "ID": "REQ-5", - "last_change": "2020-01-01T20:54:04.445+01:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_fW5s8CzQEeqYsdFh5Cd6ng", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" - } - }, - "titel": "Title", - "uid_list_sorted": [ - "_MR7eOHYYEem_kd-7nxt1sg", - "_5ZAecCvUEeqssZLMJF_fcg", - "_XzMFcHYZEem_kd-7nxt1sg", + "item_list": [ + "REQ-0001", + "REQ-0002", + "REQ-0003", + "REQ-0004", + "REQ-0005" + ], + "testcase_list": [ "_ErFPoCvVEeqssZLMJF_fcg", - "_NXT_8CvVEeqssZLMJF_fcg", "_PVhZECvVEeqssZLMJF_fcg", "_QBmb8CvVEeqssZLMJF_fcg", + "_XzMFcHYZEem_kd-7nxt1sg", "_fW5s8CzQEeqYsdFh5Cd6ng" ] }, + "specification": { + "entries": { + "REQ-0001": { + "description": "Description 1.", + "heading": "Store log records (collectingHandler)" + }, + "REQ-0002": { + "heading": "String representation (collectingHandler)" + }, + "REQ-0003": { + "heading": "Store log records (collectingRingHandler)" + }, + "REQ-0004": { + "heading": "String representation (collectingRingHandler)" + }, + "REQ-0005": { + "description": "The number of stored log-records shall be given on initialisation or reinitialisation. ", + "heading": "Number of stored logs in the RingHandler" + }, + "SEC-0001": { + "childs": [], + "heading": "General Information" + }, + "SEC-0002": { + "childs": [ + "REQ-0001", + "REQ-0002" + ], + "heading": "collectingHandler" + }, + "SEC-0003": { + "childs": [ + "REQ-0003", + "REQ-0004", + "REQ-0005" + ], + "heading": "collectingRingHandler" + } + }, + "sections": [ + "SEC-0001", + "SEC-0002", + "SEC-0003" + ], + "title": "Module report" + }, "system_information": { "Architecture": "64bit", - "Distribution": "Ubuntu 22.04 Jammy Jellyfish", + "Distribution": "Debian GNU/Linux 13 trixie", "Hostname": "ahorn", - "Kernel": "5.15.0-27-lowlatency (#28-Ubuntu SMP PREEMPT Tue Apr 19 15:27:08 UTC 2022)", + "Kernel": "6.12.38+deb13-amd64 (#1 SMP PREEMPT_DYNAMIC Debian 6.12.38-1 (2025-07-16))", "Machine": "x86_64", - "Path": "/home/dirk/my_repositories/unittest/report", + "Path": "/home/dirk/work/unittest_collection/report", "System": "Linux", "Username": "dirk" }, @@ -779,21 +780,12 @@ "Name": "report", "State": "Released", "Supported Interpreters": "python3", - "Version": "6d66b6f5e942506500a4c4a1e2e6f8e2" + "Version": "6d1216d2ba09e60ad320112430818420" }, "testrun_list": [ { - "heading_dict": { - "_5ZAecCvUEeqssZLMJF_fcg": "collectingHandler", - "_ErFPoCvVEeqssZLMJF_fcg": "String representation (collectingHandler)", - "_MR7eOHYYEem_kd-7nxt1sg": "General Information", - "_NXT_8CvVEeqssZLMJF_fcg": "collectingRingHandler", - "_PVhZECvVEeqssZLMJF_fcg": "Store log records (collectingRingHandler)", - "_QBmb8CvVEeqssZLMJF_fcg": "String representation (collectingRingHandler)", - "_XzMFcHYZEem_kd-7nxt1sg": "Store log records (collectingHandler)", - "_fW5s8CzQEeqYsdFh5Cd6ng": "Number of stored logs in the RingHandler" - }, - "interpreter": "python 3.10.4 (final)", + "heading_dict": {}, + "interpreter": "python 3.13.5 (final)", "name": "Default Testsession name", "number_of_failed_tests": 0, "number_of_possibly_failed_tests": 0, @@ -809,32 +801,31 @@ "testcases": { "_ErFPoCvVEeqssZLMJF_fcg": { "args": null, - "asctime": "2022-05-08 21:03:46,974", - "created": 1652036626.974001, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,965", + "created": 1755287451.965955, "exc_text": null, "filename": "__init__.py", - "funcName": "testrun", + "funcName": "testCase", "levelname": "INFO", "levelno": 20, - "lineno": 20, + "lineno": 331, "message": "_ErFPoCvVEeqssZLMJF_fcg", "module": "__init__", "moduleLogger": [], - "msecs": 974.0009307861328, + "msecs": 965.0, "msg": "_ErFPoCvVEeqssZLMJF_fcg", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/__init__.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/report/__init__.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 71.07281684875488, + "relativeCreated": 85.052532, "stack_info": null, + "taskName": null, "testcaseLogger": [ { "args": [], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.975016, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,967", + "created": 1755287451.9673486, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -846,9 +837,8 @@ "moduleLogger": [ { "args": [], - "asctime": "2022-05-08 21:03:46,974", - "created": 1652036626.9740832, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,966", + "created": 1755287451.9660664, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -857,15 +847,16 @@ "lineno": 22, "message": "Configuring collecting logger", "module": "test_helpers", - "msecs": 974.0831851959229, + "msecs": 966.0, "msg": "Configuring collecting logger", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 71.15507125854492, + "relativeCreated": 85.163984, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -874,9 +865,8 @@ "DEBUG", "collectingHandler" ], - "asctime": "2022-05-08 21:03:46,974", - "created": 1652036626.9741676, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,966", + "created": 1755287451.966166, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -885,15 +875,16 @@ "lineno": 36, "message": "Passing \"Log entry number 1 with level DEBUG.\" to collectingHandler.", "module": "test_helpers", - "msecs": 974.1675853729248, + "msecs": 966.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 71.23947143554688, + "relativeCreated": 85.263415, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -901,9 +892,8 @@ 1, "DEBUG" ], - "asctime": "2022-05-08 21:03:46,974", - "created": 1652036626.9742167, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,966", + "created": 1755287451.9662237, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -912,15 +902,16 @@ "lineno": 37, "message": "Log entry number 1 with level DEBUG.", "module": "test_helpers", - "msecs": 974.2166996002197, + "msecs": 966.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 71.2885856628418, + "relativeCreated": 85.321107, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -929,9 +920,8 @@ "INFO", "collectingHandler" ], - "asctime": "2022-05-08 21:03:46,974", - "created": 1652036626.9742973, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,966", + "created": 1755287451.966365, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -940,15 +930,16 @@ "lineno": 36, "message": "Passing \"Log entry number 2 with level INFO.\" to collectingHandler.", "module": "test_helpers", - "msecs": 974.297285079956, + "msecs": 966.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 71.36917114257812, + "relativeCreated": 85.462503, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -956,9 +947,8 @@ 2, "INFO" ], - "asctime": "2022-05-08 21:03:46,974", - "created": 1652036626.9743428, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,966", + "created": 1755287451.9664493, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -967,15 +957,16 @@ "lineno": 37, "message": "Log entry number 2 with level INFO.", "module": "test_helpers", - "msecs": 974.3428230285645, + "msecs": 966.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 71.41470909118652, + "relativeCreated": 85.546612, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -984,9 +975,8 @@ "WARNING", "collectingHandler" ], - "asctime": "2022-05-08 21:03:46,974", - "created": 1652036626.9744203, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,966", + "created": 1755287451.966588, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -995,15 +985,16 @@ "lineno": 36, "message": "Passing \"Log entry number 3 with level WARNING.\" to collectingHandler.", "module": "test_helpers", - "msecs": 974.4203090667725, + "msecs": 966.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 71.49219512939453, + "relativeCreated": 85.685408, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -1011,9 +1002,8 @@ 3, "WARNING" ], - "asctime": "2022-05-08 21:03:46,974", - "created": 1652036626.9744666, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,966", + "created": 1755287451.9667413, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -1022,15 +1012,16 @@ "lineno": 37, "message": "Log entry number 3 with level WARNING.", "module": "test_helpers", - "msecs": 974.4665622711182, + "msecs": 966.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 71.53844833374023, + "relativeCreated": 85.8387, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -1039,9 +1030,8 @@ "ERROR", "collectingHandler" ], - "asctime": "2022-05-08 21:03:46,974", - "created": 1652036626.9745436, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,966", + "created": 1755287451.9668329, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -1050,15 +1040,16 @@ "lineno": 36, "message": "Passing \"Log entry number 4 with level ERROR.\" to collectingHandler.", "module": "test_helpers", - "msecs": 974.543571472168, + "msecs": 966.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 71.61545753479004, + "relativeCreated": 85.930266, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -1066,9 +1057,8 @@ 4, "ERROR" ], - "asctime": "2022-05-08 21:03:46,974", - "created": 1652036626.9745882, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,966", + "created": 1755287451.9668837, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -1077,15 +1067,16 @@ "lineno": 37, "message": "Log entry number 4 with level ERROR.", "module": "test_helpers", - "msecs": 974.58815574646, + "msecs": 966.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 71.66004180908203, + "relativeCreated": 85.980905, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -1094,9 +1085,8 @@ "CRITICAL", "collectingHandler" ], - "asctime": "2022-05-08 21:03:46,974", - "created": 1652036626.9746683, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,966", + "created": 1755287451.9669652, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -1105,15 +1095,16 @@ "lineno": 36, "message": "Passing \"Log entry number 5 with level CRITICAL.\" to collectingHandler.", "module": "test_helpers", - "msecs": 974.6682643890381, + "msecs": 966.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 71.74015045166016, + "relativeCreated": 86.062796, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -1121,9 +1112,8 @@ 5, "CRITICAL" ], - "asctime": "2022-05-08 21:03:46,974", - "created": 1652036626.9747138, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,967", + "created": 1755287451.9670138, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -1132,15 +1122,16 @@ "lineno": 37, "message": "Log entry number 5 with level CRITICAL.", "module": "test_helpers", - "msecs": 974.7138023376465, + "msecs": 967.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 71.78568840026855, + "relativeCreated": 86.111206, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -1149,9 +1140,8 @@ "INFO", "collectingHandler" ], - "asctime": "2022-05-08 21:03:46,974", - "created": 1652036626.9747884, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,967", + "created": 1755287451.9670932, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -1160,15 +1150,16 @@ "lineno": 36, "message": "Passing \"Log entry number 6 with level INFO.\" to collectingHandler.", "module": "test_helpers", - "msecs": 974.7884273529053, + "msecs": 967.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 71.86031341552734, + "relativeCreated": 86.190732, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -1176,9 +1167,8 @@ 6, "INFO" ], - "asctime": "2022-05-08 21:03:46,974", - "created": 1652036626.9748282, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,967", + "created": 1755287451.9671373, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -1187,15 +1177,16 @@ "lineno": 37, "message": "Log entry number 6 with level INFO.", "module": "test_helpers", - "msecs": 974.8282432556152, + "msecs": 967.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 71.9001293182373, + "relativeCreated": 86.234773, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -1204,9 +1195,8 @@ "ERROR", "collectingHandler" ], - "asctime": "2022-05-08 21:03:46,974", - "created": 1652036626.9749007, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,967", + "created": 1755287451.9672146, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -1215,15 +1205,16 @@ "lineno": 36, "message": "Passing \"Log entry number 7 with level ERROR.\" to collectingHandler.", "module": "test_helpers", - "msecs": 974.9007225036621, + "msecs": 967.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 71.97260856628418, + "relativeCreated": 86.312098, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -1231,9 +1222,8 @@ 7, "ERROR" ], - "asctime": "2022-05-08 21:03:46,974", - "created": 1652036626.9749408, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,967", + "created": 1755287451.9672627, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -1242,729 +1232,738 @@ "lineno": 37, "message": "Log entry number 7 with level ERROR.", "module": "test_helpers", - "msecs": 974.9407768249512, + "msecs": 967.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 72.01266288757324, + "relativeCreated": 86.360242, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 975.0161170959473, + "msecs": 967.0, "msg": "Running logger test sequence.", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 72.08800315856934, + "relativeCreated": 86.44583, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 7.534027099609375e-05 + "time_consumption": 8.58306884765625e-05 }, { "args": [], - "asctime": "2022-05-08 21:03:46,976", - "created": 1652036626.9761987, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,969", + "created": 1755287451.969369, "exc_text": null, "filename": "test.py", "funcName": "report", "levelname": "INFO", "levelno": 20, - "lineno": 168, + "lineno": 254, "message": "Indexlist of log entries in stringrepresentation: Values and number of submitted values is correct. See detailed log for more information.", "module": "test", "moduleLogger": [ { "args": [ "Indexlist of log entries in stringrepresentation", - "[ 49, 134, 221, 309, 398, 486, 571 ]", + "[ 52, 141, 229, 320, 409, 501, 589 ]", "" ], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.9751563, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,967", + "created": 1755287451.967556, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Indexlist of log entries in stringrepresentation): [ 49, 134, 221, 309, 398, 486, 571 ] ()", + "message": "Result (Indexlist of log entries in stringrepresentation): [ 52, 141, 229, 320, 409, 501, 589 ] ()", "module": "test", - "msecs": 975.156307220459, + "msecs": 967.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 72.22819328308105, + "relativeCreated": 86.653658, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Indexlist of log entries in stringrepresentation", - "[ 49, 134, 221, 309, 398, 486, 571 ]", + "=", + "[ 52, 141, 229, 320, 409, 501, 589 ]", "" ], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.975221, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,967", + "created": 1755287451.9676251, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Indexlist of log entries in stringrepresentation): result = [ 49, 134, 221, 309, 398, 486, 571 ] ()", + "message": "Expectation (Indexlist of log entries in stringrepresentation): result = [ 52, 141, 229, 320, 409, 501, 589 ] ()", "module": "test", - "msecs": 975.2209186553955, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 967.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 72.29280471801758, + "relativeCreated": 86.722617, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 1", - "49", + "52", "" ], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.9752707, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,967", + "created": 1755287451.9676833, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Submitted value number 1): 49 ()", + "message": "Result (Submitted value number 1): 52 ()", "module": "test", - "msecs": 975.2707481384277, + "msecs": 967.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 72.3426342010498, + "relativeCreated": 86.780714, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 1", - "49", + "=", + "52", "" ], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.9753146, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,967", + "created": 1755287451.9677339, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Submitted value number 1): result = 49 ()", + "message": "Expectation (Submitted value number 1): result = 52 ()", "module": "test", - "msecs": 975.3146171569824, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 967.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 72.38650321960449, + "relativeCreated": 86.831232, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ - "49", + "52", "" ], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.9753633, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,967", + "created": 1755287451.9677868, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, - "message": "Submitted value number 1 is correct (Content 49 and Type is ).", + "lineno": 184, + "message": "Submitted value number 1 is correct (Content 52 and Type is ).", "module": "test", - "msecs": 975.3632545471191, + "msecs": 967.0, "msg": "Submitted value number 1 is correct (Content %s and Type is %s).", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 72.43514060974121, + "relativeCreated": 86.884263, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 2", - "134", + "141", "" ], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.975412, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,967", + "created": 1755287451.967838, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Submitted value number 2): 134 ()", + "message": "Result (Submitted value number 2): 141 ()", "module": "test", - "msecs": 975.4118919372559, + "msecs": 967.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 72.48377799987793, + "relativeCreated": 86.935376, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 2", - "134", + "=", + "141", "" ], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.9754546, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,967", + "created": 1755287451.967886, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Submitted value number 2): result = 134 ()", + "message": "Expectation (Submitted value number 2): result = 141 ()", "module": "test", - "msecs": 975.454568862915, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 967.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 72.52645492553711, + "relativeCreated": 86.983394, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ - "134", + "141", "" ], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.9754972, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,967", + "created": 1755287451.9679322, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, - "message": "Submitted value number 2 is correct (Content 134 and Type is ).", + "lineno": 184, + "message": "Submitted value number 2 is correct (Content 141 and Type is ).", "module": "test", - "msecs": 975.4972457885742, + "msecs": 967.0, "msg": "Submitted value number 2 is correct (Content %s and Type is %s).", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 72.56913185119629, + "relativeCreated": 87.029665, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 3", - "221", + "229", "" ], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.9755406, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,967", + "created": 1755287451.9679801, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Submitted value number 3): 221 ()", + "message": "Result (Submitted value number 3): 229 ()", "module": "test", - "msecs": 975.5406379699707, + "msecs": 967.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 72.61252403259277, + "relativeCreated": 87.077578, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 3", - "221", + "=", + "229", "" ], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.975583, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,968", + "created": 1755287451.9680269, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Submitted value number 3): result = 221 ()", + "message": "Expectation (Submitted value number 3): result = 229 ()", "module": "test", - "msecs": 975.5830764770508, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 968.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 72.65496253967285, + "relativeCreated": 87.12442, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ - "221", + "229", "" ], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.9756298, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,968", + "created": 1755287451.9680727, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, - "message": "Submitted value number 3 is correct (Content 221 and Type is ).", + "lineno": 184, + "message": "Submitted value number 3 is correct (Content 229 and Type is ).", "module": "test", - "msecs": 975.6298065185547, + "msecs": 968.0, "msg": "Submitted value number 3 is correct (Content %s and Type is %s).", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 72.70169258117676, + "relativeCreated": 87.170088, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 4", - "309", + "320", "" ], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.9756749, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,968", + "created": 1755287451.9681206, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Submitted value number 4): 309 ()", + "message": "Result (Submitted value number 4): 320 ()", "module": "test", - "msecs": 975.6748676300049, + "msecs": 968.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 72.74675369262695, + "relativeCreated": 87.217915, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 4", - "309", + "=", + "320", "" ], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.9757168, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,968", + "created": 1755287451.9681666, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Submitted value number 4): result = 309 ()", + "message": "Expectation (Submitted value number 4): result = 320 ()", "module": "test", - "msecs": 975.7168292999268, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 968.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 72.78871536254883, + "relativeCreated": 87.264171, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ - "309", + "320", "" ], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.9757624, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,968", + "created": 1755287451.968768, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, - "message": "Submitted value number 4 is correct (Content 309 and Type is ).", + "lineno": 184, + "message": "Submitted value number 4 is correct (Content 320 and Type is ).", "module": "test", - "msecs": 975.7623672485352, + "msecs": 968.0, "msg": "Submitted value number 4 is correct (Content %s and Type is %s).", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 72.83425331115723, + "relativeCreated": 87.865515, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 5", - "398", + "409", "" ], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.975806, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,968", + "created": 1755287451.9688354, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Submitted value number 5): 398 ()", + "message": "Result (Submitted value number 5): 409 ()", "module": "test", - "msecs": 975.8059978485107, + "msecs": 968.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 72.87788391113281, + "relativeCreated": 87.932866, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 5", - "398", + "=", + "409", "" ], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.9758477, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,968", + "created": 1755287451.9688969, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Submitted value number 5): result = 398 ()", + "message": "Expectation (Submitted value number 5): result = 409 ()", "module": "test", - "msecs": 975.8477210998535, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 968.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 72.91960716247559, + "relativeCreated": 87.994316, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ - "398", + "409", "" ], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.9758933, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,968", + "created": 1755287451.9689498, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, - "message": "Submitted value number 5 is correct (Content 398 and Type is ).", + "lineno": 184, + "message": "Submitted value number 5 is correct (Content 409 and Type is ).", "module": "test", - "msecs": 975.8932590484619, + "msecs": 968.0, "msg": "Submitted value number 5 is correct (Content %s and Type is %s).", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 72.96514511108398, + "relativeCreated": 88.047318, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 6", - "486", + "501", "" ], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.9759364, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,969", + "created": 1755287451.9690013, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Submitted value number 6): 486 ()", + "message": "Result (Submitted value number 6): 501 ()", "module": "test", - "msecs": 975.9364128112793, + "msecs": 969.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 73.00829887390137, + "relativeCreated": 88.098763, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 6", - "486", + "=", + "501", "" ], - "asctime": "2022-05-08 21:03:46,975", - "created": 1652036626.9759786, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,969", + "created": 1755287451.9690495, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Submitted value number 6): result = 486 ()", + "message": "Expectation (Submitted value number 6): result = 501 ()", "module": "test", - "msecs": 975.9786128997803, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 969.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 73.05049896240234, + "relativeCreated": 88.14678, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ - "486", + "501", "" ], - "asctime": "2022-05-08 21:03:46,976", - "created": 1652036626.9760208, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,969", + "created": 1755287451.9690964, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, - "message": "Submitted value number 6 is correct (Content 486 and Type is ).", + "lineno": 184, + "message": "Submitted value number 6 is correct (Content 501 and Type is ).", "module": "test", - "msecs": 976.0208129882812, + "msecs": 969.0, "msg": "Submitted value number 6 is correct (Content %s and Type is %s).", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 73.09269905090332, + "relativeCreated": 88.194, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 7", - "571", + "589", "" ], - "asctime": "2022-05-08 21:03:46,976", - "created": 1652036626.9760637, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,969", + "created": 1755287451.9691446, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Submitted value number 7): 571 ()", + "message": "Result (Submitted value number 7): 589 ()", "module": "test", - "msecs": 976.0637283325195, + "msecs": 969.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 73.1356143951416, + "relativeCreated": 88.242066, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 7", - "571", + "=", + "589", "" ], - "asctime": "2022-05-08 21:03:46,976", - "created": 1652036626.9761064, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,969", + "created": 1755287451.9692318, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Submitted value number 7): result = 571 ()", + "message": "Expectation (Submitted value number 7): result = 589 ()", "module": "test", - "msecs": 976.1064052581787, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 969.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 73.17829132080078, + "relativeCreated": 88.32919, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ - "571", + "589", "" ], - "asctime": "2022-05-08 21:03:46,976", - "created": 1652036626.976153, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,969", + "created": 1755287451.9692986, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, - "message": "Submitted value number 7 is correct (Content 571 and Type is ).", + "lineno": 184, + "message": "Submitted value number 7 is correct (Content 589 and Type is ).", "module": "test", - "msecs": 976.1528968811035, + "msecs": 969.0, "msg": "Submitted value number 7 is correct (Content %s and Type is %s).", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 73.22478294372559, + "relativeCreated": 88.396019, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 976.198673248291, + "msecs": 969.0, "msg": "Indexlist of log entries in stringrepresentation: Values and number of submitted values is correct. See detailed log for more information.", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 73.27055931091309, + "relativeCreated": 88.466211, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 4.57763671875e-05 + "time_consumption": 7.033348083496094e-05 } ], - "thread": 140429627637760, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 0.002197742462158203, - "time_finished": "2022-05-08 21:03:46,976", - "time_start": "2022-05-08 21:03:46,974" + "time_consumption": 0.0034139156341552734, + "time_finished": "2025-08-15 21:50:51,969", + "time_start": "2025-08-15 21:50:51,965" }, "_PVhZECvVEeqssZLMJF_fcg": { "args": null, - "asctime": "2022-05-08 21:03:46,976", - "created": 1652036626.9763613, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,969", + "created": 1755287451.9697359, "exc_text": null, "filename": "__init__.py", - "funcName": "testrun", + "funcName": "testCase", "levelname": "INFO", "levelno": 20, - "lineno": 21, + "lineno": 331, "message": "_PVhZECvVEeqssZLMJF_fcg", "module": "__init__", "moduleLogger": [], - "msecs": 976.3612747192383, + "msecs": 969.0, "msg": "_PVhZECvVEeqssZLMJF_fcg", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/__init__.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/report/__init__.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 73.43316078186035, + "relativeCreated": 88.833463, "stack_info": null, + "taskName": null, "testcaseLogger": [ { "args": [], - "asctime": "2022-05-08 21:03:46,977", - "created": 1652036626.9775243, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,971", + "created": 1755287451.9714062, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -1976,9 +1975,8 @@ "moduleLogger": [ { "args": [], - "asctime": "2022-05-08 21:03:46,976", - "created": 1652036626.9764411, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,969", + "created": 1755287451.9698374, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -1987,15 +1985,16 @@ "lineno": 22, "message": "Configuring collecting logger", "module": "test_helpers", - "msecs": 976.4411449432373, + "msecs": 969.0, "msg": "Configuring collecting logger", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 73.51303100585938, + "relativeCreated": 88.934682, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -2004,9 +2003,8 @@ "DEBUG", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,976", - "created": 1652036626.9765446, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,970", + "created": 1755287451.9700243, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -2015,15 +2013,16 @@ "lineno": 36, "message": "Passing \"Log entry number 1 with level DEBUG.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 976.5446186065674, + "msecs": 970.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 73.61650466918945, + "relativeCreated": 89.122013, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -2031,9 +2030,8 @@ 1, "DEBUG" ], - "asctime": "2022-05-08 21:03:46,976", - "created": 1652036626.9765985, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,970", + "created": 1755287451.9700894, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -2042,15 +2040,16 @@ "lineno": 37, "message": "Log entry number 1 with level DEBUG.", "module": "test_helpers", - "msecs": 976.5985012054443, + "msecs": 970.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 73.6703872680664, + "relativeCreated": 89.186789, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -2059,9 +2058,8 @@ "INFO", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,976", - "created": 1652036626.976713, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,970", + "created": 1755287451.9702027, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -2070,15 +2068,16 @@ "lineno": 36, "message": "Passing \"Log entry number 2 with level INFO.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 976.7129421234131, + "msecs": 970.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 73.78482818603516, + "relativeCreated": 89.300078, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -2086,9 +2085,8 @@ 2, "INFO" ], - "asctime": "2022-05-08 21:03:46,976", - "created": 1652036626.9767606, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,970", + "created": 1755287451.970253, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -2097,15 +2095,16 @@ "lineno": 37, "message": "Log entry number 2 with level INFO.", "module": "test_helpers", - "msecs": 976.7606258392334, + "msecs": 970.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 73.83251190185547, + "relativeCreated": 89.350405, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -2114,9 +2113,8 @@ "WARNING", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,976", - "created": 1652036626.976857, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,970", + "created": 1755287451.9704156, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -2125,15 +2123,16 @@ "lineno": 36, "message": "Passing \"Log entry number 3 with level WARNING.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 976.8569469451904, + "msecs": 970.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 73.9288330078125, + "relativeCreated": 89.512967, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -2141,9 +2140,8 @@ 3, "WARNING" ], - "asctime": "2022-05-08 21:03:46,976", - "created": 1652036626.9769022, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,970", + "created": 1755287451.970481, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -2152,15 +2150,16 @@ "lineno": 37, "message": "Log entry number 3 with level WARNING.", "module": "test_helpers", - "msecs": 976.9022464752197, + "msecs": 970.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 73.9741325378418, + "relativeCreated": 89.578285, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -2169,9 +2168,8 @@ "ERROR", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,976", - "created": 1652036626.976992, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,970", + "created": 1755287451.9705772, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -2180,15 +2178,16 @@ "lineno": 36, "message": "Passing \"Log entry number 4 with level ERROR.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 976.9918918609619, + "msecs": 970.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 74.06377792358398, + "relativeCreated": 89.6747, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -2196,9 +2195,8 @@ 4, "ERROR" ], - "asctime": "2022-05-08 21:03:46,977", - "created": 1652036626.9770367, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,970", + "created": 1755287451.9706848, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -2207,15 +2205,16 @@ "lineno": 37, "message": "Log entry number 4 with level ERROR.", "module": "test_helpers", - "msecs": 977.036714553833, + "msecs": 970.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 74.10860061645508, + "relativeCreated": 89.782172, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -2224,9 +2223,8 @@ "CRITICAL", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,977", - "created": 1652036626.9771264, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,970", + "created": 1755287451.9708245, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -2235,15 +2233,16 @@ "lineno": 36, "message": "Passing \"Log entry number 5 with level CRITICAL.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 977.1263599395752, + "msecs": 970.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 74.19824600219727, + "relativeCreated": 89.921778, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -2251,9 +2250,8 @@ 5, "CRITICAL" ], - "asctime": "2022-05-08 21:03:46,977", - "created": 1652036626.9771714, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,970", + "created": 1755287451.9708767, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -2262,15 +2260,16 @@ "lineno": 37, "message": "Log entry number 5 with level CRITICAL.", "module": "test_helpers", - "msecs": 977.1714210510254, + "msecs": 970.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 74.24330711364746, + "relativeCreated": 89.97415, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -2279,9 +2278,8 @@ "INFO", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,977", - "created": 1652036626.9772606, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,971", + "created": 1755287451.9710143, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -2290,15 +2288,16 @@ "lineno": 36, "message": "Passing \"Log entry number 6 with level INFO.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 977.2605895996094, + "msecs": 971.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 74.33247566223145, + "relativeCreated": 90.111478, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -2306,9 +2305,8 @@ 6, "INFO" ], - "asctime": "2022-05-08 21:03:46,977", - "created": 1652036626.9773006, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,971", + "created": 1755287451.971063, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -2317,15 +2315,16 @@ "lineno": 37, "message": "Log entry number 6 with level INFO.", "module": "test_helpers", - "msecs": 977.3006439208984, + "msecs": 971.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 74.37252998352051, + "relativeCreated": 90.160263, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -2334,9 +2333,8 @@ "ERROR", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,977", - "created": 1652036626.9773898, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,971", + "created": 1755287451.971186, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -2345,15 +2343,16 @@ "lineno": 36, "message": "Passing \"Log entry number 7 with level ERROR.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 977.3898124694824, + "msecs": 971.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 74.46169853210449, + "relativeCreated": 90.283461, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -2361,9 +2360,8 @@ 7, "ERROR" ], - "asctime": "2022-05-08 21:03:46,977", - "created": 1652036626.9774334, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,971", + "created": 1755287451.9712346, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -2372,44 +2370,45 @@ "lineno": 37, "message": "Log entry number 7 with level ERROR.", "module": "test_helpers", - "msecs": 977.433443069458, + "msecs": 971.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 74.50532913208008, + "relativeCreated": 90.331974, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 977.5242805480957, + "msecs": 971.0, "msg": "Running logger test sequence.", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 74.59616661071777, + "relativeCreated": 90.503674, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 9.083747863769531e-05 + "time_consumption": 0.000171661376953125 }, { "args": [ "5", "" ], - "asctime": "2022-05-08 21:03:46,977", - "created": 1652036626.977733, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,971", + "created": 1755287451.9719326, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Length of collected logs is correct (Content 5 and Type is ).", "module": "test", "moduleLogger": [ @@ -2419,9 +2418,8 @@ "5", "" ], - "asctime": "2022-05-08 21:03:46,977", - "created": 1652036626.9776218, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,971", + "created": 1755287451.9717126, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -2430,72 +2428,74 @@ "lineno": 22, "message": "Result (Length of collected logs): 5 ()", "module": "test", - "msecs": 977.6217937469482, + "msecs": 971.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 74.69367980957031, + "relativeCreated": 90.810008, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Length of collected logs", + "=", "5", "" ], - "asctime": "2022-05-08 21:03:46,977", - "created": 1652036626.9776804, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,971", + "created": 1755287451.9718158, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Length of collected logs): result = 5 ()", "module": "test", - "msecs": 977.6804447174072, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 971.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 74.7523307800293, + "relativeCreated": 90.913288, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 977.7328968048096, + "msecs": 971.0, "msg": "Length of collected logs is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 74.80478286743164, + "relativeCreated": 91.030061, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 5.245208740234375e-05 + "time_consumption": 0.00011682510375976562 }, { "args": [ "['Log entry number %d with level %s.', 30, 'test_helpers.py', 3]", "" ], - "asctime": "2022-05-08 21:03:46,977", - "created": 1652036626.9779477, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,972", + "created": 1755287451.9722424, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Logged information is correct (Content ['Log entry number %d with level %s.', 30, 'test_helpers.py', 3] and Type is ).", "module": "test", "moduleLogger": [ @@ -2505,9 +2505,8 @@ "[ 'Log entry number %d with level %s.', 30, 'test_helpers.py', 3 ]", "" ], - "asctime": "2022-05-08 21:03:46,977", - "created": 1652036626.9778209, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,972", + "created": 1755287451.9720986, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -2516,72 +2515,74 @@ "lineno": 22, "message": "Result (Logged information): [ 'Log entry number %d with level %s.', 30, 'test_helpers.py', 3 ] ()", "module": "test", - "msecs": 977.820873260498, + "msecs": 972.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 74.89275932312012, + "relativeCreated": 91.196025, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Logged information", + "=", "[ 'Log entry number %d with level %s.', 30, 'test_helpers.py', 3 ]", "" ], - "asctime": "2022-05-08 21:03:46,977", - "created": 1652036626.9778824, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,972", + "created": 1755287451.9721653, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Logged information): result = [ 'Log entry number %d with level %s.', 30, 'test_helpers.py', 3 ] ()", "module": "test", - "msecs": 977.8823852539062, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 972.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 74.95427131652832, + "relativeCreated": 91.262785, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 977.9477119445801, + "msecs": 972.0, "msg": "Logged information is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 75.01959800720215, + "relativeCreated": 91.339855, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 6.532669067382812e-05 + "time_consumption": 7.700920104980469e-05 }, { "args": [ "['Log entry number %d with level %s.', 40, 'test_helpers.py', 4]", "" ], - "asctime": "2022-05-08 21:03:46,978", - "created": 1652036626.9781456, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,972", + "created": 1755287451.9725623, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Logged information is correct (Content ['Log entry number %d with level %s.', 40, 'test_helpers.py', 4] and Type is ).", "module": "test", "moduleLogger": [ @@ -2591,9 +2592,8 @@ "[ 'Log entry number %d with level %s.', 40, 'test_helpers.py', 4 ]", "" ], - "asctime": "2022-05-08 21:03:46,978", - "created": 1652036626.9780293, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,972", + "created": 1755287451.97237, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -2602,72 +2602,74 @@ "lineno": 22, "message": "Result (Logged information): [ 'Log entry number %d with level %s.', 40, 'test_helpers.py', 4 ] ()", "module": "test", - "msecs": 978.0292510986328, + "msecs": 972.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 75.10113716125488, + "relativeCreated": 91.467233, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Logged information", + "=", "[ 'Log entry number %d with level %s.', 40, 'test_helpers.py', 4 ]", "" ], - "asctime": "2022-05-08 21:03:46,978", - "created": 1652036626.9780815, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,972", + "created": 1755287451.9724915, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Logged information): result = [ 'Log entry number %d with level %s.', 40, 'test_helpers.py', 4 ] ()", "module": "test", - "msecs": 978.081464767456, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 972.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 75.15335083007812, + "relativeCreated": 91.588978, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 978.1455993652344, + "msecs": 972.0, "msg": "Logged information is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 75.21748542785645, + "relativeCreated": 91.659895, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 6.413459777832031e-05 + "time_consumption": 7.081031799316406e-05 }, { "args": [ "['Log entry number %d with level %s.', 50, 'test_helpers.py', 5]", "" ], - "asctime": "2022-05-08 21:03:46,978", - "created": 1652036626.9783385, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,972", + "created": 1755287451.97283, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Logged information is correct (Content ['Log entry number %d with level %s.', 50, 'test_helpers.py', 5] and Type is ).", "module": "test", "moduleLogger": [ @@ -2677,9 +2679,8 @@ "[ 'Log entry number %d with level %s.', 50, 'test_helpers.py', 5 ]", "" ], - "asctime": "2022-05-08 21:03:46,978", - "created": 1652036626.9782252, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,972", + "created": 1755287451.9726794, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -2688,72 +2689,74 @@ "lineno": 22, "message": "Result (Logged information): [ 'Log entry number %d with level %s.', 50, 'test_helpers.py', 5 ] ()", "module": "test", - "msecs": 978.2252311706543, + "msecs": 972.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 75.29711723327637, + "relativeCreated": 91.776864, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Logged information", + "=", "[ 'Log entry number %d with level %s.', 50, 'test_helpers.py', 5 ]", "" ], - "asctime": "2022-05-08 21:03:46,978", - "created": 1652036626.9782786, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,972", + "created": 1755287451.9727411, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Logged information): result = [ 'Log entry number %d with level %s.', 50, 'test_helpers.py', 5 ] ()", "module": "test", - "msecs": 978.278636932373, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 972.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 75.35052299499512, + "relativeCreated": 91.838641, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 978.3384799957275, + "msecs": 972.0, "msg": "Logged information is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 75.41036605834961, + "relativeCreated": 91.927486, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 5.984306335449219e-05 + "time_consumption": 8.893013000488281e-05 }, { "args": [ "['Log entry number %d with level %s.', 20, 'test_helpers.py', 6]", "" ], - "asctime": "2022-05-08 21:03:46,978", - "created": 1652036626.9785264, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,973", + "created": 1755287451.9730709, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Logged information is correct (Content ['Log entry number %d with level %s.', 20, 'test_helpers.py', 6] and Type is ).", "module": "test", "moduleLogger": [ @@ -2763,9 +2766,8 @@ "[ 'Log entry number %d with level %s.', 20, 'test_helpers.py', 6 ]", "" ], - "asctime": "2022-05-08 21:03:46,978", - "created": 1652036626.9784167, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,972", + "created": 1755287451.972948, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -2774,72 +2776,74 @@ "lineno": 22, "message": "Result (Logged information): [ 'Log entry number %d with level %s.', 20, 'test_helpers.py', 6 ] ()", "module": "test", - "msecs": 978.4166812896729, + "msecs": 972.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 75.48856735229492, + "relativeCreated": 92.045469, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Logged information", + "=", "[ 'Log entry number %d with level %s.', 20, 'test_helpers.py', 6 ]", "" ], - "asctime": "2022-05-08 21:03:46,978", - "created": 1652036626.978467, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,973", + "created": 1755287451.9730065, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Logged information): result = [ 'Log entry number %d with level %s.', 20, 'test_helpers.py', 6 ] ()", "module": "test", - "msecs": 978.4669876098633, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 973.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 75.53887367248535, + "relativeCreated": 92.104005, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 978.5263538360596, + "msecs": 973.0, "msg": "Logged information is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 75.59823989868164, + "relativeCreated": 92.168325, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 5.936622619628906e-05 + "time_consumption": 6.437301635742188e-05 }, { "args": [ "['Log entry number %d with level %s.', 40, 'test_helpers.py', 7]", "" ], - "asctime": "2022-05-08 21:03:46,978", - "created": 1652036626.9787297, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,973", + "created": 1755287451.9732904, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Logged information is correct (Content ['Log entry number %d with level %s.', 40, 'test_helpers.py', 7] and Type is ).", "module": "test", "moduleLogger": [ @@ -2849,9 +2853,8 @@ "[ 'Log entry number %d with level %s.', 40, 'test_helpers.py', 7 ]", "" ], - "asctime": "2022-05-08 21:03:46,978", - "created": 1652036626.978609, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,973", + "created": 1755287451.9731686, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -2860,93 +2863,95 @@ "lineno": 22, "message": "Result (Logged information): [ 'Log entry number %d with level %s.', 40, 'test_helpers.py', 7 ] ()", "module": "test", - "msecs": 978.6090850830078, + "msecs": 973.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 75.68097114562988, + "relativeCreated": 92.266013, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Logged information", + "=", "[ 'Log entry number %d with level %s.', 40, 'test_helpers.py', 7 ]", "" ], - "asctime": "2022-05-08 21:03:46,978", - "created": 1652036626.978666, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,973", + "created": 1755287451.9732282, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Logged information): result = [ 'Log entry number %d with level %s.', 40, 'test_helpers.py', 7 ] ()", "module": "test", - "msecs": 978.6660671234131, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 973.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 75.73795318603516, + "relativeCreated": 92.325834, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 978.7297248840332, + "msecs": 973.0, "msg": "Logged information is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 75.80161094665527, + "relativeCreated": 92.387858, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 6.365776062011719e-05 + "time_consumption": 6.222724914550781e-05 } ], - "thread": 140429627637760, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 0.002368450164794922, - "time_finished": "2022-05-08 21:03:46,978", - "time_start": "2022-05-08 21:03:46,976" + "time_consumption": 0.0035545825958251953, + "time_finished": "2025-08-15 21:50:51,973", + "time_start": "2025-08-15 21:50:51,969" }, "_QBmb8CvVEeqssZLMJF_fcg": { "args": null, - "asctime": "2022-05-08 21:03:46,978", - "created": 1652036626.9788895, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,973", + "created": 1755287451.973521, "exc_text": null, "filename": "__init__.py", - "funcName": "testrun", + "funcName": "testCase", "levelname": "INFO", "levelno": 20, - "lineno": 22, + "lineno": 331, "message": "_QBmb8CvVEeqssZLMJF_fcg", "module": "__init__", "moduleLogger": [], - "msecs": 978.8894653320312, + "msecs": 973.0, "msg": "_QBmb8CvVEeqssZLMJF_fcg", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/__init__.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/report/__init__.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 75.96135139465332, + "relativeCreated": 92.618398, "stack_info": null, + "taskName": null, "testcaseLogger": [ { "args": [], - "asctime": "2022-05-08 21:03:46,980", - "created": 1652036626.9801426, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,975", + "created": 1755287451.9752944, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -2958,9 +2963,8 @@ "moduleLogger": [ { "args": [], - "asctime": "2022-05-08 21:03:46,978", - "created": 1652036626.97897, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,973", + "created": 1755287451.973636, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -2969,15 +2973,16 @@ "lineno": 22, "message": "Configuring collecting logger", "module": "test_helpers", - "msecs": 978.9700508117676, + "msecs": 973.0, "msg": "Configuring collecting logger", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 76.04193687438965, + "relativeCreated": 92.733319, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -2986,9 +2991,8 @@ "DEBUG", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,979", - "created": 1652036626.9790583, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,973", + "created": 1755287451.9737902, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -2997,15 +3001,16 @@ "lineno": 36, "message": "Passing \"Log entry number 1 with level DEBUG.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 979.0582656860352, + "msecs": 973.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 76.13015174865723, + "relativeCreated": 92.887575, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -3013,9 +3018,8 @@ 1, "DEBUG" ], - "asctime": "2022-05-08 21:03:46,979", - "created": 1652036626.979108, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,973", + "created": 1755287451.9738932, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -3024,15 +3028,16 @@ "lineno": 37, "message": "Log entry number 1 with level DEBUG.", "module": "test_helpers", - "msecs": 979.1080951690674, + "msecs": 973.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 76.17998123168945, + "relativeCreated": 92.990662, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -3041,9 +3046,8 @@ "INFO", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,979", - "created": 1652036626.9792213, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,974", + "created": 1755287451.974025, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -3052,15 +3056,16 @@ "lineno": 36, "message": "Passing \"Log entry number 2 with level INFO.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 979.2213439941406, + "msecs": 974.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 76.2932300567627, + "relativeCreated": 93.122333, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -3068,9 +3073,8 @@ 2, "INFO" ], - "asctime": "2022-05-08 21:03:46,979", - "created": 1652036626.9792671, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,974", + "created": 1755287451.9741075, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -3079,15 +3083,16 @@ "lineno": 37, "message": "Log entry number 2 with level INFO.", "module": "test_helpers", - "msecs": 979.2671203613281, + "msecs": 974.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 76.3390064239502, + "relativeCreated": 93.204732, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -3096,9 +3101,8 @@ "WARNING", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,979", - "created": 1652036626.9793773, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,974", + "created": 1755287451.97422, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -3107,15 +3111,16 @@ "lineno": 36, "message": "Passing \"Log entry number 3 with level WARNING.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 979.377269744873, + "msecs": 974.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 76.44915580749512, + "relativeCreated": 93.317428, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -3123,9 +3128,8 @@ 3, "WARNING" ], - "asctime": "2022-05-08 21:03:46,979", - "created": 1652036626.979423, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,974", + "created": 1755287451.974275, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -3134,15 +3138,16 @@ "lineno": 37, "message": "Log entry number 3 with level WARNING.", "module": "test_helpers", - "msecs": 979.4230461120605, + "msecs": 974.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 76.49493217468262, + "relativeCreated": 93.372388, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -3151,9 +3156,8 @@ "ERROR", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,979", - "created": 1652036626.979531, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,974", + "created": 1755287451.9743872, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -3162,15 +3166,16 @@ "lineno": 36, "message": "Passing \"Log entry number 4 with level ERROR.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 979.5310497283936, + "msecs": 974.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 76.60293579101562, + "relativeCreated": 93.48463, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -3178,9 +3183,8 @@ 4, "ERROR" ], - "asctime": "2022-05-08 21:03:46,979", - "created": 1652036626.9795759, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,974", + "created": 1755287451.9744353, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -3189,15 +3193,16 @@ "lineno": 37, "message": "Log entry number 4 with level ERROR.", "module": "test_helpers", - "msecs": 979.5758724212646, + "msecs": 974.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 76.64775848388672, + "relativeCreated": 93.532881, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -3206,9 +3211,8 @@ "CRITICAL", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,979", - "created": 1652036626.9796875, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,974", + "created": 1755287451.974546, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -3217,15 +3221,16 @@ "lineno": 36, "message": "Passing \"Log entry number 5 with level CRITICAL.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 979.6874523162842, + "msecs": 974.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 76.75933837890625, + "relativeCreated": 93.643272, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -3233,9 +3238,8 @@ 5, "CRITICAL" ], - "asctime": "2022-05-08 21:03:46,979", - "created": 1652036626.9797359, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,974", + "created": 1755287451.9746432, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -3244,15 +3248,16 @@ "lineno": 37, "message": "Log entry number 5 with level CRITICAL.", "module": "test_helpers", - "msecs": 979.7358512878418, + "msecs": 974.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 76.80773735046387, + "relativeCreated": 93.740637, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -3261,9 +3266,8 @@ "INFO", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,979", - "created": 1652036626.9798412, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,974", + "created": 1755287451.9748034, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -3272,15 +3276,16 @@ "lineno": 36, "message": "Passing \"Log entry number 6 with level INFO.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 979.8412322998047, + "msecs": 974.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 76.91311836242676, + "relativeCreated": 93.900775, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -3288,9 +3293,8 @@ 6, "INFO" ], - "asctime": "2022-05-08 21:03:46,979", - "created": 1652036626.9798846, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,974", + "created": 1755287451.9748616, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -3299,15 +3303,16 @@ "lineno": 37, "message": "Log entry number 6 with level INFO.", "module": "test_helpers", - "msecs": 979.8846244812012, + "msecs": 974.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 76.95651054382324, + "relativeCreated": 93.958999, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -3316,9 +3321,8 @@ "ERROR", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,979", - "created": 1652036626.9799912, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,974", + "created": 1755287451.9749815, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -3327,15 +3331,16 @@ "lineno": 36, "message": "Passing \"Log entry number 7 with level ERROR.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 979.9911975860596, + "msecs": 974.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 77.06308364868164, + "relativeCreated": 94.079058, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -3343,9 +3348,8 @@ 7, "ERROR" ], - "asctime": "2022-05-08 21:03:46,980", - "created": 1652036626.9800324, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,975", + "created": 1755287451.9750528, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -3354,563 +3358,570 @@ "lineno": 37, "message": "Log entry number 7 with level ERROR.", "module": "test_helpers", - "msecs": 980.0324440002441, + "msecs": 975.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 77.10433006286621, + "relativeCreated": 94.150182, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 980.1425933837891, + "msecs": 975.0, "msg": "Running logger test sequence.", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 77.21447944641113, + "relativeCreated": 94.39187, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 0.00011014938354492188 + "time_consumption": 0.0002415180206298828 }, { "args": [], - "asctime": "2022-05-08 21:03:46,981", - "created": 1652036626.9810581, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,976", + "created": 1755287451.9766989, "exc_text": null, "filename": "test.py", "funcName": "report", "levelname": "INFO", "levelno": 20, - "lineno": 168, + "lineno": 254, "message": "Indexlist of log entries in stringrepresentation: Values and number of submitted values is correct. See detailed log for more information.", "module": "test", "moduleLogger": [ { "args": [ "Indexlist of log entries in stringrepresentation", - "[ 51, 139, 228, 316, 401 ]", + "[ 52, 143, 232, 324, 412 ]", "" ], - "asctime": "2022-05-08 21:03:46,980", - "created": 1652036626.9802709, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,975", + "created": 1755287451.9754906, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Indexlist of log entries in stringrepresentation): [ 51, 139, 228, 316, 401 ] ()", + "message": "Result (Indexlist of log entries in stringrepresentation): [ 52, 143, 232, 324, 412 ] ()", "module": "test", - "msecs": 980.2708625793457, + "msecs": 975.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 77.34274864196777, + "relativeCreated": 94.588095, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Indexlist of log entries in stringrepresentation", - "[ 51, 139, 228, 316, 401 ]", + "=", + "[ 52, 143, 232, 324, 412 ]", "" ], - "asctime": "2022-05-08 21:03:46,980", - "created": 1652036626.9803271, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,975", + "created": 1755287451.975563, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Indexlist of log entries in stringrepresentation): result = [ 51, 139, 228, 316, 401 ] ()", + "message": "Expectation (Indexlist of log entries in stringrepresentation): result = [ 52, 143, 232, 324, 412 ] ()", "module": "test", - "msecs": 980.3271293640137, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 975.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 77.39901542663574, + "relativeCreated": 94.660369, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 1", - "51", + "52", "" ], - "asctime": "2022-05-08 21:03:46,980", - "created": 1652036626.9803765, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,975", + "created": 1755287451.9756198, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Submitted value number 1): 51 ()", + "message": "Result (Submitted value number 1): 52 ()", "module": "test", - "msecs": 980.3764820098877, + "msecs": 975.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 77.44836807250977, + "relativeCreated": 94.717216, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 1", - "51", + "=", + "52", "" ], - "asctime": "2022-05-08 21:03:46,980", - "created": 1652036626.9804204, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,975", + "created": 1755287451.9756708, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Submitted value number 1): result = 51 ()", + "message": "Expectation (Submitted value number 1): result = 52 ()", "module": "test", - "msecs": 980.4203510284424, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 975.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 77.49223709106445, + "relativeCreated": 94.768171, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ - "51", + "52", "" ], - "asctime": "2022-05-08 21:03:46,980", - "created": 1652036626.980472, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,975", + "created": 1755287451.9757261, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, - "message": "Submitted value number 1 is correct (Content 51 and Type is ).", + "lineno": 184, + "message": "Submitted value number 1 is correct (Content 52 and Type is ).", "module": "test", - "msecs": 980.4720878601074, + "msecs": 975.0, "msg": "Submitted value number 1 is correct (Content %s and Type is %s).", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 77.54397392272949, + "relativeCreated": 94.823573, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 2", - "139", + "143", "" ], - "asctime": "2022-05-08 21:03:46,980", - "created": 1652036626.9805174, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,975", + "created": 1755287451.9757807, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Submitted value number 2): 139 ()", + "message": "Result (Submitted value number 2): 143 ()", "module": "test", - "msecs": 980.5173873901367, + "msecs": 975.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 77.58927345275879, + "relativeCreated": 94.877932, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 2", - "139", + "=", + "143", "" ], - "asctime": "2022-05-08 21:03:46,980", - "created": 1652036626.9805632, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,975", + "created": 1755287451.975834, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Submitted value number 2): result = 139 ()", + "message": "Expectation (Submitted value number 2): result = 143 ()", "module": "test", - "msecs": 980.5631637573242, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 975.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 77.63504981994629, + "relativeCreated": 94.931319, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ - "139", + "143", "" ], - "asctime": "2022-05-08 21:03:46,980", - "created": 1652036626.9806058, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,975", + "created": 1755287451.975882, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, - "message": "Submitted value number 2 is correct (Content 139 and Type is ).", + "lineno": 184, + "message": "Submitted value number 2 is correct (Content 143 and Type is ).", "module": "test", - "msecs": 980.6058406829834, + "msecs": 975.0, "msg": "Submitted value number 2 is correct (Content %s and Type is %s).", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 77.67772674560547, + "relativeCreated": 94.979482, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 3", - "228", + "232", "" ], - "asctime": "2022-05-08 21:03:46,980", - "created": 1652036626.980655, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,975", + "created": 1755287451.9759347, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Submitted value number 3): 228 ()", + "message": "Result (Submitted value number 3): 232 ()", "module": "test", - "msecs": 980.6549549102783, + "msecs": 975.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 77.72684097290039, + "relativeCreated": 95.032113, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 3", - "228", + "=", + "232", "" ], - "asctime": "2022-05-08 21:03:46,980", - "created": 1652036626.9806979, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,975", + "created": 1755287451.9759817, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Submitted value number 3): result = 228 ()", + "message": "Expectation (Submitted value number 3): result = 232 ()", "module": "test", - "msecs": 980.6978702545166, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 975.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 77.76975631713867, + "relativeCreated": 95.079269, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ - "228", + "232", "" ], - "asctime": "2022-05-08 21:03:46,980", - "created": 1652036626.9807515, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,976", + "created": 1755287451.9760277, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, - "message": "Submitted value number 3 is correct (Content 228 and Type is ).", + "lineno": 184, + "message": "Submitted value number 3 is correct (Content 232 and Type is ).", "module": "test", - "msecs": 980.7515144348145, + "msecs": 976.0, "msg": "Submitted value number 3 is correct (Content %s and Type is %s).", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 77.82340049743652, + "relativeCreated": 95.125054, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 4", - "316", + "324", "" ], - "asctime": "2022-05-08 21:03:46,980", - "created": 1652036626.9807982, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,976", + "created": 1755287451.9760754, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Submitted value number 4): 316 ()", + "message": "Result (Submitted value number 4): 324 ()", "module": "test", - "msecs": 980.7982444763184, + "msecs": 976.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 77.87013053894043, + "relativeCreated": 95.172918, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 4", - "316", + "=", + "324", "" ], - "asctime": "2022-05-08 21:03:46,980", - "created": 1652036626.9808407, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,976", + "created": 1755287451.9761226, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Submitted value number 4): result = 316 ()", + "message": "Expectation (Submitted value number 4): result = 324 ()", "module": "test", - "msecs": 980.8406829833984, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 976.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 77.91256904602051, + "relativeCreated": 95.219986, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ - "316", + "324", "" ], - "asctime": "2022-05-08 21:03:46,980", - "created": 1652036626.9808831, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,976", + "created": 1755287451.976208, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, - "message": "Submitted value number 4 is correct (Content 316 and Type is ).", + "lineno": 184, + "message": "Submitted value number 4 is correct (Content 324 and Type is ).", "module": "test", - "msecs": 980.8831214904785, + "msecs": 976.0, "msg": "Submitted value number 4 is correct (Content %s and Type is %s).", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 77.95500755310059, + "relativeCreated": 95.305189, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 5", - "401", + "412", "" ], - "asctime": "2022-05-08 21:03:46,980", - "created": 1652036626.9809263, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,976", + "created": 1755287451.9762776, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Submitted value number 5): 401 ()", + "message": "Result (Submitted value number 5): 412 ()", "module": "test", - "msecs": 980.9262752532959, + "msecs": 976.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 77.99816131591797, + "relativeCreated": 95.374876, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Submitted value number 5", - "401", + "=", + "412", "" ], - "asctime": "2022-05-08 21:03:46,980", - "created": 1652036626.9809704, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,976", + "created": 1755287451.976408, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Submitted value number 5): result = 401 ()", + "message": "Expectation (Submitted value number 5): result = 412 ()", "module": "test", - "msecs": 980.9703826904297, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 976.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 78.04226875305176, + "relativeCreated": 95.505446, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ - "401", + "412", "" ], - "asctime": "2022-05-08 21:03:46,981", - "created": 1652036626.981013, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,976", + "created": 1755287451.976509, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, - "message": "Submitted value number 5 is correct (Content 401 and Type is ).", + "lineno": 184, + "message": "Submitted value number 5 is correct (Content 412 and Type is ).", "module": "test", - "msecs": 981.0130596160889, + "msecs": 976.0, "msg": "Submitted value number 5 is correct (Content %s and Type is %s).", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 78.08494567871094, + "relativeCreated": 95.606698, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 981.0581207275391, + "msecs": 976.0, "msg": "Indexlist of log entries in stringrepresentation: Values and number of submitted values is correct. See detailed log for more information.", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 78.13000679016113, + "relativeCreated": 95.79636, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 4.506111145019531e-05 + "time_consumption": 0.00018978118896484375 } ], - "thread": 140429627637760, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 0.0021686553955078125, - "time_finished": "2022-05-08 21:03:46,981", - "time_start": "2022-05-08 21:03:46,978" + "time_consumption": 0.0031778812408447266, + "time_finished": "2025-08-15 21:50:51,976", + "time_start": "2025-08-15 21:50:51,973" }, "_XzMFcHYZEem_kd-7nxt1sg": { "args": null, - "asctime": "2022-05-08 21:03:46,971", - "created": 1652036626.9712284, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,962", + "created": 1755287451.962377, "exc_text": null, "filename": "__init__.py", - "funcName": "testrun", + "funcName": "testCase", "levelname": "INFO", "levelno": 20, - "lineno": 19, + "lineno": 331, "message": "_XzMFcHYZEem_kd-7nxt1sg", "module": "__init__", "moduleLogger": [], - "msecs": 971.2283611297607, + "msecs": 962.0, "msg": "_XzMFcHYZEem_kd-7nxt1sg", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/__init__.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/report/__init__.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 68.30024719238281, + "relativeCreated": 81.474362, "stack_info": null, + "taskName": null, "testcaseLogger": [ { "args": [], - "asctime": "2022-05-08 21:03:46,972", - "created": 1652036626.9722538, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,963", + "created": 1755287451.9638386, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -3922,9 +3933,8 @@ "moduleLogger": [ { "args": [], - "asctime": "2022-05-08 21:03:46,971", - "created": 1652036626.9713829, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,962", + "created": 1755287451.9627702, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -3933,15 +3943,16 @@ "lineno": 22, "message": "Configuring collecting logger", "module": "test_helpers", - "msecs": 971.3828563690186, + "msecs": 962.0, "msg": "Configuring collecting logger", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 68.45474243164062, + "relativeCreated": 81.867718, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -3950,9 +3961,8 @@ "DEBUG", "collectingHandler" ], - "asctime": "2022-05-08 21:03:46,971", - "created": 1652036626.9714868, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,962", + "created": 1755287451.962912, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -3961,15 +3971,16 @@ "lineno": 36, "message": "Passing \"Log entry number 1 with level DEBUG.\" to collectingHandler.", "module": "test_helpers", - "msecs": 971.4868068695068, + "msecs": 962.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 68.5586929321289, + "relativeCreated": 82.009555, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -3977,9 +3988,8 @@ 1, "DEBUG" ], - "asctime": "2022-05-08 21:03:46,971", - "created": 1652036626.9715421, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,962", + "created": 1755287451.9629915, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -3988,15 +3998,16 @@ "lineno": 37, "message": "Log entry number 1 with level DEBUG.", "module": "test_helpers", - "msecs": 971.5421199798584, + "msecs": 962.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 68.61400604248047, + "relativeCreated": 82.088769, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -4005,9 +4016,8 @@ "INFO", "collectingHandler" ], - "asctime": "2022-05-08 21:03:46,971", - "created": 1652036626.9716127, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,963", + "created": 1755287451.9630783, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -4016,15 +4026,16 @@ "lineno": 36, "message": "Passing \"Log entry number 2 with level INFO.\" to collectingHandler.", "module": "test_helpers", - "msecs": 971.6126918792725, + "msecs": 963.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 68.68457794189453, + "relativeCreated": 82.175636, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -4032,9 +4043,8 @@ 2, "INFO" ], - "asctime": "2022-05-08 21:03:46,971", - "created": 1652036626.971678, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,963", + "created": 1755287451.9631355, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -4043,15 +4053,16 @@ "lineno": 37, "message": "Log entry number 2 with level INFO.", "module": "test_helpers", - "msecs": 971.6780185699463, + "msecs": 963.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 68.74990463256836, + "relativeCreated": 82.232867, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -4060,9 +4071,8 @@ "WARNING", "collectingHandler" ], - "asctime": "2022-05-08 21:03:46,971", - "created": 1652036626.9717424, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,963", + "created": 1755287451.9632049, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -4071,15 +4081,16 @@ "lineno": 36, "message": "Passing \"Log entry number 3 with level WARNING.\" to collectingHandler.", "module": "test_helpers", - "msecs": 971.7423915863037, + "msecs": 963.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 68.81427764892578, + "relativeCreated": 82.302187, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -4087,9 +4098,8 @@ 3, "WARNING" ], - "asctime": "2022-05-08 21:03:46,971", - "created": 1652036626.9717884, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,963", + "created": 1755287451.9632545, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -4098,15 +4108,16 @@ "lineno": 37, "message": "Log entry number 3 with level WARNING.", "module": "test_helpers", - "msecs": 971.7884063720703, + "msecs": 963.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 68.86029243469238, + "relativeCreated": 82.35191, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -4115,9 +4126,8 @@ "ERROR", "collectingHandler" ], - "asctime": "2022-05-08 21:03:46,971", - "created": 1652036626.9718478, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,963", + "created": 1755287451.9633203, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -4126,15 +4136,16 @@ "lineno": 36, "message": "Passing \"Log entry number 4 with level ERROR.\" to collectingHandler.", "module": "test_helpers", - "msecs": 971.8477725982666, + "msecs": 963.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 68.91965866088867, + "relativeCreated": 82.417681, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -4142,9 +4153,8 @@ 4, "ERROR" ], - "asctime": "2022-05-08 21:03:46,971", - "created": 1652036626.9718919, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,963", + "created": 1755287451.9633698, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -4153,15 +4163,16 @@ "lineno": 37, "message": "Log entry number 4 with level ERROR.", "module": "test_helpers", - "msecs": 971.8918800354004, + "msecs": 963.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 68.96376609802246, + "relativeCreated": 82.467279, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -4170,9 +4181,8 @@ "CRITICAL", "collectingHandler" ], - "asctime": "2022-05-08 21:03:46,971", - "created": 1652036626.9719503, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,963", + "created": 1755287451.9634342, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -4181,15 +4191,16 @@ "lineno": 36, "message": "Passing \"Log entry number 5 with level CRITICAL.\" to collectingHandler.", "module": "test_helpers", - "msecs": 971.9502925872803, + "msecs": 963.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 69.02217864990234, + "relativeCreated": 82.531768, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -4197,9 +4208,8 @@ 5, "CRITICAL" ], - "asctime": "2022-05-08 21:03:46,971", - "created": 1652036626.9719949, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,963", + "created": 1755287451.9635153, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -4208,15 +4218,16 @@ "lineno": 37, "message": "Log entry number 5 with level CRITICAL.", "module": "test_helpers", - "msecs": 971.9948768615723, + "msecs": 963.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 69.06676292419434, + "relativeCreated": 82.612735, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -4225,9 +4236,8 @@ "INFO", "collectingHandler" ], - "asctime": "2022-05-08 21:03:46,972", - "created": 1652036626.9720533, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,963", + "created": 1755287451.96361, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -4236,15 +4246,16 @@ "lineno": 36, "message": "Passing \"Log entry number 6 with level INFO.\" to collectingHandler.", "module": "test_helpers", - "msecs": 972.0532894134521, + "msecs": 963.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 69.12517547607422, + "relativeCreated": 82.707243, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -4252,9 +4263,8 @@ 6, "INFO" ], - "asctime": "2022-05-08 21:03:46,972", - "created": 1652036626.9720933, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,963", + "created": 1755287451.9636629, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -4263,15 +4273,16 @@ "lineno": 37, "message": "Log entry number 6 with level INFO.", "module": "test_helpers", - "msecs": 972.0933437347412, + "msecs": 963.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 69.16522979736328, + "relativeCreated": 82.760179, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -4280,9 +4291,8 @@ "ERROR", "collectingHandler" ], - "asctime": "2022-05-08 21:03:46,972", - "created": 1652036626.9721544, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,963", + "created": 1755287451.9637277, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -4291,15 +4301,16 @@ "lineno": 36, "message": "Passing \"Log entry number 7 with level ERROR.\" to collectingHandler.", "module": "test_helpers", - "msecs": 972.1543788909912, + "msecs": 963.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 69.22626495361328, + "relativeCreated": 82.825007, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -4307,9 +4318,8 @@ 7, "ERROR" ], - "asctime": "2022-05-08 21:03:46,972", - "created": 1652036626.972194, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,963", + "created": 1755287451.9637723, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -4318,44 +4328,45 @@ "lineno": 37, "message": "Log entry number 7 with level ERROR.", "module": "test_helpers", - "msecs": 972.1939563751221, + "msecs": 963.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 69.26584243774414, + "relativeCreated": 82.869798, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 972.2537994384766, + "msecs": 963.0, "msg": "Running logger test sequence.", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 69.32568550109863, + "relativeCreated": 82.935816, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 5.984306335449219e-05 + "time_consumption": 6.628036499023438e-05 }, { "args": [ "7", "" ], - "asctime": "2022-05-08 21:03:46,972", - "created": 1652036626.972461, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,964", + "created": 1755287451.9641387, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Length of collected logs is correct (Content 7 and Type is ).", "module": "test", "moduleLogger": [ @@ -4365,9 +4376,8 @@ "7", "" ], - "asctime": "2022-05-08 21:03:46,972", - "created": 1652036626.9723606, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,963", + "created": 1755287451.9639962, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -4376,72 +4386,74 @@ "lineno": 22, "message": "Result (Length of collected logs): 7 ()", "module": "test", - "msecs": 972.3606109619141, + "msecs": 963.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 69.43249702453613, + "relativeCreated": 83.093587, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Length of collected logs", + "=", "7", "" ], - "asctime": "2022-05-08 21:03:46,972", - "created": 1652036626.9724085, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,964", + "created": 1755287451.9640608, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Length of collected logs): result = 7 ()", "module": "test", - "msecs": 972.4085330963135, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 964.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 69.48041915893555, + "relativeCreated": 83.158168, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 972.4609851837158, + "msecs": 964.0, "msg": "Length of collected logs is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 69.53287124633789, + "relativeCreated": 83.236282, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 5.245208740234375e-05 + "time_consumption": 7.796287536621094e-05 }, { "args": [ "['Log entry number %d with level %s.', 10, 'test_helpers.py', 1]", "" ], - "asctime": "2022-05-08 21:03:46,972", - "created": 1652036626.9726777, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,964", + "created": 1755287451.9644227, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Logged information is correct (Content ['Log entry number %d with level %s.', 10, 'test_helpers.py', 1] and Type is ).", "module": "test", "moduleLogger": [ @@ -4451,9 +4463,8 @@ "[ 'Log entry number %d with level %s.', 10, 'test_helpers.py', 1 ]", "" ], - "asctime": "2022-05-08 21:03:46,972", - "created": 1652036626.9725525, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,964", + "created": 1755287451.964258, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -4462,72 +4473,74 @@ "lineno": 22, "message": "Result (Logged information): [ 'Log entry number %d with level %s.', 10, 'test_helpers.py', 1 ] ()", "module": "test", - "msecs": 972.5525379180908, + "msecs": 964.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 69.62442398071289, + "relativeCreated": 83.355374, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Logged information", + "=", "[ 'Log entry number %d with level %s.', 10, 'test_helpers.py', 1 ]", "" ], - "asctime": "2022-05-08 21:03:46,972", - "created": 1652036626.9726064, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,964", + "created": 1755287451.9643223, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Logged information): result = [ 'Log entry number %d with level %s.', 10, 'test_helpers.py', 1 ] ()", "module": "test", - "msecs": 972.6064205169678, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 964.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 69.67830657958984, + "relativeCreated": 83.419818, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 972.6777076721191, + "msecs": 964.0, "msg": "Logged information is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 69.74959373474121, + "relativeCreated": 83.520114, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 7.128715515136719e-05 + "time_consumption": 0.00010037422180175781 }, { "args": [ "['Log entry number %d with level %s.', 20, 'test_helpers.py', 2]", "" ], - "asctime": "2022-05-08 21:03:46,972", - "created": 1652036626.9728708, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,964", + "created": 1755287451.9646564, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Logged information is correct (Content ['Log entry number %d with level %s.', 20, 'test_helpers.py', 2] and Type is ).", "module": "test", "moduleLogger": [ @@ -4537,9 +4550,8 @@ "[ 'Log entry number %d with level %s.', 20, 'test_helpers.py', 2 ]", "" ], - "asctime": "2022-05-08 21:03:46,972", - "created": 1652036626.9727595, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,964", + "created": 1755287451.9645214, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -4548,72 +4560,74 @@ "lineno": 22, "message": "Result (Logged information): [ 'Log entry number %d with level %s.', 20, 'test_helpers.py', 2 ] ()", "module": "test", - "msecs": 972.759485244751, + "msecs": 964.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 69.83137130737305, + "relativeCreated": 83.618892, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Logged information", + "=", "[ 'Log entry number %d with level %s.', 20, 'test_helpers.py', 2 ]", "" ], - "asctime": "2022-05-08 21:03:46,972", - "created": 1652036626.9728103, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,964", + "created": 1755287451.9645872, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Logged information): result = [ 'Log entry number %d with level %s.', 20, 'test_helpers.py', 2 ] ()", "module": "test", - "msecs": 972.8102684020996, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 964.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 69.88215446472168, + "relativeCreated": 83.684625, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 972.8708267211914, + "msecs": 964.0, "msg": "Logged information is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 69.94271278381348, + "relativeCreated": 83.753806, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 6.0558319091796875e-05 + "time_consumption": 6.914138793945312e-05 }, { "args": [ "['Log entry number %d with level %s.', 30, 'test_helpers.py', 3]", "" ], - "asctime": "2022-05-08 21:03:46,973", - "created": 1652036626.9730637, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,964", + "created": 1755287451.9648762, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Logged information is correct (Content ['Log entry number %d with level %s.', 30, 'test_helpers.py', 3] and Type is ).", "module": "test", "moduleLogger": [ @@ -4623,9 +4637,8 @@ "[ 'Log entry number %d with level %s.', 30, 'test_helpers.py', 3 ]", "" ], - "asctime": "2022-05-08 21:03:46,972", - "created": 1652036626.9729533, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,964", + "created": 1755287451.964752, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -4634,72 +4647,74 @@ "lineno": 22, "message": "Result (Logged information): [ 'Log entry number %d with level %s.', 30, 'test_helpers.py', 3 ] ()", "module": "test", - "msecs": 972.9533195495605, + "msecs": 964.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 70.02520561218262, + "relativeCreated": 83.849275, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Logged information", + "=", "[ 'Log entry number %d with level %s.', 30, 'test_helpers.py', 3 ]", "" ], - "asctime": "2022-05-08 21:03:46,973", - "created": 1652036626.9730039, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,964", + "created": 1755287451.96481, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Logged information): result = [ 'Log entry number %d with level %s.', 30, 'test_helpers.py', 3 ] ()", "module": "test", - "msecs": 973.0038642883301, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 964.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 70.07575035095215, + "relativeCreated": 83.907348, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 973.0637073516846, + "msecs": 964.0, "msg": "Logged information is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 70.13559341430664, + "relativeCreated": 83.973814, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 5.984306335449219e-05 + "time_consumption": 6.628036499023438e-05 }, { "args": [ "['Log entry number %d with level %s.', 40, 'test_helpers.py', 4]", "" ], - "asctime": "2022-05-08 21:03:46,973", - "created": 1652036626.9732528, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,965", + "created": 1755287451.9650931, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Logged information is correct (Content ['Log entry number %d with level %s.', 40, 'test_helpers.py', 4] and Type is ).", "module": "test", "moduleLogger": [ @@ -4709,9 +4724,8 @@ "[ 'Log entry number %d with level %s.', 40, 'test_helpers.py', 4 ]", "" ], - "asctime": "2022-05-08 21:03:46,973", - "created": 1652036626.9731426, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,964", + "created": 1755287451.964969, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -4720,72 +4734,74 @@ "lineno": 22, "message": "Result (Logged information): [ 'Log entry number %d with level %s.', 40, 'test_helpers.py', 4 ] ()", "module": "test", - "msecs": 973.1426239013672, + "msecs": 964.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 70.21450996398926, + "relativeCreated": 84.066381, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Logged information", + "=", "[ 'Log entry number %d with level %s.', 40, 'test_helpers.py', 4 ]", "" ], - "asctime": "2022-05-08 21:03:46,973", - "created": 1652036626.9731932, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,965", + "created": 1755287451.9650304, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Logged information): result = [ 'Log entry number %d with level %s.', 40, 'test_helpers.py', 4 ] ()", "module": "test", - "msecs": 973.1931686401367, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 965.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 70.26505470275879, + "relativeCreated": 84.12779, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 973.2527732849121, + "msecs": 965.0, "msg": "Logged information is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 70.32465934753418, + "relativeCreated": 84.190608, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 5.9604644775390625e-05 + "time_consumption": 6.270408630371094e-05 }, { "args": [ "['Log entry number %d with level %s.', 50, 'test_helpers.py', 5]", "" ], - "asctime": "2022-05-08 21:03:46,973", - "created": 1652036626.973446, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,965", + "created": 1755287451.9653025, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Logged information is correct (Content ['Log entry number %d with level %s.', 50, 'test_helpers.py', 5] and Type is ).", "module": "test", "moduleLogger": [ @@ -4795,9 +4811,8 @@ "[ 'Log entry number %d with level %s.', 50, 'test_helpers.py', 5 ]", "" ], - "asctime": "2022-05-08 21:03:46,973", - "created": 1652036626.9733307, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,965", + "created": 1755287451.9651852, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -4806,72 +4821,74 @@ "lineno": 22, "message": "Result (Logged information): [ 'Log entry number %d with level %s.', 50, 'test_helpers.py', 5 ] ()", "module": "test", - "msecs": 973.3307361602783, + "msecs": 965.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 70.40262222290039, + "relativeCreated": 84.282665, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Logged information", + "=", "[ 'Log entry number %d with level %s.', 50, 'test_helpers.py', 5 ]", "" ], - "asctime": "2022-05-08 21:03:46,973", - "created": 1652036626.9733863, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,965", + "created": 1755287451.965242, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Logged information): result = [ 'Log entry number %d with level %s.', 50, 'test_helpers.py', 5 ] ()", "module": "test", - "msecs": 973.386287689209, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 965.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 70.45817375183105, + "relativeCreated": 84.339222, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 973.4458923339844, + "msecs": 965.0, "msg": "Logged information is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 70.51777839660645, + "relativeCreated": 84.400035, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 5.9604644775390625e-05 + "time_consumption": 6.0558319091796875e-05 }, { "args": [ "['Log entry number %d with level %s.', 20, 'test_helpers.py', 6]", "" ], - "asctime": "2022-05-08 21:03:46,973", - "created": 1652036626.9736392, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,965", + "created": 1755287451.9655194, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Logged information is correct (Content ['Log entry number %d with level %s.', 20, 'test_helpers.py', 6] and Type is ).", "module": "test", "moduleLogger": [ @@ -4881,9 +4898,8 @@ "[ 'Log entry number %d with level %s.', 20, 'test_helpers.py', 6 ]", "" ], - "asctime": "2022-05-08 21:03:46,973", - "created": 1652036626.9735255, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,965", + "created": 1755287451.9653957, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -4892,72 +4908,74 @@ "lineno": 22, "message": "Result (Logged information): [ 'Log entry number %d with level %s.', 20, 'test_helpers.py', 6 ] ()", "module": "test", - "msecs": 973.5255241394043, + "msecs": 965.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 70.59741020202637, + "relativeCreated": 84.49318, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Logged information", + "=", "[ 'Log entry number %d with level %s.', 20, 'test_helpers.py', 6 ]", "" ], - "asctime": "2022-05-08 21:03:46,973", - "created": 1652036626.9735758, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,965", + "created": 1755287451.9654567, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Logged information): result = [ 'Log entry number %d with level %s.', 20, 'test_helpers.py', 6 ] ()", "module": "test", - "msecs": 973.5758304595947, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 965.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 70.6477165222168, + "relativeCreated": 84.554118, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 973.6392498016357, + "msecs": 965.0, "msg": "Logged information is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 70.71113586425781, + "relativeCreated": 84.6169, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 6.341934204101562e-05 + "time_consumption": 6.270408630371094e-05 }, { "args": [ "['Log entry number %d with level %s.', 40, 'test_helpers.py', 7]", "" ], - "asctime": "2022-05-08 21:03:46,973", - "created": 1652036626.9738328, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,965", + "created": 1755287451.9657233, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Logged information is correct (Content ['Log entry number %d with level %s.', 40, 'test_helpers.py', 7] and Type is ).", "module": "test", "moduleLogger": [ @@ -4967,9 +4985,8 @@ "[ 'Log entry number %d with level %s.', 40, 'test_helpers.py', 7 ]", "" ], - "asctime": "2022-05-08 21:03:46,973", - "created": 1652036626.973721, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,965", + "created": 1755287451.9656074, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -4978,93 +4995,95 @@ "lineno": 22, "message": "Result (Logged information): [ 'Log entry number %d with level %s.', 40, 'test_helpers.py', 7 ] ()", "module": "test", - "msecs": 973.7210273742676, + "msecs": 965.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 70.79291343688965, + "relativeCreated": 84.704843, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Logged information", + "=", "[ 'Log entry number %d with level %s.', 40, 'test_helpers.py', 7 ]", "" ], - "asctime": "2022-05-08 21:03:46,973", - "created": 1652036626.973773, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,965", + "created": 1755287451.9656634, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Logged information): result = [ 'Log entry number %d with level %s.', 40, 'test_helpers.py', 7 ] ()", "module": "test", - "msecs": 973.7730026245117, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 965.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 70.84488868713379, + "relativeCreated": 84.760884, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 973.8328456878662, + "msecs": 965.0, "msg": "Logged information is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 70.90473175048828, + "relativeCreated": 84.820917, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", "time_consumption": 5.984306335449219e-05 } ], - "thread": 140429627637760, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 0.0026044845581054688, - "time_finished": "2022-05-08 21:03:46,973", - "time_start": "2022-05-08 21:03:46,971" + "time_consumption": 0.0033462047576904297, + "time_finished": "2025-08-15 21:50:51,965", + "time_start": "2025-08-15 21:50:51,962" }, "_fW5s8CzQEeqYsdFh5Cd6ng": { "args": null, - "asctime": "2022-05-08 21:03:46,981", - "created": 1652036626.9812222, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,977", + "created": 1755287451.977231, "exc_text": null, "filename": "__init__.py", - "funcName": "testrun", + "funcName": "testCase", "levelname": "INFO", "levelno": 20, - "lineno": 23, + "lineno": 331, "message": "_fW5s8CzQEeqYsdFh5Cd6ng", "module": "__init__", "moduleLogger": [], - "msecs": 981.2221527099609, + "msecs": 977.0, "msg": "_fW5s8CzQEeqYsdFh5Cd6ng", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/__init__.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/report/__init__.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 78.29403877258301, + "relativeCreated": 96.328542, "stack_info": null, + "taskName": null, "testcaseLogger": [ { "args": [], - "asctime": "2022-05-08 21:03:46,982", - "created": 1652036626.9825902, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,979", + "created": 1755287451.979502, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -5076,9 +5095,8 @@ "moduleLogger": [ { "args": [], - "asctime": "2022-05-08 21:03:46,981", - "created": 1652036626.981301, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,977", + "created": 1755287451.977437, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -5087,15 +5105,16 @@ "lineno": 22, "message": "Configuring collecting logger", "module": "test_helpers", - "msecs": 981.3010692596436, + "msecs": 977.0, "msg": "Configuring collecting logger", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 78.37295532226562, + "relativeCreated": 96.534254, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -5104,9 +5123,8 @@ "DEBUG", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,981", - "created": 1652036626.9813886, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,977", + "created": 1755287451.9776242, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -5115,15 +5133,16 @@ "lineno": 36, "message": "Passing \"Log entry number 1 with level DEBUG.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 981.3885688781738, + "msecs": 977.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 78.4604549407959, + "relativeCreated": 96.721559, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -5131,9 +5150,8 @@ 1, "DEBUG" ], - "asctime": "2022-05-08 21:03:46,981", - "created": 1652036626.981441, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,977", + "created": 1755287451.9777365, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -5142,15 +5160,16 @@ "lineno": 37, "message": "Log entry number 1 with level DEBUG.", "module": "test_helpers", - "msecs": 981.4410209655762, + "msecs": 977.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 78.51290702819824, + "relativeCreated": 96.833952, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -5159,9 +5178,8 @@ "INFO", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,981", - "created": 1652036626.9815686, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,978", + "created": 1755287451.978045, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -5170,15 +5188,16 @@ "lineno": 36, "message": "Passing \"Log entry number 2 with level INFO.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 981.5685749053955, + "msecs": 978.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 78.64046096801758, + "relativeCreated": 97.142247, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -5186,9 +5205,8 @@ 2, "INFO" ], - "asctime": "2022-05-08 21:03:46,981", - "created": 1652036626.981615, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,978", + "created": 1755287451.9781651, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -5197,15 +5215,16 @@ "lineno": 37, "message": "Log entry number 2 with level INFO.", "module": "test_helpers", - "msecs": 981.6150665283203, + "msecs": 978.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 78.68695259094238, + "relativeCreated": 97.262585, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -5214,9 +5233,8 @@ "WARNING", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,981", - "created": 1652036626.9817533, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,978", + "created": 1755287451.9783354, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -5225,15 +5243,16 @@ "lineno": 36, "message": "Passing \"Log entry number 3 with level WARNING.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 981.7533493041992, + "msecs": 978.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 78.82523536682129, + "relativeCreated": 97.432903, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -5241,9 +5260,8 @@ 3, "WARNING" ], - "asctime": "2022-05-08 21:03:46,981", - "created": 1652036626.9818032, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,978", + "created": 1755287451.9783995, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -5252,15 +5270,16 @@ "lineno": 37, "message": "Log entry number 3 with level WARNING.", "module": "test_helpers", - "msecs": 981.8031787872314, + "msecs": 978.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 78.87506484985352, + "relativeCreated": 97.496908, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -5269,9 +5288,8 @@ "ERROR", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,981", - "created": 1652036626.981925, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,978", + "created": 1755287451.9785626, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -5280,15 +5298,16 @@ "lineno": 36, "message": "Passing \"Log entry number 4 with level ERROR.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 981.9250106811523, + "msecs": 978.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 78.99689674377441, + "relativeCreated": 97.660053, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -5296,9 +5315,8 @@ 4, "ERROR" ], - "asctime": "2022-05-08 21:03:46,981", - "created": 1652036626.98197, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,978", + "created": 1755287451.9786527, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -5307,15 +5325,16 @@ "lineno": 37, "message": "Log entry number 4 with level ERROR.", "module": "test_helpers", - "msecs": 981.9700717926025, + "msecs": 978.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 79.04195785522461, + "relativeCreated": 97.750019, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -5324,9 +5343,8 @@ "CRITICAL", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,982", - "created": 1652036626.9820924, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,978", + "created": 1755287451.9788187, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -5335,15 +5353,16 @@ "lineno": 36, "message": "Passing \"Log entry number 5 with level CRITICAL.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 982.0923805236816, + "msecs": 978.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 79.16426658630371, + "relativeCreated": 97.915928, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -5351,9 +5370,8 @@ 5, "CRITICAL" ], - "asctime": "2022-05-08 21:03:46,982", - "created": 1652036626.9821384, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,978", + "created": 1755287451.9789147, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -5362,15 +5380,16 @@ "lineno": 37, "message": "Log entry number 5 with level CRITICAL.", "module": "test_helpers", - "msecs": 982.1383953094482, + "msecs": 978.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 79.21028137207031, + "relativeCreated": 98.012234, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -5379,9 +5398,8 @@ "INFO", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,982", - "created": 1652036626.9822626, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,979", + "created": 1755287451.9790843, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -5390,15 +5408,16 @@ "lineno": 36, "message": "Passing \"Log entry number 6 with level INFO.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 982.2626113891602, + "msecs": 979.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 79.33449745178223, + "relativeCreated": 98.181837, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -5406,9 +5425,8 @@ 6, "INFO" ], - "asctime": "2022-05-08 21:03:46,982", - "created": 1652036626.9823031, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,979", + "created": 1755287451.9791336, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -5417,15 +5435,16 @@ "lineno": 37, "message": "Log entry number 6 with level INFO.", "module": "test_helpers", - "msecs": 982.3031425476074, + "msecs": 979.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 79.37502861022949, + "relativeCreated": 98.231258, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -5434,9 +5453,8 @@ "ERROR", "collectingRingHandler" ], - "asctime": "2022-05-08 21:03:46,982", - "created": 1652036626.982427, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,979", + "created": 1755287451.979272, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -5445,15 +5463,16 @@ "lineno": 36, "message": "Passing \"Log entry number 7 with level ERROR.\" to collectingRingHandler.", "module": "test_helpers", - "msecs": 982.4268817901611, + "msecs": 979.0, "msg": "Passing \"Log entry number %d with level %s.\" to %s.", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 79.4987678527832, + "relativeCreated": 98.369451, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { @@ -5461,9 +5480,8 @@ 7, "ERROR" ], - "asctime": "2022-05-08 21:03:46,982", - "created": 1652036626.9824677, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,979", + "created": 1755287451.9793308, "exc_text": null, "filename": "test_helpers.py", "funcName": "__init__", @@ -5472,44 +5490,45 @@ "lineno": 37, "message": "Log entry number 7 with level ERROR.", "module": "test_helpers", - "msecs": 982.4676513671875, + "msecs": 979.0, "msg": "Log entry number %d with level %s.", "name": "test_sequence", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 79.53953742980957, + "relativeCreated": 98.42817, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 982.5901985168457, + "msecs": 979.0, "msg": "Running logger test sequence.", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/tests/test_helpers.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/tests/test_helpers.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 79.66208457946777, + "relativeCreated": 98.599513, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 0.00012254714965820312 + "time_consumption": 0.00017118453979492188 }, { "args": [ "5", "" ], - "asctime": "2022-05-08 21:03:46,982", - "created": 1652036626.9827778, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,979", + "created": 1755287451.979909, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Length of collectingRingHandler is correct (Content 5 and Type is ).", "module": "test", "moduleLogger": [ @@ -5519,9 +5538,8 @@ "5", "" ], - "asctime": "2022-05-08 21:03:46,982", - "created": 1652036626.982681, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,979", + "created": 1755287451.9797578, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -5530,72 +5548,74 @@ "lineno": 22, "message": "Result (Length of collectingRingHandler): 5 ()", "module": "test", - "msecs": 982.6810359954834, + "msecs": 979.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 79.75292205810547, + "relativeCreated": 98.855323, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Length of collectingRingHandler", + "=", "5", "" ], - "asctime": "2022-05-08 21:03:46,982", - "created": 1652036626.9827285, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,979", + "created": 1755287451.9798427, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Length of collectingRingHandler): result = 5 ()", "module": "test", - "msecs": 982.7284812927246, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 979.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 79.80036735534668, + "relativeCreated": 98.939905, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 982.7778339385986, + "msecs": 979.0, "msg": "Length of collectingRingHandler is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 79.8497200012207, + "relativeCreated": 99.006423, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 4.935264587402344e-05 + "time_consumption": 6.628036499023438e-05 }, { "args": [ "3", "" ], - "asctime": "2022-05-08 21:03:46,982", - "created": 1652036626.9829645, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,980", + "created": 1755287451.9802406, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Length of collectingRingHandler after reinitialisation is correct (Content 3 and Type is ).", "module": "test", "moduleLogger": [ @@ -5605,9 +5625,8 @@ "3", "" ], - "asctime": "2022-05-08 21:03:46,982", - "created": 1652036626.9828708, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,980", + "created": 1755287451.9800932, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -5616,72 +5635,74 @@ "lineno": 22, "message": "Result (Length of collectingRingHandler after reinitialisation): 3 ()", "module": "test", - "msecs": 982.8708171844482, + "msecs": 980.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 79.94270324707031, + "relativeCreated": 99.19071, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Length of collectingRingHandler after reinitialisation", + "=", "3", "" ], - "asctime": "2022-05-08 21:03:46,982", - "created": 1652036626.982917, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,980", + "created": 1755287451.9801774, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Length of collectingRingHandler after reinitialisation): result = 3 ()", "module": "test", - "msecs": 982.917070388794, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 980.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 79.98895645141602, + "relativeCreated": 99.274869, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 982.9645156860352, + "msecs": 980.0, "msg": "Length of collectingRingHandler after reinitialisation is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 80.03640174865723, + "relativeCreated": 99.337976, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 4.744529724121094e-05 + "time_consumption": 6.318092346191406e-05 }, { "args": [ "'Log entry number 5 with level CRITICAL.'", "" ], - "asctime": "2022-05-08 21:03:46,983", - "created": 1652036626.9831557, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,980", + "created": 1755287451.9806864, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Log text is correct (Content 'Log entry number 5 with level CRITICAL.' and Type is ).", "module": "test", "moduleLogger": [ @@ -5691,9 +5712,8 @@ "'Log entry number 5 with level CRITICAL.'", "" ], - "asctime": "2022-05-08 21:03:46,983", - "created": 1652036626.9830635, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,980", + "created": 1755287451.980508, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -5702,72 +5722,74 @@ "lineno": 22, "message": "Result (Log text): 'Log entry number 5 with level CRITICAL.' ()", "module": "test", - "msecs": 983.0634593963623, + "msecs": 980.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 80.13534545898438, + "relativeCreated": 99.605631, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Log text", + "=", "'Log entry number 5 with level CRITICAL.'", "" ], - "asctime": "2022-05-08 21:03:46,983", - "created": 1652036626.9831104, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,980", + "created": 1755287451.9806046, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Log text): result = 'Log entry number 5 with level CRITICAL.' ()", "module": "test", - "msecs": 983.1104278564453, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 980.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 80.18231391906738, + "relativeCreated": 99.702079, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 983.1557273864746, + "msecs": 980.0, "msg": "Log text is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 80.22761344909668, + "relativeCreated": 99.783711, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 4.5299530029296875e-05 + "time_consumption": 8.177757263183594e-05 }, { "args": [ "'Log entry number 6 with level INFO.'", "" ], - "asctime": "2022-05-08 21:03:46,983", - "created": 1652036626.9833205, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,980", + "created": 1755287451.980945, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Log text is correct (Content 'Log entry number 6 with level INFO.' and Type is ).", "module": "test", "moduleLogger": [ @@ -5777,9 +5799,8 @@ "'Log entry number 6 with level INFO.'", "" ], - "asctime": "2022-05-08 21:03:46,983", - "created": 1652036626.9832292, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,980", + "created": 1755287451.9807937, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -5788,72 +5809,74 @@ "lineno": 22, "message": "Result (Log text): 'Log entry number 6 with level INFO.' ()", "module": "test", - "msecs": 983.2291603088379, + "msecs": 980.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 80.30104637145996, + "relativeCreated": 99.890948, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Log text", + "=", "'Log entry number 6 with level INFO.'", "" ], - "asctime": "2022-05-08 21:03:46,983", - "created": 1652036626.9832766, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,980", + "created": 1755287451.9808588, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Log text): result = 'Log entry number 6 with level INFO.' ()", "module": "test", - "msecs": 983.2766056060791, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 980.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 80.34849166870117, + "relativeCreated": 99.956363, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 983.3204746246338, + "msecs": 980.0, "msg": "Log text is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 80.39236068725586, + "relativeCreated": 100.042633, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 4.38690185546875e-05 + "time_consumption": 8.630752563476562e-05 }, { "args": [ "'Log entry number 7 with level ERROR.'", "" ], - "asctime": "2022-05-08 21:03:46,983", - "created": 1652036626.9834774, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,981", + "created": 1755287451.9812238, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Log text is correct (Content 'Log entry number 7 with level ERROR.' and Type is ).", "module": "test", "moduleLogger": [ @@ -5863,9 +5886,8 @@ "'Log entry number 7 with level ERROR.'", "" ], - "asctime": "2022-05-08 21:03:46,983", - "created": 1652036626.9833899, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,981", + "created": 1755287451.9810896, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -5874,68 +5896,71 @@ "lineno": 22, "message": "Result (Log text): 'Log entry number 7 with level ERROR.' ()", "module": "test", - "msecs": 983.3898544311523, + "msecs": 981.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 80.46174049377441, + "relativeCreated": 100.186923, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" }, { "args": [ "Log text", + "=", "'Log entry number 7 with level ERROR.'", "" ], - "asctime": "2022-05-08 21:03:46,983", - "created": 1652036626.983434, - "exc_info": null, + "asctime": "2025-08-15 21:50:51,981", + "created": 1755287451.9811585, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Log text): result = 'Log entry number 7 with level ERROR.' ()", "module": "test", - "msecs": 983.4339618682861, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 981.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 80.5058479309082, + "relativeCreated": 100.255883, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread" } ], - "msecs": 983.4773540496826, + "msecs": 981.0, "msg": "Log text is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/home/dirk/my_repositories/unittest/report/unittest/src/unittest/test.py", - "process": 247081, + "pathname": "/home/dirk/work/unittest_collection/report/unittest/src/unittest/test.py", + "process": 1212369, "processName": "MainProcess", - "relativeCreated": 80.54924011230469, + "relativeCreated": 100.321467, "stack_info": null, - "thread": 140429627637760, + "taskName": null, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 4.3392181396484375e-05 + "time_consumption": 6.532669067382812e-05 } ], - "thread": 140429627637760, + "thread": 140069087834368, "threadName": "MainThread", - "time_consumption": 0.0022552013397216797, - "time_finished": "2022-05-08 21:03:46,983", - "time_start": "2022-05-08 21:03:46,981" + "time_consumption": 0.003992795944213867, + "time_finished": "2025-08-15 21:50:51,981", + "time_start": "2025-08-15 21:50:51,977" } }, "testrun_id": "p3", - "time_consumption": 0.011594533920288086, + "time_consumption": 0.017485380172729492, "uid_list_sorted": [ "_XzMFcHYZEem_kd-7nxt1sg", "_ErFPoCvVEeqssZLMJF_fcg", diff --git a/_testresults_/unittest.pdf b/_testresults_/unittest.pdf index 51074875f6ea08c6470fcf4a58164c0acc616310..e5ff325abd0225d67dbff37ece9180eb71708ef9 100644 GIT binary patch delta 139023 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

=+L6SHW+4r~A%A0Gyk`(Xf-LdNqEGm+^6% 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 delta 142538 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%0Dd@#sZ|h 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[ey!EZ46l^8|9h>UI4{_JBS@h;b#31LtJx)GN8jM^ zk9^25kf*T3T7WJ_{>G){OU`oMBy^I$(2%20@H&FxW1Dg$_emoU%8XdNF`)Y72q^z2 zYZSmQZQZ!}sp|35q~{we@)Ithb(w3-mFKZhv6txkzFFrdReT7D9*1T;Wo~tDwM{v@ z1^dWE(h_7votKqfF!>ip-3+zfAtUNgbfh2^;0)0pBE;(SJ%2gQqog6b3Trm-1os&l z@>!fc>M%9;P!vn2!+hlo3ErYjegF9 z4~HK|L{wLNzlAI3OnJAg26?CXHD4Sr4`DCqI(2C6LdASPM~>c)kM~89maYb61I3@@ z@o+iJj@P=cJK}%E5An|6{zacqXY+$?*-mi%efaXIKk2GKsTDI$P+(4go%0Aa3Y3)u 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