robotframework 6.1.1__zip → 7.0__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.
Files changed (307) hide show
  1. {robotframework-6.1.1 → robotframework-7.0}/INSTALL.rst +25 -25
  2. {robotframework-6.1.1 → robotframework-7.0}/PKG-INFO +6 -8
  3. {robotframework-6.1.1 → robotframework-7.0}/README.rst +3 -2
  4. {robotframework-6.1.1 → robotframework-7.0}/setup.py +3 -6
  5. {robotframework-6.1.1 → robotframework-7.0}/src/robot/api/__init__.py +4 -1
  6. {robotframework-6.1.1 → robotframework-7.0}/src/robot/api/deco.py +60 -14
  7. {robotframework-6.1.1 → robotframework-7.0}/src/robot/api/exceptions.py +6 -6
  8. {robotframework-6.1.1 → robotframework-7.0}/src/robot/api/interfaces.py +402 -67
  9. {robotframework-6.1.1 → robotframework-7.0}/src/robot/api/logger.py +27 -20
  10. {robotframework-6.1.1 → robotframework-7.0}/src/robot/api/parsing.py +4 -2
  11. robotframework-7.0/src/robot/api/py.typed +0 -0
  12. {robotframework-6.1.1 → robotframework-7.0}/src/robot/conf/gatherfailed.py +2 -2
  13. {robotframework-6.1.1 → robotframework-7.0}/src/robot/conf/languages.py +0 -9
  14. {robotframework-6.1.1 → robotframework-7.0}/src/robot/conf/settings.py +21 -14
  15. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/common/storage.js +11 -6
  16. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/htmlfilewriter.py +1 -1
  17. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/libdoc/libdoc.css +10 -2
  18. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/libdoc/libdoc.html +10 -0
  19. robotframework-7.0/src/robot/htmldata/rebot/common.css +362 -0
  20. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/doc_formatting.css +13 -7
  21. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/log.css +51 -10
  22. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/log.html +14 -23
  23. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/model.js +2 -4
  24. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/report.css +83 -19
  25. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/report.html +22 -7
  26. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/testdata.js +10 -3
  27. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/view.js +84 -0
  28. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/template.py +3 -3
  29. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/builder.py +0 -8
  30. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/datatypes.py +9 -10
  31. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/htmlutils.py +4 -7
  32. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/jsonbuilder.py +38 -20
  33. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/model.py +21 -28
  34. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/robotbuilder.py +50 -31
  35. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/standardtypes.py +9 -1
  36. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/xmlbuilder.py +35 -20
  37. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/xmlwriter.py +18 -38
  38. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/BuiltIn.py +255 -205
  39. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/Collections.py +384 -240
  40. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/DateTime.py +73 -60
  41. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/OperatingSystem.py +6 -5
  42. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/Process.py +26 -27
  43. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/Remote.py +40 -36
  44. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/String.py +66 -76
  45. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/XML.py +66 -59
  46. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/__init__.py +2 -2
  47. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/__init__.py +5 -5
  48. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/body.py +44 -13
  49. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/configurer.py +15 -11
  50. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/control.py +226 -84
  51. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/filter.py +31 -25
  52. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/itemlist.py +9 -8
  53. robotframework-7.0/src/robot/model/keyword.py +77 -0
  54. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/message.py +19 -10
  55. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/modelobject.py +25 -7
  56. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/namepatterns.py +3 -25
  57. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/stats.py +9 -15
  58. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/tags.py +1 -1
  59. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/testcase.py +15 -27
  60. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/testsuite.py +17 -26
  61. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/visitor.py +35 -8
  62. robotframework-7.0/src/robot/output/console/dotted.py +90 -0
  63. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/console/quiet.py +3 -2
  64. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/console/verbose.py +61 -61
  65. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/debugfile.py +39 -24
  66. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/filelogger.py +18 -15
  67. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/librarylogger.py +3 -2
  68. robotframework-7.0/src/robot/output/listeners.py +753 -0
  69. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/logger.py +216 -80
  70. robotframework-7.0/src/robot/output/loggerapi.py +215 -0
  71. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/loggerhelper.py +23 -56
  72. robotframework-7.0/src/robot/output/output.py +185 -0
  73. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/stdoutlogsplitter.py +8 -5
  74. robotframework-7.0/src/robot/output/xmllogger.py +459 -0
  75. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/lexer/blocklexers.py +17 -13
  76. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/lexer/context.py +12 -2
  77. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/lexer/lexer.py +1 -1
  78. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/lexer/settings.py +6 -3
  79. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/lexer/statementlexers.py +39 -10
  80. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/lexer/tokens.py +27 -29
  81. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/model/blocks.py +19 -6
  82. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/model/statements.py +193 -94
  83. robotframework-7.0/src/robot/parsing/model/visitor.py +100 -0
  84. {robotframework-6.1.1 → robotframework-7.0}/src/robot/rebot.py +2 -0
  85. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/expandkeywordmatcher.py +1 -1
  86. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/jsbuildingcontext.py +8 -6
  87. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/jsmodelbuilders.py +88 -61
  88. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/logreportwriters.py +16 -10
  89. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/outputwriter.py +18 -2
  90. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/resultwriter.py +4 -4
  91. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/stringcache.py +3 -3
  92. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/xunitwriter.py +15 -21
  93. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/__init__.py +3 -2
  94. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/configurer.py +12 -9
  95. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/executionresult.py +56 -8
  96. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/flattenkeywordmatcher.py +48 -9
  97. robotframework-7.0/src/robot/result/keywordremover.py +207 -0
  98. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/merger.py +1 -1
  99. robotframework-7.0/src/robot/result/model.py +1185 -0
  100. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/modeldeprecation.py +9 -3
  101. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/resultbuilder.py +46 -36
  102. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/xmlelementhandlers.py +83 -43
  103. {robotframework-6.1.1 → robotframework-7.0}/src/robot/run.py +2 -0
  104. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/__init__.py +14 -4
  105. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/arguments/__init__.py +2 -1
  106. robotframework-7.0/src/robot/running/arguments/argumentconverter.py +100 -0
  107. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/arguments/argumentmapper.py +26 -24
  108. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/arguments/argumentparser.py +82 -60
  109. robotframework-7.0/src/robot/running/arguments/argumentresolver.py +158 -0
  110. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/arguments/argumentspec.py +83 -116
  111. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/arguments/argumentvalidator.py +33 -27
  112. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/arguments/customconverters.py +15 -12
  113. robotframework-7.0/src/robot/running/arguments/embedded.py +145 -0
  114. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/arguments/typeconverters.py +233 -213
  115. robotframework-7.0/src/robot/running/arguments/typeinfo.py +317 -0
  116. robotframework-7.0/src/robot/running/arguments/typeinfoparser.py +219 -0
  117. robotframework-7.0/src/robot/running/arguments/typevalidator.py +60 -0
  118. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/bodyrunner.py +147 -129
  119. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/builder/builders.py +2 -1
  120. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/builder/parsers.py +10 -11
  121. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/builder/settings.py +9 -17
  122. robotframework-7.0/src/robot/running/builder/transformers.py +535 -0
  123. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/context.py +113 -31
  124. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/dynamicmethods.py +62 -34
  125. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/importer.py +27 -49
  126. robotframework-7.0/src/robot/running/invalidkeyword.py +67 -0
  127. robotframework-7.0/src/robot/running/keywordfinder.py +91 -0
  128. robotframework-7.0/src/robot/running/keywordimplementation.py +164 -0
  129. robotframework-7.0/src/robot/running/librarykeyword.py +392 -0
  130. robotframework-7.0/src/robot/running/librarykeywordrunner.py +250 -0
  131. robotframework-7.0/src/robot/running/libraryscopes.py +115 -0
  132. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/model.py +195 -377
  133. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/namespace.py +124 -137
  134. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/outputcapture.py +20 -12
  135. robotframework-7.0/src/robot/running/resourcemodel.py +448 -0
  136. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/statusreporter.py +16 -13
  137. robotframework-7.0/src/robot/running/suiterunner.py +265 -0
  138. robotframework-7.0/src/robot/running/testlibraries.py +500 -0
  139. robotframework-7.0/src/robot/running/userkeywordrunner.py +260 -0
  140. {robotframework-6.1.1 → robotframework-7.0}/src/robot/testdoc.py +18 -13
  141. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/__init__.py +53 -35
  142. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/connectioncache.py +64 -59
  143. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/dotdict.py +3 -0
  144. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/encodingsniffer.py +1 -1
  145. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/escaping.py +19 -19
  146. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/importer.py +2 -2
  147. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/markupwriters.py +23 -15
  148. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/misc.py +1 -2
  149. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/normalizing.py +9 -24
  150. robotframework-7.0/src/robot/utils/notset.py +33 -0
  151. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/platform.py +15 -5
  152. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/robotio.py +9 -9
  153. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/robotpath.py +1 -0
  154. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/robottime.py +122 -90
  155. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/robottypes.py +21 -31
  156. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/setter.py +0 -5
  157. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/text.py +7 -4
  158. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/unic.py +2 -2
  159. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/__init__.py +2 -2
  160. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/assigner.py +17 -19
  161. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/evaluation.py +20 -17
  162. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/filesetter.py +80 -80
  163. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/replacer.py +33 -36
  164. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/scopes.py +17 -12
  165. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/search.py +66 -41
  166. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/store.py +14 -16
  167. robotframework-7.0/src/robot/variables/tablesetter.py +164 -0
  168. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/variables.py +1 -1
  169. {robotframework-6.1.1 → robotframework-7.0}/src/robot/version.py +1 -1
  170. {robotframework-6.1.1 → robotframework-7.0}/src/robotframework.egg-info/PKG-INFO +6 -8
  171. {robotframework-6.1.1 → robotframework-7.0}/src/robotframework.egg-info/SOURCES.txt +10 -8
  172. {robotframework-6.1.1 → robotframework-7.0}/tasks.py +6 -6
  173. robotframework-6.1.1/src/robot/htmldata/rebot/common.css +0 -239
  174. robotframework-6.1.1/src/robot/libraries/Reserved.py +0 -48
  175. robotframework-6.1.1/src/robot/model/keyword.py +0 -173
  176. robotframework-6.1.1/src/robot/output/console/dotted.py +0 -90
  177. robotframework-6.1.1/src/robot/output/listenerarguments.py +0 -165
  178. robotframework-6.1.1/src/robot/output/listenermethods.py +0 -113
  179. robotframework-6.1.1/src/robot/output/listeners.py +0 -174
  180. robotframework-6.1.1/src/robot/output/output.py +0 -95
  181. robotframework-6.1.1/src/robot/output/xmllogger.py +0 -354
  182. robotframework-6.1.1/src/robot/parsing/model/visitor.py +0 -67
  183. robotframework-6.1.1/src/robot/result/keywordremover.py +0 -183
  184. robotframework-6.1.1/src/robot/result/model.py +0 -957
  185. robotframework-6.1.1/src/robot/running/arguments/argumentconverter.py +0 -79
  186. robotframework-6.1.1/src/robot/running/arguments/argumentresolver.py +0 -131
  187. robotframework-6.1.1/src/robot/running/arguments/embedded.py +0 -146
  188. robotframework-6.1.1/src/robot/running/arguments/typevalidator.py +0 -56
  189. robotframework-6.1.1/src/robot/running/builder/transformers.py +0 -642
  190. robotframework-6.1.1/src/robot/running/handlers.py +0 -321
  191. robotframework-6.1.1/src/robot/running/handlerstore.py +0 -66
  192. robotframework-6.1.1/src/robot/running/librarykeywordrunner.py +0 -238
  193. robotframework-6.1.1/src/robot/running/libraryscopes.py +0 -97
  194. robotframework-6.1.1/src/robot/running/modelcombiner.py +0 -32
  195. robotframework-6.1.1/src/robot/running/suiterunner.py +0 -248
  196. robotframework-6.1.1/src/robot/running/testlibraries.py +0 -423
  197. robotframework-6.1.1/src/robot/running/usererrorhandler.py +0 -75
  198. robotframework-6.1.1/src/robot/running/userkeyword.py +0 -111
  199. robotframework-6.1.1/src/robot/running/userkeywordrunner.py +0 -274
  200. robotframework-6.1.1/src/robot/variables/tablesetter.py +0 -156
  201. {robotframework-6.1.1 → robotframework-7.0}/AUTHORS.rst +0 -0
  202. {robotframework-6.1.1 → robotframework-7.0}/BUILD.rst +0 -0
  203. {robotframework-6.1.1 → robotframework-7.0}/CONTRIBUTING.rst +0 -0
  204. {robotframework-6.1.1 → robotframework-7.0}/COPYRIGHT.txt +0 -0
  205. {robotframework-6.1.1 → robotframework-7.0}/LICENSE.txt +0 -0
  206. {robotframework-6.1.1 → robotframework-7.0}/MANIFEST.in +0 -0
  207. {robotframework-6.1.1 → robotframework-7.0}/setup.cfg +0 -0
  208. {robotframework-6.1.1 → robotframework-7.0}/src/robot/__init__.py +0 -0
  209. {robotframework-6.1.1 → robotframework-7.0}/src/robot/__main__.py +0 -0
  210. {robotframework-6.1.1 → robotframework-7.0}/src/robot/conf/__init__.py +0 -0
  211. {robotframework-6.1.1 → robotframework-7.0}/src/robot/errors.py +0 -0
  212. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/__init__.py +0 -0
  213. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/common/__init__.py +0 -0
  214. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/common/js_disabled.css +0 -0
  215. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/jsonwriter.py +0 -0
  216. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/lib/__init__.py +0 -0
  217. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/lib/jquery.highlight.min.js +0 -0
  218. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/lib/jquery.min.js +0 -0
  219. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/lib/jquery.tablesorter.min.js +0 -0
  220. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/lib/jquery.tmpl.min.js +0 -0
  221. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/lib/jsxcompressor.min.js +0 -0
  222. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/libdoc/__init__.py +0 -0
  223. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/libdoc/doc_formatting.css +0 -0
  224. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/libdoc/print.css +0 -0
  225. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/libdoc/pygments.css +0 -0
  226. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/__init__.py +0 -0
  227. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/fileloading.js +0 -0
  228. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/log.js +0 -0
  229. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/print.css +0 -0
  230. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/rebot/util.js +0 -0
  231. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/testdoc/__init__.py +0 -0
  232. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/testdoc/testdoc.css +0 -0
  233. {robotframework-6.1.1 → robotframework-7.0}/src/robot/htmldata/testdoc/testdoc.html +0 -0
  234. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdoc.py +0 -0
  235. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/__init__.py +0 -0
  236. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/consoleviewer.py +0 -0
  237. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/htmlwriter.py +0 -0
  238. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/jsonwriter.py +0 -0
  239. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/output.py +0 -0
  240. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libdocpkg/writer.py +0 -0
  241. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/Dialogs.py +0 -0
  242. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/Easter.py +0 -0
  243. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/Screenshot.py +0 -0
  244. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/Telnet.py +0 -0
  245. {robotframework-6.1.1 → robotframework-7.0}/src/robot/libraries/dialogs_py.py +0 -0
  246. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/fixture.py +0 -0
  247. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/metadata.py +0 -0
  248. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/modifier.py +0 -0
  249. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/statistics.py +0 -0
  250. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/suitestatistics.py +0 -0
  251. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/tagsetter.py +0 -0
  252. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/tagstatistics.py +0 -0
  253. {robotframework-6.1.1 → robotframework-7.0}/src/robot/model/totalstatistics.py +0 -0
  254. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/__init__.py +0 -0
  255. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/console/__init__.py +0 -0
  256. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/console/highlighting.py +0 -0
  257. {robotframework-6.1.1 → robotframework-7.0}/src/robot/output/pyloggingconf.py +0 -0
  258. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/__init__.py +0 -0
  259. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/lexer/__init__.py +0 -0
  260. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/lexer/tokenizer.py +0 -0
  261. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/model/__init__.py +0 -0
  262. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/parser/__init__.py +0 -0
  263. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/parser/blockparsers.py +0 -0
  264. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/parser/fileparser.py +0 -0
  265. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/parser/parser.py +0 -0
  266. {robotframework-6.1.1 → robotframework-7.0}/src/robot/parsing/suitestructure.py +0 -0
  267. {robotframework-6.1.1 → robotframework-7.0}/src/robot/pythonpathsetter.py +0 -0
  268. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/__init__.py +0 -0
  269. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/jsexecutionresult.py +0 -0
  270. {robotframework-6.1.1 → robotframework-7.0}/src/robot/reporting/jswriter.py +0 -0
  271. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/executionerrors.py +0 -0
  272. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/messagefilter.py +0 -0
  273. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/suiteteardownfailed.py +0 -0
  274. {robotframework-6.1.1 → robotframework-7.0}/src/robot/result/visitor.py +0 -0
  275. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/builder/__init__.py +0 -0
  276. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/randomizer.py +0 -0
  277. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/runkwregister.py +0 -0
  278. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/signalhandler.py +0 -0
  279. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/status.py +0 -0
  280. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/timeouts/__init__.py +0 -0
  281. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/timeouts/posix.py +0 -0
  282. {robotframework-6.1.1 → robotframework-7.0}/src/robot/running/timeouts/windows.py +0 -0
  283. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/application.py +0 -0
  284. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/argumentparser.py +0 -0
  285. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/asserts.py +0 -0
  286. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/charwidth.py +0 -0
  287. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/compress.py +0 -0
  288. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/encoding.py +0 -0
  289. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/error.py +0 -0
  290. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/etreewrapper.py +0 -0
  291. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/filereader.py +0 -0
  292. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/frange.py +0 -0
  293. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/htmlformatters.py +0 -0
  294. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/markuputils.py +0 -0
  295. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/match.py +0 -0
  296. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/recommendations.py +0 -0
  297. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/restreader.py +0 -0
  298. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/robotenv.py +0 -0
  299. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/robotinspect.py +0 -0
  300. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/sortable.py +0 -0
  301. {robotframework-6.1.1 → robotframework-7.0}/src/robot/utils/typehints.py +0 -0
  302. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/finders.py +0 -0
  303. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/notfound.py +0 -0
  304. {robotframework-6.1.1 → robotframework-7.0}/src/robot/variables/resolvable.py +0 -0
  305. {robotframework-6.1.1 → robotframework-7.0}/src/robotframework.egg-info/dependency_links.txt +0 -0
  306. {robotframework-6.1.1 → robotframework-7.0}/src/robotframework.egg-info/entry_points.txt +0 -0
  307. {robotframework-6.1.1 → robotframework-7.0}/src/robotframework.egg-info/top_level.txt +0 -0
