robotframework 6.1rc1__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.
Files changed (288) hide show
  1. {robotframework-6.1rc1/src/robotframework.egg-info → robotframework-7.0a1}/PKG-INFO +3 -6
  2. {robotframework-6.1rc1 → robotframework-7.0a1}/setup.py +2 -5
  3. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/api/interfaces.py +36 -49
  4. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/api/parsing.py +4 -2
  5. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/conf/gatherfailed.py +2 -2
  6. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/conf/languages.py +61 -25
  7. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/conf/settings.py +8 -5
  8. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/log.css +4 -0
  9. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/log.html +9 -1
  10. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/model.js +2 -4
  11. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/testdata.js +10 -3
  12. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/template.py +3 -3
  13. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/builder.py +0 -8
  14. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/datatypes.py +9 -10
  15. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/htmlutils.py +4 -7
  16. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/jsonbuilder.py +14 -10
  17. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/model.py +13 -25
  18. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/robotbuilder.py +14 -4
  19. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/xmlbuilder.py +8 -8
  20. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/xmlwriter.py +12 -38
  21. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/BuiltIn.py +215 -189
  22. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/Collections.py +2 -9
  23. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/DateTime.py +1 -1
  24. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/OperatingSystem.py +4 -3
  25. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/Process.py +26 -27
  26. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/Remote.py +40 -36
  27. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/String.py +4 -4
  28. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/XML.py +7 -8
  29. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/__init__.py +2 -2
  30. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/dialogs_py.py +14 -2
  31. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/__init__.py +4 -4
  32. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/body.py +14 -6
  33. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/configurer.py +19 -15
  34. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/control.py +155 -85
  35. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/filter.py +31 -25
  36. robotframework-7.0a1/src/robot/model/keyword.py +70 -0
  37. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/message.py +19 -10
  38. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/modelobject.py +2 -8
  39. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/modifier.py +1 -1
  40. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/namepatterns.py +3 -25
  41. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/stats.py +9 -15
  42. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/tags.py +1 -1
  43. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/testcase.py +12 -21
  44. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/testsuite.py +43 -24
  45. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/visitor.py +35 -8
  46. robotframework-7.0a1/src/robot/output/console/dotted.py +90 -0
  47. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/console/quiet.py +3 -2
  48. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/console/verbose.py +60 -60
  49. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/debugfile.py +36 -23
  50. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/filelogger.py +16 -13
  51. robotframework-7.0a1/src/robot/output/listeners.py +586 -0
  52. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/logger.py +164 -77
  53. robotframework-7.0a1/src/robot/output/loggerapi.py +152 -0
  54. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/loggerhelper.py +23 -56
  55. robotframework-7.0a1/src/robot/output/output.py +158 -0
  56. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/stdoutlogsplitter.py +8 -5
  57. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/xmllogger.py +163 -109
  58. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/lexer/blocklexers.py +17 -13
  59. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/lexer/context.py +12 -2
  60. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/lexer/lexer.py +1 -1
  61. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/lexer/settings.py +6 -3
  62. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/lexer/statementlexers.py +39 -10
  63. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/lexer/tokens.py +27 -29
  64. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/model/blocks.py +19 -6
  65. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/model/statements.py +184 -84
  66. robotframework-7.0a1/src/robot/parsing/model/visitor.py +102 -0
  67. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/expandkeywordmatcher.py +1 -1
  68. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/jsbuildingcontext.py +8 -6
  69. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/jsmodelbuilders.py +88 -61
  70. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/stringcache.py +4 -3
  71. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/xunitwriter.py +15 -21
  72. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/__init__.py +3 -2
  73. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/configurer.py +12 -9
  74. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/flattenkeywordmatcher.py +8 -8
  75. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/keywordremover.py +71 -54
  76. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/merger.py +1 -1
  77. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/model.py +400 -316
  78. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/modeldeprecation.py +9 -3
  79. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/resultbuilder.py +21 -23
  80. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/xmlelementhandlers.py +76 -40
  81. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/run.py +1 -1
  82. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/__init__.py +1 -1
  83. robotframework-7.0a1/src/robot/running/arguments/argumentconverter.py +101 -0
  84. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/arguments/argumentmapper.py +16 -14
  85. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/arguments/argumentparser.py +3 -1
  86. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/arguments/argumentresolver.py +41 -33
  87. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/arguments/argumentspec.py +24 -90
  88. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/arguments/argumentvalidator.py +34 -27
  89. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/arguments/customconverters.py +14 -11
  90. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/arguments/embedded.py +23 -26
  91. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/arguments/typeconverters.py +210 -220
  92. robotframework-7.0a1/src/robot/running/arguments/typeinfo.py +367 -0
  93. robotframework-7.0a1/src/robot/running/arguments/typevalidator.py +62 -0
  94. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/bodyrunner.py +83 -68
  95. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/builder/builders.py +15 -25
  96. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/builder/parsers.py +15 -10
  97. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/builder/settings.py +9 -17
  98. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/builder/transformers.py +166 -308
  99. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/context.py +80 -25
  100. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/handlers.py +11 -16
  101. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/handlerstore.py +1 -1
  102. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/librarykeywordrunner.py +9 -17
  103. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/model.py +156 -36
  104. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/namespace.py +18 -19
  105. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/statusreporter.py +13 -12
  106. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/suiterunner.py +18 -21
  107. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/testlibraries.py +35 -39
  108. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/usererrorhandler.py +8 -8
  109. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/userkeyword.py +13 -8
  110. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/userkeywordrunner.py +18 -21
  111. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/testdoc.py +18 -13
  112. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/__init__.py +50 -35
  113. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/connectioncache.py +64 -59
  114. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/encodingsniffer.py +9 -4
  115. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/escaping.py +11 -9
  116. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/markupwriters.py +20 -13
  117. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/normalizing.py +9 -24
  118. robotframework-7.0a1/src/robot/utils/notset.py +33 -0
  119. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/platform.py +15 -5
  120. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/robotpath.py +1 -0
  121. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/robottime.py +120 -88
  122. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/robottypes.py +16 -31
  123. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/setter.py +0 -5
  124. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/text.py +7 -4
  125. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/unic.py +2 -2
  126. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/__init__.py +2 -2
  127. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/assigner.py +17 -19
  128. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/evaluation.py +20 -17
  129. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/filesetter.py +80 -80
  130. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/replacer.py +33 -36
  131. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/scopes.py +3 -3
  132. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/search.py +66 -41
  133. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/store.py +14 -16
  134. robotframework-7.0a1/src/robot/variables/tablesetter.py +164 -0
  135. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/variables.py +1 -1
  136. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/version.py +1 -1
  137. {robotframework-6.1rc1 → robotframework-7.0a1/src/robotframework.egg-info}/PKG-INFO +3 -6
  138. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robotframework.egg-info/SOURCES.txt +3 -4
  139. {robotframework-6.1rc1 → robotframework-7.0a1}/tasks.py +6 -6
  140. robotframework-6.1rc1/src/robot/libraries/Reserved.py +0 -48
  141. robotframework-6.1rc1/src/robot/model/keyword.py +0 -173
  142. robotframework-6.1rc1/src/robot/output/console/dotted.py +0 -90
  143. robotframework-6.1rc1/src/robot/output/listenerarguments.py +0 -165
  144. robotframework-6.1rc1/src/robot/output/listenermethods.py +0 -113
  145. robotframework-6.1rc1/src/robot/output/listeners.py +0 -174
  146. robotframework-6.1rc1/src/robot/output/output.py +0 -95
  147. robotframework-6.1rc1/src/robot/parsing/model/visitor.py +0 -67
  148. robotframework-6.1rc1/src/robot/running/arguments/argumentconverter.py +0 -79
  149. robotframework-6.1rc1/src/robot/running/arguments/typevalidator.py +0 -56
  150. robotframework-6.1rc1/src/robot/running/modelcombiner.py +0 -32
  151. robotframework-6.1rc1/src/robot/variables/tablesetter.py +0 -156
  152. {robotframework-6.1rc1 → robotframework-7.0a1}/AUTHORS.rst +0 -0
  153. {robotframework-6.1rc1 → robotframework-7.0a1}/BUILD.rst +0 -0
  154. {robotframework-6.1rc1 → robotframework-7.0a1}/CONTRIBUTING.rst +0 -0
  155. {robotframework-6.1rc1 → robotframework-7.0a1}/COPYRIGHT.txt +0 -0
  156. {robotframework-6.1rc1 → robotframework-7.0a1}/INSTALL.rst +0 -0
  157. {robotframework-6.1rc1 → robotframework-7.0a1}/LICENSE.txt +0 -0
  158. {robotframework-6.1rc1 → robotframework-7.0a1}/MANIFEST.in +0 -0
  159. {robotframework-6.1rc1 → robotframework-7.0a1}/README.rst +0 -0
  160. {robotframework-6.1rc1 → robotframework-7.0a1}/setup.cfg +0 -0
  161. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/__init__.py +0 -0
  162. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/__main__.py +0 -0
  163. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/api/__init__.py +0 -0
  164. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/api/deco.py +0 -0
  165. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/api/exceptions.py +0 -0
  166. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/api/logger.py +0 -0
  167. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/conf/__init__.py +0 -0
  168. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/errors.py +0 -0
  169. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/__init__.py +0 -0
  170. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/common/__init__.py +0 -0
  171. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/common/js_disabled.css +0 -0
  172. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/common/storage.js +0 -0
  173. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/htmlfilewriter.py +0 -0
  174. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/jsonwriter.py +0 -0
  175. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/lib/__init__.py +0 -0
  176. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/lib/jquery.highlight.min.js +0 -0
  177. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/lib/jquery.min.js +0 -0
  178. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/lib/jquery.tablesorter.min.js +0 -0
  179. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/lib/jquery.tmpl.min.js +0 -0
  180. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/lib/jsxcompressor.min.js +0 -0
  181. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/libdoc/__init__.py +0 -0
  182. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/libdoc/doc_formatting.css +0 -0
  183. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/libdoc/libdoc.css +0 -0
  184. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/libdoc/libdoc.html +0 -0
  185. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/libdoc/print.css +0 -0
  186. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/libdoc/pygments.css +0 -0
  187. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/__init__.py +0 -0
  188. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/common.css +0 -0
  189. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/doc_formatting.css +0 -0
  190. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/fileloading.js +0 -0
  191. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/log.js +0 -0
  192. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/print.css +0 -0
  193. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/report.css +0 -0
  194. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/report.html +0 -0
  195. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/util.js +0 -0
  196. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/rebot/view.js +0 -0
  197. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/testdoc/__init__.py +0 -0
  198. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/testdoc/testdoc.css +0 -0
  199. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/htmldata/testdoc/testdoc.html +0 -0
  200. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdoc.py +0 -0
  201. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/__init__.py +0 -0
  202. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/consoleviewer.py +0 -0
  203. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/htmlwriter.py +0 -0
  204. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/jsonwriter.py +0 -0
  205. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/output.py +0 -0
  206. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/standardtypes.py +0 -0
  207. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libdocpkg/writer.py +0 -0
  208. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/Dialogs.py +0 -0
  209. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/Easter.py +0 -0
  210. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/Screenshot.py +0 -0
  211. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/libraries/Telnet.py +0 -0
  212. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/fixture.py +0 -0
  213. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/itemlist.py +0 -0
  214. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/metadata.py +0 -0
  215. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/statistics.py +0 -0
  216. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/suitestatistics.py +0 -0
  217. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/tagsetter.py +0 -0
  218. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/tagstatistics.py +0 -0
  219. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/model/totalstatistics.py +0 -0
  220. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/__init__.py +0 -0
  221. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/console/__init__.py +0 -0
  222. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/console/highlighting.py +0 -0
  223. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/librarylogger.py +0 -0
  224. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/output/pyloggingconf.py +0 -0
  225. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/__init__.py +0 -0
  226. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/lexer/__init__.py +0 -0
  227. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/lexer/tokenizer.py +0 -0
  228. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/model/__init__.py +0 -0
  229. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/parser/__init__.py +0 -0
  230. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/parser/blockparsers.py +0 -0
  231. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/parser/fileparser.py +0 -0
  232. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/parser/parser.py +0 -0
  233. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/parsing/suitestructure.py +0 -0
  234. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/pythonpathsetter.py +0 -0
  235. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/rebot.py +0 -0
  236. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/__init__.py +0 -0
  237. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/jsexecutionresult.py +0 -0
  238. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/jswriter.py +0 -0
  239. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/logreportwriters.py +0 -0
  240. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/outputwriter.py +0 -0
  241. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/reporting/resultwriter.py +0 -0
  242. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/executionerrors.py +0 -0
  243. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/executionresult.py +0 -0
  244. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/messagefilter.py +0 -0
  245. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/suiteteardownfailed.py +0 -0
  246. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/result/visitor.py +0 -0
  247. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/arguments/__init__.py +0 -0
  248. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/builder/__init__.py +0 -0
  249. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/dynamicmethods.py +0 -0
  250. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/importer.py +0 -0
  251. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/libraryscopes.py +0 -0
  252. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/outputcapture.py +0 -0
  253. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/randomizer.py +0 -0
  254. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/runkwregister.py +0 -0
  255. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/signalhandler.py +0 -0
  256. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/status.py +0 -0
  257. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/timeouts/__init__.py +0 -0
  258. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/timeouts/posix.py +0 -0
  259. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/running/timeouts/windows.py +0 -0
  260. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/application.py +0 -0
  261. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/argumentparser.py +0 -0
  262. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/asserts.py +0 -0
  263. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/charwidth.py +0 -0
  264. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/compress.py +0 -0
  265. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/dotdict.py +0 -0
  266. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/encoding.py +0 -0
  267. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/error.py +0 -0
  268. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/etreewrapper.py +0 -0
  269. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/filereader.py +0 -0
  270. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/frange.py +0 -0
  271. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/htmlformatters.py +0 -0
  272. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/importer.py +0 -0
  273. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/markuputils.py +0 -0
  274. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/match.py +0 -0
  275. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/misc.py +0 -0
  276. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/recommendations.py +0 -0
  277. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/restreader.py +0 -0
  278. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/robotenv.py +0 -0
  279. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/robotinspect.py +0 -0
  280. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/robotio.py +0 -0
  281. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/sortable.py +0 -0
  282. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/utils/typehints.py +0 -0
  283. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/finders.py +0 -0
  284. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/notfound.py +0 -0
  285. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robot/variables/resolvable.py +0 -0
  286. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robotframework.egg-info/dependency_links.txt +0 -0
  287. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robotframework.egg-info/entry_points.txt +0 -0
  288. {robotframework-6.1rc1 → robotframework-7.0a1}/src/robotframework.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: robotframework
