robotframework 6.1.1__zip → 7.0a1__zip
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {robotframework-6.1.1/src/robotframework.egg-info → robotframework-7.0a1}/PKG-INFO +3 -6
- {robotframework-6.1.1 → robotframework-7.0a1}/setup.py +2 -5
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/api/interfaces.py +35 -48
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/api/parsing.py +4 -2
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/conf/gatherfailed.py +2 -2
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/conf/languages.py +0 -9
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/conf/settings.py +8 -5
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/rebot/log.css +4 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/rebot/log.html +9 -1
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/rebot/model.js +2 -4
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/rebot/testdata.js +10 -3
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/template.py +3 -3
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libdocpkg/builder.py +0 -8
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libdocpkg/datatypes.py +9 -10
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libdocpkg/htmlutils.py +4 -7
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libdocpkg/jsonbuilder.py +14 -10
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libdocpkg/model.py +13 -25
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libdocpkg/robotbuilder.py +13 -3
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libdocpkg/xmlbuilder.py +8 -8
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libdocpkg/xmlwriter.py +12 -38
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libraries/BuiltIn.py +215 -189
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libraries/Collections.py +2 -9
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libraries/DateTime.py +1 -1
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libraries/OperatingSystem.py +4 -3
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libraries/Process.py +26 -27
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libraries/Remote.py +40 -36
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libraries/String.py +4 -4
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libraries/XML.py +7 -8
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libraries/__init__.py +2 -2
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/__init__.py +4 -4
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/body.py +14 -6
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/configurer.py +15 -11
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/control.py +151 -81
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/filter.py +31 -25
- robotframework-7.0a1/src/robot/model/keyword.py +70 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/message.py +19 -10
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/namepatterns.py +3 -25
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/stats.py +9 -15
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/tags.py +1 -1
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/testcase.py +12 -21
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/testsuite.py +16 -22
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/visitor.py +35 -8
- robotframework-7.0a1/src/robot/output/console/dotted.py +90 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/output/console/quiet.py +3 -2
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/output/console/verbose.py +60 -60
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/output/debugfile.py +36 -23
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/output/filelogger.py +16 -13
- robotframework-7.0a1/src/robot/output/listeners.py +586 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/output/logger.py +164 -77
- robotframework-7.0a1/src/robot/output/loggerapi.py +152 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/output/loggerhelper.py +23 -56
- robotframework-7.0a1/src/robot/output/output.py +158 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/output/stdoutlogsplitter.py +8 -5
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/output/xmllogger.py +163 -109
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/parsing/lexer/blocklexers.py +17 -13
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/parsing/lexer/context.py +12 -2
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/parsing/lexer/lexer.py +1 -1
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/parsing/lexer/settings.py +6 -3
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/parsing/lexer/statementlexers.py +39 -10
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/parsing/lexer/tokens.py +27 -29
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/parsing/model/blocks.py +19 -6
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/parsing/model/statements.py +184 -84
- robotframework-7.0a1/src/robot/parsing/model/visitor.py +102 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/reporting/expandkeywordmatcher.py +1 -1
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/reporting/jsbuildingcontext.py +8 -6
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/reporting/jsmodelbuilders.py +88 -61
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/reporting/stringcache.py +4 -3
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/reporting/xunitwriter.py +15 -21
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/result/__init__.py +3 -2
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/result/configurer.py +12 -9
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/result/flattenkeywordmatcher.py +8 -8
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/result/keywordremover.py +71 -54
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/result/merger.py +1 -1
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/result/model.py +400 -316
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/result/modeldeprecation.py +9 -3
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/result/resultbuilder.py +21 -23
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/result/xmlelementhandlers.py +76 -40
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/__init__.py +1 -1
- robotframework-7.0a1/src/robot/running/arguments/argumentconverter.py +101 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/arguments/argumentmapper.py +16 -14
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/arguments/argumentresolver.py +41 -33
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/arguments/argumentspec.py +24 -90
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/arguments/argumentvalidator.py +34 -27
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/arguments/customconverters.py +14 -11
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/arguments/embedded.py +23 -26
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/arguments/typeconverters.py +175 -213
- robotframework-7.0a1/src/robot/running/arguments/typeinfo.py +367 -0
- robotframework-7.0a1/src/robot/running/arguments/typevalidator.py +62 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/bodyrunner.py +83 -68
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/builder/parsers.py +8 -10
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/builder/settings.py +9 -17
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/builder/transformers.py +166 -308
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/context.py +80 -25
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/handlers.py +11 -16
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/handlerstore.py +1 -1
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/librarykeywordrunner.py +9 -17
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/model.py +109 -32
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/namespace.py +18 -19
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/statusreporter.py +13 -12
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/suiterunner.py +15 -17
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/testlibraries.py +33 -40
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/usererrorhandler.py +8 -8
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/userkeyword.py +13 -8
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/userkeywordrunner.py +18 -21
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/testdoc.py +18 -13
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/__init__.py +50 -35
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/connectioncache.py +64 -59
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/encodingsniffer.py +1 -1
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/escaping.py +11 -9
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/markupwriters.py +20 -13
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/normalizing.py +9 -24
- robotframework-7.0a1/src/robot/utils/notset.py +33 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/platform.py +15 -5
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/robotpath.py +1 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/robottime.py +120 -88
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/robottypes.py +16 -31
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/setter.py +0 -5
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/text.py +7 -4
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/unic.py +2 -2
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/variables/__init__.py +2 -2
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/variables/assigner.py +17 -19
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/variables/evaluation.py +20 -17
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/variables/filesetter.py +80 -80
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/variables/replacer.py +33 -36
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/variables/scopes.py +3 -3
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/variables/search.py +66 -41
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/variables/store.py +14 -16
- robotframework-7.0a1/src/robot/variables/tablesetter.py +164 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/variables/variables.py +1 -1
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/version.py +1 -1
- {robotframework-6.1.1 → robotframework-7.0a1/src/robotframework.egg-info}/PKG-INFO +3 -6
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robotframework.egg-info/SOURCES.txt +3 -4
- {robotframework-6.1.1 → robotframework-7.0a1}/tasks.py +6 -6
- robotframework-6.1.1/src/robot/libraries/Reserved.py +0 -48
- robotframework-6.1.1/src/robot/model/keyword.py +0 -173
- robotframework-6.1.1/src/robot/output/console/dotted.py +0 -90
- robotframework-6.1.1/src/robot/output/listenerarguments.py +0 -165
- robotframework-6.1.1/src/robot/output/listenermethods.py +0 -113
- robotframework-6.1.1/src/robot/output/listeners.py +0 -174
- robotframework-6.1.1/src/robot/output/output.py +0 -95
- robotframework-6.1.1/src/robot/parsing/model/visitor.py +0 -67
- robotframework-6.1.1/src/robot/running/arguments/argumentconverter.py +0 -79
- robotframework-6.1.1/src/robot/running/arguments/typevalidator.py +0 -56
- robotframework-6.1.1/src/robot/running/modelcombiner.py +0 -32
- robotframework-6.1.1/src/robot/variables/tablesetter.py +0 -156
- {robotframework-6.1.1 → robotframework-7.0a1}/AUTHORS.rst +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/BUILD.rst +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/CONTRIBUTING.rst +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/COPYRIGHT.txt +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/INSTALL.rst +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/LICENSE.txt +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/MANIFEST.in +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/README.rst +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/setup.cfg +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/__main__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/api/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/api/deco.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/api/exceptions.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/api/logger.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/conf/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/errors.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/common/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/common/js_disabled.css +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/common/storage.js +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/htmlfilewriter.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/jsonwriter.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/lib/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/lib/jquery.highlight.min.js +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/lib/jquery.min.js +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/lib/jquery.tablesorter.min.js +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/lib/jquery.tmpl.min.js +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/lib/jsxcompressor.min.js +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/libdoc/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/libdoc/doc_formatting.css +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/libdoc/libdoc.css +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/libdoc/libdoc.html +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/libdoc/print.css +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/libdoc/pygments.css +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/rebot/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/rebot/common.css +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/rebot/doc_formatting.css +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/rebot/fileloading.js +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/rebot/log.js +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/rebot/print.css +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/rebot/report.css +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/rebot/report.html +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/rebot/util.js +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/rebot/view.js +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/testdoc/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/testdoc/testdoc.css +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/htmldata/testdoc/testdoc.html +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libdoc.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libdocpkg/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libdocpkg/consoleviewer.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libdocpkg/htmlwriter.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libdocpkg/jsonwriter.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libdocpkg/output.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libdocpkg/standardtypes.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libdocpkg/writer.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libraries/Dialogs.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libraries/Easter.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libraries/Screenshot.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libraries/Telnet.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/libraries/dialogs_py.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/fixture.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/itemlist.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/metadata.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/modelobject.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/modifier.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/statistics.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/suitestatistics.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/tagsetter.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/tagstatistics.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/model/totalstatistics.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/output/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/output/console/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/output/console/highlighting.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/output/librarylogger.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/output/pyloggingconf.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/parsing/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/parsing/lexer/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/parsing/lexer/tokenizer.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/parsing/model/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/parsing/parser/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/parsing/parser/blockparsers.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/parsing/parser/fileparser.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/parsing/parser/parser.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/parsing/suitestructure.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/pythonpathsetter.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/rebot.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/reporting/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/reporting/jsexecutionresult.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/reporting/jswriter.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/reporting/logreportwriters.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/reporting/outputwriter.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/reporting/resultwriter.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/result/executionerrors.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/result/executionresult.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/result/messagefilter.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/result/suiteteardownfailed.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/result/visitor.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/run.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/arguments/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/arguments/argumentparser.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/builder/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/builder/builders.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/dynamicmethods.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/importer.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/libraryscopes.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/outputcapture.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/randomizer.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/runkwregister.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/signalhandler.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/status.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/timeouts/__init__.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/timeouts/posix.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/running/timeouts/windows.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/application.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/argumentparser.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/asserts.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/charwidth.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/compress.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/dotdict.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/encoding.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/error.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/etreewrapper.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/filereader.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/frange.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/htmlformatters.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/importer.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/markuputils.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/match.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/misc.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/recommendations.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/restreader.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/robotenv.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/robotinspect.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/robotio.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/sortable.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/utils/typehints.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/variables/finders.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/variables/notfound.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robot/variables/resolvable.py +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robotframework.egg-info/dependency_links.txt +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robotframework.egg-info/entry_points.txt +0 -0
- {robotframework-6.1.1 → robotframework-7.0a1}/src/robotframework.egg-info/top_level.txt +0 -0
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
import json
|
|
17
17
|
import os.path
|
|
18
18
|
|
|
19
|
-
from robot.running import ArgInfo
|
|
19
|
+
from robot.running import ArgInfo, TypeInfo
|
|
20
20
|
from robot.errors import DataError
|
|
21
21
|
|
|
22
22
|
from .datatypes import EnumMember, TypedDictItem, TypeDoc
|
|
@@ -57,7 +57,7 @@ class JsonDocBuilder:
|
|
|
57
57
|
def _create_keyword(self, data):
|
|
58
58
|
kw = KeywordDoc(name=data.get('name'),
|
|
59
59
|
doc=data['doc'],
|
|
60
|
-
|
|
60
|
+
short_doc=data['shortdoc'],
|
|
61
61
|
tags=data['tags'],
|
|
62
62
|
private=data.get('private', False),
|
|
63
63
|
deprecated=data.get('deprecated', False),
|
|
@@ -83,24 +83,28 @@ class JsonDocBuilder:
|
|
|
83
83
|
default = arg.get('defaultValue')
|
|
84
84
|
if default is not None:
|
|
85
85
|
spec.defaults[name] = default
|
|
86
|
-
if
|
|
86
|
+
if 'type' in arg: # RF >= 6.1
|
|
87
87
|
type_docs = {}
|
|
88
|
-
type_info = self.
|
|
89
|
-
else:
|
|
88
|
+
type_info = self._parse_type_info(arg['type'], type_docs)
|
|
89
|
+
else: # RF < 6.1
|
|
90
90
|
type_docs = arg.get('typedocs', {})
|
|
91
|
-
type_info =
|
|
91
|
+
type_info = self._parse_legacy_type_info(arg['types'])
|
|
92
92
|
if type_info:
|
|
93
93
|
if not spec.types:
|
|
94
94
|
spec.types = {}
|
|
95
95
|
spec.types[name] = type_info
|
|
96
96
|
kw.type_docs[name] = type_docs
|
|
97
97
|
|
|
98
|
-
def
|
|
98
|
+
def _parse_type_info(self, data, type_docs):
|
|
99
|
+
if not data:
|
|
100
|
+
return None
|
|
99
101
|
if data.get('typedoc'):
|
|
100
102
|
type_docs[data['name']] = data['typedoc']
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
103
|
+
nested = [self._parse_type_info(typ, type_docs) for typ in data.get('nested', ())]
|
|
104
|
+
return TypeInfo(data['name'], nested=nested)
|
|
105
|
+
|
|
106
|
+
def _parse_legacy_type_info(self, types):
|
|
107
|
+
return TypeInfo.from_sequence(types) if types else None
|
|
104
108
|
|
|
105
109
|
def _parse_type_docs(self, type_docs):
|
|
106
110
|
for data in type_docs:
|
|
@@ -97,9 +97,9 @@ class LibraryDoc:
|
|
|
97
97
|
formatter = DocFormatter(self.keywords, self.type_docs, self.doc, self.doc_format)
|
|
98
98
|
self._doc = formatter.html(self.doc, intro=True)
|
|
99
99
|
for item in self.inits + self.keywords:
|
|
100
|
-
# If '
|
|
100
|
+
# If 'short_doc' is not set, it is generated automatically based on 'doc'
|
|
101
101
|
# when accessed. Generate and set it to avoid HTML format affecting it.
|
|
102
|
-
item.
|
|
102
|
+
item.short_doc = item.short_doc
|
|
103
103
|
item.doc = formatter.html(item.doc)
|
|
104
104
|
for type_doc in self.type_docs:
|
|
105
105
|
# Standard docs are always in ROBOT format ...
|
|
@@ -113,7 +113,7 @@ class LibraryDoc:
|
|
|
113
113
|
|
|
114
114
|
def to_dictionary(self, include_private=False, theme=None):
|
|
115
115
|
data = {
|
|
116
|
-
'specversion':
|
|
116
|
+
'specversion': 3,
|
|
117
117
|
'name': self.name,
|
|
118
118
|
'doc': self.doc,
|
|
119
119
|
'version': self.version,
|
|
@@ -127,22 +127,12 @@ class LibraryDoc:
|
|
|
127
127
|
'inits': [init.to_dictionary() for init in self.inits],
|
|
128
128
|
'keywords': [kw.to_dictionary() for kw in self.keywords
|
|
129
129
|
if include_private or not kw.private],
|
|
130
|
-
# 'dataTypes' was deprecated in RF 5, 'typedoc' should be used instead.
|
|
131
|
-
'dataTypes': self._get_data_types(self.type_docs),
|
|
132
130
|
'typedocs': [t.to_dictionary() for t in sorted(self.type_docs)]
|
|
133
131
|
}
|
|
134
132
|
if theme:
|
|
135
133
|
data['theme'] = theme.lower()
|
|
136
134
|
return data
|
|
137
135
|
|
|
138
|
-
def _get_data_types(self, types):
|
|
139
|
-
enums = sorted(t for t in types if t.type == 'Enum')
|
|
140
|
-
typed_dicts = sorted(t for t in types if t.type == 'TypedDict')
|
|
141
|
-
return {
|
|
142
|
-
'enums': [t.to_dictionary(legacy=True) for t in enums],
|
|
143
|
-
'typedDicts': [t.to_dictionary(legacy=True) for t in typed_dicts]
|
|
144
|
-
}
|
|
145
|
-
|
|
146
136
|
def to_json(self, indent=None, include_private=True, theme=None):
|
|
147
137
|
data = self.to_dictionary(include_private, theme)
|
|
148
138
|
return json.dumps(data, indent=indent)
|
|
@@ -151,12 +141,12 @@ class LibraryDoc:
|
|
|
151
141
|
class KeywordDoc(Sortable):
|
|
152
142
|
"""Documentation for a single keyword or an initializer."""
|
|
153
143
|
|
|
154
|
-
def __init__(self, name='', args=None, doc='',
|
|
144
|
+
def __init__(self, name='', args=None, doc='', short_doc='', tags=(), private=False,
|
|
155
145
|
deprecated=False, source=None, lineno=-1, parent=None):
|
|
156
146
|
self.name = name
|
|
157
147
|
self.args = args or ArgumentSpec()
|
|
158
148
|
self.doc = doc
|
|
159
|
-
self.
|
|
149
|
+
self._short_doc = short_doc
|
|
160
150
|
self.tags = Tags(tags)
|
|
161
151
|
self.private = private
|
|
162
152
|
self.deprecated = deprecated
|
|
@@ -167,19 +157,19 @@ class KeywordDoc(Sortable):
|
|
|
167
157
|
self.type_docs = {arg.name: {} for arg in self.args}
|
|
168
158
|
|
|
169
159
|
@property
|
|
170
|
-
def
|
|
171
|
-
return self.
|
|
160
|
+
def short_doc(self):
|
|
161
|
+
return self._short_doc or self._doc_to_short_doc()
|
|
172
162
|
|
|
173
|
-
def
|
|
163
|
+
def _doc_to_short_doc(self):
|
|
174
164
|
if self.parent and self.parent.doc_format == 'HTML':
|
|
175
|
-
doc = HtmlToText().
|
|
165
|
+
doc = HtmlToText().get_short_doc_from_html(self.doc)
|
|
176
166
|
else:
|
|
177
167
|
doc = self.doc
|
|
178
168
|
return ' '.join(getshortdoc(doc).splitlines())
|
|
179
169
|
|
|
180
|
-
@
|
|
181
|
-
def
|
|
182
|
-
self.
|
|
170
|
+
@short_doc.setter
|
|
171
|
+
def short_doc(self, short_doc):
|
|
172
|
+
self._short_doc = short_doc
|
|
183
173
|
|
|
184
174
|
@property
|
|
185
175
|
def _sort_key(self):
|
|
@@ -190,7 +180,7 @@ class KeywordDoc(Sortable):
|
|
|
190
180
|
'name': self.name,
|
|
191
181
|
'args': [self._arg_to_dict(arg) for arg in self.args],
|
|
192
182
|
'doc': self.doc,
|
|
193
|
-
'shortdoc': self.
|
|
183
|
+
'shortdoc': self.short_doc,
|
|
194
184
|
'tags': list(self.tags),
|
|
195
185
|
'source': str(self.source) if self.source else None,
|
|
196
186
|
'lineno': self.lineno
|
|
@@ -206,8 +196,6 @@ class KeywordDoc(Sortable):
|
|
|
206
196
|
return {
|
|
207
197
|
'name': arg.name,
|
|
208
198
|
'type': self._type_to_dict(arg.type, type_docs),
|
|
209
|
-
'types': arg.types_reprs,
|
|
210
|
-
'typedocs': type_docs,
|
|
211
199
|
'defaultValue': arg.default_repr,
|
|
212
200
|
'kind': arg.kind,
|
|
213
201
|
'required': arg.required,
|
|
@@ -18,8 +18,8 @@ import sys
|
|
|
18
18
|
import re
|
|
19
19
|
|
|
20
20
|
from robot.errors import DataError
|
|
21
|
-
from robot.running import (
|
|
22
|
-
TypeInfo, UserLibrary, UserErrorHandler)
|
|
21
|
+
from robot.running import (ArgumentSpec, ResourceFileBuilder, TestLibrary,
|
|
22
|
+
TestSuiteBuilder, TypeInfo, UserLibrary, UserErrorHandler)
|
|
23
23
|
from robot.utils import is_string, split_tags_from_doc, unescape
|
|
24
24
|
from robot.variables import search_variable
|
|
25
25
|
|
|
@@ -71,7 +71,7 @@ class LibraryDocBuilder:
|
|
|
71
71
|
for arg in kw.args:
|
|
72
72
|
kw.type_docs[arg.name] = {}
|
|
73
73
|
for type_info in self._yield_type_info(arg.type):
|
|
74
|
-
type_doc = TypeDoc.for_type(type_info
|
|
74
|
+
type_doc = TypeDoc.for_type(type_info, custom_converters)
|
|
75
75
|
if type_doc:
|
|
76
76
|
kw.type_docs[arg.name][type_info.name] = type_doc.name
|
|
77
77
|
type_docs.setdefault(type_doc, set()).add(kw.name)
|
|
@@ -149,6 +149,8 @@ class KeywordDocBuilder:
|
|
|
149
149
|
doc, tags = self._get_doc_and_tags(kw)
|
|
150
150
|
if not self._resource:
|
|
151
151
|
self._escape_strings_in_defaults(kw.arguments.defaults)
|
|
152
|
+
if kw.arguments.embedded:
|
|
153
|
+
self._remove_embedded(kw.arguments)
|
|
152
154
|
return KeywordDoc(name=kw.name,
|
|
153
155
|
args=kw.arguments,
|
|
154
156
|
doc=doc,
|
|
@@ -185,3 +187,11 @@ class KeywordDocBuilder:
|
|
|
185
187
|
if self._resource and not isinstance(kw, UserErrorHandler):
|
|
186
188
|
return unescape(kw.doc)
|
|
187
189
|
return kw.doc
|
|
190
|
+
|
|
191
|
+
def _remove_embedded(self, spec: ArgumentSpec):
|
|
192
|
+
embedded = len(spec.embedded)
|
|
193
|
+
pos_only = len(spec.positional_only)
|
|
194
|
+
spec.positional_only[:embedded] = []
|
|
195
|
+
if embedded > pos_only:
|
|
196
|
+
spec.positional_or_named[:embedded-pos_only] = []
|
|
197
|
+
spec.embedded = ()
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
import os.path
|
|
17
17
|
|
|
18
18
|
from robot.errors import DataError
|
|
19
|
-
from robot.running import ArgInfo
|
|
19
|
+
from robot.running import ArgInfo, TypeInfo
|
|
20
20
|
from robot.utils import ET, ETSource
|
|
21
21
|
|
|
22
22
|
from .datatypes import EnumMember, TypedDictItem, TypeDoc
|
|
@@ -52,9 +52,9 @@ class XmlDocBuilder:
|
|
|
52
52
|
if root.tag != 'keywordspec':
|
|
53
53
|
raise DataError(f"Invalid spec file '{path}'.")
|
|
54
54
|
version = root.get('specversion')
|
|
55
|
-
if version not in ('3', '4', '5'):
|
|
55
|
+
if version not in ('3', '4', '5', '6'):
|
|
56
56
|
raise DataError(f"Invalid spec file version '{version}'. "
|
|
57
|
-
f"Supported versions are 3, 4 and
|
|
57
|
+
f"Supported versions are 3, 4, 5, and 6.")
|
|
58
58
|
return root
|
|
59
59
|
|
|
60
60
|
def _create_keywords(self, spec, path, lib_source):
|
|
@@ -63,7 +63,7 @@ class XmlDocBuilder:
|
|
|
63
63
|
def _create_keyword(self, elem, lib_source):
|
|
64
64
|
kw = KeywordDoc(name=elem.get('name', ''),
|
|
65
65
|
doc=elem.find('doc').text or '',
|
|
66
|
-
|
|
66
|
+
short_doc=elem.find('shortdoc').text or '',
|
|
67
67
|
tags=[t.text for t in elem.findall('tags/tag')],
|
|
68
68
|
private=elem.get('private', 'false') == 'true',
|
|
69
69
|
deprecated=elem.get('deprecated', 'false') == 'true',
|
|
@@ -108,9 +108,9 @@ class XmlDocBuilder:
|
|
|
108
108
|
name = type_elem.get('name')
|
|
109
109
|
if type_elem.get('typedoc'):
|
|
110
110
|
type_docs[name] = type_elem.get('typedoc')
|
|
111
|
-
nested =
|
|
112
|
-
|
|
113
|
-
return
|
|
111
|
+
nested = [self._parse_modern_type_info(child, type_docs)
|
|
112
|
+
for child in type_elem.findall('type')]
|
|
113
|
+
return TypeInfo(name, nested=nested)
|
|
114
114
|
|
|
115
115
|
def _parse_legacy_type_info(self, type_elems, type_docs):
|
|
116
116
|
types = []
|
|
@@ -119,7 +119,7 @@ class XmlDocBuilder:
|
|
|
119
119
|
types.append(name)
|
|
120
120
|
if elem.get('typedoc'):
|
|
121
121
|
type_docs[name] = elem.get('typedoc')
|
|
122
|
-
return types
|
|
122
|
+
return TypeInfo.from_sequence(types) if types else None
|
|
123
123
|
|
|
124
124
|
def _parse_type_docs(self, spec):
|
|
125
125
|
for elem in spec.findall('typedocs/type'):
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
|
|
16
16
|
from robot.running import TypeInfo
|
|
17
|
-
from robot.utils import XmlWriter
|
|
17
|
+
from robot.utils import NOT_SET, XmlWriter
|
|
18
18
|
|
|
19
19
|
from .output import get_generation_time
|
|
20
20
|
|
|
@@ -26,9 +26,6 @@ class LibdocXmlWriter:
|
|
|
26
26
|
self._write_start(libdoc, writer)
|
|
27
27
|
self._write_keywords('inits', 'init', libdoc.inits, libdoc.source, writer)
|
|
28
28
|
self._write_keywords('keywords', 'kw', libdoc.keywords, libdoc.source, writer)
|
|
29
|
-
# Write deprecated '<datatypes>' element.
|
|
30
|
-
self._write_data_types(libdoc.type_docs, writer)
|
|
31
|
-
# Write new '<types>' element.
|
|
32
29
|
self._write_type_docs(libdoc.type_docs, writer)
|
|
33
30
|
self._write_end(writer)
|
|
34
31
|
|
|
@@ -38,7 +35,7 @@ class LibdocXmlWriter:
|
|
|
38
35
|
'format': libdoc.doc_format,
|
|
39
36
|
'scope': libdoc.scope,
|
|
40
37
|
'generated': get_generation_time(),
|
|
41
|
-
'specversion': '
|
|
38
|
+
'specversion': '6'}
|
|
42
39
|
self._add_source_info(attrs, libdoc)
|
|
43
40
|
writer.start('keywordspec', attrs)
|
|
44
41
|
writer.element('version', libdoc.version)
|
|
@@ -58,7 +55,7 @@ class LibdocXmlWriter:
|
|
|
58
55
|
writer.start(kw_type, attrs)
|
|
59
56
|
self._write_arguments(kw, writer)
|
|
60
57
|
writer.element('doc', kw.doc)
|
|
61
|
-
writer.element('shortdoc', kw.
|
|
58
|
+
writer.element('shortdoc', kw.short_doc)
|
|
62
59
|
if kw_type == 'kw' and kw.tags:
|
|
63
60
|
self._write_tags(kw.tags, writer)
|
|
64
61
|
writer.end(kw_type)
|
|
@@ -80,24 +77,24 @@ class LibdocXmlWriter:
|
|
|
80
77
|
writer.element('name', arg.name)
|
|
81
78
|
if arg.type:
|
|
82
79
|
self._write_type_info(arg.type, kw.type_docs[arg.name], writer)
|
|
83
|
-
if arg.default is not
|
|
80
|
+
if arg.default is not NOT_SET:
|
|
84
81
|
writer.element('default', arg.default_repr)
|
|
85
82
|
writer.end('arg')
|
|
86
83
|
writer.end('arguments')
|
|
87
84
|
|
|
88
|
-
def _write_type_info(self, type_info: TypeInfo, type_docs: dict, writer
|
|
85
|
+
def _write_type_info(self, type_info: TypeInfo, type_docs: dict, writer):
|
|
89
86
|
attrs = {'name': type_info.name}
|
|
90
87
|
if type_info.is_union:
|
|
91
88
|
attrs['union'] = 'true'
|
|
92
89
|
if type_info.name in type_docs:
|
|
93
90
|
attrs['typedoc'] = type_docs[type_info.name]
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
91
|
+
if type_info.nested:
|
|
92
|
+
writer.start('type', attrs)
|
|
93
|
+
for nested in type_info.nested:
|
|
94
|
+
self._write_type_info(nested, type_docs, writer)
|
|
95
|
+
writer.end('type')
|
|
96
|
+
else:
|
|
97
|
+
writer.element('type', attrs=attrs)
|
|
101
98
|
|
|
102
99
|
def _get_start_attrs(self, kw, lib_source):
|
|
103
100
|
attrs = {'name': kw.name}
|
|
@@ -108,29 +105,6 @@ class LibdocXmlWriter:
|
|
|
108
105
|
self._add_source_info(attrs, kw, lib_source)
|
|
109
106
|
return attrs
|
|
110
107
|
|
|
111
|
-
# Write legacy 'datatypes'. TODO: Remove in RF 7.
|
|
112
|
-
def _write_data_types(self, types, writer):
|
|
113
|
-
enums = sorted(t for t in types if t.type == 'Enum')
|
|
114
|
-
typed_dicts = sorted(t for t in types if t.type == 'TypedDict')
|
|
115
|
-
writer.start('datatypes')
|
|
116
|
-
if enums:
|
|
117
|
-
writer.start('enums')
|
|
118
|
-
for enum in enums:
|
|
119
|
-
writer.start('enum', {'name': enum.name})
|
|
120
|
-
writer.element('doc', enum.doc)
|
|
121
|
-
self._write_enum_members(enum, writer)
|
|
122
|
-
writer.end('enum')
|
|
123
|
-
writer.end('enums')
|
|
124
|
-
if typed_dicts:
|
|
125
|
-
writer.start('typeddicts')
|
|
126
|
-
for typ_dict in typed_dicts:
|
|
127
|
-
writer.start('typeddict', {'name': typ_dict.name})
|
|
128
|
-
writer.element('doc', typ_dict.doc)
|
|
129
|
-
self._write_typed_dict_items(typ_dict, writer)
|
|
130
|
-
writer.end('typeddict')
|
|
131
|
-
writer.end('typeddicts')
|
|
132
|
-
writer.end('datatypes')
|
|
133
|
-
|
|
134
108
|
def _write_type_docs(self, type_docs, writer):
|
|
135
109
|
writer.start('typedocs')
|
|
136
110
|
for doc in sorted(type_docs):
|