@@ -34,9 +34,6 @@ base class.
34
34
  .. note:: These classes are not exposed via the top level :mod:`robot.api`
35
35
  package and need to imported via :mod:`robot.api.interfaces`.
36
36
 
37
- .. note:: Using this module requires having the typing_extensions__ module
38
- installed when using Python 3.6 or 3.7.
39
-
40
37
  This module is new in Robot Framework 6.1.
41
38
 
42
39
  __ http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#dynamic-library-api
@@ -44,22 +41,12 @@ __ http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#
44
41
  __ http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#listener-version-2
45
42
  __ http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#listener-version-3
46
43
  __ http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#parser-interface
47
- __ https://pypi.org/project/typing-extensions/
48
44
  """
49
45
 
50
46
  import sys
51
47
  from abc import ABC, abstractmethod
52
48
  from pathlib import Path
53
- from typing import Any, Dict, List, Optional, Sequence, Tuple, Union
54
- # Need to use version check and not try/except to support Mypy's stubgen.
55
- if sys.version_info >= (3, 8):
56
- from typing import TypedDict
57
- else:
58
- try:
59
- from typing_extensions import TypedDict
60
- except ImportError:
61
- raise ImportError("Using the 'robot.api.interfaces' module requires having "
62
- "the 'typing_extensions' module installed with Python < 3.8.")
49
+ from typing import Any, Mapping, Sequence, TypedDict, Union
63
50
  if sys.version_info >= (3, 10):
64
51
  from types import UnionType
65
52
  else:
@@ -72,32 +59,32 @@ from robot.running import TestDefaults, TestSuite
72
59
 
73
60
  # Type aliases used by DynamicLibrary and HybridLibrary.
74
61
  Name = str
75
- PositArgs = List[Any]
76
- NamedArgs = Dict[str, Any]
62
+ PositArgs = Sequence[Any]
63
+ NamedArgs = Mapping[str, Any]
77
64
  Documentation = str
78
- Arguments = List[
65
+ Arguments = Sequence[
79
66
  Union[
80
- str, # Name with possible default like `arg` or `arg=1`.
81
- Tuple[str], # Name without a default like `('arg',)`.
82
- Tuple[str, Any] # Name and default like `('arg', 1)`.
67
+ str, # Name with possible default like `arg` or `arg=1`.
68
+ 'tuple[str]', # Name without a default like `('arg',)`.
69
+ 'tuple[str, Any]' # Name and default like `('arg', 1)`.
83
70
  ]
84
71
  ]
85
- Type = Union[
86
- type, # Actual type.
87
- str, # Type name or alias.
88
- UnionType, # Union syntax (e.g. `int | float`).
89
- Tuple[Union[type, str], ...] # Tuple of types. Behaves like union.
72
+ TypeHint = Union[
73
+ type, # Actual type.
74
+ str, # Type name or alias.
75
+ UnionType, # Union syntax (e.g. `int | float`).
76
+ 'tuple[TypeHint, ...]' # Tuple of type hints. Behaves like a union.
90
77
  ]
91
- Types = Union[
92
- Dict[str, Type], # Types by name.
93
- List[ # Types by position.
78
+ TypeHints = Union[
79
+ Mapping[str, TypeHint], # Types by name.
80
+ Sequence[ # Types by position.
94
81
  Union[
95
- Type, # Type info.
96
- None # No type info.
82
+ TypeHint, # Type hint.
83
+ None # No type hint.
97
84
  ]
98
85
  ]
99
86
  ]
100
- Tags = List[str]
87
+ Tags = Sequence[str]
101
88
  Source = str
102
89
 
103
90
 
@@ -112,7 +99,7 @@ class DynamicLibrary(ABC):
112
99
  """
