robotframework 7.2.1__tar.gz → 7.3__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 (308) hide show
  1. {robotframework-7.2.1 → robotframework-7.3}/BUILD.rst +18 -7
  2. {robotframework-7.2.1 → robotframework-7.3}/CONTRIBUTING.rst +19 -2
  3. robotframework-7.3/PKG-INFO +190 -0
  4. robotframework-7.3/pyproject.toml +33 -0
  5. robotframework-7.3/setup.py +85 -0
  6. {robotframework-7.2.1 → robotframework-7.3}/src/robot/__init__.py +4 -5
  7. {robotframework-7.2.1 → robotframework-7.3}/src/robot/__main__.py +4 -2
  8. {robotframework-7.2.1 → robotframework-7.3}/src/robot/api/__init__.py +9 -9
  9. {robotframework-7.2.1 → robotframework-7.3}/src/robot/api/deco.py +34 -34
  10. {robotframework-7.2.1 → robotframework-7.3}/src/robot/api/exceptions.py +8 -3
  11. {robotframework-7.2.1 → robotframework-7.3}/src/robot/api/interfaces.py +101 -62
  12. {robotframework-7.2.1 → robotframework-7.3}/src/robot/api/logger.py +20 -19
  13. {robotframework-7.2.1 → robotframework-7.3}/src/robot/api/parsing.py +49 -49
  14. {robotframework-7.2.1 → robotframework-7.3}/src/robot/conf/__init__.py +7 -2
  15. {robotframework-7.2.1 → robotframework-7.3}/src/robot/conf/gatherfailed.py +10 -8
  16. robotframework-7.3/src/robot/conf/languages.py +1462 -0
  17. robotframework-7.3/src/robot/conf/settings.py +800 -0
  18. {robotframework-7.2.1 → robotframework-7.3}/src/robot/errors.py +94 -59
  19. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/__init__.py +6 -7
  20. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/htmlfilewriter.py +16 -14
  21. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/jsonwriter.py +31 -22
  22. robotframework-7.3/src/robot/htmldata/libdoc/libdoc.html +408 -0
  23. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/template.py +13 -12
  24. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libdoc.py +89 -45
  25. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libdocpkg/__init__.py +3 -2
  26. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libdocpkg/builder.py +13 -10
  27. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libdocpkg/consoleviewer.py +22 -22
  28. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libdocpkg/datatypes.py +61 -35
  29. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libdocpkg/htmlutils.py +51 -39
  30. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libdocpkg/htmlwriter.py +9 -6
  31. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libdocpkg/jsonbuilder.py +79 -56
  32. robotframework-7.3/src/robot/libdocpkg/languages.py +29 -0
  33. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libdocpkg/model.py +91 -60
  34. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libdocpkg/output.py +3 -4
  35. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libdocpkg/robotbuilder.py +61 -44
  36. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libdocpkg/standardtypes.py +51 -41
  37. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libdocpkg/writer.py +7 -7
  38. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libdocpkg/xmlbuilder.py +84 -58
  39. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libdocpkg/xmlwriter.py +78 -61
  40. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libraries/BuiltIn.py +678 -441
  41. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libraries/Collections.py +268 -127
  42. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libraries/DateTime.py +76 -42
  43. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libraries/Dialogs.py +16 -15
  44. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libraries/Easter.py +4 -4
  45. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libraries/OperatingSystem.py +162 -158
  46. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libraries/Process.py +309 -172
  47. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libraries/Remote.py +83 -63
  48. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libraries/Screenshot.py +79 -65
  49. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libraries/String.py +98 -61
  50. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libraries/Telnet.py +257 -160
  51. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libraries/XML.py +205 -110
  52. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libraries/__init__.py +16 -3
  53. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libraries/dialogs_py.py +92 -60
  54. robotframework-7.3/src/robot/logo.png +0 -0
  55. robotframework-7.3/src/robot/model/__init__.py +66 -0
  56. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/body.py +106 -81
  57. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/configurer.py +36 -20
  58. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/control.py +225 -179
  59. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/filter.py +35 -27
  60. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/fixture.py +8 -6
  61. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/itemlist.py +61 -50
  62. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/keyword.py +18 -14
  63. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/message.py +19 -18
  64. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/metadata.py +7 -4
  65. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/modelobject.py +72 -51
  66. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/modifier.py +12 -8
  67. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/namepatterns.py +2 -2
  68. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/statistics.py +23 -10
  69. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/stats.py +38 -21
  70. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/suitestatistics.py +1 -1
  71. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/tags.py +50 -48
  72. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/tagsetter.py +8 -5
  73. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/tagstatistics.py +28 -19
  74. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/testcase.py +70 -43
  75. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/testsuite.py +121 -76
  76. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/totalstatistics.py +5 -5
  77. {robotframework-7.2.1 → robotframework-7.3}/src/robot/model/visitor.py +69 -68
  78. {robotframework-7.2.1 → robotframework-7.3}/src/robot/output/__init__.py +5 -5
  79. {robotframework-7.2.1 → robotframework-7.3}/src/robot/output/console/__init__.py +17 -8
  80. {robotframework-7.2.1 → robotframework-7.3}/src/robot/output/console/dotted.py +26 -24
  81. {robotframework-7.2.1 → robotframework-7.3}/src/robot/output/console/highlighting.py +44 -33
  82. {robotframework-7.2.1 → robotframework-7.3}/src/robot/output/console/quiet.py +3 -3
  83. {robotframework-7.2.1 → robotframework-7.3}/src/robot/output/console/verbose.py +42 -24
  84. {robotframework-7.2.1 → robotframework-7.3}/src/robot/output/debugfile.py +30 -28
  85. {robotframework-7.2.1 → robotframework-7.3}/src/robot/output/filelogger.py +21 -12
  86. {robotframework-7.2.1 → robotframework-7.3}/src/robot/output/jsonlogger.py +109 -82
  87. {robotframework-7.2.1 → robotframework-7.3}/src/robot/output/librarylogger.py +10 -11
  88. robotframework-7.3/src/robot/output/listeners.py +613 -0
  89. {robotframework-7.2.1 → robotframework-7.3}/src/robot/output/logger.py +36 -36
  90. robotframework-7.3/src/robot/output/loggerapi.py +271 -0
  91. {robotframework-7.2.1 → robotframework-7.3}/src/robot/output/loggerhelper.py +29 -26
  92. {robotframework-7.2.1 → robotframework-7.3}/src/robot/output/loglevel.py +9 -9
  93. {robotframework-7.2.1 → robotframework-7.3}/src/robot/output/output.py +14 -6
  94. {robotframework-7.2.1 → robotframework-7.3}/src/robot/output/outputfile.py +51 -13
  95. {robotframework-7.2.1 → robotframework-7.3}/src/robot/output/pyloggingconf.py +13 -11
  96. {robotframework-7.2.1 → robotframework-7.3}/src/robot/output/stdoutlogsplitter.py +12 -9
  97. robotframework-7.3/src/robot/output/xmllogger.py +350 -0
  98. {robotframework-7.2.1 → robotframework-7.3}/src/robot/parsing/__init__.py +23 -5
  99. {robotframework-7.2.1/src/robot/running/builder → robotframework-7.3/src/robot/parsing/lexer}/__init__.py +6 -3
  100. {robotframework-7.2.1 → robotframework-7.3}/src/robot/parsing/lexer/blocklexers.py +180 -76
  101. {robotframework-7.2.1 → robotframework-7.3}/src/robot/parsing/lexer/context.py +30 -23
  102. {robotframework-7.2.1 → robotframework-7.3}/src/robot/parsing/lexer/lexer.py +41 -25
  103. {robotframework-7.2.1 → robotframework-7.3}/src/robot/parsing/lexer/settings.py +112 -103
  104. {robotframework-7.2.1 → robotframework-7.3}/src/robot/parsing/lexer/statementlexers.py +60 -49
  105. {robotframework-7.2.1 → robotframework-7.3}/src/robot/parsing/lexer/tokenizer.py +23 -22
  106. {robotframework-7.2.1 → robotframework-7.3}/src/robot/parsing/lexer/tokens.py +149 -120
  107. robotframework-7.3/src/robot/parsing/model/__init__.py +38 -0
  108. {robotframework-7.2.1 → robotframework-7.3}/src/robot/parsing/model/blocks.py +153 -105
  109. robotframework-7.3/src/robot/parsing/model/statements.py +1783 -0
  110. {robotframework-7.2.1 → robotframework-7.3}/src/robot/parsing/model/visitor.py +12 -11
  111. {robotframework-7.2.1/src/robot/parsing/lexer → robotframework-7.3/src/robot/parsing/parser}/__init__.py +5 -2
  112. {robotframework-7.2.1 → robotframework-7.3}/src/robot/parsing/parser/blockparsers.py +13 -12
  113. {robotframework-7.2.1 → robotframework-7.3}/src/robot/parsing/parser/fileparser.py +16 -14
  114. {robotframework-7.2.1 → robotframework-7.3}/src/robot/parsing/parser/parser.py +33 -15
  115. {robotframework-7.2.1 → robotframework-7.3}/src/robot/parsing/suitestructure.py +58 -49
  116. {robotframework-7.2.1 → robotframework-7.3}/src/robot/pythonpathsetter.py +3 -2
  117. {robotframework-7.2.1 → robotframework-7.3}/src/robot/rebot.py +20 -12
  118. {robotframework-7.2.1 → robotframework-7.3}/src/robot/reporting/__init__.py +1 -1
  119. {robotframework-7.2.1 → robotframework-7.3}/src/robot/reporting/expandkeywordmatcher.py +6 -6
  120. {robotframework-7.2.1 → robotframework-7.3}/src/robot/reporting/jsbuildingcontext.py +17 -9
  121. {robotframework-7.2.1 → robotframework-7.3}/src/robot/reporting/jsexecutionresult.py +30 -16
  122. {robotframework-7.2.1 → robotframework-7.3}/src/robot/reporting/jsmodelbuilders.py +124 -63
  123. {robotframework-7.2.1 → robotframework-7.3}/src/robot/reporting/jswriter.py +32 -29
  124. {robotframework-7.2.1 → robotframework-7.3}/src/robot/reporting/logreportwriters.py +14 -14
  125. {robotframework-7.2.1 → robotframework-7.3}/src/robot/reporting/outputwriter.py +3 -3
  126. {robotframework-7.2.1 → robotframework-7.3}/src/robot/reporting/resultwriter.py +31 -23
  127. {robotframework-7.2.1 → robotframework-7.3}/src/robot/reporting/stringcache.py +2 -2
  128. {robotframework-7.2.1 → robotframework-7.3}/src/robot/reporting/xunitwriter.py +34 -26
  129. {robotframework-7.2.1 → robotframework-7.3}/src/robot/result/__init__.py +26 -6
  130. {robotframework-7.2.1 → robotframework-7.3}/src/robot/result/configurer.py +12 -6
  131. {robotframework-7.2.1 → robotframework-7.3}/src/robot/result/executionerrors.py +7 -6
  132. {robotframework-7.2.1 → robotframework-7.3}/src/robot/result/executionresult.py +83 -56
  133. {robotframework-7.2.1 → robotframework-7.3}/src/robot/result/flattenkeywordmatcher.py +25 -23
  134. {robotframework-7.2.1 → robotframework-7.3}/src/robot/result/keywordremover.py +27 -25
  135. {robotframework-7.2.1 → robotframework-7.3}/src/robot/result/merger.py +35 -26
  136. {robotframework-7.2.1 → robotframework-7.3}/src/robot/result/messagefilter.py +4 -5
  137. {robotframework-7.2.1 → robotframework-7.3}/src/robot/result/model.py +376 -291
  138. {robotframework-7.2.1 → robotframework-7.3}/src/robot/result/modeldeprecation.py +9 -6
  139. {robotframework-7.2.1 → robotframework-7.3}/src/robot/result/resultbuilder.py +27 -23
  140. {robotframework-7.2.1 → robotframework-7.3}/src/robot/result/suiteteardownfailed.py +4 -4
  141. {robotframework-7.2.1 → robotframework-7.3}/src/robot/result/visitor.py +1 -0
  142. {robotframework-7.2.1 → robotframework-7.3}/src/robot/result/xmlelementhandlers.py +162 -138
  143. {robotframework-7.2.1 → robotframework-7.3}/src/robot/run.py +37 -23
  144. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/__init__.py +42 -12
  145. robotframework-7.3/src/robot/running/arguments/__init__.py +26 -0
  146. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/arguments/argumentconverter.py +36 -20
  147. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/arguments/argumentmapper.py +8 -7
  148. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/arguments/argumentparser.py +94 -51
  149. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/arguments/argumentresolver.py +25 -15
  150. robotframework-7.3/src/robot/running/arguments/argumentspec.py +286 -0
  151. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/arguments/argumentvalidator.py +19 -15
  152. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/arguments/customconverters.py +30 -16
  153. robotframework-7.3/src/robot/running/arguments/embedded.py +214 -0
  154. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/arguments/typeconverters.py +258 -245
  155. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/arguments/typeinfo.py +209 -114
  156. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/arguments/typeinfoparser.py +25 -24
  157. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/arguments/typevalidator.py +17 -10
  158. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/bodyrunner.py +236 -130
  159. robotframework-7.3/src/robot/running/builder/__init__.py +21 -0
  160. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/builder/builders.py +77 -58
  161. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/builder/parsers.py +59 -31
  162. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/builder/settings.py +37 -33
  163. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/builder/transformers.py +149 -83
  164. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/context.py +77 -41
  165. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/dynamicmethods.py +37 -28
  166. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/importer.py +31 -18
  167. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/invalidkeyword.py +13 -10
  168. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/keywordfinder.py +16 -16
  169. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/keywordimplementation.py +45 -35
  170. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/librarykeyword.py +207 -127
  171. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/librarykeywordrunner.py +131 -80
  172. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/libraryscopes.py +6 -4
  173. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/model.py +309 -203
  174. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/namespace.py +108 -76
  175. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/randomizer.py +7 -6
  176. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/resourcemodel.py +183 -127
  177. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/runkwregister.py +10 -4
  178. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/signalhandler.py +18 -15
  179. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/status.py +71 -57
  180. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/statusreporter.py +16 -7
  181. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/suiterunner.py +100 -73
  182. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/testlibraries.py +258 -168
  183. {robotframework-7.2.1/src/robot/parsing/parser → robotframework-7.3/src/robot/running/timeouts}/__init__.py +1 -1
  184. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/timeouts/nosupport.py +4 -5
  185. robotframework-7.3/src/robot/running/timeouts/posix.py +57 -0
  186. robotframework-7.3/src/robot/running/timeouts/runner.py +89 -0
  187. robotframework-7.3/src/robot/running/timeouts/timeout.py +144 -0
  188. robotframework-7.3/src/robot/running/timeouts/windows.py +84 -0
  189. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/userkeywordrunner.py +93 -67
  190. {robotframework-7.2.1 → robotframework-7.3}/src/robot/testdoc.py +62 -56
  191. robotframework-7.3/src/robot/utils/__init__.py +251 -0
  192. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/application.py +40 -18
  193. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/argumentparser.py +115 -98
  194. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/asserts.py +35 -29
  195. robotframework-7.3/src/robot/utils/charwidth.py +106 -0
  196. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/compress.py +2 -2
  197. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/connectioncache.py +13 -11
  198. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/dotdict.py +7 -5
  199. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/encoding.py +13 -10
  200. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/encodingsniffer.py +23 -19
  201. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/error.py +33 -30
  202. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/escaping.py +31 -28
  203. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/etreewrapper.py +15 -26
  204. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/filereader.py +15 -18
  205. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/frange.py +10 -12
  206. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/htmlformatters.py +104 -89
  207. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/importer.py +86 -56
  208. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/json.py +13 -16
  209. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/markuputils.py +13 -9
  210. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/markupwriters.py +32 -15
  211. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/match.py +29 -10
  212. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/misc.py +33 -31
  213. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/normalizing.py +29 -22
  214. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/notset.py +2 -1
  215. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/platform.py +10 -9
  216. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/recommendations.py +14 -6
  217. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/restreader.py +14 -16
  218. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/robotenv.py +5 -3
  219. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/robotio.py +19 -20
  220. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/robotpath.py +17 -17
  221. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/robottime.py +179 -112
  222. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/robottypes.py +60 -67
  223. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/setter.py +11 -14
  224. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/sortable.py +2 -3
  225. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/text.py +31 -26
  226. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/typehints.py +2 -2
  227. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/unic.py +3 -3
  228. robotframework-7.3/src/robot/variables/__init__.py +44 -0
  229. {robotframework-7.2.1 → robotframework-7.3}/src/robot/variables/assigner.py +146 -111
  230. {robotframework-7.2.1 → robotframework-7.3}/src/robot/variables/evaluation.py +43 -30
  231. {robotframework-7.2.1 → robotframework-7.3}/src/robot/variables/filesetter.py +50 -38
  232. {robotframework-7.2.1 → robotframework-7.3}/src/robot/variables/finders.py +36 -32
  233. {robotframework-7.2.1 → robotframework-7.3}/src/robot/variables/notfound.py +16 -10
  234. {robotframework-7.2.1 → robotframework-7.3}/src/robot/variables/replacer.py +25 -19
  235. {robotframework-7.2.1 → robotframework-7.3}/src/robot/variables/scopes.py +69 -43
  236. robotframework-7.3/src/robot/variables/search.py +333 -0
  237. {robotframework-7.2.1 → robotframework-7.3}/src/robot/variables/store.py +32 -21
  238. {robotframework-7.2.1 → robotframework-7.3}/src/robot/variables/tablesetter.py +80 -31
  239. {robotframework-7.2.1 → robotframework-7.3}/src/robot/variables/variables.py +16 -6
  240. {robotframework-7.2.1 → robotframework-7.3}/src/robot/version.py +8 -11
  241. robotframework-7.3/src/robotframework.egg-info/PKG-INFO +190 -0
  242. {robotframework-7.2.1 → robotframework-7.3}/src/robotframework.egg-info/SOURCES.txt +5 -0
  243. robotframework-7.3/src/robotframework.egg-info/entry_points.txt +4 -0
  244. {robotframework-7.2.1 → robotframework-7.3}/tasks.py +103 -25
  245. robotframework-7.2.1/PKG-INFO +0 -187
  246. robotframework-7.2.1/setup.py +0 -75
  247. robotframework-7.2.1/src/robot/conf/languages.py +0 -1358
  248. robotframework-7.2.1/src/robot/conf/settings.py +0 -757
  249. robotframework-7.2.1/src/robot/htmldata/libdoc/libdoc.html +0 -408
  250. robotframework-7.2.1/src/robot/model/__init__.py +0 -43
  251. robotframework-7.2.1/src/robot/output/listeners.py +0 -599
  252. robotframework-7.2.1/src/robot/output/loggerapi.py +0 -232
  253. robotframework-7.2.1/src/robot/output/xmllogger.py +0 -332
  254. robotframework-7.2.1/src/robot/parsing/model/__init__.py +0 -21
  255. robotframework-7.2.1/src/robot/parsing/model/statements.py +0 -1441
  256. robotframework-7.2.1/src/robot/running/arguments/__init__.py +0 -23
  257. robotframework-7.2.1/src/robot/running/arguments/argumentspec.py +0 -209
  258. robotframework-7.2.1/src/robot/running/arguments/embedded.py +0 -146
  259. robotframework-7.2.1/src/robot/running/timeouts/__init__.py +0 -131
  260. robotframework-7.2.1/src/robot/running/timeouts/posix.py +0 -40
  261. robotframework-7.2.1/src/robot/running/timeouts/windows.py +0 -71
  262. robotframework-7.2.1/src/robot/utils/__init__.py +0 -134
  263. robotframework-7.2.1/src/robot/utils/charwidth.py +0 -140
  264. robotframework-7.2.1/src/robot/variables/__init__.py +0 -33
  265. robotframework-7.2.1/src/robot/variables/search.py +0 -285
  266. robotframework-7.2.1/src/robotframework.egg-info/PKG-INFO +0 -187
  267. robotframework-7.2.1/src/robotframework.egg-info/entry_points.txt +0 -5
  268. {robotframework-7.2.1 → robotframework-7.3}/AUTHORS.rst +0 -0
  269. {robotframework-7.2.1 → robotframework-7.3}/COPYRIGHT.txt +0 -0
  270. {robotframework-7.2.1 → robotframework-7.3}/INSTALL.rst +0 -0
  271. {robotframework-7.2.1 → robotframework-7.3}/LICENSE.txt +0 -0
  272. {robotframework-7.2.1 → robotframework-7.3}/MANIFEST.in +0 -0
  273. {robotframework-7.2.1 → robotframework-7.3}/README.rst +0 -0
  274. {robotframework-7.2.1 → robotframework-7.3}/setup.cfg +0 -0
  275. {robotframework-7.2.1 → robotframework-7.3}/src/robot/api/py.typed +0 -0
  276. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/common/__init__.py +0 -0
  277. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/common/js_disabled.css +0 -0
  278. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/common/storage.js +0 -0
  279. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/lib/__init__.py +0 -0
  280. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/lib/jquery.highlight.min.js +0 -0
  281. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/lib/jquery.min.js +0 -0
  282. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/lib/jquery.tablesorter.min.js +0 -0
  283. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/lib/jquery.tmpl.min.js +0 -0
  284. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/lib/jsxcompressor.min.js +0 -0
  285. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/libdoc/__init__.py +0 -0
  286. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/rebot/__init__.py +0 -0
  287. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/rebot/common.css +0 -0
  288. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/rebot/doc_formatting.css +0 -0
  289. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/rebot/fileloading.js +0 -0
  290. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/rebot/log.css +0 -0
  291. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/rebot/log.html +0 -0
  292. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/rebot/log.js +0 -0
  293. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/rebot/model.js +0 -0
  294. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/rebot/print.css +0 -0
  295. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/rebot/report.css +0 -0
  296. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/rebot/report.html +0 -0
  297. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/rebot/testdata.js +0 -0
  298. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/rebot/util.js +0 -0
  299. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/rebot/view.js +0 -0
  300. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/testdoc/__init__.py +0 -0
  301. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/testdoc/testdoc.css +0 -0
  302. {robotframework-7.2.1 → robotframework-7.3}/src/robot/htmldata/testdoc/testdoc.html +0 -0
  303. {robotframework-7.2.1 → robotframework-7.3}/src/robot/libdocpkg/jsonwriter.py +0 -0
  304. {robotframework-7.2.1 → robotframework-7.3}/src/robot/running/outputcapture.py +0 -0
  305. {robotframework-7.2.1 → robotframework-7.3}/src/robot/utils/robotinspect.py +0 -0
  306. {robotframework-7.2.1 → robotframework-7.3}/src/robot/variables/resolvable.py +0 -0
  307. {robotframework-7.2.1 → robotframework-7.3}/src/robotframework.egg-info/dependency_links.txt +0 -0
  308. {robotframework-7.2.1 → robotframework-7.3}/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
