robotframework 7.4rc1__tar.gz → 7.4.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. {robotframework-7.4rc1 → robotframework-7.4.1}/PKG-INFO +2 -2
  2. {robotframework-7.4rc1 → robotframework-7.4.1}/setup.py +1 -1
  3. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/api/types.py +15 -2
  4. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libraries/BuiltIn.py +66 -20
  5. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libraries/Process.py +404 -356
  6. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libraries/String.py +10 -7
  7. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/tags.py +1 -1
  8. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/console/dotted.py +1 -1
  9. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/console/quiet.py +1 -1
  10. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/console/verbose.py +1 -1
  11. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/logger.py +14 -14
  12. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/result/model.py +2 -0
  13. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/result/resultbuilder.py +6 -0
  14. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/arguments/typeconverters.py +7 -1
  15. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/arguments/typeinfo.py +16 -6
  16. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/model.py +10 -10
  17. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/normalizing.py +24 -0
  18. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/robottypes.py +11 -9
  19. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/version.py +1 -1
  20. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robotframework.egg-info/PKG-INFO +2 -2
  21. {robotframework-7.4rc1 → robotframework-7.4.1}/AUTHORS.rst +0 -0
  22. {robotframework-7.4rc1 → robotframework-7.4.1}/BUILD.rst +0 -0
  23. {robotframework-7.4rc1 → robotframework-7.4.1}/CONTRIBUTING.rst +0 -0
  24. {robotframework-7.4rc1 → robotframework-7.4.1}/COPYRIGHT.txt +0 -0
  25. {robotframework-7.4rc1 → robotframework-7.4.1}/INSTALL.rst +0 -0
  26. {robotframework-7.4rc1 → robotframework-7.4.1}/LICENSE.txt +0 -0
  27. {robotframework-7.4rc1 → robotframework-7.4.1}/MANIFEST.in +0 -0
  28. {robotframework-7.4rc1 → robotframework-7.4.1}/README.rst +0 -0
  29. {robotframework-7.4rc1 → robotframework-7.4.1}/pyproject.toml +0 -0
  30. {robotframework-7.4rc1 → robotframework-7.4.1}/setup.cfg +0 -0
  31. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/__init__.py +0 -0
  32. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/__main__.py +0 -0
  33. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/api/__init__.py +0 -0
  34. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/api/deco.py +0 -0
  35. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/api/exceptions.py +0 -0
  36. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/api/interfaces.py +0 -0
  37. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/api/logger.py +0 -0
  38. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/api/parsing.py +0 -0
  39. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/api/py.typed +0 -0
  40. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/conf/__init__.py +0 -0
  41. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/conf/gatherfailed.py +0 -0
  42. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/conf/languages.py +0 -0
  43. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/conf/settings.py +0 -0
  44. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/errors.py +0 -0
  45. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/__init__.py +0 -0
  46. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/common/__init__.py +0 -0
  47. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/common/js_disabled.css +0 -0
  48. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/common/storage.js +0 -0
  49. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/htmlfilewriter.py +0 -0
  50. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/jsonwriter.py +0 -0
  51. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/lib/__init__.py +0 -0
  52. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/lib/jquery.highlight.min.js +0 -0
  53. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/lib/jquery.min.js +0 -0
  54. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/lib/jquery.tablesorter.min.js +0 -0
  55. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/lib/jquery.tmpl.min.js +0 -0
  56. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/lib/jsxcompressor.min.js +0 -0
  57. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/libdoc/__init__.py +0 -0
  58. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/libdoc/libdoc.html +0 -0
  59. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/rebot/__init__.py +0 -0
  60. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/rebot/common.css +0 -0
  61. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/rebot/doc_formatting.css +0 -0
  62. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/rebot/fileloading.js +0 -0
  63. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/rebot/log.css +0 -0
  64. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/rebot/log.html +0 -0
  65. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/rebot/log.js +0 -0
  66. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/rebot/model.js +0 -0
  67. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/rebot/print.css +0 -0
  68. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/rebot/report.css +0 -0
  69. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/rebot/report.html +0 -0
  70. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/rebot/testdata.js +0 -0
  71. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/rebot/util.js +0 -0
  72. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/rebot/view.js +0 -0
  73. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/template.py +0 -0
  74. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/testdoc/__init__.py +0 -0
  75. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/testdoc/testdoc.css +0 -0
  76. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/htmldata/testdoc/testdoc.html +0 -0
  77. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libdoc.py +0 -0
  78. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libdocpkg/__init__.py +0 -0
  79. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libdocpkg/builder.py +0 -0
  80. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libdocpkg/consoleviewer.py +0 -0
  81. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libdocpkg/datatypes.py +0 -0
  82. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libdocpkg/htmlutils.py +0 -0
  83. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libdocpkg/htmlwriter.py +0 -0
  84. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libdocpkg/jsonbuilder.py +0 -0
  85. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libdocpkg/jsonwriter.py +0 -0
  86. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libdocpkg/languages.py +0 -0
  87. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libdocpkg/model.py +0 -0
  88. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libdocpkg/output.py +0 -0
  89. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libdocpkg/robotbuilder.py +0 -0
  90. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libdocpkg/standardtypes.py +0 -0
  91. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libdocpkg/writer.py +0 -0
  92. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libdocpkg/xmlbuilder.py +0 -0
  93. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libdocpkg/xmlwriter.py +0 -0
  94. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libraries/Collections.py +0 -0
  95. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libraries/DateTime.py +0 -0
  96. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libraries/Dialogs.py +0 -0
  97. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libraries/Easter.py +0 -0
  98. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libraries/OperatingSystem.py +0 -0
  99. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libraries/Remote.py +0 -0
  100. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libraries/Screenshot.py +0 -0
  101. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libraries/Telnet.py +0 -0
  102. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libraries/XML.py +0 -0
  103. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libraries/__init__.py +0 -0
  104. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libraries/dialogs_py.py +0 -0
  105. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libraries/normalizer.py +0 -0
  106. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/libraries/py.typed +0 -0
  107. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/logo.png +0 -0
  108. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/__init__.py +0 -0
  109. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/body.py +0 -0
  110. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/configurer.py +0 -0
  111. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/control.py +0 -0
  112. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/filter.py +0 -0
  113. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/fixture.py +0 -0
  114. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/itemlist.py +0 -0
  115. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/keyword.py +0 -0
  116. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/message.py +0 -0
  117. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/metadata.py +0 -0
  118. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/modelobject.py +0 -0
  119. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/modifier.py +0 -0
  120. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/namepatterns.py +0 -0
  121. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/statistics.py +0 -0
  122. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/stats.py +0 -0
  123. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/suitestatistics.py +0 -0
  124. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/tagsetter.py +0 -0
  125. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/tagstatistics.py +0 -0
  126. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/testcase.py +0 -0
  127. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/testsuite.py +0 -0
  128. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/totalstatistics.py +0 -0
  129. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/model/visitor.py +0 -0
  130. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/__init__.py +0 -0
  131. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/console/__init__.py +0 -0
  132. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/console/highlighting.py +0 -0
  133. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/debugfile.py +0 -0
  134. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/filelogger.py +0 -0
  135. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/jsonlogger.py +0 -0
  136. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/librarylogger.py +0 -0
  137. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/listeners.py +0 -0
  138. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/loggerapi.py +0 -0
  139. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/loggerhelper.py +0 -0
  140. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/loglevel.py +0 -0
  141. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/output.py +0 -0
  142. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/outputfile.py +0 -0
  143. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/pyloggingconf.py +0 -0
  144. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/stdoutlogsplitter.py +0 -0
  145. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/output/xmllogger.py +0 -0
  146. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/parsing/__init__.py +0 -0
  147. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/parsing/lexer/__init__.py +0 -0
  148. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/parsing/lexer/blocklexers.py +0 -0
  149. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/parsing/lexer/context.py +0 -0
  150. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/parsing/lexer/lexer.py +0 -0
  151. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/parsing/lexer/settings.py +0 -0
  152. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/parsing/lexer/statementlexers.py +0 -0
  153. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/parsing/lexer/tokenizer.py +0 -0
  154. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/parsing/lexer/tokens.py +0 -0
  155. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/parsing/model/__init__.py +0 -0
  156. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/parsing/model/blocks.py +0 -0
  157. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/parsing/model/statements.py +0 -0
  158. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/parsing/model/visitor.py +0 -0
  159. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/parsing/parser/__init__.py +0 -0
  160. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/parsing/parser/blockparsers.py +0 -0
  161. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/parsing/parser/fileparser.py +0 -0
  162. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/parsing/parser/parser.py +0 -0
  163. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/parsing/suitestructure.py +0 -0
  164. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/pythonpathsetter.py +0 -0
  165. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/rebot.py +0 -0
  166. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/reporting/__init__.py +0 -0
  167. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/reporting/expandkeywordmatcher.py +0 -0
  168. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/reporting/jsbuildingcontext.py +0 -0
  169. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/reporting/jsexecutionresult.py +0 -0
  170. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/reporting/jsmodelbuilders.py +0 -0
  171. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/reporting/jswriter.py +0 -0
  172. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/reporting/logreportwriters.py +0 -0
  173. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/reporting/outputwriter.py +0 -0
  174. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/reporting/resultwriter.py +0 -0
  175. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/reporting/stringcache.py +0 -0
  176. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/reporting/xunitwriter.py +0 -0
  177. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/result/__init__.py +0 -0
  178. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/result/configurer.py +0 -0
  179. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/result/executionerrors.py +0 -0
  180. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/result/executionresult.py +0 -0
  181. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/result/flattenkeywordmatcher.py +0 -0
  182. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/result/keywordremover.py +0 -0
  183. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/result/merger.py +0 -0
  184. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/result/messagefilter.py +0 -0
  185. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/result/modeldeprecation.py +0 -0
  186. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/result/suiteteardownfailed.py +0 -0
  187. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/result/visitor.py +0 -0
  188. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/result/xmlelementhandlers.py +0 -0
  189. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/run.py +0 -0
  190. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/__init__.py +0 -0
  191. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/arguments/__init__.py +0 -0
  192. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/arguments/argumentconverter.py +0 -0
  193. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/arguments/argumentmapper.py +0 -0
  194. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/arguments/argumentparser.py +0 -0
  195. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/arguments/argumentresolver.py +0 -0
  196. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/arguments/argumentspec.py +0 -0
  197. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/arguments/argumentvalidator.py +0 -0
  198. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/arguments/customconverters.py +0 -0
  199. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/arguments/embedded.py +0 -0
  200. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/arguments/typeinfoparser.py +0 -0
  201. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/arguments/typevalidator.py +0 -0
  202. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/bodyrunner.py +0 -0
  203. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/builder/__init__.py +0 -0
  204. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/builder/builders.py +0 -0
  205. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/builder/parsers.py +0 -0
  206. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/builder/settings.py +0 -0
  207. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/builder/transformers.py +0 -0
  208. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/context.py +0 -0
  209. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/dynamicmethods.py +0 -0
  210. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/importer.py +0 -0
  211. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/invalidkeyword.py +0 -0
  212. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/keywordfinder.py +0 -0
  213. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/keywordimplementation.py +0 -0
  214. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/librarykeyword.py +0 -0
  215. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/librarykeywordrunner.py +0 -0
  216. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/libraryscopes.py +0 -0
  217. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/namespace.py +0 -0
  218. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/outputcapture.py +0 -0
  219. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/randomizer.py +0 -0
  220. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/resourcemodel.py +0 -0
  221. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/runkwregister.py +0 -0
  222. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/signalhandler.py +0 -0
  223. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/status.py +0 -0
  224. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/statusreporter.py +0 -0
  225. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/suiterunner.py +0 -0
  226. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/testlibraries.py +0 -0
  227. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/timeouts/__init__.py +0 -0
  228. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/timeouts/nosupport.py +0 -0
  229. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/timeouts/posix.py +0 -0
  230. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/timeouts/runner.py +0 -0
  231. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/timeouts/timeout.py +0 -0
  232. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/timeouts/windows.py +0 -0
  233. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/running/userkeywordrunner.py +0 -0
  234. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/testdoc.py +0 -0
  235. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/__init__.py +0 -0
  236. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/application.py +0 -0
  237. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/argumentparser.py +0 -0
  238. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/asserts.py +0 -0
  239. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/charwidth.py +0 -0
  240. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/compress.py +0 -0
  241. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/connectioncache.py +0 -0
  242. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/dotdict.py +0 -0
  243. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/encoding.py +0 -0
  244. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/encodingsniffer.py +0 -0
  245. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/error.py +0 -0
  246. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/escaping.py +0 -0
  247. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/etreewrapper.py +0 -0
  248. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/filereader.py +0 -0
  249. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/frange.py +0 -0
  250. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/htmlformatters.py +0 -0
  251. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/importer.py +0 -0
  252. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/json.py +0 -0
  253. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/markuputils.py +0 -0
  254. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/markupwriters.py +0 -0
  255. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/match.py +0 -0
  256. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/misc.py +0 -0
  257. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/notset.py +0 -0
  258. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/platform.py +0 -0
  259. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/recommendations.py +0 -0
  260. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/restreader.py +0 -0
  261. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/robotenv.py +0 -0
  262. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/robotinspect.py +0 -0
  263. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/robotio.py +0 -0
  264. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/robotpath.py +0 -0
  265. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/robottime.py +0 -0
  266. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/secret.py +0 -0
  267. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/setter.py +0 -0
  268. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/sortable.py +0 -0
  269. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/text.py +0 -0
  270. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/typehints.py +0 -0
  271. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/utils/unic.py +0 -0
  272. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/variables/__init__.py +0 -0
  273. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/variables/assigner.py +0 -0
  274. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/variables/evaluation.py +0 -0
  275. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/variables/filesetter.py +0 -0
  276. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/variables/finders.py +0 -0
  277. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/variables/notfound.py +0 -0
  278. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/variables/replacer.py +0 -0
  279. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/variables/resolvable.py +0 -0
  280. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/variables/scopes.py +0 -0
  281. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/variables/search.py +0 -0
  282. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/variables/store.py +0 -0
  283. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/variables/tablesetter.py +0 -0
  284. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robot/variables/variables.py +0 -0
  285. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robotframework.egg-info/SOURCES.txt +0 -0
  286. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robotframework.egg-info/dependency_links.txt +0 -0
  287. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robotframework.egg-info/entry_points.txt +0 -0
  288. {robotframework-7.4rc1 → robotframework-7.4.1}/src/robotframework.egg-info/top_level.txt +0 -0
  289. {robotframework-7.4rc1 → robotframework-7.4.1}/tasks.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: robotframework