113
100
 
114
101
  @abstractmethod
115
- def get_keyword_names(self) -> List[Name]:
102
+ def get_keyword_names(self) -> Sequence[Name]:
116
103
  """Return names of the keywords this library implements.
117
104
 
118
105
  :return: Keyword names as a list of strings.
@@ -137,7 +124,7 @@ class DynamicLibrary(ABC):
137
124
  """
138
125
  raise NotImplementedError
139
126
 
140
- def get_keyword_documentation(self, name: Name) -> Optional[Documentation]:
127
+ def get_keyword_documentation(self, name: Name) -> 'Documentation | None':
141
128
  """Optional method to return keyword documentation.
142
129
 
143
130
  The first logical line of keyword documentation is shown in
@@ -155,7 +142,7 @@ class DynamicLibrary(ABC):
155
142
  """
156
143
  return None
157
144
 
158
- def get_keyword_arguments(self, name: Name) -> Optional[Arguments]:
145
+ def get_keyword_arguments(self, name: Name) -> 'Arguments | None':
159
146
  """Optional method to return keyword's argument specification.
160
147
 
161
148
  Returned information is used during execution for argument validation.
@@ -198,7 +185,7 @@ class DynamicLibrary(ABC):
198
185
  """
199
186
  return None
200
187
 
