robotframework 7.0rc3__zip → 7.0.1__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 (280) hide show
  1. {robotframework-7.0rc3 → robotframework-7.0.1}/INSTALL.rst +35 -35
  2. {robotframework-7.0rc3/src/robotframework.egg-info → robotframework-7.0.1}/PKG-INFO +5 -3
  3. {robotframework-7.0rc3 → robotframework-7.0.1}/README.rst +3 -1
  4. {robotframework-7.0rc3 → robotframework-7.0.1}/setup.py +1 -1
  5. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/api/interfaces.py +14 -10
  6. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/conf/languages.py +45 -0
  7. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libraries/BuiltIn.py +2 -2
  8. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libraries/Collections.py +5 -3
  9. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libraries/dialogs_py.py +3 -4
  10. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/__init__.py +1 -1
  11. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/configurer.py +1 -1
  12. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/filter.py +9 -9
  13. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/keyword.py +2 -9
  14. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/output/xmllogger.py +3 -1
  15. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/reporting/logreportwriters.py +1 -1
  16. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/result/model.py +2 -27
  17. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/__init__.py +7 -0
  18. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/arguments/argumentresolver.py +7 -15
  19. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/arguments/typeconverters.py +11 -1
  20. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/arguments/typeinfo.py +34 -7
  21. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/bodyrunner.py +1 -1
  22. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/builder/transformers.py +3 -3
  23. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/invalidkeyword.py +5 -0
  24. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/librarykeyword.py +3 -3
  25. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/model.py +32 -28
  26. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/namespace.py +4 -0
  27. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/resourcemodel.py +1 -1
  28. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/timeouts/__init__.py +6 -2
  29. robotframework-7.0.1/src/robot/running/timeouts/nosupport.py +25 -0
  30. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/userkeywordrunner.py +2 -0
  31. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/__init__.py +1 -1
  32. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/notset.py +2 -3
  33. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/version.py +1 -1
  34. {robotframework-7.0rc3 → robotframework-7.0.1/src/robotframework.egg-info}/PKG-INFO +5 -3
  35. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robotframework.egg-info/SOURCES.txt +1 -0
  36. {robotframework-7.0rc3 → robotframework-7.0.1}/AUTHORS.rst +0 -0
  37. {robotframework-7.0rc3 → robotframework-7.0.1}/BUILD.rst +0 -0
  38. {robotframework-7.0rc3 → robotframework-7.0.1}/CONTRIBUTING.rst +0 -0
  39. {robotframework-7.0rc3 → robotframework-7.0.1}/COPYRIGHT.txt +0 -0
  40. {robotframework-7.0rc3 → robotframework-7.0.1}/LICENSE.txt +0 -0
  41. {robotframework-7.0rc3 → robotframework-7.0.1}/MANIFEST.in +0 -0
  42. {robotframework-7.0rc3 → robotframework-7.0.1}/setup.cfg +0 -0
  43. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/__init__.py +0 -0
  44. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/__main__.py +0 -0
  45. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/api/__init__.py +0 -0
  46. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/api/deco.py +0 -0
  47. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/api/exceptions.py +0 -0
  48. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/api/logger.py +0 -0
  49. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/api/parsing.py +0 -0
  50. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/api/py.typed +0 -0
  51. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/conf/__init__.py +0 -0
  52. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/conf/gatherfailed.py +0 -0
  53. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/conf/settings.py +0 -0
  54. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/errors.py +0 -0
  55. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/__init__.py +0 -0
  56. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/common/__init__.py +0 -0
  57. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/common/js_disabled.css +0 -0
  58. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/common/storage.js +0 -0
  59. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/htmlfilewriter.py +0 -0
  60. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/jsonwriter.py +0 -0
  61. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/lib/__init__.py +0 -0
  62. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/lib/jquery.highlight.min.js +0 -0
  63. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/lib/jquery.min.js +0 -0
  64. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/lib/jquery.tablesorter.min.js +0 -0
  65. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/lib/jquery.tmpl.min.js +0 -0
  66. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/lib/jsxcompressor.min.js +0 -0
  67. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/libdoc/__init__.py +0 -0
  68. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/libdoc/doc_formatting.css +0 -0
  69. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/libdoc/libdoc.css +0 -0
  70. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/libdoc/libdoc.html +0 -0
  71. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/libdoc/print.css +0 -0
  72. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/libdoc/pygments.css +0 -0
  73. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/rebot/__init__.py +0 -0
  74. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/rebot/common.css +0 -0
  75. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/rebot/doc_formatting.css +0 -0
  76. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/rebot/fileloading.js +0 -0
  77. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/rebot/log.css +0 -0
  78. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/rebot/log.html +0 -0
  79. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/rebot/log.js +0 -0
  80. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/rebot/model.js +0 -0
  81. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/rebot/print.css +0 -0
  82. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/rebot/report.css +0 -0
  83. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/rebot/report.html +0 -0
  84. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/rebot/testdata.js +0 -0
  85. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/rebot/util.js +0 -0
  86. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/rebot/view.js +0 -0
  87. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/template.py +0 -0
  88. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/testdoc/__init__.py +0 -0
  89. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/testdoc/testdoc.css +0 -0
  90. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/htmldata/testdoc/testdoc.html +0 -0
  91. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libdoc.py +0 -0
  92. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libdocpkg/__init__.py +0 -0
  93. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libdocpkg/builder.py +0 -0
  94. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libdocpkg/consoleviewer.py +0 -0
  95. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libdocpkg/datatypes.py +0 -0
  96. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libdocpkg/htmlutils.py +0 -0
  97. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libdocpkg/htmlwriter.py +0 -0
  98. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libdocpkg/jsonbuilder.py +0 -0
  99. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libdocpkg/jsonwriter.py +0 -0
  100. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libdocpkg/model.py +0 -0
  101. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libdocpkg/output.py +0 -0
  102. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libdocpkg/robotbuilder.py +0 -0
  103. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libdocpkg/standardtypes.py +0 -0
  104. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libdocpkg/writer.py +0 -0
  105. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libdocpkg/xmlbuilder.py +0 -0
  106. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libdocpkg/xmlwriter.py +0 -0
  107. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libraries/DateTime.py +0 -0
  108. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libraries/Dialogs.py +0 -0
  109. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libraries/Easter.py +0 -0
  110. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libraries/OperatingSystem.py +0 -0
  111. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libraries/Process.py +0 -0
  112. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libraries/Remote.py +0 -0
  113. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libraries/Screenshot.py +0 -0
  114. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libraries/String.py +0 -0
  115. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libraries/Telnet.py +0 -0
  116. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libraries/XML.py +0 -0
  117. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/libraries/__init__.py +0 -0
  118. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/body.py +0 -0
  119. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/control.py +0 -0
  120. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/fixture.py +0 -0
  121. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/itemlist.py +0 -0
  122. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/message.py +0 -0
  123. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/metadata.py +0 -0
  124. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/modelobject.py +0 -0
  125. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/modifier.py +0 -0
  126. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/namepatterns.py +0 -0
  127. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/statistics.py +0 -0
  128. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/stats.py +0 -0
  129. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/suitestatistics.py +0 -0
  130. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/tags.py +0 -0
  131. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/tagsetter.py +0 -0
  132. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/tagstatistics.py +0 -0
  133. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/testcase.py +0 -0
  134. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/testsuite.py +0 -0
  135. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/totalstatistics.py +0 -0
  136. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/model/visitor.py +0 -0
  137. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/output/__init__.py +0 -0
  138. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/output/console/__init__.py +0 -0
  139. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/output/console/dotted.py +0 -0
  140. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/output/console/highlighting.py +0 -0
  141. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/output/console/quiet.py +0 -0
  142. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/output/console/verbose.py +0 -0
  143. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/output/debugfile.py +0 -0
  144. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/output/filelogger.py +0 -0
  145. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/output/librarylogger.py +0 -0
  146. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/output/listeners.py +0 -0
  147. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/output/logger.py +0 -0
  148. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/output/loggerapi.py +0 -0
  149. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/output/loggerhelper.py +0 -0
  150. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/output/output.py +0 -0
  151. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/output/pyloggingconf.py +0 -0
  152. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/output/stdoutlogsplitter.py +0 -0
  153. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/parsing/__init__.py +0 -0
  154. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/parsing/lexer/__init__.py +0 -0
  155. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/parsing/lexer/blocklexers.py +0 -0
  156. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/parsing/lexer/context.py +0 -0
  157. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/parsing/lexer/lexer.py +0 -0
  158. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/parsing/lexer/settings.py +0 -0
  159. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/parsing/lexer/statementlexers.py +0 -0
  160. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/parsing/lexer/tokenizer.py +0 -0
  161. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/parsing/lexer/tokens.py +0 -0
  162. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/parsing/model/__init__.py +0 -0
  163. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/parsing/model/blocks.py +0 -0
  164. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/parsing/model/statements.py +0 -0
  165. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/parsing/model/visitor.py +0 -0
  166. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/parsing/parser/__init__.py +0 -0
  167. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/parsing/parser/blockparsers.py +0 -0
  168. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/parsing/parser/fileparser.py +0 -0
  169. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/parsing/parser/parser.py +0 -0
  170. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/parsing/suitestructure.py +0 -0
  171. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/pythonpathsetter.py +0 -0
  172. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/rebot.py +0 -0
  173. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/reporting/__init__.py +0 -0
  174. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/reporting/expandkeywordmatcher.py +0 -0
  175. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/reporting/jsbuildingcontext.py +0 -0
  176. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/reporting/jsexecutionresult.py +0 -0
  177. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/reporting/jsmodelbuilders.py +0 -0
  178. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/reporting/jswriter.py +0 -0
  179. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/reporting/outputwriter.py +0 -0
  180. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/reporting/resultwriter.py +0 -0
  181. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/reporting/stringcache.py +0 -0
  182. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/reporting/xunitwriter.py +0 -0
  183. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/result/__init__.py +0 -0
  184. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/result/configurer.py +0 -0
  185. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/result/executionerrors.py +0 -0
  186. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/result/executionresult.py +0 -0
  187. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/result/flattenkeywordmatcher.py +0 -0
  188. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/result/keywordremover.py +0 -0
  189. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/result/merger.py +0 -0
  190. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/result/messagefilter.py +0 -0
  191. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/result/modeldeprecation.py +0 -0
  192. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/result/resultbuilder.py +0 -0
  193. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/result/suiteteardownfailed.py +0 -0
  194. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/result/visitor.py +0 -0
  195. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/result/xmlelementhandlers.py +0 -0
  196. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/run.py +0 -0
  197. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/arguments/__init__.py +0 -0
  198. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/arguments/argumentconverter.py +0 -0
  199. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/arguments/argumentmapper.py +0 -0
  200. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/arguments/argumentparser.py +0 -0
  201. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/arguments/argumentspec.py +0 -0
  202. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/arguments/argumentvalidator.py +0 -0
  203. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/arguments/customconverters.py +0 -0
  204. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/arguments/embedded.py +0 -0
  205. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/arguments/typeinfoparser.py +0 -0
  206. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/arguments/typevalidator.py +0 -0
  207. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/builder/__init__.py +0 -0
  208. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/builder/builders.py +0 -0
  209. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/builder/parsers.py +0 -0
  210. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/builder/settings.py +0 -0
  211. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/context.py +0 -0
  212. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/dynamicmethods.py +0 -0
  213. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/importer.py +0 -0
  214. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/keywordfinder.py +0 -0
  215. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/keywordimplementation.py +0 -0
  216. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/librarykeywordrunner.py +0 -0
  217. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/libraryscopes.py +0 -0
  218. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/outputcapture.py +0 -0
  219. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/randomizer.py +0 -0
  220. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/runkwregister.py +0 -0
  221. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/signalhandler.py +0 -0
  222. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/status.py +0 -0
  223. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/statusreporter.py +0 -0
  224. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/suiterunner.py +0 -0
  225. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/testlibraries.py +0 -0
  226. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/timeouts/posix.py +0 -0
  227. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/running/timeouts/windows.py +0 -0
  228. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/testdoc.py +0 -0
  229. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/application.py +0 -0
  230. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/argumentparser.py +0 -0
  231. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/asserts.py +0 -0
  232. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/charwidth.py +0 -0
  233. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/compress.py +0 -0
  234. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/connectioncache.py +0 -0
  235. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/dotdict.py +0 -0
  236. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/encoding.py +0 -0
  237. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/encodingsniffer.py +0 -0
  238. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/error.py +0 -0
  239. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/escaping.py +0 -0
  240. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/etreewrapper.py +0 -0
  241. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/filereader.py +0 -0
  242. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/frange.py +0 -0
  243. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/htmlformatters.py +0 -0
  244. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/importer.py +0 -0
  245. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/markuputils.py +0 -0
  246. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/markupwriters.py +0 -0
  247. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/match.py +0 -0
  248. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/misc.py +0 -0
  249. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/normalizing.py +0 -0
  250. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/platform.py +0 -0
  251. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/recommendations.py +0 -0
  252. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/restreader.py +0 -0
  253. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/robotenv.py +0 -0
  254. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/robotinspect.py +0 -0
  255. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/robotio.py +0 -0
  256. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/robotpath.py +0 -0
  257. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/robottime.py +0 -0
  258. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/robottypes.py +0 -0
  259. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/setter.py +0 -0
  260. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/sortable.py +0 -0
  261. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/text.py +0 -0
  262. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/typehints.py +0 -0
  263. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/utils/unic.py +0 -0
  264. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/variables/__init__.py +0 -0
  265. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/variables/assigner.py +0 -0
  266. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/variables/evaluation.py +0 -0
  267. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/variables/filesetter.py +0 -0
  268. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/variables/finders.py +0 -0
  269. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/variables/notfound.py +0 -0
  270. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/variables/replacer.py +0 -0
  271. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/variables/resolvable.py +0 -0
  272. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/variables/scopes.py +0 -0
  273. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/variables/search.py +0 -0
  274. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/variables/store.py +0 -0
  275. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/variables/tablesetter.py +0 -0
  276. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robot/variables/variables.py +0 -0
  277. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robotframework.egg-info/dependency_links.txt +0 -0
  278. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robotframework.egg-info/entry_points.txt +0 -0
  279. {robotframework-7.0rc3 → robotframework-7.0.1}/src/robotframework.egg-info/top_level.txt +0 -0
  280. {robotframework-7.0rc3 → robotframework-7.0.1}/tasks.py +0 -0