3
- Version: 7.4rc1
3
+ Version: 7.4.1
4
4
  Summary: Generic automation framework for acceptance testing and robotic process automation (RPA)
5
5
  Home-page: https://robotframework.org
6
6
  Download-URL: https://pypi.org/project/robotframework
@@ -10,7 +10,7 @@ License: Apache License 2.0
10
10
  Project-URL: Source, https://github.com/robotframework/robotframework
11
11
  Project-URL: Issue Tracker, https://github.com/robotframework/robotframework/issues
12
12
  Project-URL: Documentation, https://robotframework.org/robotframework
13
- Project-URL: Release Notes, https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-7.4rc1.rst
13
+ Project-URL: Release Notes, https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-7.4.1.rst
14
14
  Project-URL: Slack, http://slack.robotframework.org
15
15
  Keywords: robotframework automation testautomation rpa testing acceptancetesting atdd bdd
16
16
  Platform: any
@@ -6,7 +6,7 @@ from setuptools import find_packages, setup
6
6
 
7
7
  # Version number typically updated by running `invoke set-version <version>`.
8
8
  # Run `invoke --help set-version` or see tasks.py for details.
9
- VERSION = "7.4rc1"
9
+ VERSION = "7.4.1"
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"
@@ -13,11 +13,24 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
 
16
- """Types for libraries and other extensions.
16
+ """Types that libraries and other extensions can utilize.
17
17
 
18
- Currently only exposes the :class:`~robot.utils.secret.Secret` type.
18
+ - The :class:`~robot.utils.secret.Secret` class is used for encapsulating
19
+ passwords, tokens and other such secret information.
20
+
21
+ - :class:`KeywordName` and :class:`KeywordArguments` are used in type hints
22
+ with keywords executing other keywords. External tools can recognize special
23
+ arguments using these types and handle them adequately.
19
24
 
20
25
  New in Robot Framework 7.4.
21
26
  """
22
27
 
23
28
  from robot.utils.secret import Secret as Secret
29
+
30
+
31
+ class KeywordName(str):
32
+ """Name of a keyword executed by another keyword."""
33
+
34
+
35
+ class KeywordArgument:
36
+ """Argument of a keyword executed by another keyword."""
@@ -21,6 +21,8 @@ from datetime import datetime, timedelta
21
21
  from typing import Any, Callable, Iterator, Literal, NoReturn
22
22
 
23
23
  from robot.api import logger, SkipExecution
24
+ from robot.api.deco import library
25
+ from robot.api.types import KeywordArgument, KeywordName
24
26
  from robot.errors import (
25
27
  BreakLoop, ContinueLoop, DataError, ExecutionFailed, ExecutionFailures,
26
28
  ExecutionPassed, PassExecution, ReturnFromKeyword, VariableError
@@ -43,14 +45,49 @@ from robot.version import get_version
43
45
 
44
46
  from .normalizer import Normalizer, StripSpaces
45
47
 
46
- # Type aliases representing names and arguments of keywords executed dynamically
47
- # by `Run Keyword` and other similar keywords. We may want to replace these with
48
- # concrete types in the future.
49
- KeywordName = str
50
- KeywordArgument = object
51
- # Type alias for expressions that are evaluated in Python. We may want to replace
52
- # this with a concrete type with custom type documentation later.
53
- Expression = object
48
+
49
+ class Expression:
50
+ """An expression evaluated in Python.
51
+
52
+ Expressions are evaluated using Python's
53
+ [http://docs.python.org/library/functions.html#eval|eval] function so
54
+ that all Python built-ins like ``len()`` and ``int()`` are available.
55
+ In addition to that, all unrecognized variables are considered to be
56
+ modules that are automatically imported. It is possible to use all
57
+ available Python modules, including the standard modules and the installed
58
+ third party modules.
59
+
60
+ Examples:
61
+ | `Should Be True` len('${result}') > 3
62
+ | `Run Keyword If` os.sep == '/' Non-Windows Keyword
63
+ | ${version} = `Evaluate` robot.__version__
64
+
65
+ When a variable is used in the expressing using the normal ``${variable}``
66
+ syntax, its value is replaced before the expression is evaluated. This
67
+ means that the value used in the expression will be the string
68
+ representation of the variable value, not the variable value itself.
69
+ This is not a problem with numbers and other objects that have a string
70
+ representation that can be evaluated directly, but with other objects
71
+ the behavior depends on the string representation. Most importantly,
72
+ strings must always be quoted, and if they can contain newlines, they must
73
+ be triple quoted.
74
+
75
+ Examples:
76
+ | `Should Be True` ${rc} < 10 Return code greater than 10
77
+ | `Run Keyword If` '${status}' == 'PASS' `Log` Passed
78
+ | `Run Keyword If` 'FAIL' in '''${output}''' `Log` Output contains FAIL
79
+
80
+ Actual variables values are also available in the evaluation namespace.
81
+ They can be accessed using special variable syntax without the curly
82
+ braces like ``$variable``. These variables should never be quoted.
83
+
84
+ Examples:
85
+ | `Should Be True` $rc < 10 Return code greater than 10
86
+ | `Run Keyword If` $status == 'PASS' `Log` Passed
87
+ | `Run Keyword If` 'FAIL' in $output `Log` Output contains FAIL
88
+ | `Should Be True` len($result) > 1 and $result[1] == 'OK'
89
+ | `Should Be True` $result is not None
90
+ """
54
91
 
55
92
 
56
93
  def run_keyword_variant(resolve, dry_run=False):
@@ -657,8 +694,9 @@ class _Verify(_BuiltInBase):
657
694
  formatter: Literal["str", "repr", "ascii"] = "str",
658
695
  strip_spaces: StripSpaces = False,
659
696
  collapse_spaces: bool = False,
660
- type: "type | str | Literal['AUTO'] | Any | None" = None,
661
- types: "type | str | Any | None" = None,
697
+ type: "Literal['AUTO'] | Any | None" = None,
698
+ types: "Any | None" = None,
699
+ # TODO: 'Any' -> 'TypeForm' with 'type' and 'types' once PEP 747 lands.
662
700
  ):
663
701
  r"""Fails if the given objects are unequal.
664
702
 
@@ -1777,7 +1815,7 @@ class _Variables(_BuiltInBase):
1777
1815
  return self._variables.as_dict(decoration=not no_decoration)
1778
1816
 
1779
1817
  @run_keyword_variant(resolve=0)
1780
- def get_variable_value(self, name: str, default: object = None, /) -> object:
1818
+ def get_variable_value(self, name: str, default: object = None) -> object:
1781
1819
  r"""Returns variable value or ``default`` if the variable does not exist.
1782
1820
 
1783
1821
  The name of the variable can be given either as a normal variable name
@@ -1828,7 +1866,7 @@ class _Variables(_BuiltInBase):
1828
1866
  return name, value
1829
1867
 
1830
1868
  @run_keyword_variant(resolve=0)
1831
- def variable_should_exist(self, name: str, message: "str | None" = None, /):
1869
+ def variable_should_exist(self, name: str, message: "str | None" = None):
1832
1870
  r"""Fails unless the given variable exists within the current scope.
1833
1871
 
1834
1872
  The name of the variable can be given either as a normal variable name
@@ -1853,7 +1891,7 @@ class _Variables(_BuiltInBase):
1853
1891
  )
1854
1892
 
1855
1893
  @run_keyword_variant(resolve=0)
1856
- def variable_should_not_exist(self, name: str, message: "str | None" = None, /):
1894
+ def variable_should_not_exist(self, name: str, message: "str | None" = None):
1857
1895
  r"""Fails if the given variable exists within the current scope.
1858
1896
 
1859
1897
  The name of the variable can be given either as a normal variable name
@@ -3352,7 +3390,7 @@ class _Control(_BuiltInBase):
3352
3390
  raise PassExecution(message)
3353
3391
 
3354
3392
  @run_keyword_variant(resolve=1)
3355
- def pass_execution_if(self, condition: Expression, message: str, /, *tags: str):
3393
+ def pass_execution_if(self, condition: Expression, message: str, *tags: str):
3356
3394
  """Conditionally skips rest of the current test, setup, or teardown with PASS status.
3357
3395
 
3358
3396
  A wrapper for `Pass Execution` to skip rest of the current test,
@@ -3642,7 +3680,7 @@ class _Misc(_BuiltInBase):
3642
3680
  logger.info(f"Reloaded library {lib.name} with {len(lib.keywords)} keywords.")
3643
3681
 
3644
3682
  @run_keyword_variant(resolve=0)
3645
- def import_library(self, name: str, /, *args: object):
3683
+ def import_library(self, name: str, *args: object):
3646
3684
  """Imports a library with the given name and optional arguments.
3647
3685
 
3648
3686
  This functionality allows dynamic importing of libraries while tests
@@ -3678,7 +3716,7 @@ class _Misc(_BuiltInBase):
3678
3716
  return args, None
3679
3717
 
3680
3718
  @run_keyword_variant(resolve=0)
3681
- def import_variables(self, path: str, /, *args: object):
3719
+ def import_variables(self, path: str, *args: object):
3682
3720
  """Imports a variable file with the given path and optional arguments.
3683
3721
 
3684
3722
  Variables imported with this keyword are set into the test suite scope
@@ -3703,7 +3741,7 @@ class _Misc(_BuiltInBase):
3703
3741
  raise RuntimeError(str(err))
3704
3742
 
3705
3743
  @run_keyword_variant(resolve=0)
3706
- def import_resource(self, path: str, /):
3744
+ def import_resource(self, path: str):
3707
3745
  """Imports a resource file with the given path.
3708
3746
 
3709
3747
  Resources imported with this keyword are set into the test suite scope
@@ -4248,6 +4286,14 @@ class _Misc(_BuiltInBase):
4248
4286
  raise RuntimeError(str(err))
4249
4287
 
4250
4288
 
4289
+ @library(
4290
+ converters={
4291
+ KeywordName: lambda value: str(value),
4292
+ KeywordArgument: lambda value: value,
4293
+ Expression: lambda value: value,
4294
+ },
4295
+ auto_keywords=True,
4296
+ )
4251
4297
  class BuiltIn(_Verify, _Converter, _Variables, _RunKeyword, _Control, _Misc):
4252
4298
  r"""An always available standard library with often needed keywords.
4253
4299
 
@@ -4397,7 +4443,7 @@ class BuiltIn(_Verify, _Converter, _Variables, _RunKeyword, _Control, _Misc):
4397
4443
  Examples:
4398
4444
  | `Should Be True` len('${result}') > 3
4399
4445
  | `Run Keyword If` os.sep == '/' Non-Windows Keyword
4400
- | ${version} = `Evaluate` robot.__version__
4446
+ | ${version} = `Evaluate` robot.__version__
4401
4447
 
4402
4448
  `Evaluate` also allows configuring the execution namespace with a custom
4403
4449
  namespace and with custom modules to be imported. The latter functionality
@@ -4420,8 +4466,8 @@ class BuiltIn(_Verify, _Converter, _Variables, _RunKeyword, _Control, _Misc):
4420
4466
 
4421
4467
  Examples:
4422
4468
  | `Should Be True` ${rc} < 10 Return code greater than 10
4423
- | `Run Keyword If` '${status}' == 'PASS' Log Passed
4424
- | `Run Keyword If` 'FAIL' in '''${output}''' Log Output contains FAIL
4469
+ | `Run Keyword If` '${status}' == 'PASS' `Log` Passed
4470
+ | `Run Keyword If` 'FAIL' in '''${output}''' `Log` Output contains FAIL
4425
4471
 
4426
4472
  Actual variables values are also available in the evaluation namespace.
4427
4473
  They can be accessed using special variable syntax without the curly