201
- def get_keyword_types(self, name: Name) -> Optional[Types]:
188
+ def get_keyword_types(self, name: Name) -> 'TypeHints | None':
202
189
  """Optional method to return keyword's type specification.
203
190
 
204
191
  Type information is used for automatic argument conversion during
@@ -231,7 +218,7 @@ class DynamicLibrary(ABC):
231
218
  """
232
219
  return None
233
220
 
234
- def get_keyword_tags(self, name: Name) -> Optional[Tags]:
221
+ def get_keyword_tags(self, name: Name) -> 'Tags | None':
235
222
  """Optional method to return keyword's tags.
236
223
 
237
224
  Tags are shown in the execution log and in documentation generated by
@@ -242,7 +229,7 @@ class DynamicLibrary(ABC):
242
229
  """
243
230
  return None
244
231
 
245
- def get_keyword_source(self, name: Name) -> Optional[Source]:
232
+ def get_keyword_source(self, name: Name) -> 'Source | None':
246
233
  """Optional method to return keyword's source path and line number.
247
234
 
248
235
  Source information is used by IDEs to provide navigation from
@@ -281,7 +268,7 @@ class HybridLibrary(ABC):
281
268
  """
282
269
 
283
270
  @abstractmethod
284
- def get_keyword_names(self) -> List[Name]:
271
+ def get_keyword_names(self) -> Sequence[Name]:
285
272
  """Return names of the implemented keyword methods as a list or strings.
286
273
 
287
274
  Returned names must match names of the implemented keyword methods.
@@ -299,10 +286,10 @@ class StartSuiteAttributes(TypedDict):
299
286
  id: str
300
287
  longname: str
301
288
  doc: str
302
- metadata: dict
289
+ metadata: 'dict[str, str]'
303
290
  source: str
304
- suites: List[str]
305
- tests: List[str]
291
+ suites: 'list[str]'
292
+ tests: 'list[str]'
306
293
  totaltests: int
307
294
  starttime: str
308
295
 
@@ -328,7 +315,7 @@ class StartTestAttributes(TypedDict):
328
315
  longname: str
329
316
  originalname: str
330
317
  doc: str
331
- tags: List[str]
318
+ tags: 'list[str]'
332
319
  template: str
333
320
  source: str
334
321
  lineno: int
@@ -352,22 +339,18 @@ class OptionalKeywordAttributes(TypedDict, total=False):
352
339
  These attributes are included with control structures. For example, with
353
340
  IF structures attributes include ``condition``.
354
341
  """
