robotframework 7.4b1__tar.gz → 7.4rc1__tar.gz
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-7.4b1 → robotframework-7.4rc1}/PKG-INFO +2 -2
- {robotframework-7.4b1 → robotframework-7.4rc1}/setup.py +1 -1
- robotframework-7.4rc1/src/robot/api/logger.py +219 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/conf/settings.py +1 -1
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/htmlfilewriter.py +8 -11
- robotframework-7.4rc1/src/robot/htmldata/libdoc/libdoc.html +385 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libdocpkg/standardtypes.py +135 -77
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libraries/BuiltIn.py +1150 -967
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libraries/Collections.py +411 -449
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libraries/Dialogs.py +13 -5
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libraries/OperatingSystem.py +288 -221
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libraries/Process.py +179 -145
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libraries/Screenshot.py +15 -13
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libraries/String.py +313 -124
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libraries/XML.py +360 -179
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libraries/dialogs_py.py +24 -8
- robotframework-7.4rc1/src/robot/libraries/normalizer.py +144 -0
- robotframework-7.4rc1/src/robot/libraries/py.typed +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/__init__.py +1 -1
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/console/dotted.py +1 -1
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/console/quiet.py +1 -1
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/console/verbose.py +1 -1
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/filelogger.py +5 -1
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/librarylogger.py +18 -15
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/logger.py +6 -4
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/loggerhelper.py +28 -10
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/loglevel.py +11 -13
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/stdoutlogsplitter.py +1 -4
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/arguments/argumentconverter.py +7 -2
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/arguments/argumentspec.py +1 -1
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/arguments/typeconverters.py +170 -93
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/arguments/typeinfo.py +30 -20
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/arguments/typevalidator.py +3 -1
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/context.py +4 -2
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/timeouts/timeout.py +1 -1
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/userkeywordrunner.py +12 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/connectioncache.py +22 -21
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/etreewrapper.py +12 -9
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/misc.py +1 -1
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/robottime.py +4 -1
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/secret.py +3 -3
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/version.py +1 -1
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robotframework.egg-info/PKG-INFO +2 -2
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robotframework.egg-info/SOURCES.txt +2 -0
- robotframework-7.4b1/src/robot/api/logger.py +0 -152
- robotframework-7.4b1/src/robot/htmldata/libdoc/libdoc.html +0 -409
- {robotframework-7.4b1 → robotframework-7.4rc1}/AUTHORS.rst +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/BUILD.rst +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/CONTRIBUTING.rst +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/COPYRIGHT.txt +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/INSTALL.rst +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/LICENSE.txt +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/MANIFEST.in +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/README.rst +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/pyproject.toml +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/setup.cfg +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/__main__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/api/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/api/deco.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/api/exceptions.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/api/interfaces.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/api/parsing.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/api/py.typed +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/api/types.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/conf/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/conf/gatherfailed.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/conf/languages.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/errors.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/common/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/common/js_disabled.css +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/common/storage.js +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/jsonwriter.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/lib/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/lib/jquery.highlight.min.js +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/lib/jquery.min.js +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/lib/jquery.tablesorter.min.js +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/lib/jquery.tmpl.min.js +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/lib/jsxcompressor.min.js +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/libdoc/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/rebot/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/rebot/common.css +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/rebot/doc_formatting.css +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/rebot/fileloading.js +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/rebot/log.css +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/rebot/log.html +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/rebot/log.js +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/rebot/model.js +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/rebot/print.css +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/rebot/report.css +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/rebot/report.html +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/rebot/testdata.js +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/rebot/util.js +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/rebot/view.js +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/template.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/testdoc/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/testdoc/testdoc.css +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/htmldata/testdoc/testdoc.html +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libdoc.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libdocpkg/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libdocpkg/builder.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libdocpkg/consoleviewer.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libdocpkg/datatypes.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libdocpkg/htmlutils.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libdocpkg/htmlwriter.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libdocpkg/jsonbuilder.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libdocpkg/jsonwriter.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libdocpkg/languages.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libdocpkg/model.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libdocpkg/output.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libdocpkg/robotbuilder.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libdocpkg/writer.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libdocpkg/xmlbuilder.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libdocpkg/xmlwriter.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libraries/DateTime.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libraries/Easter.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libraries/Remote.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libraries/Telnet.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/libraries/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/logo.png +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/body.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/configurer.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/control.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/filter.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/fixture.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/itemlist.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/keyword.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/message.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/metadata.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/modelobject.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/modifier.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/namepatterns.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/statistics.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/stats.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/suitestatistics.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/tags.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/tagsetter.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/tagstatistics.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/testcase.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/testsuite.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/totalstatistics.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/model/visitor.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/console/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/console/highlighting.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/debugfile.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/jsonlogger.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/listeners.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/loggerapi.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/output.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/outputfile.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/pyloggingconf.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/output/xmllogger.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/parsing/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/parsing/lexer/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/parsing/lexer/blocklexers.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/parsing/lexer/context.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/parsing/lexer/lexer.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/parsing/lexer/settings.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/parsing/lexer/statementlexers.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/parsing/lexer/tokenizer.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/parsing/lexer/tokens.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/parsing/model/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/parsing/model/blocks.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/parsing/model/statements.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/parsing/model/visitor.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/parsing/parser/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/parsing/parser/blockparsers.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/parsing/parser/fileparser.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/parsing/parser/parser.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/parsing/suitestructure.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/pythonpathsetter.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/rebot.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/reporting/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/reporting/expandkeywordmatcher.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/reporting/jsbuildingcontext.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/reporting/jsexecutionresult.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/reporting/jsmodelbuilders.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/reporting/jswriter.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/reporting/logreportwriters.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/reporting/outputwriter.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/reporting/resultwriter.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/reporting/stringcache.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/reporting/xunitwriter.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/result/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/result/configurer.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/result/executionerrors.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/result/executionresult.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/result/flattenkeywordmatcher.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/result/keywordremover.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/result/merger.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/result/messagefilter.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/result/model.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/result/modeldeprecation.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/result/resultbuilder.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/result/suiteteardownfailed.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/result/visitor.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/result/xmlelementhandlers.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/run.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/arguments/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/arguments/argumentmapper.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/arguments/argumentparser.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/arguments/argumentresolver.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/arguments/argumentvalidator.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/arguments/customconverters.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/arguments/embedded.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/arguments/typeinfoparser.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/bodyrunner.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/builder/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/builder/builders.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/builder/parsers.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/builder/settings.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/builder/transformers.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/dynamicmethods.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/importer.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/invalidkeyword.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/keywordfinder.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/keywordimplementation.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/librarykeyword.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/librarykeywordrunner.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/libraryscopes.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/model.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/namespace.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/outputcapture.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/randomizer.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/resourcemodel.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/runkwregister.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/signalhandler.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/status.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/statusreporter.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/suiterunner.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/testlibraries.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/timeouts/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/timeouts/nosupport.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/timeouts/posix.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/timeouts/runner.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/running/timeouts/windows.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/testdoc.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/application.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/argumentparser.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/asserts.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/charwidth.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/compress.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/dotdict.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/encoding.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/encodingsniffer.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/error.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/escaping.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/filereader.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/frange.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/htmlformatters.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/importer.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/json.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/markuputils.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/markupwriters.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/match.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/normalizing.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/notset.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/platform.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/recommendations.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/restreader.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/robotenv.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/robotinspect.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/robotio.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/robotpath.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/robottypes.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/setter.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/sortable.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/text.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/typehints.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/utils/unic.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/variables/__init__.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/variables/assigner.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/variables/evaluation.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/variables/filesetter.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/variables/finders.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/variables/notfound.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/variables/replacer.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/variables/resolvable.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/variables/scopes.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/variables/search.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/variables/store.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/variables/tablesetter.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robot/variables/variables.py +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robotframework.egg-info/dependency_links.txt +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robotframework.egg-info/entry_points.txt +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/src/robotframework.egg-info/top_level.txt +0 -0
- {robotframework-7.4b1 → robotframework-7.4rc1}/tasks.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: robotframework
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.4rc1
|
|
4
4
|
Summary: Generic automation framework for acceptance testing and robotic process automation (RPA)
|
|
5
5
|
Home-page: https://robotframework.org
|
|
6
6
|
Download-URL: https://pypi.org/project/robotframework
|
|
@@ -10,7 +10,7 @@ License: Apache License 2.0
|
|
|
10
10
|
Project-URL: Source, https://github.com/robotframework/robotframework
|
|
11
11
|
Project-URL: Issue Tracker, https://github.com/robotframework/robotframework/issues
|
|
12
12
|
Project-URL: Documentation, https://robotframework.org/robotframework
|
|
13
|
-
Project-URL: Release Notes, https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-7.
|
|
13
|
+
Project-URL: Release Notes, https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-7.4rc1.rst
|
|
14
14
|
Project-URL: Slack, http://slack.robotframework.org
|
|
15
15
|
Keywords: robotframework automation testautomation rpa testing acceptancetesting atdd bdd
|
|
16
16
|
Platform: any
|
|
@@ -6,7 +6,7 @@ from setuptools import find_packages, setup
|
|
|
6
6
|
|
|
7
7
|
# Version number typically updated by running `invoke set-version <version>`.
|
|
8
8
|
# Run `invoke --help set-version` or see tasks.py for details.
|
|
9
|
-
VERSION = "7.
|
|
9
|
+
VERSION = "7.4rc1"
|
|
10
10
|
with open(join(dirname(abspath(__file__)), "README.rst")) as f:
|
|
11
11
|
LONG_DESCRIPTION = f.read()
|
|
12
12
|
base_url = "https://github.com/robotframework/robotframework/blob/master"
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
# Copyright 2008-2015 Nokia Networks
|
|
2
|
+
# Copyright 2016- Robot Framework Foundation
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
|
|
16
|
+
"""Public logging API for test libraries.
|
|
17
|
+
|
|
18
|
+
This module provides a public API for writing messages to the log file
|
|
19
|
+
and the console. Test libraries can use this API like::
|
|
20
|
+
|
|
21
|
+
logger.info('My message')
|
|
22
|
+
|
|
23
|
+
instead of logging through the standard output like::
|
|
24
|
+
|
|
25
|
+
print('*INFO* My message')
|
|
26
|
+
|
|
27
|
+
In addition to a programmatic interface being cleaner to use, this API
|
|
28
|
+
has a benefit that the log messages have accurate timestamps.
|
|
29
|
+
|
|
30
|
+
If the logging methods are used when Robot Framework is not running,
|
|
31
|
+
the messages are redirected to the standard Python ``logging`` module
|
|
32
|
+
using logger named ``RobotFramework``.
|
|
33
|
+
|
|
34
|
+
Log levels
|
|
35
|
+
----------
|
|
36
|
+
|
|
37
|
+
It is possible to log messages using levels ``TRACE``, ``DEBUG``, ``INFO``,
|
|
38
|
+
``WARN`` and ``ERROR`` either using the :func:`write` function or, more
|
|
39
|
+
commonly, with the log level specific :func:`trace`, :func:`debug`,
|
|
40
|
+
:func:`info`, :func:`warn`, :func:`error` functions.
|
|
41
|
+
|
|
42
|
+
The trace and debug messages are not logged by default, but that can be
|
|
43
|
+
changed with the ``--loglevel`` command line option. Warnings and errors are
|
|
44
|
+
automatically written also to the console and to the *Test Execution Errors*
|
|
45
|
+
section in the log file.
|
|
46
|
+
|
|
47
|
+
If libraries accept arbitrary log levels and use type hints, they can use
|
|
48
|
+
the :attr:`LogLevel` type alias as shown in the example_ below. It is new
|
|
49
|
+
in Robot Framework 7.4, but :attr:`LOGLEVEL` with same content exists since
|
|
50
|
+
Robot Framework 7.0 and will be available at least until in Robot Framework 9.0.
|
|
51
|
+
|
|
52
|
+
Logging HTML
|
|
53
|
+
------------
|
|
54
|
+
|
|
55
|
+
All methods that are used for writing messages to the log file have an
|
|
56
|
+
optional ``html`` argument. If a message to be logged is supposed to be
|
|
57
|
+
shown as HTML, this argument should be set to ``True``. Alternatively,
|
|
58
|
+
:func:`write` accepts a pseudo log level ``HTML``.
|
|
59
|
+
|
|
60
|
+
Logging to console
|
|
61
|
+
------------------
|
|
62
|
+
|
|
63
|
+
Normal messages are written only to the log file, not to the console.
|
|
64
|
+
There are, however, various ways to log to the console if needed:
|
|
65
|
+
|
|
66
|
+
- Messages with ``WARN`` and ``ERROR`` levels are shown on the console automatically.
|
|
67
|
+
- The :func:`console` function logs only to the console.
|
|
68
|
+
- The :func:`info` function supports logging both to the log file and to
|
|
69
|
+
the console by using the ``also_console`` argument.
|
|
70
|
+
- The :func:`write` function supports a pseudo log level ``CONSOLE`` that
|
|
71
|
+
can be used for logging both the log file and to the console.
|
|
72
|
+
|
|
73
|
+
Example
|
|
74
|
+
-------
|
|
75
|
+
|
|
76
|
+
::
|
|
77
|
+
|
|
78
|
+
from robot.api import logger
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
def my_keyword(arg: str):
|
|
82
|
+
logger.debug(f"Got argument {arg}.")
|
|
83
|
+
logger.info("<b>Robot Framework</b> rocks!", html=True)
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def another_keyword(arg: int, log_level: logger.LogLevel = "INFO"):
|
|
87
|
+
logger.write(f"Got argument {arg}.", log_level)
|
|
88
|
+
"""
|
|
89
|
+
|
|
90
|
+
import logging
|
|
91
|
+
from typing import Literal
|
|
92
|
+
|
|
93
|
+
from robot.output import librarylogger
|
|
94
|
+
from robot.running.context import EXECUTION_CONTEXTS
|
|
95
|
+
|
|
96
|
+
# LOGLEVEL was introduced in RF 7.0 and naming convention compliant LogLevel in RF 7.4.
|
|
97
|
+
# TODO: Deprecate LOGLEVEL in RF 8.0. Update the above "Log levels" section as well.
|
|
98
|
+
LogLevel = Literal["TRACE", "DEBUG", "INFO", "CONSOLE", "HTML", "WARN", "ERROR"]
|
|
99
|
+
LOGLEVEL = LogLevel
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def write(
|
|
103
|
+
msg: object,
|
|
104
|
+
level: LogLevel = "INFO",
|
|
105
|
+
html: bool = False,
|
|
106
|
+
console: "bool | None" = None,
|
|
107
|
+
):
|
|
108
|
+
"""Writes the message to the log file using the specified level.
|
|
109
|
+
|
|
110
|
+
:param msg: The message to be logged. Converted to string automatically.
|
|
111
|
+
:param level: Either the actual log level to use or a pseudo log level
|
|
112
|
+
``HTML`` or ``CONSOLE``.
|
|
113
|
+
:param html: When set to ``True``, the message is considered to be HTML.
|
|
114
|
+
:param console: Controls writing the message to the console in addition
|
|
115
|
+
to the log file. If ``None`` (default), messages with the ``ERROR`` and
|
|
116
|
+
``WARN`` level are written to the console and others are not.
|
|
117
|
+
|
|
118
|
+
Valid log levels are ``TRACE``, ``DEBUG``, ``INFO`` (default), ``WARN``,
|
|
119
|
+
and ``ERROR``. In addition to that, there are pseudo log levels ``HTML``
|
|
120
|
+
and ``CONSOLE`` for logging messages as HTML and for logging messages
|
|
121
|
+
both to the log file and to the console, respectively. With both of these
|
|
122
|
+
pseudo levels the level in the log file will be ``INFO``.
|
|
123
|
+
|
|
124
|
+
Instead of using this method, it is generally better to use the level
|
|
125
|
+
specific methods such as ``info`` and ``debug``.
|
|
126
|
+
|
|
127
|
+
The ``CONSOLE`` pseudo level is new in Robot Framework 6.1 and
|
|
128
|
+
the ``console`` argument is new in Robot Framework 7.4.
|
|
129
|
+
"""
|
|
130
|
+
if EXECUTION_CONTEXTS.current is not None:
|
|
131
|
+
librarylogger.write(msg, level, html, console)
|
|
132
|
+
else:
|
|
133
|
+
logger = logging.getLogger("RobotFramework")
|
|
134
|
+
level_int = {
|
|
135
|
+
"TRACE": logging.DEBUG // 2,
|
|
136
|
+
"DEBUG": logging.DEBUG,
|
|
137
|
+
"INFO": logging.INFO,
|
|
138
|
+
"CONSOLE": logging.INFO,
|
|
139
|
+
"HTML": logging.INFO,
|
|
140
|
+
"WARN": logging.WARNING,
|
|
141
|
+
"ERROR": logging.ERROR,
|
|
142
|
+
}[level]
|
|
143
|
+
logger.log(level_int, msg)
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
def trace(msg: object, html: bool = False):
|
|
147
|
+
"""Writes the message to the log file using the ``TRACE`` level.
|
|
148
|
+
|
|
149
|
+
:param msg: The message to be logged. Converted to string automatically.
|
|
150
|
+
:param html: When set to ``True``, the message is considered to be HTML.
|
|
151
|
+
"""
|
|
152
|
+
write(msg, "TRACE", html)
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
def debug(msg: object, html: bool = False):
|
|
156
|
+
"""Writes the message to the log file using the ``DEBUG`` level.
|
|
157
|
+
|
|
158
|
+
:param msg: The message to be logged. Converted to string automatically.
|
|
159
|
+
:param html: When set to ``True``, the message is considered to be HTML.
|
|
160
|
+
"""
|
|
161
|
+
write(msg, "DEBUG", html)
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
def info(
|
|
165
|
+
msg: object,
|
|
166
|
+
html: bool = False,
|
|
167
|
+
also_console: bool = False,
|
|
168
|
+
console: bool = False,
|
|
169
|
+
):
|
|
170
|
+
"""Writes the message to the log file using the ``INFO`` level.
|
|
171
|
+
|
|
172
|
+
:param msg: The message to be logged. Converted to string automatically.
|
|
173
|
+
:param html: When set to ``True``, the message is considered to be HTML.
|
|
174
|
+
:param also_console: Deprecated alias for ``console``.
|
|
175
|
+
:param console: When ``True``, the message is logged to the console in
|
|
176
|
+
addition to the log file.
|
|
177
|
+
|
|
178
|
+
The ``console`` argument was introduced in Robot Framework 7.4 as
|
|
179
|
+
a replacement for the older ``also_console`` argument. Both are supported
|
|
180
|
+
for now, but ``also_console`` will be deprecated and removed in the future.
|
|
181
|
+
"""
|
|
182
|
+
write(msg, "INFO", html, also_console or console)
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
def warn(msg: object, html: bool = False, console: bool = True):
|
|
186
|
+
"""Writes the message to the log file using the ``WARN`` level.
|
|
187
|
+
|
|
188
|
+
:param msg: The message to be logged. Converted to string automatically.
|
|
189
|
+
:param html: When set to ``True``, the message is considered to be HTML.
|
|
190
|
+
:param console: When ``False``, the message is not logged to the console.
|
|
191
|
+
New in Robot Framework 7.4.
|
|
192
|
+
"""
|
|
193
|
+
write(msg, "WARN", html, console)
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
def error(msg: object, html: bool = False, console: bool = True):
|
|
197
|
+
"""Writes the message to the log file using the ``ERROR`` level.
|
|
198
|
+
|
|
199
|
+
:param msg: The message to be logged. Converted to string automatically.
|
|
200
|
+
:param html: When set to ``True``, the message is considered to be HTML.
|
|
201
|
+
:param console: When ``False``, the message is not logged to the console.
|
|
202
|
+
New in Robot Framework 7.4.
|
|
203
|
+
"""
|
|
204
|
+
write(msg, "ERROR", html, console)
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
def console(
|
|
208
|
+
msg: object,
|
|
209
|
+
newline: bool = True,
|
|
210
|
+
stream: Literal["stdout", "stderr"] = "stdout",
|
|
211
|
+
):
|
|
212
|
+
"""Writes the message to the console.
|
|
213
|
+
|
|
214
|
+
:param msg: The message to be logged. Converted to string automatically.
|
|
215
|
+
:param newline: When ``True``, a newline character is automatically added
|
|
216
|
+
to the message.
|
|
217
|
+
:param stream: Name of the standard stream to write the message to.
|
|
218
|
+
"""
|
|
219
|
+
librarylogger.console(msg, newline, stream)
|
|
@@ -174,7 +174,7 @@ class _BaseSettings:
|
|
|
174
174
|
collect = show = level
|
|
175
175
|
try:
|
|
176
176
|
collect, show = LogLevel(collect), LogLevel(show)
|
|
177
|
-
except
|
|
177
|
+
except ValueError as err:
|
|
178
178
|
self._raise_invalid("LogLevel", str(err))
|
|
179
179
|
if collect.priority > show.priority:
|
|
180
180
|
self._raise_invalid(
|
|
@@ -52,10 +52,10 @@ class HtmlFileWriter:
|
|
|
52
52
|
|
|
53
53
|
|
|
54
54
|
class Writer(ABC):
|
|
55
|
-
|
|
55
|
+
handles_lines: "str | tuple[str, ...]" = ()
|
|
56
56
|
|
|
57
|
-
def handles(self, line: str):
|
|
58
|
-
return line.startswith(self.
|
|
57
|
+
def handles(self, line: str) -> bool:
|
|
58
|
+
return line.strip().startswith(self.handles_lines)
|
|
59
59
|
|
|
60
60
|
@abstractmethod
|
|
61
61
|
def write(self, line: str):
|
|
@@ -63,10 +63,7 @@ class Writer(ABC):
|
|
|
63
63
|
|
|
64
64
|
|
|
65
65
|
class ModelWriter(Writer, ABC):
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
def handles(self, line: str):
|
|
69
|
-
return line.strip().startswith(self.handles_line)
|
|
66
|
+
handles_lines = "<!-- JS MODEL -->"
|
|
70
67
|
|
|
71
68
|
|
|
72
69
|
class LineWriter(Writer):
|
|
@@ -74,7 +71,7 @@ class LineWriter(Writer):
|
|
|
74
71
|
def __init__(self, output: TextIOBase):
|
|
75
72
|
self.output = output
|
|
76
73
|
|
|
77
|
-
def handles(self, line: str):
|
|
74
|
+
def handles(self, line: str) -> bool:
|
|
78
75
|
return True
|
|
79
76
|
|
|
80
77
|
def write(self, line: str):
|
|
@@ -82,7 +79,7 @@ class LineWriter(Writer):
|
|
|
82
79
|
|
|
83
80
|
|
|
84
81
|
class GeneratorWriter(Writer):
|
|
85
|
-
|
|
82
|
+
handles_lines = ('<meta name="Generator" content=', "<meta name=Generator content")
|
|
86
83
|
|
|
87
84
|
def __init__(self, writer: HtmlWriter):
|
|
88
85
|
self.writer = writer
|
|
@@ -106,7 +103,7 @@ class InliningWriter(Writer, ABC):
|
|
|
106
103
|
|
|
107
104
|
|
|
108
105
|
class JsFileWriter(InliningWriter):
|
|
109
|
-
|
|
106
|
+
handles_lines = '<script type="text/javascript" src='
|
|
110
107
|
|
|
111
108
|
def write(self, line: str):
|
|
112
109
|
src = re.search('src="([^"]+)"', line).group(1)
|
|
@@ -114,7 +111,7 @@ class JsFileWriter(InliningWriter):
|
|
|
114
111
|
|
|
115
112
|
|
|
116
113
|
class CssFileWriter(InliningWriter):
|
|
117
|
-
|
|
114
|
+
handles_lines = '<link rel="stylesheet"'
|
|
118
115
|
|
|
119
116
|
def write(self, line: str):
|
|
120
117
|
href, media = re.search('href="([^"]+)" media="([^"]+)"', line).groups()
|