robotframework 7.2.2__tar.gz → 7.3rc2__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 (307) hide show
  1. {robotframework-7.2.2 → robotframework-7.3rc2}/BUILD.rst +18 -7
  2. robotframework-7.3rc2/PKG-INFO +190 -0
  3. robotframework-7.3rc2/pyproject.toml +39 -0
  4. robotframework-7.3rc2/setup.py +85 -0
  5. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/__init__.py +4 -5
  6. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/__main__.py +4 -2
  7. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/api/__init__.py +9 -9
  8. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/api/deco.py +34 -34
  9. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/api/exceptions.py +8 -3
  10. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/api/interfaces.py +101 -62
  11. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/api/logger.py +20 -19
  12. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/api/parsing.py +49 -49
  13. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/conf/__init__.py +7 -2
  14. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/conf/gatherfailed.py +10 -8
  15. robotframework-7.3rc2/src/robot/conf/languages.py +1462 -0
  16. robotframework-7.3rc2/src/robot/conf/settings.py +800 -0
  17. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/errors.py +94 -59
  18. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/__init__.py +6 -7
  19. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/htmlfilewriter.py +16 -14
  20. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/jsonwriter.py +31 -22
  21. robotframework-7.3rc2/src/robot/htmldata/libdoc/libdoc.html +408 -0
  22. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/template.py +13 -12
  23. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libdoc.py +89 -45
  24. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libdocpkg/__init__.py +3 -2
  25. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libdocpkg/builder.py +13 -10
  26. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libdocpkg/consoleviewer.py +22 -22
  27. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libdocpkg/datatypes.py +61 -35
  28. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libdocpkg/htmlutils.py +51 -39
  29. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libdocpkg/htmlwriter.py +9 -6
  30. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libdocpkg/jsonbuilder.py +79 -56
  31. robotframework-7.3rc2/src/robot/libdocpkg/languages.py +29 -0
  32. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libdocpkg/model.py +91 -60
  33. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libdocpkg/output.py +3 -4
  34. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libdocpkg/robotbuilder.py +61 -44
  35. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libdocpkg/standardtypes.py +40 -36
  36. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libdocpkg/writer.py +7 -7
  37. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libdocpkg/xmlbuilder.py +84 -58
  38. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libdocpkg/xmlwriter.py +78 -61
  39. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libraries/BuiltIn.py +678 -441
  40. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libraries/Collections.py +268 -127
  41. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libraries/DateTime.py +76 -42
  42. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libraries/Dialogs.py +16 -15
  43. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libraries/Easter.py +4 -4
  44. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libraries/OperatingSystem.py +162 -158
  45. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libraries/Process.py +304 -172
  46. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libraries/Remote.py +83 -63
  47. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libraries/Screenshot.py +79 -65
  48. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libraries/String.py +98 -61
  49. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libraries/Telnet.py +257 -160
  50. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libraries/XML.py +205 -110
  51. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libraries/__init__.py +16 -3
  52. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libraries/dialogs_py.py +92 -60
  53. robotframework-7.3rc2/src/robot/logo.png +0 -0
  54. robotframework-7.3rc2/src/robot/model/__init__.py +66 -0
  55. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/body.py +106 -81
  56. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/configurer.py +36 -20
  57. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/control.py +225 -179
  58. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/filter.py +35 -27
  59. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/fixture.py +8 -6
  60. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/itemlist.py +61 -50
  61. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/keyword.py +18 -14
  62. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/message.py +19 -18
  63. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/metadata.py +7 -4
  64. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/modelobject.py +72 -51
  65. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/modifier.py +12 -8
  66. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/namepatterns.py +2 -2
  67. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/statistics.py +23 -10
  68. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/stats.py +38 -21
  69. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/suitestatistics.py +1 -1
  70. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/tags.py +50 -48
  71. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/tagsetter.py +8 -5
  72. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/tagstatistics.py +28 -19
  73. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/testcase.py +70 -43
  74. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/testsuite.py +121 -76
  75. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/totalstatistics.py +5 -5
  76. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/model/visitor.py +69 -68
  77. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/output/__init__.py +5 -5
  78. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/output/console/__init__.py +17 -8
  79. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/output/console/dotted.py +26 -24
  80. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/output/console/highlighting.py +44 -33
  81. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/output/console/quiet.py +3 -3
  82. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/output/console/verbose.py +42 -24
  83. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/output/debugfile.py +30 -28
  84. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/output/filelogger.py +21 -12
  85. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/output/jsonlogger.py +109 -82
  86. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/output/librarylogger.py +10 -11
  87. robotframework-7.3rc2/src/robot/output/listeners.py +613 -0
  88. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/output/logger.py +36 -36
  89. robotframework-7.3rc2/src/robot/output/loggerapi.py +271 -0
  90. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/output/loggerhelper.py +29 -26
  91. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/output/loglevel.py +9 -9
  92. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/output/output.py +14 -6
  93. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/output/outputfile.py +51 -13
  94. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/output/pyloggingconf.py +13 -11
  95. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/output/stdoutlogsplitter.py +12 -9
  96. robotframework-7.3rc2/src/robot/output/xmllogger.py +350 -0
  97. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/parsing/__init__.py +23 -5
  98. {robotframework-7.2.2/src/robot/running/builder → robotframework-7.3rc2/src/robot/parsing/lexer}/__init__.py +6 -3
  99. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/parsing/lexer/blocklexers.py +180 -76
  100. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/parsing/lexer/context.py +30 -23
  101. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/parsing/lexer/lexer.py +41 -25
  102. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/parsing/lexer/settings.py +112 -103
  103. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/parsing/lexer/statementlexers.py +60 -49
  104. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/parsing/lexer/tokenizer.py +23 -22
  105. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/parsing/lexer/tokens.py +149 -120
  106. robotframework-7.3rc2/src/robot/parsing/model/__init__.py +38 -0
  107. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/parsing/model/blocks.py +153 -105
  108. robotframework-7.3rc2/src/robot/parsing/model/statements.py +1783 -0
  109. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/parsing/model/visitor.py +12 -11
  110. {robotframework-7.2.2/src/robot/parsing/lexer → robotframework-7.3rc2/src/robot/parsing/parser}/__init__.py +5 -2
  111. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/parsing/parser/blockparsers.py +13 -12
  112. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/parsing/parser/fileparser.py +16 -14
  113. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/parsing/parser/parser.py +33 -15
  114. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/parsing/suitestructure.py +58 -49
  115. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/pythonpathsetter.py +3 -2
  116. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/rebot.py +20 -12
  117. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/reporting/__init__.py +1 -1
  118. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/reporting/expandkeywordmatcher.py +6 -6
  119. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/reporting/jsbuildingcontext.py +17 -9
  120. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/reporting/jsexecutionresult.py +30 -16
  121. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/reporting/jsmodelbuilders.py +124 -63
  122. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/reporting/jswriter.py +32 -29
  123. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/reporting/logreportwriters.py +14 -14
  124. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/reporting/outputwriter.py +3 -3
  125. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/reporting/resultwriter.py +31 -23
  126. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/reporting/stringcache.py +2 -2
  127. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/reporting/xunitwriter.py +34 -26
  128. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/result/__init__.py +26 -6
  129. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/result/configurer.py +12 -6
  130. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/result/executionerrors.py +7 -6
  131. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/result/executionresult.py +83 -56
  132. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/result/flattenkeywordmatcher.py +25 -23
  133. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/result/keywordremover.py +27 -25
  134. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/result/merger.py +35 -26
  135. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/result/messagefilter.py +4 -5
  136. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/result/model.py +376 -291
  137. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/result/modeldeprecation.py +9 -6
  138. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/result/resultbuilder.py +27 -23
  139. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/result/suiteteardownfailed.py +4 -4
  140. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/result/visitor.py +1 -0
  141. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/result/xmlelementhandlers.py +162 -138
  142. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/run.py +37 -23
  143. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/__init__.py +42 -12
  144. robotframework-7.3rc2/src/robot/running/arguments/__init__.py +26 -0
  145. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/arguments/argumentconverter.py +36 -20
  146. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/arguments/argumentmapper.py +8 -7
  147. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/arguments/argumentparser.py +94 -51
  148. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/arguments/argumentresolver.py +25 -15
  149. robotframework-7.3rc2/src/robot/running/arguments/argumentspec.py +286 -0
  150. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/arguments/argumentvalidator.py +19 -15
  151. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/arguments/customconverters.py +30 -16
  152. robotframework-7.3rc2/src/robot/running/arguments/embedded.py +195 -0
  153. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/arguments/typeconverters.py +254 -245
  154. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/arguments/typeinfo.py +209 -114
  155. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/arguments/typeinfoparser.py +25 -24
  156. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/arguments/typevalidator.py +17 -10
  157. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/bodyrunner.py +236 -130
  158. robotframework-7.3rc2/src/robot/running/builder/__init__.py +21 -0
  159. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/builder/builders.py +77 -58
  160. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/builder/parsers.py +59 -31
  161. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/builder/settings.py +37 -33
  162. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/builder/transformers.py +149 -83
  163. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/context.py +77 -41
  164. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/dynamicmethods.py +37 -28
  165. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/importer.py +31 -18
  166. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/invalidkeyword.py +13 -10
  167. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/keywordfinder.py +16 -16
  168. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/keywordimplementation.py +45 -35
  169. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/librarykeyword.py +207 -127
  170. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/librarykeywordrunner.py +131 -80
  171. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/libraryscopes.py +6 -4
  172. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/model.py +307 -202
  173. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/namespace.py +108 -76
  174. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/randomizer.py +7 -6
  175. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/resourcemodel.py +183 -127
  176. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/runkwregister.py +10 -4
  177. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/signalhandler.py +17 -15
  178. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/status.py +71 -57
  179. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/statusreporter.py +16 -7
  180. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/suiterunner.py +100 -73
  181. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/testlibraries.py +258 -168
  182. {robotframework-7.2.2/src/robot/parsing/parser → robotframework-7.3rc2/src/robot/running/timeouts}/__init__.py +1 -1
  183. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/timeouts/nosupport.py +4 -5
  184. robotframework-7.3rc2/src/robot/running/timeouts/posix.py +57 -0
  185. robotframework-7.3rc2/src/robot/running/timeouts/runner.py +89 -0
  186. robotframework-7.3rc2/src/robot/running/timeouts/timeout.py +144 -0
  187. robotframework-7.3rc2/src/robot/running/timeouts/windows.py +84 -0
  188. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/userkeywordrunner.py +93 -67
  189. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/testdoc.py +62 -56
  190. robotframework-7.3rc2/src/robot/utils/__init__.py +251 -0
  191. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/application.py +40 -18
  192. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/argumentparser.py +115 -98
  193. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/asserts.py +35 -29
  194. robotframework-7.3rc2/src/robot/utils/charwidth.py +106 -0
  195. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/compress.py +2 -2
  196. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/connectioncache.py +13 -11
  197. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/dotdict.py +7 -5
  198. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/encoding.py +13 -10
  199. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/encodingsniffer.py +23 -19
  200. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/error.py +33 -30
  201. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/escaping.py +31 -28
  202. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/etreewrapper.py +15 -26
  203. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/filereader.py +15 -18
  204. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/frange.py +10 -12
  205. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/htmlformatters.py +104 -89
  206. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/importer.py +86 -56
  207. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/json.py +13 -16
  208. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/markuputils.py +13 -9
  209. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/markupwriters.py +32 -15
  210. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/match.py +29 -10
  211. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/misc.py +33 -31
  212. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/normalizing.py +29 -22
  213. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/notset.py +2 -1
  214. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/platform.py +10 -9
  215. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/recommendations.py +14 -6
  216. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/restreader.py +14 -16
  217. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/robotenv.py +5 -3
  218. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/robotio.py +19 -20
  219. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/robotpath.py +17 -17
  220. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/robottime.py +179 -112
  221. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/robottypes.py +60 -67
  222. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/setter.py +11 -14
  223. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/sortable.py +2 -3
  224. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/text.py +31 -26
  225. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/typehints.py +2 -2
  226. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/unic.py +3 -3
  227. robotframework-7.3rc2/src/robot/variables/__init__.py +44 -0
  228. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/variables/assigner.py +146 -111
  229. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/variables/evaluation.py +43 -30
  230. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/variables/filesetter.py +50 -38
  231. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/variables/finders.py +36 -32
  232. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/variables/notfound.py +16 -10
  233. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/variables/replacer.py +25 -19
  234. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/variables/scopes.py +48 -41
  235. robotframework-7.3rc2/src/robot/variables/search.py +333 -0
  236. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/variables/store.py +32 -21
  237. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/variables/tablesetter.py +80 -31
  238. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/variables/variables.py +16 -6
  239. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/version.py +8 -11
  240. robotframework-7.3rc2/src/robotframework.egg-info/PKG-INFO +190 -0
  241. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robotframework.egg-info/SOURCES.txt +5 -0
  242. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robotframework.egg-info/entry_points.txt +0 -1
  243. {robotframework-7.2.2 → robotframework-7.3rc2}/tasks.py +103 -25
  244. robotframework-7.2.2/PKG-INFO +0 -187
  245. robotframework-7.2.2/setup.py +0 -75
  246. robotframework-7.2.2/src/robot/conf/languages.py +0 -1358
  247. robotframework-7.2.2/src/robot/conf/settings.py +0 -757
  248. robotframework-7.2.2/src/robot/htmldata/libdoc/libdoc.html +0 -408
  249. robotframework-7.2.2/src/robot/model/__init__.py +0 -43
  250. robotframework-7.2.2/src/robot/output/listeners.py +0 -599
  251. robotframework-7.2.2/src/robot/output/loggerapi.py +0 -232
  252. robotframework-7.2.2/src/robot/output/xmllogger.py +0 -332
  253. robotframework-7.2.2/src/robot/parsing/model/__init__.py +0 -21
  254. robotframework-7.2.2/src/robot/parsing/model/statements.py +0 -1441
  255. robotframework-7.2.2/src/robot/running/arguments/__init__.py +0 -23
  256. robotframework-7.2.2/src/robot/running/arguments/argumentspec.py +0 -209
  257. robotframework-7.2.2/src/robot/running/arguments/embedded.py +0 -146
  258. robotframework-7.2.2/src/robot/running/timeouts/__init__.py +0 -131
  259. robotframework-7.2.2/src/robot/running/timeouts/posix.py +0 -40
  260. robotframework-7.2.2/src/robot/running/timeouts/windows.py +0 -71
  261. robotframework-7.2.2/src/robot/utils/__init__.py +0 -134
  262. robotframework-7.2.2/src/robot/utils/charwidth.py +0 -140
  263. robotframework-7.2.2/src/robot/variables/__init__.py +0 -33
  264. robotframework-7.2.2/src/robot/variables/search.py +0 -285
  265. robotframework-7.2.2/src/robotframework.egg-info/PKG-INFO +0 -187
  266. {robotframework-7.2.2 → robotframework-7.3rc2}/AUTHORS.rst +0 -0
  267. {robotframework-7.2.2 → robotframework-7.3rc2}/CONTRIBUTING.rst +0 -0
  268. {robotframework-7.2.2 → robotframework-7.3rc2}/COPYRIGHT.txt +0 -0
  269. {robotframework-7.2.2 → robotframework-7.3rc2}/INSTALL.rst +0 -0
  270. {robotframework-7.2.2 → robotframework-7.3rc2}/LICENSE.txt +0 -0
  271. {robotframework-7.2.2 → robotframework-7.3rc2}/MANIFEST.in +0 -0
  272. {robotframework-7.2.2 → robotframework-7.3rc2}/README.rst +0 -0
  273. {robotframework-7.2.2 → robotframework-7.3rc2}/setup.cfg +0 -0
  274. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/api/py.typed +0 -0
  275. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/common/__init__.py +0 -0
  276. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/common/js_disabled.css +0 -0
  277. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/common/storage.js +0 -0
  278. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/lib/__init__.py +0 -0
  279. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/lib/jquery.highlight.min.js +0 -0
  280. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/lib/jquery.min.js +0 -0
  281. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/lib/jquery.tablesorter.min.js +0 -0
  282. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/lib/jquery.tmpl.min.js +0 -0
  283. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/lib/jsxcompressor.min.js +0 -0
  284. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/libdoc/__init__.py +0 -0
  285. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/rebot/__init__.py +0 -0
  286. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/rebot/common.css +0 -0
  287. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/rebot/doc_formatting.css +0 -0
  288. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/rebot/fileloading.js +0 -0
  289. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/rebot/log.css +0 -0
  290. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/rebot/log.html +0 -0
  291. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/rebot/log.js +0 -0
  292. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/rebot/model.js +0 -0
  293. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/rebot/print.css +0 -0
  294. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/rebot/report.css +0 -0
  295. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/rebot/report.html +0 -0
  296. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/rebot/testdata.js +0 -0
  297. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/rebot/util.js +0 -0
  298. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/rebot/view.js +0 -0
  299. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/testdoc/__init__.py +0 -0
  300. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/testdoc/testdoc.css +0 -0
  301. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/htmldata/testdoc/testdoc.html +0 -0
  302. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/libdocpkg/jsonwriter.py +0 -0
  303. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/running/outputcapture.py +0 -0
  304. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/utils/robotinspect.py +0 -0
  305. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robot/variables/resolvable.py +0 -0
  306. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robotframework.egg-info/dependency_links.txt +0 -0
  307. {robotframework-7.2.2 → robotframework-7.3rc2}/src/robotframework.egg-info/top_level.txt +0 -0