355
- # FOR
356
- variables: List[str]
342
+ # FOR / ITERATION with FOR
343
+ variables: 'list[str] | dict[str, str]'
357
344
  flavor: str
358
- values: List[str]
359
- # ITERATION with FOR
360
- variables: Dict[str, str]
345
+ values: 'list[str]' # Also RETURN
361
346
  # WHILE and IF
362
347
  condition: str
363
348
  # WHILE
364
349
  limit: str
365
350
  # EXCEPT
366
- patterns: List[str]
351
+ patterns: 'list[str]'
367
352
  pattern_type: str
368
353
  variable: str
369
- # RETURN
370
- values: List[str]
371
354
 
372
355
 
373
356
  class StartKeywordAttributes(OptionalKeywordAttributes):
@@ -379,9 +362,9 @@ class StartKeywordAttributes(OptionalKeywordAttributes):
379
362
  kwname: str
380
363
  libname: str
381
364
  doc: str
382
- args: List[str]
383
- assign: List[str]
384
- tags: List[str]
365
+ args: 'list[str]'
366
+ assign: 'list[str]'
367
+ tags: 'list[str]'
385
368
  source: str
386
369
  lineno: int
387
370
  status: str
@@ -413,10 +396,10 @@ class LibraryAttributes(TypedDict):
413
396
 