3
- Version: 6.1rc1
3
+ Version: 7.0a1
4
4
  Summary: Generic automation framework for acceptance testing and robotic process automation (RPA)
5
5
  Home-page: https://robotframework.org
6
6
  Author: Pekka Klärck
@@ -10,9 +10,8 @@ Download-URL: https://pypi.org/project/robotframework
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-6.1rc1.rst
13
+ Project-URL: Release Notes, https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-7.0a1.rst
14
14
  Project-URL: Slack, http://slack.robotframework.org
15
- Project-URL: Twitter, https://twitter.com/robotframework
16
15
  Description: Robot Framework
17
16
  ===============
18
17
 
@@ -171,8 +170,6 @@ Classifier: License :: OSI Approved :: Apache Software License
171
170
  Classifier: Operating System :: OS Independent
172
171
  Classifier: Programming Language :: Python :: 3
173
172
  Classifier: Programming Language :: Python :: 3 :: Only
174
- Classifier: Programming Language :: Python :: 3.6
175
- Classifier: Programming Language :: Python :: 3.7
176
173
  Classifier: Programming Language :: Python :: 3.8
177
174
  Classifier: Programming Language :: Python :: 3.9
178
175
  Classifier: Programming Language :: Python :: 3.10
@@ -184,5 +181,5 @@ Classifier: Topic :: Software Development :: Testing
184
181
  Classifier: Topic :: Software Development :: Testing :: Acceptance
185
182
  Classifier: Topic :: Software Development :: Testing :: BDD
186
183
  Classifier: Framework :: Robot Framework
187
- Requires-Python: >=3.6
184
+ Requires-Python: >=3.8
188
185
  Description-Content-Type: text/x-rst
@@ -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 = '6.1rc1'
9
+ VERSION = '7.0a1'
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'
@@ -22,8 +22,6 @@ License :: OSI Approved :: Apache Software License
22
22
  Operating System :: OS Independent
23
23
  Programming Language :: Python :: 3
24
24
  Programming Language :: Python :: 3 :: Only
25
- Programming Language :: Python :: 3.6
26
- Programming Language :: Python :: 3.7
27
25
  Programming Language :: Python :: 3.8
28
26
  Programming Language :: Python :: 3.9
29
27
  Programming Language :: Python :: 3.10
@@ -57,7 +55,6 @@ setup(
57
55
  'Documentation': 'https://robotframework.org/robotframework',
58
56
  'Release Notes': f'https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-{VERSION}.rst',
59
57
  'Slack': 'http://slack.robotframework.org',
60
- 'Twitter': 'https://twitter.com/robotframework',
61
58
  },
62
59
  download_url = 'https://pypi.org/project/robotframework',
63
60
  license = 'Apache License 2.0',
@@ -66,7 +63,7 @@ setup(
66
63
  long_description_content_type = 'text/x-rst',
67
64
  keywords = KEYWORDS,
68
65
  platforms = 'any',
69
- python_requires='>=3.6',
66
+ python_requires='>=3.8',
70
67
  classifiers = CLASSIFIERS,
71
68
  package_dir = {'': 'src'},
72
69
  package_data = {'robot': PACKAGE_DATA},
@@ -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, Optional, 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.
@@ -179,7 +166,7 @@ class DynamicLibrary(ABC):
179
166
  - If keyword does not accept varargs, a lone ``*`` can be used
180
167
  a separator between normal and named-only arguments like
181
168
  ``['normal', '*', 'named']``.
182
- - Kwargs must have a ``**`` prefix like [``**config``]. There can
169
+ - Kwargs must have a ``**`` prefix like ``['**config']``. There can
183
170
  be only one kwargs, and it must be last.
184
171
 
185
172
  Both normal arguments and named-only arguments can have default values:
@@ -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) -> Optional[TypeHints]:
202
189
  """Optional method to return keyword's type specification.
203
190
 
204
191
  Type information is used for automatic argument conversion during
@@ -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.
@@ -301,8 +288,8 @@ class StartSuiteAttributes(TypedDict):
301
288
  doc: str
302
289
  metadata: dict
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
@@ -353,21 +340,21 @@ class OptionalKeywordAttributes(TypedDict, total=False):
353
340
  IF structures attributes include ``condition``.
354
341
  """
355
342
  # FOR
356
- variables: List[str]
343
+ variables: 'list[str]'
357
344
  flavor: str
358
- values: List[str]
345
+ values: 'list[str]'
359
346
  # ITERATION with FOR
360
- variables: Dict[str, str]
347
+ variables: 'dict[str, str]'
361
348
  # WHILE and IF
362
349
  condition: str
363
350
  # WHILE
364
351
  limit: str
365
352
  # EXCEPT
366
- patterns: List[str]
353
+ patterns: 'list[str]'
367
354
  pattern_type: str
368
355
  variable: str
369
356
  # RETURN
370
- values: List[str]
357
+ values: 'list[str]'
371
358
 
372
359
 
373
360
  class StartKeywordAttributes(OptionalKeywordAttributes):
@@ -379,9 +366,9 @@ class StartKeywordAttributes(OptionalKeywordAttributes):
379
366
  kwname: str
380
367
  libname: str
381
368
  doc: str
382
- args: List[str]
383
- assign: List[str]
384
- tags: List[str]
369
+ args: 'list[str]'
370
+ assign: 'list[str]'
371
+ tags: 'list[str]'
385
372
  source: str
386
373
  lineno: int
387
374
  status: str
@@ -413,7 +400,7 @@ class LibraryAttributes(TypedDict):
413
400
 
414
401
  See the User Guide for more information.
415
402
  """
416
- args: List[str]
403
+ args: 'list[str]'
417
404
  originalname: str
418
405
  source: str
419
406
  importer: Union[str, None]
@@ -433,7 +420,7 @@ class VariablesAttributes(TypedDict):
433
420
 
434
421
  See the User Guide for more information.
435
422
  """
436
- args: List[str]
423
+ args: 'list[str]'
437
424
  source: str
438
425
  importer: Union[str, None]
439
426
 
@@ -531,7 +518,7 @@ class ListenerV3:
531
518
  """Called when a test or task starts."""
532
519
 
533
520
  def end_test(self, data: running.TestCase, result: result.TestCase):
534
- """Called when a test or ends starts."""
521
+ """Called when a test or tasks ends."""
535
522
 
536
523
  def log_message(self, message: Message):
537
524
  """Called when a normal log message are emitted.
@@ -223,7 +223,7 @@ Statements:
223
223
  - :class:`~robot.parsing.model.statements.Template`
224
224
  - :class:`~robot.parsing.model.statements.Timeout`
225
225
  - :class:`~robot.parsing.model.statements.Arguments`
226
- - :class:`~robot.parsing.model.statements.Return` (deprecated, will mean ``ReturnStatement`` in RF 7.0)
226
+ - :class:`~robot.parsing.model.statements.Return` (deprecated, will mean ``ReturnStatement`` in RF 8.0)
227
227
  - :class:`~robot.parsing.model.statements.ReturnSetting` (alias for ``Return``, new in RF 6.1)
228
228
  - :class:`~robot.parsing.model.statements.KeywordCall`
229
229
  - :class:`~robot.parsing.model.statements.TemplateArguments`
@@ -236,6 +236,7 @@ Statements:
236
236
  - :class:`~robot.parsing.model.statements.FinallyHeader`
237
237
  - :class:`~robot.parsing.model.statements.ForHeader`
238
238
  - :class:`~robot.parsing.model.statements.WhileHeader`
239
+ - :class:`~robot.parsing.model.statements.Var` (new in RF 7.0)
239
240
  - :class:`~robot.parsing.model.statements.End`
240
241
  - :class:`~robot.parsing.model.statements.ReturnStatement`
241
242
  - :class:`~robot.parsing.model.statements.Break`
@@ -519,7 +520,7 @@ from robot.parsing.model.statements import (
519
520
  TestTeardown,
520
521
  TestTemplate,
521
522
  TestTimeout,
522
- ForceTags,
523
+ TestTags,
523
524
  DefaultTags,
524
525
  KeywordTags,
525
526
  Variable,
@@ -545,6 +546,7 @@ from robot.parsing.model.statements import (
545
546
  ForHeader,
546
547
  WhileHeader,
547
548
  End,
549
+ Var,
548
550
  ReturnStatement,
549
551
  Continue,
550
552
  Break,
@@ -26,7 +26,7 @@ class GatherFailedTests(SuiteVisitor):
26
26
 
27
27
  def visit_test(self, test):
28
28
  if test.failed:
29
- self.tests.append(glob_escape(test.longname))
29
+ self.tests.append(glob_escape(test.full_name))
30
30
 
31
31
  def visit_keyword(self, kw):
32
32
  pass
@@ -39,7 +39,7 @@ class GatherFailedSuites(SuiteVisitor):
39
39
 
40
40
  def start_suite(self, suite):
41
41
  if any(test.failed for test in suite.tests):
42
- self.suites.append(glob_escape(suite.longname))
42
+ self.suites.append(glob_escape(suite.full_name))
43
43
 
44
44
  def visit_test(self, test):
45
45
  pass
@@ -130,15 +130,6 @@ class Languages:
130
130
  languages = [languages]
131
131
  if add_english:
132
132
  languages.append(En())
133
- # The English singular forms are added for backwards compatibility
134
- self.headers = {
135
- 'Setting': 'Settings',
136
- 'Variable': 'Variables',
137
- 'Test Case': 'Test Cases',
138
- 'Task': 'Tasks',
139
- 'Keyword': 'Keywords',
140
- 'Comment': 'Comments'
141
- }
142
133
  return languages
143
134
 
144
135
  def _get_available_languages(self) -> 'dict[str, type[Language]]':
@@ -732,9 +723,9 @@ class Pl(Language):
732
723
  """Polish"""
733
724
  settings_header = 'Ustawienia'
734
725
  variables_header = 'Zmienne'
735
- test_cases_header = 'Przypadki testowe'
726
+ test_cases_header = 'Przypadki Testowe'
736
727
  tasks_header = 'Zadania'
737
- keywords_header = 'Słowa kluczowe'
728
+ keywords_header = 'Słowa Kluczowe'
738
729
  comments_header = 'Komentarze'
739
730
  library_setting = 'Biblioteka'
740
731
  resource_setting = 'Zasób'
@@ -742,24 +733,24 @@ class Pl(Language):
742
733
  name_setting = 'Nazwa'
743
734
  documentation_setting = 'Dokumentacja'
744
735
  metadata_setting = 'Metadane'
745
- suite_setup_setting = 'Inicjalizacja zestawu'
746
- suite_teardown_setting = 'Ukończenie zestawu'
747
- test_setup_setting = 'Inicjalizacja testu'
748
- test_teardown_setting = 'Ukończenie testu'
749
- test_template_setting = 'Szablon testu'
750
- test_timeout_setting = 'Limit czasowy testu'
751
- test_tags_setting = 'Znaczniki testu'
752
- task_setup_setting = 'Inicjalizacja zadania'
753
- task_teardown_setting = 'Ukończenie zadania'
754
- task_template_setting = 'Szablon zadania'
755
- task_timeout_setting = 'Limit czasowy zadania'
756
- task_tags_setting = 'Znaczniki zadania'
757
- keyword_tags_setting = 'Znaczniki słowa kluczowego'
736
+ suite_setup_setting = 'Inicjalizacja Zestawu'
737
+ suite_teardown_setting = 'Ukończenie Zestawu'
738
+ test_setup_setting = 'Inicjalizacja Testu'
739
+ test_teardown_setting = 'Ukończenie Testu'
740
+ test_template_setting = 'Szablon Testu'
741
+ test_timeout_setting = 'Limit Czasowy Testu'
742
+ test_tags_setting = 'Znaczniki Testu'
743
+ task_setup_setting = 'Inicjalizacja Zadania'
744
+ task_teardown_setting = 'Ukończenie Zadania'
745
+ task_template_setting = 'Szablon Zadania'
746
+ task_timeout_setting = 'Limit Czasowy Zadania'
747
+ task_tags_setting = 'Znaczniki Zadania'
748
+ keyword_tags_setting = 'Znaczniki Słowa Kluczowego'
758
749
  tags_setting = 'Znaczniki'
759
750
  setup_setting = 'Inicjalizacja'
760
751
  teardown_setting = 'Ukończenie'
761
752
  template_setting = 'Szablon'
762
- timeout_setting = 'Limit czasowy'
753
+ timeout_setting = 'Limit Czasowy'
763
754
  arguments_setting = 'Argumenty'
764
755
  given_prefixes = ['Zakładając', 'Zakładając, że', 'Mając']
765
756
  when_prefixes = ['Jeżeli', 'Jeśli', 'Gdy', 'Kiedy']
@@ -1219,3 +1210,48 @@ class Hi(Language):
1219
1210
  but_prefixes = ['परंतु']
1220
1211
  true_strings = ['यथार्थ', 'निश्चित', 'हां', 'पर']
1221
1212
  false_strings = ['गलत', 'नहीं', 'हालाँकि', 'यद्यपि', 'नहीं', 'हैं']
1213
+
1214
+
1215
+ class Vi(Language):
1216
+ """Vietnamese
1217
+
1218
+ New in Robot Framework 6.1.
1219
+ """
1220
+ settings_header = 'Cài Đặt'
1221
+ variables_header = 'Các biến số'
1222
+ test_cases_header = 'Các kịch bản kiểm thử'
1223
+ tasks_header = 'Các nghiệm vụ'
1224
+ keywords_header = 'Các từ khóa'
1225
+ comments_header = 'Các chú thích'
1226
+ library_setting = 'Thư viện'
1227
+ resource_setting = 'Tài nguyên'
1228
+ variables_setting = 'Biến số'
1229
+ name_setting = 'Tên'
1230
+ documentation_setting = 'Tài liệu hướng dẫn'
1231
+ metadata_setting = 'Dữ liệu tham chiếu'
1232
+ suite_setup_setting = 'Tiền thiết lập bộ kịch bản kiểm thử'
1233
+ suite_teardown_setting = 'Hậu thiết lập bộ kịch bản kiểm thử'
1234
+ test_setup_setting = 'Tiền thiết lập kịch bản kiểm thử'
1235
+ test_teardown_setting = 'Hậu thiết lập kịch bản kiểm thử'
1236
+ test_template_setting = 'Mẫu kịch bản kiểm thử'
1237
+ test_timeout_setting = 'Thời gian chờ kịch bản kiểm thử'
1238
+ test_tags_setting = 'Các nhãn kịch bản kiểm thử'
1239
+ task_setup_setting = 'Tiền thiểt lập nhiệm vụ'
1240
+ task_teardown_setting = 'Hậu thiết lập nhiệm vụ'
1241
+ task_template_setting = 'Mẫu nhiễm vụ'
1242
+ task_timeout_setting = 'Thời gian chờ nhiệm vụ'
1243
+ task_tags_setting = 'Các nhãn nhiệm vụ'
1244
+ keyword_tags_setting = 'Các từ khóa nhãn'
1245
+ tags_setting = 'Các thẻ'
1246
+ setup_setting = 'Tiền thiết lập'
1247
+ teardown_setting = 'Hậu thiết lập'
1248
+ template_setting = 'Mẫu'
1249
+ timeout_setting = 'Thời gian chờ'
1250
+ arguments_setting = 'Các đối số'
1251
+ given_prefixes = ['Đã cho']
1252
+ when_prefixes = ['Khi']
1253
+ then_prefixes = ['Thì']
1254
+ and_prefixes = ['Và']
1255
+ but_prefixes = ['Nhưng']
1256
+ true_strings = ['Đúng', 'Vâng', 'Mở']
1257
+ false_strings = ['Sai', 'Không', 'Tắt', 'Không Có Gì']
@@ -20,13 +20,14 @@ import string
20
20
  import sys
21
21
  import time
22
22
  import warnings
23
+ from datetime import datetime
23
24
  from pathlib import Path
24
25
 
25
26
  from robot.errors import DataError, FrameworkError
26
27
  from robot.output import LOGGER, loggerhelper
27
28
  from robot.result.keywordremover import KeywordRemover
28
29
  from robot.result.flattenkeywordmatcher import validate_flatten_keyword
29
- from robot.utils import (abspath, create_destination_directory, escape, format_time,
30
+ from robot.utils import (abspath, create_destination_directory, escape,
30
31
  get_link_path, html_escape, is_list_like, plural_or_not as s,
31
32
  seq2str, split_args_from_name_or_path)
32
33
 
@@ -73,7 +74,7 @@ class _BaseSettings:
73
74
  _output_opts = ['Output', 'Log', 'Report', 'XUnit', 'DebugFile']
74
75
 
75
76
  def __init__(self, options=None, **extra_options):
76
- self.start_timestamp = format_time(time.time(), '', '-', '')
77
+ self.start_time = datetime.now()
77
78
  self._opts = {}
78
79
  self._cli_opts = self._cli_opts.copy()
79
80
  self._cli_opts.update(self._extra_cli_opts)
@@ -230,7 +231,9 @@ class _BaseSettings:
230
231
  def _process_output_name(self, option, name):
231
232
  base, ext = os.path.splitext(name)
232
233
  if self['TimestampOutputs']:
233
- base = f'{base}-{self.start_timestamp}'
234
+ s = self.start_time
235
+ base = (f'{base}-{s.year}{s.month:02}{s.day:02}-'
236
+ f'{s.hour:02}{s.minute:02}{s.second:02}')
234
237
  ext = self._get_output_extension(ext, option)
235
238
  return base + ext
236
239
 
@@ -336,7 +339,7 @@ class _BaseSettings:
336
339
  def _validate_remove_keywords(self, values):
337
340
  for value in values:
338
341
  try:
339
- KeywordRemover(value)
342
+ KeywordRemover.from_config(value)
340
343
  except DataError as err:
341
344
  self._raise_invalid('RemoveKeywords', err)
342
345
 
@@ -488,7 +491,7 @@ class RobotSettings(_BaseSettings):
488
491
 
489
492
  def get_rebot_settings(self):
490
493
  settings = RebotSettings()
491
- settings.start_timestamp = self.start_timestamp
494
+ settings.start_time = self.start_time
492
495
  not_copied = {'Include', 'Exclude', 'TestNames', 'SuiteNames', 'ParseInclude',
493
496
  'Name', 'Doc', 'Metadata', 'SetTag', 'Output', 'LogLevel',
494
497
  'TimestampOutputs'}
@@ -73,6 +73,10 @@
73
73
  }
74
74
  .name {
75
75
  font-weight: bold;
76
+ white-space: pre-wrap;
77
+ }
78
+ .arg, .assign {
79
+ white-space: pre-wrap;
76
80
  }
77
81
  .elapsed {
78
82
  float: right;
@@ -322,8 +322,9 @@ function addExecutionLog(main) {
322
322
  <div class="element-header-left" title="${type} {{if name}}{{html fullName}} {{/if}}[${status}]">
323
323
  <span class="elapsed" title="Elapsed time">${times.elapsedTime}</span>
324
324
  <span class="label ${status.toLowerCase()}">${type}</span>
325
- <span>{{html assign}}</span>
325
+ <span class="assign">{{html assign}}</span>
326
326
  <span class="name"><span class="parent-name">{{html libname}}{{if libname}} . {{/if}}</span>{{html name}}</span>
327
+ &nbsp;
327
328
  <span class="arg">{{html arguments}}</span>
328
329
  </div>
329
330
  <div class="element-header-right" onclick="stopPropagation(event)">
@@ -357,6 +358,12 @@ function addExecutionLog(main) {
357
358
  <th>Start / End / Elapsed:</th>
358
359
  <td>${times.startTime} / ${times.endTime} / ${times.elapsedTime}</td>
359
360
  </tr>
361
+ {{if message()}}
362
+ <tr>
363
+ <th>Message:</th>
364
+ <td class="message">{{html message()}}</td>
365
+ </tr>
366
+ {{/if}}
360
367
  </table>
361
368
  </div>
362
369
  </div>
@@ -379,6 +386,7 @@ function addExecutionLog(main) {
379
386
  <div id="log-level-selector">
380
387
  Log level:
381
388
  <select onchange="logLevelSelected(this.options[selectedIndex].value)">
389
+ <option value="3">WARN</option>
382
390
  <option value="2">INFO</option>
383
391
  <option value="1">DEBUG</option>
384
392
  {{if showTrace()}}<option value="0">TRACE</option>{{/if}}
@@ -14,7 +14,6 @@ window.model = (function () {
14
14
  suite.populateSuites = createIterablePopulator('Suite');
15
15
  suite.childrenNames = ['keyword', 'suite', 'test'];
16
16
  suite.callWhenChildrenReady = function (callable) { callable(); };
17
- suite.message = data.message;
18
17
  suite.children = function () {
19
18
  return suite.keywords().concat(suite.tests()).concat(suite.suites());
20
19
  };
@@ -110,6 +109,7 @@ window.model = (function () {
110
109
  name: data.name,
111
110
  doc: data.doc,
112
111
  status: data.status,
112
+ message: data.message,
113
113
  times: data.times,
114
114
  id: data.parent ? data.parent.id + '-' + data.id : data.id
115
115
  };
@@ -131,7 +131,6 @@ window.model = (function () {
131
131
  return test.keywords();
132
132
  };
133
133
  test.tags = data.tags;
134
- test.message = data.message;
135
134
  test.matchesTagPattern = function (pattern) {
136
135
  return containsTagPattern(test.tags, pattern);
137
136
  };
@@ -143,13 +142,12 @@ window.model = (function () {
143
142
 
144
143
  function Keyword(data) {
145
144
  var kw = createModelObject(data);
146
- var flatTypes = ['RETURN', 'BREAK', 'CONTINUE'];
147
145
  kw.libname = data.libname;
148
146
  kw.fullName = (kw.libname ? kw.libname + '.' : '') + kw.name;
149
147
  kw.type = data.type;
150
148
  kw.template = 'keywordTemplate';
151
149
  kw.arguments = data.args;
152
- kw.assign = data.assign + (data.assign ? ' =' : '');
150
+ kw.assign = data.assign + (data.assign ? ' = ' : '');
153
151
  kw.tags = data.tags;
154
152
  kw.timeout = data.timeout;
155
153
  kw.populateKeywords = createIterablePopulator('Keyword');
@@ -5,8 +5,9 @@ window.testdata = function () {
5
5
  var _statistics = null;
6
6
  var LEVELS = ['TRACE', 'DEBUG', 'INFO', 'WARN', 'ERROR', 'FAIL', 'SKIP'];
7
7
  var STATUSES = ['FAIL', 'PASS', 'SKIP', 'NOT RUN'];
8
- var KEYWORD_TYPES = ['KEYWORD', 'SETUP', 'TEARDOWN', 'FOR', 'ITERATION', 'IF', 'ELSE IF', 'ELSE', 'RETURN',
9
- 'TRY', 'EXCEPT', 'FINALLY', 'WHILE', 'CONTINUE', 'BREAK', 'ERROR'];
8
+ var KEYWORD_TYPES = ['KEYWORD', 'SETUP', 'TEARDOWN', 'FOR', 'ITERATION', 'IF',
9
+ 'ELSE IF', 'ELSE', 'RETURN', 'VAR', 'TRY', 'EXCEPT', 'FINALLY',
10
+ 'WHILE', 'CONTINUE', 'BREAK', 'ERROR'];
10
11
 
11
12
  function addElement(elem) {
12
13
  if (!elem.id)
@@ -57,6 +58,7 @@ window.testdata = function () {
57
58
  }
58
59
 
59
60
  function createKeyword(parent, element, strings, index) {
61
+ var status = element[8];
60
62
  var kw = model.Keyword({
61
63
  parent: parent,
62
64
  type: KEYWORD_TYPES[element[0]],
@@ -72,7 +74,12 @@ window.testdata = function () {
72
74
  this.doc = function () { return doc; };
73
75
  return doc;
74
76
  },
75
- status: parseStatus(element[8], strings),
77
+ status: parseStatus(status),
78
+ message: function () {
79
+ var msg = status.length == 4 ? strings.get(status[3]) : '';
80
+ this.message = function () { return msg; };
81
+ return msg;
82
+ },
76
83
  times: model.Times(times(element[8])),
77
84
  isChildrenLoaded: typeof(element[9]) !== 'number'
78
85
  });
@@ -27,13 +27,13 @@ if sys.version_info < (3, 9) and not Path(__file__).exists(): # zipsafe
27
27
  except ImportError:
28
28
  raise ImportError(
29
29
  "'importlib_resources' backport module needs to be installed with "
30
- "Python 3.8 and older when Robot Framework is distributed as a zip "
31
- "package or '__file__' does not exist for other reasons."
30
+ "Python 3.8 when Robot Framework is distributed as a zip package "
31
+ "or '__file__' does not exist for other reasons."
32
32
  )
33
33
  else:
34
34
  try:
35
35
  from importlib.resources import files
36
- except ImportError: # Python 3.8 or older
36
+ except ImportError: # Python 3.8
37
37
  BASE_DIR = Path(__file__).absolute().parent.parent.parent # zipsafe
38
38
 
39
39
  def files(module):
@@ -71,14 +71,6 @@ class DocumentationBuilder:
71
71
  instead.
72
72
  """
73
73
 
74
- def __init__(self, library_or_resource=None):
75
- """`library_or_resource` is accepted for backwards compatibility reasons.
76
-
77
- It is not used for anything internally and passing it to the builder is
78
- considered deprecated starting from RF 6.0.1.
79
- """
80
- pass
81
-
82
74
  def build(self, source):
83
75
  # Source can contain arguments separated with `::` so we cannot convert
84
76
  # it to Path and instead need to make sure it's a string. It would be