@@ -526,7 +526,17 @@ class TypedDictConverter(TypeConverter):
526
526
  return type_info.is_typed_dict
527
527
 
528
528
  def no_conversion_needed(self, value):
529
- return False
529
+ if not isinstance(value, Mapping):
530
+ return False
531
+ for key in value:
532
+ try:
533
+ converter = self.converters[key]
534
+ except KeyError:
535
+ return False
536
+ else:
537
+ if not converter.no_conversion_needed(value[key]):
538
+ return False
539
+ return set(value).issuperset(self.type_info.required)
530
540
 
531
541
  def _non_string_convert(self, value):
532
542
  return self._convert_items(value)
@@ -13,12 +13,20 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
 
16
+ import sys
16
17
  from collections.abc import Mapping, Sequence, Set
17
18
  from datetime import date, datetime, timedelta
18
19
  from decimal import Decimal
19
20
  from enum import Enum
20
21
  from pathlib import Path
21
- from typing import Any, ForwardRef, get_type_hints, Literal, Union
22
+ from typing import Any, ForwardRef, get_type_hints, get_origin, Literal, Union
23
+ if sys.version_info >= (3, 11):
24
+ from typing import NotRequired, Required
25
+ else:
26
+ try:
27
+ from typing_extensions import NotRequired, Required
28
+ except ImportError:
29
+ NotRequired = Required = object()
22
30
 
23
31
  from robot.conf import Languages, LanguagesLike
24
32
  from robot.errors import DataError
@@ -307,11 +315,30 @@ class TypedDictInfo(TypeInfo):
307
315
 
308
316
  def __init__(self, name: str, type: type):
309
317
  super().__init__(name, type)
310
- try:
311
- type_hints = get_type_hints(type)
312
- except Exception:
313
- type_hints = type.__annotations__
314
- self.annotations = {name: TypeInfo.from_type_hint(hint)
315
- for name, hint in type_hints.items()}
318
+ type_hints = self._get_type_hints(type)
316
319
  # __required_keys__ is new in Python 3.9.
317
320
  self.required = getattr(type, '__required_keys__', frozenset())
321
+ if sys.version_info < (3, 11):
322
+ self._handle_typing_extensions_required_and_not_required(type_hints)
323
+ self.annotations = {name: TypeInfo.from_type_hint(hint)
324
+ for name, hint in type_hints.items()}
325
+
326
+ def _get_type_hints(self, type) -> 'dict[str, Any]':
327
+ try:
328
+ return get_type_hints(type)
329
+ except Exception:
330
+ return type.__annotations__
331
+
332
+ def _handle_typing_extensions_required_and_not_required(self, type_hints):
333
+ # NotRequired and Required are handled automatically by Python 3.11 and newer,
334
+ # but with older they appear in type hints and need to be handled separately.
335
+ required = set(self.required)
336
+ for key, hint in type_hints.items():
337
+ origin = get_origin(hint)
338
+ if origin is Required:
339
+ required.add(key)
340
+ type_hints[key] = hint.__args__[0]
341
+ elif origin is NotRequired:
342
+ required.discard(key)
343
+ type_hints[key] = hint.__args__[0]
344
+ self.required = frozenset(required)
@@ -68,7 +68,7 @@ class KeywordRunner:
68
68
 
69
69
  def run(self, data, result, name=None):
70
70
  context = self._context
71
- runner = context.get_runner(name or data.name)
71
+ runner = context.get_runner(name or data.name, recommend_on_failure=self._run)
72
72
  if context.dry_run:
73
73
  return runner.dry_run(data, result, context)
74
74
  return runner.run(data, result, context, self._run)
@@ -370,9 +370,9 @@ class ForBuilder(BodyBuilder):
370
370
 
371
371
  def build(self, node):
372
372
  error = format_error(self._get_errors(node))
373
- self.model.config(assign=node.assign, flavor=node.flavor, values=node.values,
374
- start=node.start, mode=node.mode, fill=node.fill,
375
- lineno=node.lineno, error=error)
373
+ self.model.config(assign=node.assign, flavor=node.flavor or 'IN',
374
+ values=node.values, start=node.start, mode=node.mode,
375
+ fill=node.fill, lineno=node.lineno, error=error)
376
376
  for step in node.body:
377
377
  self.visit(step)
378
378
  return self.model
@@ -24,6 +24,11 @@ from .keywordimplementation import KeywordImplementation
24
24
 
25
25
 
26
26
  class InvalidKeyword(KeywordImplementation):
27
+ """Represents an invalid keyword call.
28
+
29
+ Keyword may not have been found, there could have been multiple matches,
30
+ or the keyword call itself could have been invalid.
31
+ """
27
32
  type = KeywordImplementation.INVALID_KEYWORD
28
33
 
29
34
  def _get_embedded(self, name) -> 'EmbeddedArguments|None':
@@ -100,7 +100,7 @@ class LibraryKeyword(KeywordImplementation):
100
100
 
101
101
 
102
102
  class StaticKeyword(LibraryKeyword):
103
- """Represents keywords in static libraries."""
103
+ """Represents a keyword in a static library."""
104
104
  __slots__ = ['method_name']
105
105
 
106
106
  def __init__(self, method_name: str,
@@ -142,7 +142,7 @@ class StaticKeyword(LibraryKeyword):
142
142
 
143
143
 
144
144
  class DynamicKeyword(LibraryKeyword):
145
- """Represents keywords in dynamic libraries."""
145
+ """Represents a keyword in a dynamic library."""
146
146
  owner: 'DynamicLibrary'
147
147
  __slots__ = ['run_keyword', '_orig_name', '__source_info']
148
148
 
@@ -212,7 +212,7 @@ class DynamicKeyword(LibraryKeyword):
212
212
 
213
213
 
214
214
  class LibraryInit(LibraryKeyword):
215
- """Represents library initializer.
215
+ """Represents a library initializer.
216
216
 
217
217
  :attr:`positional` and :attr:`named` contain arguments used for initializing
218
218
  the library.
@@ -36,7 +36,7 @@ __ http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#
36
36
 
37
37
  import warnings
38
38
  from pathlib import Path
39
- from typing import Literal, Mapping, Sequence, TYPE_CHECKING, TypeVar, Union
39
+ from typing import Any, Literal, Mapping, Sequence, TYPE_CHECKING, TypeVar, Union
40
40
 
41
41
  from robot import model
42
42
  from robot.conf import RobotSettings
@@ -80,6 +80,35 @@ class WithSource:
80
80
  return self.parent.source if self.parent is not None else None
81
81
 
82
82
 
83
+ class Argument:
84
+ """A temporary API for creating named arguments with non-string values.
85
+
86
+ This class was added in RF 7.0.1 (#5031) after a failed attempt to add a public
87
+ API for this purpose in RF 7.0 (#5000). A better public API is planned for RF 7.1
88
+ (#5143).
89
+
90
+ If you need to support also RF 7.0, you can pass named arguments as two-item tuples
91
+ like `(name, value)` and positional arguments as one-item tuples like `(value,)`.
92
+ That approach does not work anymore in RF 7.0.1, though, so the code needs to be
93
+ conditional depending on Robot Framework version.
94
+
95
+ The main limitation of this class is that it is not compatible with the JSON model.
96
+ The current plan is to remove this in the future, possibly already in RF 8.0, but
97
+ we can consider preserving it if it turns out to be useful.
98
+ """
99
+
100
+ def __init__(self, name: 'str|None', value: Any):
101
+ """
102
+ :param name: Argument name. If ``None``, argument is considered positional.
103
+ :param value: Argument value.
104
+ """
105
+ self.name = name
106
+ self.value = value
107
+
108
+ def __str__(self):
109
+ return str(self.value) if self.name is None else f'{self.name}={self.value}'
110
+
111
+
83
112
  @Body.register
84
113
  class Keyword(model.Keyword, WithSource):
85
114
  """Represents an executable keyword call.
@@ -97,27 +126,11 @@ class Keyword(model.Keyword, WithSource):
97
126
  strings in the exact same format as in the data. This means that arguments can
98
127
  have variables and escape characters, and that named arguments are specified
99
128
  using the ``name=value`` syntax.
100
-
101
- If arguments are set programmatically, it is possible to use also other types
102
- than strings. To support non-string values with named arguments, it is possible
103
- to use two-item tuples like ``('name', 'value')``. To avoid ambiguity if an
104
- argument contains a literal ``=`` character, positional arguments can also be
105
- given using one-item tuples like ``('value',)``. In all these cases strings
106
- can contain variables, and they must follow the escaping rules used in normal
107
- data.
108
-
109
- Arguments can also be given directly as a tuple containing list of positional
110
- arguments and a dictionary of named arguments. In this case arguments are
111
- used as-is without replacing variables or handling escapes. Argument conversion
112
- and validation is done even in this case, though.
113
-
114
- Support for specifying arguments using tuples and giving them directly as
115
- positional and named arguments are new in Robot Framework 7.0.
116
129
  """
117
130
  __slots__ = ['lineno']
118
131
 
119
132
  def __init__(self, name: str = '',
120
- args: model.Arguments = (),
133
+ args: 'Sequence[str|Argument|Any]' = (),
121
134
  assign: Sequence[str] = (),
122
135
  type: str = BodyItem.KEYWORD,
123
136
  parent: BodyItemParent = None,
@@ -125,15 +138,6 @@ class Keyword(model.Keyword, WithSource):
125
138
  super().__init__(name, args, assign, type, parent)
126
139
  self.lineno = lineno
127
140
 
128
- @classmethod
129
- def from_json(cls, source) -> 'Keyword':
130
- kw = super().from_json(source)
131
- # Argument tuples have a special meaning during execution.
132
- # Tuples are represented as lists in JSON, so we need to convert them.
133
- kw.args = tuple([tuple(a) if isinstance(a, list) else a
134
- for a in kw.args])
135
- return kw
136
-
137
141
  def to_dict(self) -> DataDict:
138
142
  data = super().to_dict()
139
143
  if self.lineno:
@@ -663,7 +667,7 @@ class TestSuite(model.TestSuite[Keyword, TestCase]):
663
667
 
664
668
  Example::
665
669
 
666
- suite.configure(included_tags=['smoke'],
670
+ suite.configure(include_tags=['smoke'],
667
671
  doc='Smoke test results.')
668
672
 
669
673
  Not to be confused with :meth:`config` method that suites, tests,
@@ -215,6 +215,10 @@ class Namespace:
215
215
  return library
216
216
 
217
217
  def get_runner(self, name, recommend_on_failure=True):
218
+ # TODO: Consider changing the default value of `recommend_on_failure` to False.
219
+ # Recommendations are not needed in all contexts and collecting them has a
220
+ # performance effect that has caused issues #4659 and #5051. It is possible to
221
+ # opt-out from collecting recommendations, but making it opt-in could be safer.
218
222
  try:
219
223
  return self._kw_store.get_runner(name, recommend_on_failure)
220
224
  except DataError as err:
@@ -155,7 +155,7 @@ class ResourceFile(ModelObject):
155
155
 
156
156
 
157
157
  class UserKeyword(KeywordImplementation):
158
- """Represents user keywords."""
158
+ """Represents a user keyword."""
159
159
  type = KeywordImplementation.USER_KEYWORD
160
160
  fixture_class = Keyword
161
161
  __slots__ = ['timeout', '_setup', '_teardown']
@@ -21,10 +21,14 @@ from robot.errors import TimeoutError, DataError, FrameworkError
21
21
  if WINDOWS:
22
22
  from .windows import Timeout
23
23
  else:
24
- from .posix import Timeout
24
+ try:
25
+ from .posix import Timeout
26
+ except ImportError:
27
+ from .nosupport import Timeout
25
28
 
26
29
 
27
30
  class _Timeout(Sortable):
31
+ type: str
28
32
 
29
33
  def __init__(self, timeout=None, variables=None):
30
34
  self.string = timeout or ''
@@ -113,7 +117,7 @@ class TestTimeout(_Timeout):
113
117
  def __init__(self, timeout=None, variables=None, rpa=False):
114
118
  if rpa:
115
119
  self.type = 'Task'
116
- _Timeout.__init__(self, timeout, variables)
120
+ super().__init__(timeout, variables)
117
121
 
118
122
  def set_keyword_timeout(self, timeout_occurred):
119
123
  if timeout_occurred:
@@ -0,0 +1,25 @@
1
+ # Copyright 2008-2015 Nokia Networks
2
+ # Copyright 2016- Robot Framework Foundation
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ from robot.errors import DataError
17
+
18
+
19
+ class Timeout:
20
+
21
+ def __init__(self, timeout, error):
22
+ pass
23
+
24
+ def execute(self, runnable):
25
+ raise DataError('Timeouts are not supported on this platform.')
@@ -134,6 +134,8 @@ class UserKeywordRunner:
134
134
  args = [f'${{{arg}}}' for arg in spec.positional]
135
135
  if spec.var_positional:
136
136
  args.append(f'@{{{spec.var_positional}}}')
137
+ if spec.named_only:
138
+ args.extend(f'${{{arg}}}' for arg in spec.named_only)
137
139
  if spec.var_named:
138
140
  args.append(f'&{{{spec.var_named}}}')
139
141
  return args
@@ -54,7 +54,7 @@ from .match import eq, Matcher, MultiMatcher
54
54
  from .misc import (classproperty, isatty, parse_re_flags, plural_or_not,
55
55
  printable_name, seq2str, seq2str2, test_or_task)
56
56
  from .normalizing import normalize, normalize_whitespace, NormalizedDict
57
- from .notset import NOT_SET
57
+ from .notset import NOT_SET, NotSet
58
58
  from .platform import PY_VERSION, PYPY, UNIXY, WINDOWS, RERAISED_EXCEPTIONS
59
59
  from .recommendations import RecommendationFinder
60
60
  from .robotenv import get_env_var, set_env_var, del_env_var, get_env_vars
@@ -19,8 +19,8 @@ class NotSet:
19
19
  Can be used instead of the standard ``None`` in cases where ``None``
20
20
  itself is a valid value.
21
21
 
22
- Use the constant ``robot.utils.NOT_SET`` instead of creating new instances
23
- of the class.
22
+ ``robot.utils.NOT_SET`` is an instance of this class, but it in same cases
23
+ it is better to create a separate instance.
24
24
 
25
25
  New in Robot Framework 7.0.
26
26
  """
@@ -30,4 +30,3 @@ class NotSet:
30
30
 
31
31
 
32
32
  NOT_SET = NotSet()
33
-
@@ -18,7 +18,7 @@ import sys
18
18
 
19
19
  # Version number typically updated by running `invoke set-version <version>`.
20
20
  # Run `invoke --help set-version` or see tasks.py for details.
21
- VERSION = '7.0rc3'
21
+ VERSION = '7.0.1'
22
22
 
23
23
 
24
24
  def get_version(naked=False):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: robotframework
3
- Version: 7.0rc3
3
+ Version: 7.0.1
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,7 +10,7 @@ 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-7.0rc3.rst
13
+ Project-URL: Release Notes, https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-7.0.1.rst
14
14
  Project-URL: Slack, http://slack.robotframework.org
15
15
  Description: Robot Framework
16
16
  ===============
@@ -63,10 +63,12 @@ Description: Robot Framework
63
63
  For more detailed installation instructions, including installing Python, see
64
64
  `INSTALL.rst <https://github.com/robotframework/robotframework/blob/master/INSTALL.rst>`__.
65
65
 
66
- Robot Framework requires Python 3.6 or newer and runs also on `PyPy <http://pypy.org>`_.
66
+ Robot Framework requires Python 3.8 or newer and runs also on `PyPy <http://pypy.org>`_.
67
+ The latest version that supports Python 3.6 and 3.7 is `Robot Framework 6.1.1`__.
67
68
  If you need to use Python 2, `Jython <http://jython.org>`_ or
68
69
  `IronPython <http://ironpython.net>`_, you can use `Robot Framework 4.1.3`__.
69
70
 
71
+ __ https://github.com/robotframework/robotframework/tree/v6.1.1#readme
70
72
  __ https://github.com/robotframework/robotframework/tree/v4.1.3#readme
71
73
 
72
74
  Example
@@ -218,6 +218,7 @@ src/robot/running/builder/parsers.py
218
218
  src/robot/running/builder/settings.py
219
219
  src/robot/running/builder/transformers.py
220
220
  src/robot/running/timeouts/__init__.py
221
+ src/robot/running/timeouts/nosupport.py
221
222
  src/robot/running/timeouts/posix.py
222
223
  src/robot/running/timeouts/windows.py
223
224
  src/robot/utils/__init__.py