414
397
  See the User Guide for more information.
415
398
  """
416
- args: List[str]
399
+ args: 'list[str]'
417
400
  originalname: str
418
401
  source: str
419
- importer: Union[str, None]
402
+ importer: 'str | None'
420
403
 
421
404
 
422
405
  class ResourceAttributes(TypedDict):
@@ -425,7 +408,7 @@ class ResourceAttributes(TypedDict):
425
408
  See the User Guide for more information.
426
409
  """
427
410
  source: str
428
- importer: Union[str, None]
411
+ importer: 'str | None'
429
412
 
430
413
 
431
414
  class VariablesAttributes(TypedDict):
@@ -433,13 +416,13 @@ class VariablesAttributes(TypedDict):
433
416
 
434
417
  See the User Guide for more information.
435
418
  """
436
- args: List[str]
419
+ args: 'list[str]'
437
420
  source: str
438
- importer: Union[str, None]
421
+ importer: 'str | None'
439
422
 
440
423
 
441
424
  class ListenerV2:
442
- """Optional base class for listeners using the listener API v2."""
425
+ """Optional base class for listeners using the listener API version 2."""
443
426
  ROBOT_LISTENER_API_VERSION = 2
444
427
 
445
428
  def start_suite(self, name: str, attributes: StartSuiteAttributes):
@@ -518,7 +501,7 @@ class ListenerV2:
518
501
 
519
502
 
520
503
  class ListenerV3:
521
- """Optional base class for listeners using the listener API v3."""
504
+ """Optional base class for listeners using the listener API version 3."""
522
505
  ROBOT_LISTENER_API_VERSION = 3
523
506
 
524
507
  def start_suite(self, data: running.TestSuite, result: result.TestSuite):
@@ -531,7 +514,359 @@ class ListenerV3:
531
514
  """Called when a test or task starts."""
532
515
 
533
516
  def end_test(self, data: running.TestCase, result: result.TestCase):
534
- """Called when a test or ends starts."""
517
+ """Called when a test or tasks ends."""
518
+
519
+ def start_keyword(self, data: running.Keyword, result: result.Keyword):
520
+ """Called when a keyword starts by default.
521
+
522
+ This method is called, by default, with user keywords, library keywords
523
+ and when a keyword call is invalid. It is not called, however, if a more
524
+ specific :meth:`start_user_keyword`, :meth:`start_library_keyword` or
525
+ :meth:`start_invalid_keyword` method is implemented.
526
+
527
+ The default implementation calls :meth:`start_body_item`.
528
+
529
+ New in Robot Framework 7.0.
530
+ """
531
+ self.start_body_item(data, result)
532
+
533
+ def end_keyword(self, data: running.Keyword, result: result.Keyword):
534
+ """Called when a keyword ends by default.
535
+
536
+ This method is called, by default, with user keywords, library keywords
537
+ and when a keyword call is invalid. It is not called, however, if a more
538
+ specific :meth:`end_user_keyword`, :meth:`end_library_keyword` or
539
+ :meth:`end_invalid_keyword` method is implemented.
540
+
541
+ The default implementation calls :meth:`end_body_item`.
542
+
543
+ New in Robot Framework 7.0.
544
+ """
545
+ self.end_body_item(data, result)
546
+
547
+ def start_user_keyword(self, data: running.Keyword,
548
+ implementation: running.UserKeyword,
549
+ result: result.Keyword):
550
+ """Called when a user keyword starts.
551
+
552
+ The default implementation calls :meth:`start_keyword`.
553
+
554
+ New in Robot Framework 7.0.
555
+ """
556
+ self.start_keyword(data, result)
557
+
558
+ def end_user_keyword(self, data: running.Keyword,
559
+ implementation: running.UserKeyword,
560
+ result: result.Keyword):
561
+ """Called when a user keyword ends.
562
+
563
+ The default implementation calls :meth:`end_keyword`.
564
+
565
+ New in Robot Framework 7.0.
566
+ """
567
+ self.end_keyword(data, result)
568
+
569
+ def start_library_keyword(self, data: running.Keyword,
570
+ implementation: running.LibraryKeyword,
571
+ result: result.Keyword):
572
+ """Called when a library keyword starts.
573
+
574
+ The default implementation calls :meth:`start_keyword`.
575
+
576
+ New in Robot Framework 7.0.
577
+ """
578
+ self.start_keyword(data, result)
579
+
580
+ def end_library_keyword(self, data: running.Keyword,
581
+ implementation: running.LibraryKeyword,
582
+ result: result.Keyword):
583
+ """Called when a library keyword ends.
584
+
585
+ The default implementation calls :meth:`start_keyword`.
586
+
587
+ New in Robot Framework 7.0.
588
+ """
589
+ self.end_keyword(data, result)
590
+
591
+ def start_invalid_keyword(self, data: running.Keyword,
592
+ implementation: running.KeywordImplementation,
593
+ result: result.Keyword):
594
+ """Called when an invalid keyword call starts.
595
+
596
+ Keyword may not have been found, there could have been multiple matches,
597
+ or the keyword call itself could have been invalid.
598
+
599
+ The default implementation calls :meth:`start_keyword`.
600
+
601
+ New in Robot Framework 7.0.
602
+ """
603
+ self.start_keyword(data, result)
604
+
605
+ def end_invalid_keyword(self, data: running.Keyword,
606
+ implementation: running.KeywordImplementation,
607
+ result: result.Keyword):
608
+ """Called when an invalid keyword call ends.
609
+
610
+ Keyword may not have been found, there could have been multiple matches,
611
+ or the keyword call itself could have been invalid.
612
+
613
+ The default implementation calls :meth:`end_keyword`.
614
+
615
+ New in Robot Framework 7.0.
616
+ """
617
+ self.end_keyword(data, result)
618
+
619
+ def start_for(self, data: running.For, result: result.For):
620
+ """Called when a FOR loop starts.
621
+
622
+ The default implementation calls :meth:`start_body_item`.
623
+
624
+ New in Robot Framework 7.0.
625
+ """
626
+ self.start_body_item(data, result)
627
+
628
+ def end_for(self, data: running.For, result: result.For):
629
+ """Called when a FOR loop ends.
630
+
631
+ The default implementation calls :meth:`end_body_item`.
632
+
633
+ New in Robot Framework 7.0.
634
+ """
635
+ self.end_body_item(data, result)
636
+
637
+ def start_for_iteration(self, data: running.ForIteration,
638
+ result: result.ForIteration):
639
+ """Called when a FOR loop iteration starts.
640
+
641
+ The default implementation calls :meth:`start_body_item`.
642
+
643
+ New in Robot Framework 7.0.
644
+ """
645
+ self.start_body_item(data, result)
646
+
647
+ def end_for_iteration(self, data: running.ForIteration,
648
+ result: result.ForIteration):
649
+ """Called when a FOR loop iteration ends.
650
+
651
+ The default implementation calls :meth:`end_body_item`.
652
+
653
+ New in Robot Framework 7.0.
654
+ """
655
+ self.end_body_item(data, result)
656
+
657
+ def start_while(self, data: running.While, result: result.While):
658
+ """Called when a WHILE loop starts.
659
+
660
+ The default implementation calls :meth:`start_body_item`.
661
+
662
+ New in Robot Framework 7.0.
663
+ """
664
+ self.start_body_item(data, result)
665
+
666
+ def end_while(self, data: running.While, result: result.While):
667
+ """Called when a WHILE loop ends.
668
+
669
+ The default implementation calls :meth:`end_body_item`.
670
+
671
+ New in Robot Framework 7.0.
672
+ """
673
+ self.end_body_item(data, result)
674
+
675
+ def start_while_iteration(self, data: running.WhileIteration,
676
+ result: result.WhileIteration):
677
+ """Called when a WHILE loop iteration starts.
678
+
679
+ The default implementation calls :meth:`start_body_item`.
680
+
681
+ New in Robot Framework 7.0.
682
+ """
683
+ self.start_body_item(data, result)
684
+
685
+ def end_while_iteration(self, data: running.WhileIteration,
686
+ result: result.WhileIteration):
687
+ """Called when a WHILE loop iteration ends.
688
+
689
+ The default implementation calls :meth:`end_body_item`.
690
+
691
+ New in Robot Framework 7.0.
692
+ """
693
+ self.end_body_item(data, result)
694
+
695
+ def start_if(self, data: running.If, result: result.If):
696
+ """Called when an IF/ELSE structure starts.
697
+
698
+ The default implementation calls :meth:`start_body_item`.
699
+
700
+ New in Robot Framework 7.0.
701
+ """
702
+ self.start_body_item(data, result)
703
+
704
+ def end_if(self, data: running.If, result: result.If):
705
+ """Called when an IF/ELSE structure ends.
706
+
707
+ The default implementation calls :meth:`end_body_item`.
708
+
709
+ New in Robot Framework 7.0.
710
+ """
711
+ self.end_body_item(data, result)
712
+
713
+ def start_if_branch(self, data: running.IfBranch, result: result.IfBranch):
714
+ """Called when an individual IF/ELSE branch starts.
715
+
716
+ The default implementation calls :meth:`start_body_item`.
717
+
718
+ New in Robot Framework 7.0.
719
+ """
720
+ self.start_body_item(data, result)
721
+
722
+ def end_if_branch(self, data: running.IfBranch, result: result.IfBranch):
723
+ """Called when an individual IF/ELSE branch ends.
724
+
725
+ The default implementation calls :meth:`end_body_item`.
726
+
727
+ New in Robot Framework 7.0.
728
+ """
729
+ self.end_body_item(data, result)
730
+
731
+ def start_try(self, data: running.Try, result: result.Try):
732
+ """Called when a TRY/EXCEPT structure starts.
733
+
734
+ The default implementation calls :meth:`start_body_item`.
735
+
736
+ New in Robot Framework 7.0.
737
+ """
738
+ self.start_body_item(data, result)
739
+
740
+ def end_try(self, data: running.Try, result: result.Try):
741
+ """Called when a TRY/EXCEPT structure ends.
742
+
743
+ The default implementation calls :meth:`end_body_item`.
744
+
745
+ New in Robot Framework 7.0.
746
+ """
747
+ self.end_body_item(data, result)
748
+
749
+ def start_try_branch(self, data: running.TryBranch, result: result.TryBranch):
750
+ """Called when an individual TRY/EXCEPT branch starts.
751
+
752
+ The default implementation calls :meth:`start_body_item`.
753
+
754
+ New in Robot Framework 7.0.
755
+ """
756
+ self.start_body_item(data, result)
757
+
758
+ def end_try_branch(self, data: running.TryBranch, result: result.TryBranch):
759
+ """Called when an individual TRY/EXCEPT branch ends.
760
+
761
+ The default implementation calls :meth:`end_body_item`.
762
+
763
+ New in Robot Framework 7.0.
764
+ """
765
+ self.end_body_item(data, result)
766
+
767
+ def start_var(self, data: running.Var, result: result.Var):
768
+ """Called when VAR starts.
769
+
770
+ The default implementation calls :meth:`start_body_item`.
771
+
772
+ New in Robot Framework 7.0.
773
+ """
774
+ self.start_body_item(data, result)
775
+
776
+ def end_var(self, data: running.Var, result: result.Var):
777
+ """Called when VAR ends.
778
+
779
+ The default implementation calls :meth:`end_body_item`.
780
+
781
+ New in Robot Framework 7.0.
782
+ """
783
+ self.end_body_item(data, result)
784
+
785
+ def start_break(self, data: running.Break, result: result.Break):
786
+ """Called when BREAK starts.
787
+
788
+ The default implementation calls :meth:`start_body_item`.
789
+
790
+ New in Robot Framework 7.0.
791
+ """
792
+ self.start_body_item(data, result)
793
+
794
+ def end_break(self, data: running.Break, result: result.Break):
795
+ """Called when BREAK ends.
796
+
797
+ The default implementation calls :meth:`end_body_item`.
798
+
799
+ New in Robot Framework 7.0.
800
+ """
801
+ self.end_body_item(data, result)
802
+
803
+ def start_continue(self, data: running.Continue, result: result.Continue):
804
+ """Called when CONTINUE starts.
805
+
806
+ The default implementation calls :meth:`start_body_item`.
807
+
808
+ New in Robot Framework 7.0.
809
+ """
810
+ self.start_body_item(data, result)
811
+
812
+ def end_continue(self, data: running.Continue, result: result.Continue):
813
+ """Called when CONTINUE ends.
814
+
815
+ The default implementation calls :meth:`end_body_item`.
816
+
817
+ New in Robot Framework 7.0.
818
+ """
819
+ self.end_body_item(data, result)
820
+
821
+ def start_return(self, data: running.Return, result: result.Return):
822
+ """Called when RETURN starts.
823
+
824
+ The default implementation calls :meth:`start_body_item`.
825
+
826
+ New in Robot Framework 7.0.
827
+ """
828
+ self.start_body_item(data, result)
829
+
830
+ def end_return(self, data: running.Return, result: result.Return):
831
+ """Called when RETURN ends.
832
+
833
+ The default implementation calls :meth:`end_body_item`.
834
+
835
+ New in Robot Framework 7.0.
836
+ """
837
+ self.end_body_item(data, result)
838
+
839
+ def start_error(self, data: running.Error, result: result.Error):
840
+ """Called when encountered invalid syntax starts.
841
+
842
+ The default implementation calls :meth:`start_body_item`.
843
+
844
+ New in Robot Framework 7.0.
845
+ """
846
+ self.start_body_item(data, result)
847
+
848
+ def end_error(self, data: running.Error, result: result.Error):
849
+ """Called when encountered invalid syntax ends.
850
+
851
+ The default implementation calls :meth:`end_body_item`.
852
+
853
+ New in Robot Framework 7.0.
854
+ """
855
+ self.end_body_item(data, result)
856
+
857
+ def start_body_item(self, data, result):
858
+ """Called by default when a keyword or a control structure starts.
859
+
860
+ New in Robot Framework 7.0.
861
+ """
862
+ pass
863
+
864
+ def end_body_item(self, data, result):
865
+ """Called by default when a keyword or a control structure ends.
866
+
867
+ New in Robot Framework 7.0.
868
+ """
869
+ pass
535
870
 
536
871
  def log_message(self, message: Message):
537
872
  """Called when a normal log message are emitted.