@@ -151,6 +151,24 @@ Release notes
151
151
 
152
152
  __ https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token
153
153
 
154
+
155
+ Update libdoc generated files
156
+ -----------------------------
157
+
158
+ Run
159
+
160
+ invoke build-libdoc
161
+
162
+ This step can be skipped if there are no changes to Libdoc. Prerequisites
163
+ are listed in `<src/web/README.md>`_.
164
+
165
+ This will regenerate the libdoc html template and update libdoc command line
166
+ with the latest supported lagnuages.
167
+
168
+ Commit & push if there are changes any changes to either
169
+ `src/robot/htmldata/libdoc/libdoc.html` or `src/robot/libdocpkg/languages.py`.
170
+
171
+
154
172
  Set version
155
173
  -----------
156
174
 
@@ -189,13 +207,6 @@ Creating distributions
189
207
 
190
208
  invoke clean
191
209
 
192
- 3. Build `libdoc.html`::
193
-
194
- npm run build --prefix src/web/
195
-
196
- This step can be skipped if there are no changes to Libdoc. Prerequisites
197
- are listed in `<src/web/README.md>`_.
198
-
199
210
  4. Create and validate source distribution and `wheel <https://pythonwheels.com>`_::
200
211
 
201
212
  python setup.py sdist bdist_wheel
@@ -0,0 +1,190 @@
1
+ Metadata-Version: 2.1
2
+ Name: robotframework
3
+ Version: 7.3rc2
4
+ Summary: Generic automation framework for acceptance testing and robotic process automation (RPA)
5
+ Home-page: https://robotframework.org
6
+ Download-URL: https://pypi.org/project/robotframework
7
+ Author: Pekka Klärck
8
+ Author-email: peke@eliga.fi
9
+ License: Apache License 2.0
10
+ Project-URL: Source, https://github.com/robotframework/robotframework
11
+ Project-URL: Issue Tracker, https://github.com/robotframework/robotframework/issues
12
+ Project-URL: Documentation, https://robotframework.org/robotframework
13
+ Project-URL: Release Notes, https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-7.3rc2.rst
14
+ Project-URL: Slack, http://slack.robotframework.org
15
+ Keywords: robotframework automation testautomation rpa testing acceptancetesting atdd bdd
16
+ Platform: any
17
+ Classifier: Development Status :: 5 - Production/Stable
18
+ Classifier: License :: OSI Approved :: Apache Software License
19
+ Classifier: Operating System :: OS Independent
20
+ Classifier: Programming Language :: Python :: 3
21
+ Classifier: Programming Language :: Python :: 3 :: Only
22
+ Classifier: Programming Language :: Python :: 3.8
23
+ Classifier: Programming Language :: Python :: 3.9
24
+ Classifier: Programming Language :: Python :: 3.10
25
+ Classifier: Programming Language :: Python :: 3.11
26
+ Classifier: Programming Language :: Python :: 3.12
27
+ Classifier: Programming Language :: Python :: 3.13
28
+ Classifier: Programming Language :: Python :: 3.14
29
+ Classifier: Programming Language :: Python :: Implementation :: CPython
30
+ Classifier: Programming Language :: Python :: Implementation :: PyPy
31
+ Classifier: Topic :: Software Development :: Testing
32
+ Classifier: Topic :: Software Development :: Testing :: Acceptance
33
+ Classifier: Topic :: Software Development :: Testing :: BDD
34
+ Classifier: Framework :: Robot Framework
35
+ Requires-Python: >=3.8
36
+ Description-Content-Type: text/x-rst
37
+ License-File: LICENSE.txt
38
+ License-File: AUTHORS.rst
39
+
40
+ Robot Framework
41
+ ===============
42
+
43
+ .. contents::
44
+ :local:
45
+
46
+ Introduction
47
+ ------------
48
+
49
+ `Robot Framework <http://robotframework.org>`_ |r| is a generic open source
50
+ automation framework for acceptance testing, acceptance test driven
51
+ development (ATDD), and robotic process automation (RPA). It has simple plain
52
+ text syntax and it can be extended easily with generic and custom libraries.
53
+
54
+ Robot Framework is operating system and application independent. It is
55
+ implemented using `Python <http://python.org>`_ which is also the primary
56
+ language to extend it. The framework has a rich ecosystem around it consisting
57
+ of various generic libraries and tools that are developed as separate projects.
58
+ For more information about Robot Framework and the ecosystem, see
59
+ http://robotframework.org.
60
+
61
+ Robot Framework project is hosted on GitHub_ where you can find source code,
62
+ an issue tracker, and some further documentation. Downloads are hosted on PyPI_.
63
+
64
+ Robot Framework development is sponsored by non-profit `Robot Framework Foundation
65
+ <http://robotframework.org/foundation>`_. If you are using the framework
66
+ and benefiting from it, consider joining the foundation to help maintaining
67
+ the framework and developing it further.
68
+
69
+ .. _GitHub: https://github.com/robotframework/robotframework
70
+ .. _PyPI: https://pypi.python.org/pypi/robotframework
71
+
72
+ .. image:: https://img.shields.io/pypi/v/robotframework.svg?label=version
73
+ :target: https://pypi.python.org/pypi/robotframework
74
+ :alt: Latest version
75
+
76
+ .. image:: https://img.shields.io/pypi/l/robotframework.svg
77
+ :target: http://www.apache.org/licenses/LICENSE-2.0.html
78
+ :alt: License
79
+
80
+ Installation
81
+ ------------
82
+
83
+ If you already have Python_ with `pip <https://pip.pypa.io>`_ installed,
84
+ you can simply run::
85
+
86
+ pip install robotframework
87
+
88
+ For more detailed installation instructions, including installing Python, see
89
+ `INSTALL.rst <https://github.com/robotframework/robotframework/blob/master/INSTALL.rst>`__.
90
+
91
+ Robot Framework requires Python 3.8 or newer and runs also on `PyPy <http://pypy.org>`_.
92
+ The latest version that supports Python 3.6 and 3.7 is `Robot Framework 6.1.1`__.
93
+ If you need to use Python 2, `Jython <http://jython.org>`_ or
94
+ `IronPython <http://ironpython.net>`_, you can use `Robot Framework 4.1.3`__.
95
+
96
+ __ https://github.com/robotframework/robotframework/tree/v6.1.1#readme
97
+ __ https://github.com/robotframework/robotframework/tree/v4.1.3#readme
98
+
99
+ Example
100
+ -------
101
+
102
+ Below is a simple example test case for testing login to some system.
103
+ You can find more examples with links to related demo projects from
104
+ http://robotframework.org.
105
+
106
+ .. code:: robotframework
107
+
108
+ *** Settings ***
109
+ Documentation A test suite with a single test for valid login.
110
+ ...
111
+ ... This test has a workflow that is created using keywords in
112
+ ... the imported resource file.
113
+ Resource login.resource
114
+
115
+ *** Test Cases ***
116
+ Valid Login
117
+ Open Browser To Login Page
118
+ Input Username demo
119
+ Input Password mode
120
+ Submit Credentials
121
+ Welcome Page Should Be Open
122
+ [Teardown] Close Browser
123
+
124
+ Usage
125
+ -----
126
+
127
+ Tests (or tasks) are executed from the command line using the ``robot``
128
+ command or by executing the ``robot`` module directly like ``python -m robot`` .
129
+
130
+ The basic usage is giving a path to a test (or task) file or directory as an
131
+ argument with possible command line options before the path::
132
+
133
+ robot tests.robot
134
+ robot --variable BROWSER:Firefox --outputdir results path/to/tests/
135
+
136
+ Additionally, there is the ``rebot`` tool for combining results and otherwise
137
+ post-processing outputs::
138
+
139
+ rebot --name Example output1.xml output2.xml
140
+
141
+ Run ``robot --help`` and ``rebot --help`` for more information about the command
142
+ line usage. For a complete reference manual see `Robot Framework User Guide`_.
143
+
144
+ Documentation
145
+ -------------
146
+
147
+ - `Robot Framework User Guide
148
+ <http://robotframework.org/robotframework/#user-guide>`_
149
+ - `Standard libraries
150
+ <http://robotframework.org/robotframework/#standard-libraries>`_
151
+ - `API documentation <http://robot-framework.readthedocs.org>`_
152
+ - `General documentation <http://robotframework.org/>`_
153
+
154
+ Support and Contact
155
+ -------------------
156
+
157
+ - `Slack <http://slack.robotframework.org/>`_
158
+ - `Forum <https://forum.robotframework.org/>`_
159
+ - `robotframework-users
160
+ <https://groups.google.com/group/robotframework-users/>`_ mailing list
161
+
162
+ Contributing
163
+ ------------
164
+
165
+ Interested to contribute to Robot Framework? Great! In that case it is a good
166
+ start by looking at the `CONTRIBUTING.rst <https://github.com/robotframework/robotframework/blob/master/CONTRIBUTING.rst>`__. If you
167
+ do not already have an issue you would like to work on, you can check
168
+ issues with `good new issue`__ and `help wanted`__ labels.
169
+
170
+ Remember also that there are many other tools and libraries in the wider
171
+ `Robot Framework ecosystem <http://robotframework.org>`_ that you can
172
+ contribute to!
173
+
174
+ __ https://github.com/robotframework/robotframework/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
175
+ __ https://github.com/robotframework/robotframework/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22
176
+
177
+ License and Trademark
178
+ ---------------------
179
+
180
+ Robot Framework is open source software provided under the `Apache License 2.0`__.
181
+ Robot Framework documentation and other similar content use the
182
+ `Creative Commons Attribution 3.0 Unported`__ license. Most libraries and tools
183
+ in the ecosystem are also open source, but they may use different licenses.
184
+
185
+ Robot Framework trademark is owned by `Robot Framework Foundation`_.
186
+
187
+ __ http://apache.org/licenses/LICENSE-2.0
188
+ __ http://creativecommons.org/licenses/by/3.0
189
+
190
+ .. |r| unicode:: U+00AE
@@ -0,0 +1,39 @@
1
+ [project]
2
+ requires-python = ">=3.8"
3
+
4
+ [tool.black]
5
+ line_length = 88
6
+ extend-exclude = "atest/result/"
7
+
8
+ [tool.ruff]
9
+ extend-exclude = ["atest/result/"]
10
+
11
+ [tool.ruff.format]
12
+ quote-style = "double"
13
+
14
+ [tool.ruff.lint]
15
+ extend-select = ["I"] # imports
16
+ ignore = ["E731"] # lambda assignment
17
+
18
+ [tool.ruff.lint.pyflakes]
19
+ # Needed due to https://github.com/astral-sh/ruff/issues/9298
20
+ extend-generics = ["robot.model.body.BaseBranches"]
21
+
22
+ [tool.ruff.lint.isort]
23
+ # Ruff is used to sort and fix imports first. Multiline imports are organized so
24
+ # that each item is on its own line. This is same as the Vertical Hanging Indent
25
+ # mode with isort.
26
+ combine-as-imports = true
27
+ order-by-type = false
28
+
29
+ [tool.isort]
30
+ # isort is used after Ruff to sort "normal" imports so that multiline imports use
31
+ # the Hanging Grid Grouped mode. Files contained redundant import aliases denoting
32
+ # module/package API are excluded. For details about multiline modes see:
33
+ # https://pycqa.github.io/isort/docs/configuration/multi_line_output_modes.html
34
+ multi_line_output = 5
35
+ extend_skip = ["__init__.py", "src/robot/api/parsing.py"]
36
+ skip_glob = ["atest/result/*"]
37
+ combine_as_imports = true
38
+ order_by_type = false
39
+ line_length = 88
@@ -0,0 +1,85 @@
1
+ #!/usr/bin/env python
2
+
3
+ from os.path import abspath, dirname, join
4
+
5
+ from setuptools import find_packages, setup
6
+
7
+ # Version number typically updated by running `invoke set-version <version>`.
8
+ # Run `invoke --help set-version` or see tasks.py for details.
9
+ VERSION = "7.3rc2"
10
+ with open(join(dirname(abspath(__file__)), "README.rst")) as f:
11
+ LONG_DESCRIPTION = f.read()
12
+ base_url = "https://github.com/robotframework/robotframework/blob/master"
13
+ for text in ("INSTALL", "CONTRIBUTING"):
14
+ search = f"`<{text}.rst>`__"
15
+ replace = f"`{text}.rst <{base_url}/{text}.rst>`__"
16
+ if search not in LONG_DESCRIPTION:
17
+ raise RuntimeError(f"{search} not found from README.rst")
18
+ LONG_DESCRIPTION = LONG_DESCRIPTION.replace(search, replace)
19
+ CLASSIFIERS = """
20
+ Development Status :: 5 - Production/Stable
21
+ License :: OSI Approved :: Apache Software License
22
+ Operating System :: OS Independent
23
+ Programming Language :: Python :: 3
24
+ Programming Language :: Python :: 3 :: Only
25
+ Programming Language :: Python :: 3.8
26
+ Programming Language :: Python :: 3.9
27
+ Programming Language :: Python :: 3.10
28
+ Programming Language :: Python :: 3.11
29
+ Programming Language :: Python :: 3.12
30
+ Programming Language :: Python :: 3.13
31
+ Programming Language :: Python :: 3.14
32
+ Programming Language :: Python :: Implementation :: CPython
33
+ Programming Language :: Python :: Implementation :: PyPy
34
+ Topic :: Software Development :: Testing
35
+ Topic :: Software Development :: Testing :: Acceptance
36
+ Topic :: Software Development :: Testing :: BDD
37
+ Framework :: Robot Framework
38
+ """.strip().splitlines()
39
+ DESCRIPTION = (
40
+ "Generic automation framework for acceptance testing "
41
+ "and robotic process automation (RPA)"
42
+ )
43
+ KEYWORDS = (
44
+ "robotframework automation testautomation rpa testing acceptancetesting atdd bdd"
45
+ )
46
+ PACKAGE_DATA = [
47
+ join("htmldata", directory, pattern)
48
+ for directory in ("rebot", "libdoc", "testdoc", "lib", "common")
49
+ for pattern in ("*.html", "*.css", "*.js")
50
+ ] + ["api/py.typed", "logo.png"]
51
+
52
+
53
+ setup(
54
+ name="robotframework",
55
+ version=VERSION,
56
+ author="Pekka Klärck",
57
+ author_email="peke@eliga.fi",
58
+ url="https://robotframework.org",
59
+ project_urls={
60
+ "Source": "https://github.com/robotframework/robotframework",
61
+ "Issue Tracker": "https://github.com/robotframework/robotframework/issues",
62
+ "Documentation": "https://robotframework.org/robotframework",
63
+ "Release Notes": f"https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-{VERSION}.rst",
64
+ "Slack": "http://slack.robotframework.org",
65
+ },
66
+ download_url="https://pypi.org/project/robotframework",
67
+ license="Apache License 2.0",
68
+ description=DESCRIPTION,
69
+ long_description=LONG_DESCRIPTION,
70
+ long_description_content_type="text/x-rst",
71
+ keywords=KEYWORDS,
72
+ platforms="any",
73
+ python_requires=">=3.8",
74
+ classifiers=CLASSIFIERS,
75
+ package_dir={"": "src"},
76
+ package_data={"robot": PACKAGE_DATA},
77
+ packages=find_packages("src"),
78
+ entry_points={
79
+ "console_scripts": [
80
+ "robot = robot.run:run_cli",
81
+ "rebot = robot.rebot:rebot_cli",
82
+ "libdoc = robot.libdoc:libdoc_cli",
83
+ ]
84
+ },
85
+ )
@@ -40,16 +40,15 @@ this package are for internal usage and may change without prior notice.
40
40
  import sys
41
41
  import warnings
42
42
 
43
- from robot.rebot import rebot, rebot_cli
44
- from robot.run import run, run_cli
43
+ from robot.rebot import rebot as rebot, rebot_cli as rebot_cli
44
+ from robot.run import run as run, run_cli as run_cli
45
45
  from robot.version import get_version
46
46
 
47
-
48
47
  # Avoid warnings when using `python -m robot.run`.
49
48
  # https://github.com/robotframework/robotframework/issues/2552
50
49
  if not sys.warnoptions:
51
- warnings.filterwarnings('ignore', category=RuntimeWarning, module='runpy')
50
+ warnings.filterwarnings("ignore", category=RuntimeWarning, module="runpy")
52
51
 
53
52
 
54
- __all__ = ['run', 'run_cli', 'rebot', 'rebot_cli']
53
+ __all__ = ["rebot", "rebot_cli", "run", "run_cli"]
55
54
  __version__ = get_version()
@@ -17,8 +17,10 @@
17
17
 
18
18
  import sys
19
19
 
20
- if __name__ == '__main__' and 'robot' not in sys.modules:
21
- import pythonpathsetter
20
+ if __name__ == "__main__" and "robot" not in sys.modules:
21
+ from pythonpathsetter import set_pythonpath
22
+
23
+ set_pythonpath()
22
24
 
23
25
  from robot import run_cli
24
26
 
@@ -73,7 +73,7 @@ All of the above classes can be imported like::
73
73
  from robot.api import ClassName
74
74
 
75
75
  The public API intends to follow the `distributing type information specification
76
- <https://typing.readthedocs.io/en/latest/spec/distributing.html#distributing-type-information>`_
76
+ <https://typing.readthedocs.io/en/latest/spec/distributing.html#distributing-type-information>`_
77
77
  originally specified in `PEP 484 <https://peps.python.org/pep-0484/>`_.
78
78
 
79
79
  See documentations of the individual APIs for more details.
@@ -85,29 +85,29 @@ See documentations of the individual APIs for more details.
85
85
  from robot.conf.languages import Language as Language, Languages as Languages
86
86
  from robot.model import SuiteVisitor as SuiteVisitor
87
87
  from robot.parsing import (
88
- get_tokens as get_tokens,
89
- get_resource_tokens as get_resource_tokens,
88
+ get_init_model as get_init_model,
90
89
  get_init_tokens as get_init_tokens,
91
90
  get_model as get_model,
92
91
  get_resource_model as get_resource_model,
93
- get_init_model as get_init_model,
94
- Token as Token
92
+ get_resource_tokens as get_resource_tokens,
93
+ get_tokens as get_tokens,
94
+ Token as Token,
95
95
  )
96
96
  from robot.reporting import ResultWriter as ResultWriter
97
97
  from robot.result import (
98
98
  ExecutionResult as ExecutionResult,
99
- ResultVisitor as ResultVisitor
99
+ ResultVisitor as ResultVisitor,
100
100
  )
101
101
  from robot.running import (
102
102
  TestSuite as TestSuite,
103
103
  TestSuiteBuilder as TestSuiteBuilder,
104
- TypeInfo as TypeInfo
104
+ TypeInfo as TypeInfo,
105
105
  )
106
106
 
107
107
  from .exceptions import (
108
108
  ContinuableFailure as ContinuableFailure,
109
+ Error as Error,
109
110
  Failure as Failure,
110
111
  FatalError as FatalError,
111
- Error as Error,
112
- SkipExecution as SkipExecution
112
+ SkipExecution as SkipExecution,
113
113
  )
@@ -13,22 +13,18 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
 
16
- from typing import Any, Callable, Literal, Sequence, TypeVar, Union, overload
16
+ from typing import Any, Callable, Literal, overload, Sequence, TypeVar, Union
17
17
 
18
18
  from .interfaces import TypeHints
19
19
 
20
-
21
- # Current annotations report `attr-defined` errors. This can be solved once Python 3.10
22
- # becomes the minimum version (error-free conditional typing proved too complex).
23
- # See: https://discuss.python.org/t/questions-related-to-typing-overload-style/38130
24
- F = TypeVar('F', bound=Callable[..., Any]) # Any function.
25
- K = TypeVar('K', bound=Callable[..., Any]) # Keyword function.
26
- L = TypeVar('L', bound=type) # Library class.
20
+ F = TypeVar("F", bound=Callable[..., Any])
21
+ K = TypeVar("K", bound=Callable[..., Any])
22
+ L = TypeVar("L", bound=type)
27
23
  KeywordDecorator = Callable[[K], K]
28
24
  LibraryDecorator = Callable[[L], L]
29
- Scope = Literal['GLOBAL', 'SUITE', 'TEST', 'TASK']
25
+ Scope = Literal["GLOBAL", "SUITE", "TEST", "TASK"]
30
26
  Converter = Union[Callable[[Any], Any], Callable[[Any, Any], Any]]
31
- DocFormat = Literal['ROBOT', 'HTML', 'TEXT', 'REST']
27
+ DocFormat = Literal["ROBOT", "HTML", "TEXT", "REST"]
32
28
 
33
29
 
34
30
  def not_keyword(func: F) -> F:
@@ -57,21 +53,23 @@ not_keyword.robot_not_keyword = True
57
53
 
58
54
 
59
55
  @overload
60
- def keyword(func: K, /) -> K:
61
- ...
56
+ def keyword(func: K, /) -> K: ...
62
57
 
63
58
 
64
59
  @overload
65
- def keyword(name: 'str | None' = None,
66
- tags: Sequence[str] = (),
67
- types: 'TypeHints | None' = ()) -> KeywordDecorator:
68
- ...
60
+ def keyword(
61
+ name: "str|None" = None,
62
+ tags: Sequence[str] = (),
63
+ types: "TypeHints|None" = (),
64
+ ) -> KeywordDecorator: ...
69
65
 
70
66
 
71
67
  @not_keyword
72
- def keyword(name: 'K | str | None' = None,
73
- tags: Sequence[str] = (),
74
- types: 'TypeHints | None' = ()) -> 'K | KeywordDecorator':
68
+ def keyword(
69
+ name: "K|str|None" = None,
70
+ tags: Sequence[str] = (),
71
+ types: "TypeHints|None" = (),
72
+ ) -> "K|KeywordDecorator":
75
73
  """Decorator to set custom name, tags and argument types to keywords.
76
74
 
77
75
  This decorator creates ``robot_name``, ``robot_tags`` and ``robot_types``
@@ -126,27 +124,29 @@ def keyword(name: 'K | str | None' = None,
126
124
 
127
125
 
128
126
  @overload
129
- def library(cls: L, /) -> L:
130
- ...
127
+ def library(cls: L, /) -> L: ...
131
128
 
132
129
 
133
130
  @overload
134
- def library(scope: 'Scope | None' = None,
135
- version: 'str | None' = None,
136
- converters: 'dict[type, Converter] | None' = None,
137
- doc_format: 'DocFormat | None' = None,
138
- listener: 'Any | None' = None,
139
- auto_keywords: bool = False) -> LibraryDecorator:
140
- ...
131
+ def library(
132
+ scope: "Scope|None" = None,
133
+ version: "str|None" = None,
134
+ converters: "dict[type, Converter]|None" = None,
135
+ doc_format: "DocFormat|None" = None,
136
+ listener: "Any|None" = None,
137
+ auto_keywords: bool = False,
138
+ ) -> LibraryDecorator: ...
141
139
 
142
140
 
143
141
  @not_keyword
144
- def library(scope: 'L | Scope | None' = None,
145
- version: 'str | None' = None,
146
- converters: 'dict[type, Converter] | None' = None,
147
- doc_format: 'DocFormat | None' = None,
148
- listener: 'Any | None' = None,
149
- auto_keywords: bool = False) -> 'L | LibraryDecorator':
142
+ def library(
143
+ scope: "L|Scope|None" = None,
144
+ version: "str|None" = None,
145
+ converters: "dict[type, Converter]|None" = None,
146
+ doc_format: "DocFormat|None" = None,
147
+ listener: "Any|None" = None,
148
+ auto_keywords: bool = False,
149
+ ) -> "L|LibraryDecorator":
150
150
  """Class decorator to control keyword discovery and other library settings.
151
151
 
152
152
  Disables automatic keyword detection by setting class attribute
@@ -29,6 +29,7 @@ class Failure(AssertionError):
29
29
  the standard ``AssertionError``. The main benefits are HTML support and that
30
30
  the name of this exception is consistent with other exceptions in this module.
31
31
  """
32
+
32
33
  ROBOT_SUPPRESS_NAME = True
33
34
 
34
35
  def __init__(self, message: str, html: bool = False):
@@ -36,11 +37,12 @@ class Failure(AssertionError):
36
37
  :param message: Exception message.
37
38
  :param html: When ``True``, message is considered to be HTML and not escaped.
38
39
  """
39
- super().__init__(message if not html else '*HTML* ' + message)
40
+ super().__init__(message if not html else "*HTML* " + message)
40
41
 
41
42
 
42
43
  class ContinuableFailure(Failure):
43
44
  """Report failed validation but allow continuing execution."""
45
+
44
46
  ROBOT_CONTINUE_ON_FAILURE = True
45
47
 
46
48
 
@@ -55,6 +57,7 @@ class Error(RuntimeError):
55
57
  the standard ``RuntimeError``. The main benefits are HTML support and that
56
58
  the name of this exception is consistent with other exceptions in this module.
57
59
  """
60
+
58
61
  ROBOT_SUPPRESS_NAME = True
59
62
 
60
63
  def __init__(self, message: str, html: bool = False):
@@ -62,17 +65,19 @@ class Error(RuntimeError):
62
65
  :param message: Exception message.
63
66
  :param html: When ``True``, message is considered to be HTML and not escaped.
64
67
  """
65
- super().__init__(message if not html else '*HTML* ' + message)
68
+ super().__init__(message if not html else "*HTML* " + message)
66
69
 
67
70
 
68
71
  class FatalError(Error):
69
72
  """Report error that stops the whole execution."""
73
+
70
74
  ROBOT_EXIT_ON_FAILURE = True
71
75
  ROBOT_SUPPRESS_NAME = False
72
76
 
73
77
 
74
78
  class SkipExecution(Exception):
75
79
  """Mark the executed test or task skipped."""
80
+
76
81
  ROBOT_SKIP_EXECUTION = True
77
82
  ROBOT_SUPPRESS_NAME = True
78
83
 
@@ -81,4 +86,4 @@ class SkipExecution(Exception):
81
86
  :param message: Exception message.
82
87
  :param html: When ``True``, message is considered to be HTML and not escaped.
83
88
  """
84
- super().__init__(message if not html else '*HTML* ' + message)
89
+ super().__init__(message if not html else "*HTML* " + message)