@@ -133,8 +133,7 @@ new code. An important guideline is that the code should be clear enough that
133
133
  comments are generally not needed.
134
134
 
135
135
  All code, including test code, must be compatible with all supported Python
136
- interpreters and versions. Most importantly this means that the code must
137
- support both Python 2 and Python 3.
136
+ interpreters and versions.
138
137
 
139
138
  Line length
140
139
  '''''''''''
@@ -174,6 +173,24 @@ internal code. When docstrings are added, they should follow `PEP-257
174
173
  section below for more details about documentation syntax, generating
175
174
  API docs, etc.
176
175
 
176
+ Type hints / Annotations
177
+ ''''''''''''''''''''''''
178
+
179
+ Keywords and functions / methods in the public api should be annotated with type hints.
180
+ These annotations should follow the Python `Typing Best Practices
181
+ <https://typing.python.org/en/latest/reference/best_practices.html>`_ with the
182
+ following exceptions / restrictions:
183
+
184
+ - Annotation features are restricted to the minimum Python version supported by
185
+ Robot Framework.
186
+ - This means that at this time, for example, `TypeAlias` can not yet be used.
187
+ - Annotations should use the stringified format for annotations not natively
188
+ availabe by the minimum supported Python version. For example `'int | float'`
189
+ instead of `Union[int, float]` or `'list[int]'` instead of `List[int]`.
190
+ - Due to automatic type conversion by Robot Framework, `'int | float'` should not be
191
+ annotated as `'float'` since this would convert any `int` argument to a `float`.
192
+ - No `-> None` annotation on functions / method that do not return.
193
+
177
194
  Documentation
178
195
  ~~~~~~~~~~~~~
179
196
 
@@ -0,0 +1,190 @@
1
+ Metadata-Version: 2.1
2
+ Name: robotframework
3
+ Version: 7.3
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.3.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,33 @@
1
+ [tool.black]
2
+ line_length = 88
3
+ # When we add [project] with requires-python, remove this and Ruff's target-version
4
+ target-version = ["py38", "py39", "py310", "py311", "py312", "py313"]
5
+
6
+ [tool.ruff]
7
+ target-version = "py38"
8
+
9
+ [tool.ruff.lint]
10
+ extend-select = ["I"] # imports
11
+ ignore = ["E731"] # lambda assignment
12
+
13
+ [tool.ruff.lint.pyflakes]
14
+ # Needed due to https://github.com/astral-sh/ruff/issues/9298
15
+ extend-generics = ["robot.model.body.BaseBranches"]
16
+
17
+ [tool.ruff.lint.isort]
18
+ # Ruff is used to sort and fix imports first. Multiline imports are organized so
19
+ # that each item is on its own line. This is same as the Vertical Hanging Indent
20
+ # mode with isort.
21
+ combine-as-imports = true
22
+ order-by-type = false
23
+
24
+ [tool.isort]
25
+ # isort is used after Ruff to sort "normal" imports so that multiline imports use
26
+ # the Hanging Grid Grouped mode. Files contained redundant import aliases denoting
27
+ # module/package API are excluded. For details about multiline modes see:
28
+ # https://pycqa.github.io/isort/docs/configuration/multi_line_output_modes.html
29
+ multi_line_output = 5
30
+ extend_skip = ["__init__.py", "src/robot/api/parsing.py"]
31
+ combine_as_imports = true
32
+ order_by_type = false
33
+ 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.3"
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_cli",
81
+ "rebot = robot: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)