@@ -548,22 +883,22 @@ class ListenerV3:
548
883
  if it is enabled.
549
884
  """
550
885
 
551
- def output_file(self, path: str):
886
+ def output_file(self, path: Path):
552
887
  """Called after the output file has been created.
553
888
 
554
889
  At this point the file is guaranteed to be closed.
555
890
  """
556
891
 
557
- def log_file(self, path: str):
892
+ def log_file(self, path: Path):
558
893
  """Called after the log file has been created."""
559
894
 
560
- def report_file(self, path: str):
895
+ def report_file(self, path: Path):
561
896
  """Called after the report file has been created."""
562
897
 
563
- def xunit_file(self, path: str):
898
+ def xunit_file(self, path: Path):
564
899
  """Called after the xunit compatible output file has been created."""
565
900
 
566
- def debug_file(self, path: str):
901
+ def debug_file(self, path: Path):
567
902
  """Called after the debug file has been created."""
568
903
 
569
904
  def close(self):
@@ -605,7 +940,7 @@ class Parser(ABC):
605
940
 
606
941
  The support for custom parsers is new in Robot Framework 6.1.
607
942
  """
608
- extension: Union[str, Sequence[str]]
943
+ extension: 'str | Sequence[str]'
609
944
 
610
945
  @abstractmethod
611
946
  def parse(self, source: Path, defaults: TestDefaults) -> TestSuite: