robotframework 3.0.4rc1__tar.gz → 7.2rc1__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 (444) hide show
  1. robotframework-7.2rc1/AUTHORS.rst +108 -0
  2. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/BUILD.rst +56 -74
  3. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/CONTRIBUTING.rst +62 -55
  4. robotframework-7.2rc1/INSTALL.rst +324 -0
  5. robotframework-7.2rc1/MANIFEST.in +3 -0
  6. robotframework-7.2rc1/PKG-INFO +187 -0
  7. robotframework-7.2rc1/README.rst +151 -0
  8. robotframework-7.2rc1/setup.py +75 -0
  9. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/__init__.py +2 -3
  10. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/__main__.py +2 -5
  11. robotframework-7.2rc1/src/robot/api/__init__.py +113 -0
  12. robotframework-7.2rc1/src/robot/api/deco.py +203 -0
  13. robotframework-7.2rc1/src/robot/api/exceptions.py +84 -0
  14. robotframework-7.2rc1/src/robot/api/interfaces.py +1052 -0
  15. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/api/logger.py +37 -30
  16. robotframework-7.2rc1/src/robot/api/parsing.py +565 -0
  17. robotframework-7.2rc1/src/robot/api/py.typed +0 -0
  18. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/conf/__init__.py +1 -0
  19. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/conf/gatherfailed.py +22 -19
  20. robotframework-7.2rc1/src/robot/conf/languages.py +1358 -0
  21. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/conf/settings.py +310 -141
  22. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/errors.py +78 -63
  23. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/htmldata/__init__.py +2 -1
  24. robotframework-7.2rc1/src/robot/htmldata/common/__init__.py +14 -0
  25. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/htmldata/common/storage.js +11 -6
  26. robotframework-7.2rc1/src/robot/htmldata/htmlfilewriter.py +119 -0
  27. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/htmldata/jsonwriter.py +20 -22
  28. robotframework-7.2rc1/src/robot/htmldata/lib/__init__.py +14 -0
  29. robotframework-7.2rc1/src/robot/htmldata/lib/jquery.min.js +2 -0
  30. robotframework-7.2rc1/src/robot/htmldata/lib/jquery.tablesorter.min.js +1 -0
  31. robotframework-7.2rc1/src/robot/htmldata/lib/jsxcompressor.min.js +19 -0
  32. robotframework-7.2rc1/src/robot/htmldata/libdoc/__init__.py +14 -0
  33. robotframework-7.2rc1/src/robot/htmldata/libdoc/libdoc.html +408 -0
  34. robotframework-7.2rc1/src/robot/htmldata/rebot/__init__.py +14 -0
  35. robotframework-7.2rc1/src/robot/htmldata/rebot/common.css +362 -0
  36. {robotframework-3.0.4rc1/src/robot/htmldata/common → robotframework-7.2rc1/src/robot/htmldata/rebot}/doc_formatting.css +13 -7
  37. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/htmldata/rebot/log.css +62 -15
  38. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/htmldata/rebot/log.html +33 -41
  39. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/htmldata/rebot/log.js +32 -12
  40. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/htmldata/rebot/model.js +56 -40
  41. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/htmldata/rebot/print.css +2 -2
  42. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/htmldata/rebot/report.css +85 -24
  43. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/htmldata/rebot/report.html +119 -112
  44. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/htmldata/rebot/testdata.js +53 -38
  45. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/htmldata/rebot/util.js +3 -3
  46. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/htmldata/rebot/view.js +106 -14
  47. robotframework-7.2rc1/src/robot/htmldata/template.py +62 -0
  48. robotframework-7.2rc1/src/robot/htmldata/testdoc/__init__.py +14 -0
  49. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/htmldata/testdoc/testdoc.html +3 -3
  50. robotframework-7.2rc1/src/robot/libdoc.py +303 -0
  51. robotframework-7.2rc1/src/robot/libdocpkg/__init__.py +22 -0
  52. robotframework-7.2rc1/src/robot/libdocpkg/builder.py +116 -0
  53. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/libdocpkg/consoleviewer.py +6 -7
  54. robotframework-7.2rc1/src/robot/libdocpkg/datatypes.py +119 -0
  55. robotframework-3.0.4rc1/src/robot/libdocpkg/htmlwriter.py → robotframework-7.2rc1/src/robot/libdocpkg/htmlutils.py +58 -78
  56. robotframework-7.2rc1/src/robot/libdocpkg/htmlwriter.py +43 -0
  57. robotframework-7.2rc1/src/robot/libdocpkg/jsonbuilder.py +151 -0
  58. robotframework-7.2rc1/src/robot/libdocpkg/jsonwriter.py +23 -0
  59. robotframework-7.2rc1/src/robot/libdocpkg/model.py +218 -0
  60. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/libdocpkg/output.py +20 -3
  61. robotframework-7.2rc1/src/robot/libdocpkg/robotbuilder.py +206 -0
  62. robotframework-7.2rc1/src/robot/libdocpkg/standardtypes.py +194 -0
  63. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/libdocpkg/writer.py +9 -4
  64. robotframework-7.2rc1/src/robot/libdocpkg/xmlbuilder.py +175 -0
  65. robotframework-7.2rc1/src/robot/libdocpkg/xmlwriter.py +152 -0
  66. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/libraries/BuiltIn.py +1753 -1037
  67. robotframework-7.2rc1/src/robot/libraries/Collections.py +1227 -0
  68. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/libraries/DateTime.py +110 -141
  69. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/libraries/Dialogs.py +43 -31
  70. robotframework-3.0.4rc1/src/robot/htmldata/normaltemplate.py → robotframework-7.2rc1/src/robot/libraries/Easter.py +13 -12
  71. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/libraries/OperatingSystem.py +217 -196
  72. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/libraries/Process.py +200 -149
  73. robotframework-7.2rc1/src/robot/libraries/Remote.py +281 -0
  74. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/libraries/Screenshot.py +58 -87
  75. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/libraries/String.py +265 -157
  76. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/libraries/Telnet.py +33 -70
  77. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/libraries/XML.py +165 -146
  78. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/libraries/__init__.py +2 -2
  79. robotframework-7.2rc1/src/robot/libraries/dialogs_py.py +209 -0
  80. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/model/__init__.py +12 -10
  81. robotframework-7.2rc1/src/robot/model/body.py +322 -0
  82. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/model/configurer.py +22 -17
  83. robotframework-7.2rc1/src/robot/model/control.py +596 -0
  84. robotframework-7.2rc1/src/robot/model/filter.py +114 -0
  85. robotframework-7.2rc1/src/robot/model/fixture.py +41 -0
  86. robotframework-7.2rc1/src/robot/model/itemlist.py +227 -0
  87. robotframework-7.2rc1/src/robot/model/keyword.py +70 -0
  88. robotframework-7.2rc1/src/robot/model/message.py +85 -0
  89. robotframework-7.2rc1/src/robot/model/metadata.py +39 -0
  90. robotframework-7.2rc1/src/robot/model/modelobject.py +227 -0
  91. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/model/modifier.py +18 -18
  92. robotframework-7.2rc1/src/robot/model/namepatterns.py +35 -0
  93. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/model/statistics.py +17 -13
  94. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/model/stats.py +32 -65
  95. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/model/suitestatistics.py +10 -11
  96. robotframework-7.2rc1/src/robot/model/tags.py +254 -0
  97. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/model/tagsetter.py +12 -7
  98. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/model/tagstatistics.py +31 -63
  99. robotframework-7.2rc1/src/robot/model/testcase.py +211 -0
  100. robotframework-7.2rc1/src/robot/model/testsuite.py +450 -0
  101. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/model/totalstatistics.py +40 -26
  102. robotframework-7.2rc1/src/robot/model/visitor.py +616 -0
  103. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/output/__init__.py +3 -2
  104. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/output/console/__init__.py +3 -3
  105. robotframework-7.2rc1/src/robot/output/console/dotted.py +93 -0
  106. robotframework-7.2rc1/src/robot/output/console/highlighting.py +252 -0
  107. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/output/console/quiet.py +3 -2
  108. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/output/console/verbose.py +63 -61
  109. robotframework-7.2rc1/src/robot/output/debugfile.py +122 -0
  110. robotframework-7.2rc1/src/robot/output/filelogger.py +65 -0
  111. robotframework-7.2rc1/src/robot/output/jsonlogger.py +338 -0
  112. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/output/librarylogger.py +19 -22
  113. robotframework-7.2rc1/src/robot/output/listeners.py +599 -0
  114. robotframework-7.2rc1/src/robot/output/logger.py +464 -0
  115. robotframework-7.2rc1/src/robot/output/loggerapi.py +232 -0
  116. robotframework-7.2rc1/src/robot/output/loggerhelper.py +125 -0
  117. robotframework-7.2rc1/src/robot/output/loglevel.py +54 -0
  118. robotframework-7.2rc1/src/robot/output/output.py +190 -0
  119. robotframework-7.2rc1/src/robot/output/outputfile.py +174 -0
  120. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/output/pyloggingconf.py +16 -10
  121. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/output/stdoutlogsplitter.py +17 -12
  122. robotframework-7.2rc1/src/robot/output/xmllogger.py +332 -0
  123. robotframework-7.2rc1/src/robot/parsing/__init__.py +28 -0
  124. robotframework-3.0.4rc1/src/robot/htmldata/template.py → robotframework-7.2rc1/src/robot/parsing/lexer/__init__.py +2 -4
  125. robotframework-7.2rc1/src/robot/parsing/lexer/blocklexers.py +344 -0
  126. robotframework-7.2rc1/src/robot/parsing/lexer/context.py +155 -0
  127. robotframework-7.2rc1/src/robot/parsing/lexer/lexer.py +193 -0
  128. robotframework-7.2rc1/src/robot/parsing/lexer/settings.py +277 -0
  129. robotframework-7.2rc1/src/robot/parsing/lexer/statementlexers.py +401 -0
  130. robotframework-7.2rc1/src/robot/parsing/lexer/tokenizer.py +138 -0
  131. robotframework-7.2rc1/src/robot/parsing/lexer/tokens.py +272 -0
  132. robotframework-7.2rc1/src/robot/parsing/model/__init__.py +21 -0
  133. robotframework-7.2rc1/src/robot/parsing/model/blocks.py +538 -0
  134. robotframework-7.2rc1/src/robot/parsing/model/statements.py +1441 -0
  135. robotframework-7.2rc1/src/robot/parsing/model/visitor.py +100 -0
  136. robotframework-7.2rc1/src/robot/parsing/parser/__init__.py +16 -0
  137. robotframework-7.2rc1/src/robot/parsing/parser/blockparsers.py +128 -0
  138. robotframework-7.2rc1/src/robot/parsing/parser/fileparser.py +119 -0
  139. robotframework-7.2rc1/src/robot/parsing/parser/parser.py +131 -0
  140. robotframework-7.2rc1/src/robot/parsing/suitestructure.py +246 -0
  141. robotframework-7.2rc1/src/robot/pythonpathsetter.py +32 -0
  142. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/rebot.py +149 -145
  143. robotframework-7.2rc1/src/robot/reporting/expandkeywordmatcher.py +38 -0
  144. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/reporting/jsbuildingcontext.py +38 -16
  145. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/reporting/jsexecutionresult.py +11 -21
  146. robotframework-7.2rc1/src/robot/reporting/jsmodelbuilders.py +242 -0
  147. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/reporting/jswriter.py +3 -3
  148. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/reporting/logreportwriters.py +24 -15
  149. robotframework-7.2rc1/src/robot/reporting/outputwriter.py +30 -0
  150. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/reporting/resultwriter.py +16 -20
  151. robotframework-7.2rc1/src/robot/reporting/stringcache.py +50 -0
  152. robotframework-7.2rc1/src/robot/reporting/xunitwriter.py +87 -0
  153. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/result/__init__.py +11 -13
  154. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/result/configurer.py +15 -17
  155. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/result/executionerrors.py +19 -14
  156. robotframework-7.2rc1/src/robot/result/executionresult.py +330 -0
  157. robotframework-7.2rc1/src/robot/result/flattenkeywordmatcher.py +122 -0
  158. robotframework-7.2rc1/src/robot/result/keywordremover.py +207 -0
  159. robotframework-7.2rc1/src/robot/result/merger.py +132 -0
  160. robotframework-3.0.4rc1/src/robot/reporting/outputwriter.py → robotframework-7.2rc1/src/robot/result/messagefilter.py +15 -16
  161. robotframework-7.2rc1/src/robot/result/model.py +1233 -0
  162. robotframework-7.2rc1/src/robot/result/modeldeprecation.py +73 -0
  163. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/result/resultbuilder.py +82 -66
  164. robotframework-7.2rc1/src/robot/result/suiteteardownfailed.py +66 -0
  165. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/result/visitor.py +1 -2
  166. robotframework-7.2rc1/src/robot/result/xmlelementhandlers.py +496 -0
  167. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/run.py +250 -214
  168. robotframework-7.2rc1/src/robot/running/__init__.py +128 -0
  169. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/running/arguments/__init__.py +6 -9
  170. robotframework-7.2rc1/src/robot/running/arguments/argumentconverter.py +100 -0
  171. robotframework-7.2rc1/src/robot/running/arguments/argumentmapper.py +83 -0
  172. robotframework-7.2rc1/src/robot/running/arguments/argumentparser.py +266 -0
  173. robotframework-7.2rc1/src/robot/running/arguments/argumentresolver.py +154 -0
  174. robotframework-7.2rc1/src/robot/running/arguments/argumentspec.py +209 -0
  175. robotframework-7.2rc1/src/robot/running/arguments/argumentvalidator.py +90 -0
  176. robotframework-7.2rc1/src/robot/running/arguments/customconverters.py +116 -0
  177. robotframework-7.2rc1/src/robot/running/arguments/embedded.py +146 -0
  178. robotframework-7.2rc1/src/robot/running/arguments/typeconverters.py +827 -0
  179. robotframework-7.2rc1/src/robot/running/arguments/typeinfo.py +363 -0
  180. robotframework-7.2rc1/src/robot/running/arguments/typeinfoparser.py +219 -0
  181. robotframework-7.2rc1/src/robot/running/arguments/typevalidator.py +60 -0
  182. robotframework-7.2rc1/src/robot/running/bodyrunner.py +824 -0
  183. robotframework-7.2rc1/src/robot/running/builder/__init__.py +18 -0
  184. robotframework-7.2rc1/src/robot/running/builder/builders.py +302 -0
  185. robotframework-7.2rc1/src/robot/running/builder/parsers.py +168 -0
  186. robotframework-7.2rc1/src/robot/running/builder/settings.py +216 -0
  187. robotframework-7.2rc1/src/robot/running/builder/transformers.py +561 -0
  188. robotframework-7.2rc1/src/robot/running/context.py +362 -0
  189. robotframework-7.2rc1/src/robot/running/dynamicmethods.py +182 -0
  190. robotframework-7.2rc1/src/robot/running/importer.py +135 -0
  191. robotframework-7.2rc1/src/robot/running/invalidkeyword.py +70 -0
  192. robotframework-7.2rc1/src/robot/running/keywordfinder.py +91 -0
  193. robotframework-7.2rc1/src/robot/running/keywordimplementation.py +168 -0
  194. robotframework-7.2rc1/src/robot/running/librarykeyword.py +402 -0
  195. robotframework-7.2rc1/src/robot/running/librarykeywordrunner.py +262 -0
  196. robotframework-7.2rc1/src/robot/running/libraryscopes.py +115 -0
  197. robotframework-7.2rc1/src/robot/running/model.py +809 -0
  198. robotframework-7.2rc1/src/robot/running/namespace.py +504 -0
  199. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/running/outputcapture.py +25 -55
  200. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/running/randomizer.py +1 -4
  201. robotframework-7.2rc1/src/robot/running/resourcemodel.py +456 -0
  202. robotframework-7.2rc1/src/robot/running/runkwregister.py +86 -0
  203. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/running/signalhandler.py +14 -15
  204. robotframework-7.2rc1/src/robot/running/status.py +330 -0
  205. robotframework-7.2rc1/src/robot/running/statusreporter.py +97 -0
  206. robotframework-7.2rc1/src/robot/running/suiterunner.py +272 -0
  207. robotframework-7.2rc1/src/robot/running/testlibraries.py +500 -0
  208. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/running/timeouts/__init__.py +17 -19
  209. robotframework-7.2rc1/src/robot/running/timeouts/nosupport.py +25 -0
  210. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/running/timeouts/posix.py +1 -1
  211. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/running/timeouts/windows.py +1 -1
  212. robotframework-7.2rc1/src/robot/running/userkeywordrunner.py +269 -0
  213. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/testdoc.py +75 -58
  214. robotframework-7.2rc1/src/robot/utils/__init__.py +134 -0
  215. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/utils/application.py +2 -4
  216. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/utils/argumentparser.py +35 -94
  217. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/utils/asserts.py +16 -16
  218. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/utils/charwidth.py +3 -2
  219. robotframework-7.2rc1/src/robot/utils/compress.py +22 -0
  220. robotframework-7.2rc1/src/robot/utils/connectioncache.py +180 -0
  221. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/utils/dotdict.py +1 -4
  222. robotframework-7.2rc1/src/robot/utils/encoding.py +89 -0
  223. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/utils/encodingsniffer.py +28 -23
  224. robotframework-7.2rc1/src/robot/utils/error.py +129 -0
  225. robotframework-7.2rc1/src/robot/utils/escaping.py +132 -0
  226. robotframework-7.2rc1/src/robot/utils/etreewrapper.py +84 -0
  227. robotframework-7.2rc1/src/robot/utils/filereader.py +105 -0
  228. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/utils/frange.py +2 -4
  229. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/utils/htmlformatters.py +27 -26
  230. robotframework-7.2rc1/src/robot/utils/importer.py +349 -0
  231. robotframework-7.2rc1/src/robot/utils/json.py +75 -0
  232. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/utils/markuputils.py +8 -4
  233. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/utils/markupwriters.py +43 -27
  234. robotframework-7.2rc1/src/robot/utils/match.py +85 -0
  235. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/utils/misc.py +80 -40
  236. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/utils/normalizing.py +47 -48
  237. robotframework-3.0.4rc1/src/robot/result/messagefilter.py → robotframework-7.2rc1/src/robot/utils/notset.py +12 -8
  238. robotframework-7.2rc1/src/robot/utils/platform.py +51 -0
  239. robotframework-7.2rc1/src/robot/utils/recommendations.py +94 -0
  240. robotframework-3.0.4rc1/src/robot/parsing/restsupport.py → robotframework-7.2rc1/src/robot/utils/restreader.py +57 -16
  241. robotframework-7.2rc1/src/robot/utils/robotinspect.py +27 -0
  242. robotframework-7.2rc1/src/robot/utils/robotio.py +60 -0
  243. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/utils/robotpath.py +18 -30
  244. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/utils/robottime.py +182 -118
  245. robotframework-7.2rc1/src/robot/utils/robottypes.py +166 -0
  246. robotframework-7.2rc1/src/robot/utils/setter.py +94 -0
  247. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/utils/sortable.py +1 -4
  248. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/utils/text.py +53 -17
  249. robotframework-7.2rc1/src/robot/utils/typehints.py +34 -0
  250. robotframework-7.2rc1/src/robot/utils/unic.py +66 -0
  251. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/variables/__init__.py +10 -4
  252. robotframework-7.2rc1/src/robot/variables/assigner.py +316 -0
  253. robotframework-7.2rc1/src/robot/variables/evaluation.py +177 -0
  254. robotframework-7.2rc1/src/robot/variables/filesetter.py +176 -0
  255. robotframework-7.2rc1/src/robot/variables/finders.py +151 -0
  256. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/variables/notfound.py +8 -11
  257. robotframework-7.2rc1/src/robot/variables/replacer.py +205 -0
  258. robotframework-7.2rc1/src/robot/variables/resolvable.py +34 -0
  259. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/variables/scopes.py +58 -30
  260. robotframework-7.2rc1/src/robot/variables/search.py +286 -0
  261. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/variables/store.py +43 -27
  262. robotframework-7.2rc1/src/robot/variables/tablesetter.py +161 -0
  263. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/variables/variables.py +12 -10
  264. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/version.py +1 -5
  265. robotframework-7.2rc1/src/robotframework.egg-info/PKG-INFO +187 -0
  266. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robotframework.egg-info/SOURCES.txt +72 -70
  267. robotframework-7.2rc1/src/robotframework.egg-info/entry_points.txt +5 -0
  268. robotframework-7.2rc1/tasks.py +164 -0
  269. robotframework-3.0.4rc1/AUTHORS.txt +0 -76
  270. robotframework-3.0.4rc1/INSTALL.rst +0 -725
  271. robotframework-3.0.4rc1/MANIFEST.in +0 -4
  272. robotframework-3.0.4rc1/PKG-INFO +0 -175
  273. robotframework-3.0.4rc1/README.rst +0 -146
  274. robotframework-3.0.4rc1/setup.py +0 -106
  275. robotframework-3.0.4rc1/src/bin/ipybot +0 -6
  276. robotframework-3.0.4rc1/src/bin/ipybot.bat +0 -2
  277. robotframework-3.0.4rc1/src/bin/ipyrebot +0 -6
  278. robotframework-3.0.4rc1/src/bin/ipyrebot.bat +0 -2
  279. robotframework-3.0.4rc1/src/bin/jybot +0 -6
  280. robotframework-3.0.4rc1/src/bin/jybot.bat +0 -2
  281. robotframework-3.0.4rc1/src/bin/jyrebot +0 -6
  282. robotframework-3.0.4rc1/src/bin/jyrebot.bat +0 -2
  283. robotframework-3.0.4rc1/src/bin/pybot +0 -6
  284. robotframework-3.0.4rc1/src/bin/pybot.bat +0 -2
  285. robotframework-3.0.4rc1/src/bin/rebot +0 -9
  286. robotframework-3.0.4rc1/src/bin/rebot.bat +0 -2
  287. robotframework-3.0.4rc1/src/bin/robot +0 -9
  288. robotframework-3.0.4rc1/src/bin/robot.bat +0 -2
  289. robotframework-3.0.4rc1/src/robot/api/__init__.py +0 -74
  290. robotframework-3.0.4rc1/src/robot/api/deco.py +0 -54
  291. robotframework-3.0.4rc1/src/robot/htmldata/htmlfilewriter.py +0 -115
  292. robotframework-3.0.4rc1/src/robot/htmldata/jartemplate.py +0 -46
  293. robotframework-3.0.4rc1/src/robot/htmldata/lib/jquery.min.js +0 -2
  294. robotframework-3.0.4rc1/src/robot/htmldata/lib/jquery.tablesorter.min.js +0 -5
  295. robotframework-3.0.4rc1/src/robot/htmldata/lib/jsxcompressor.min.js +0 -19
  296. robotframework-3.0.4rc1/src/robot/htmldata/libdoc/libdoc.css +0 -148
  297. robotframework-3.0.4rc1/src/robot/htmldata/libdoc/libdoc.html +0 -379
  298. robotframework-3.0.4rc1/src/robot/htmldata/libdoc/print.css +0 -11
  299. robotframework-3.0.4rc1/src/robot/htmldata/libdoc/pygments.css +0 -69
  300. robotframework-3.0.4rc1/src/robot/htmldata/rebot/common.css +0 -227
  301. robotframework-3.0.4rc1/src/robot/jarrunner.py +0 -69
  302. robotframework-3.0.4rc1/src/robot/libdoc.py +0 -233
  303. robotframework-3.0.4rc1/src/robot/libdocpkg/__init__.py +0 -47
  304. robotframework-3.0.4rc1/src/robot/libdocpkg/builder.py +0 -39
  305. robotframework-3.0.4rc1/src/robot/libdocpkg/javabuilder.py +0 -129
  306. robotframework-3.0.4rc1/src/robot/libdocpkg/model.py +0 -70
  307. robotframework-3.0.4rc1/src/robot/libdocpkg/robotbuilder.py +0 -121
  308. robotframework-3.0.4rc1/src/robot/libdocpkg/specbuilder.py +0 -61
  309. robotframework-3.0.4rc1/src/robot/libdocpkg/xmlwriter.py +0 -47
  310. robotframework-3.0.4rc1/src/robot/libraries/Collections.py +0 -941
  311. robotframework-3.0.4rc1/src/robot/libraries/Easter.py +0 -27
  312. robotframework-3.0.4rc1/src/robot/libraries/Remote.py +0 -288
  313. robotframework-3.0.4rc1/src/robot/libraries/Reserved.py +0 -31
  314. robotframework-3.0.4rc1/src/robot/libraries/dialogs_ipy.py +0 -201
  315. robotframework-3.0.4rc1/src/robot/libraries/dialogs_jy.py +0 -113
  316. robotframework-3.0.4rc1/src/robot/libraries/dialogs_py.py +0 -179
  317. robotframework-3.0.4rc1/src/robot/model/criticality.py +0 -43
  318. robotframework-3.0.4rc1/src/robot/model/filter.py +0 -102
  319. robotframework-3.0.4rc1/src/robot/model/imports.py +0 -62
  320. robotframework-3.0.4rc1/src/robot/model/itemlist.py +0 -102
  321. robotframework-3.0.4rc1/src/robot/model/keyword.py +0 -182
  322. robotframework-3.0.4rc1/src/robot/model/message.py +0 -75
  323. robotframework-3.0.4rc1/src/robot/model/metadata.py +0 -33
  324. robotframework-3.0.4rc1/src/robot/model/modelobject.py +0 -85
  325. robotframework-3.0.4rc1/src/robot/model/namepatterns.py +0 -54
  326. robotframework-3.0.4rc1/src/robot/model/tags.py +0 -180
  327. robotframework-3.0.4rc1/src/robot/model/testcase.py +0 -88
  328. robotframework-3.0.4rc1/src/robot/model/testsuite.py +0 -168
  329. robotframework-3.0.4rc1/src/robot/model/visitor.py +0 -163
  330. robotframework-3.0.4rc1/src/robot/output/console/dotted.py +0 -87
  331. robotframework-3.0.4rc1/src/robot/output/console/highlighting.py +0 -200
  332. robotframework-3.0.4rc1/src/robot/output/debugfile.py +0 -112
  333. robotframework-3.0.4rc1/src/robot/output/filelogger.py +0 -62
  334. robotframework-3.0.4rc1/src/robot/output/listenerarguments.py +0 -141
  335. robotframework-3.0.4rc1/src/robot/output/listenermethods.py +0 -114
  336. robotframework-3.0.4rc1/src/robot/output/listeners.py +0 -168
  337. robotframework-3.0.4rc1/src/robot/output/logger.py +0 -220
  338. robotframework-3.0.4rc1/src/robot/output/loggerhelper.py +0 -150
  339. robotframework-3.0.4rc1/src/robot/output/output.py +0 -74
  340. robotframework-3.0.4rc1/src/robot/output/xmllogger.py +0 -161
  341. robotframework-3.0.4rc1/src/robot/parsing/__init__.py +0 -66
  342. robotframework-3.0.4rc1/src/robot/parsing/comments.py +0 -63
  343. robotframework-3.0.4rc1/src/robot/parsing/datarow.py +0 -97
  344. robotframework-3.0.4rc1/src/robot/parsing/htmlreader.py +0 -205
  345. robotframework-3.0.4rc1/src/robot/parsing/model.py +0 -717
  346. robotframework-3.0.4rc1/src/robot/parsing/populators.py +0 -215
  347. robotframework-3.0.4rc1/src/robot/parsing/restreader.py +0 -52
  348. robotframework-3.0.4rc1/src/robot/parsing/settings.py +0 -393
  349. robotframework-3.0.4rc1/src/robot/parsing/tablepopulators.py +0 -335
  350. robotframework-3.0.4rc1/src/robot/parsing/tsvreader.py +0 -48
  351. robotframework-3.0.4rc1/src/robot/parsing/txtreader.py +0 -36
  352. robotframework-3.0.4rc1/src/robot/pythonpathsetter.py +0 -41
  353. robotframework-3.0.4rc1/src/robot/reporting/jsmodelbuilders.py +0 -189
  354. robotframework-3.0.4rc1/src/robot/reporting/stringcache.py +0 -52
  355. robotframework-3.0.4rc1/src/robot/reporting/xunitwriter.py +0 -100
  356. robotframework-3.0.4rc1/src/robot/result/executionresult.py +0 -136
  357. robotframework-3.0.4rc1/src/robot/result/flattenkeywordmatcher.py +0 -77
  358. robotframework-3.0.4rc1/src/robot/result/keywordremover.py +0 -164
  359. robotframework-3.0.4rc1/src/robot/result/merger.py +0 -98
  360. robotframework-3.0.4rc1/src/robot/result/model.py +0 -295
  361. robotframework-3.0.4rc1/src/robot/result/suiteteardownfailed.py +0 -47
  362. robotframework-3.0.4rc1/src/robot/result/xmlelementhandlers.py +0 -258
  363. robotframework-3.0.4rc1/src/robot/running/__init__.py +0 -109
  364. robotframework-3.0.4rc1/src/robot/running/arguments/argumentmapper.py +0 -73
  365. robotframework-3.0.4rc1/src/robot/running/arguments/argumentparser.py +0 -196
  366. robotframework-3.0.4rc1/src/robot/running/arguments/argumentresolver.py +0 -134
  367. robotframework-3.0.4rc1/src/robot/running/arguments/argumentspec.py +0 -50
  368. robotframework-3.0.4rc1/src/robot/running/arguments/argumentvalidator.py +0 -68
  369. robotframework-3.0.4rc1/src/robot/running/arguments/embedded.py +0 -88
  370. robotframework-3.0.4rc1/src/robot/running/arguments/javaargumentcoercer.py +0 -146
  371. robotframework-3.0.4rc1/src/robot/running/builder.py +0 -231
  372. robotframework-3.0.4rc1/src/robot/running/context.py +0 -198
  373. robotframework-3.0.4rc1/src/robot/running/defaults.py +0 -43
  374. robotframework-3.0.4rc1/src/robot/running/dynamicmethods.py +0 -145
  375. robotframework-3.0.4rc1/src/robot/running/handlers.py +0 -269
  376. robotframework-3.0.4rc1/src/robot/running/handlerstore.py +0 -85
  377. robotframework-3.0.4rc1/src/robot/running/importer.py +0 -149
  378. robotframework-3.0.4rc1/src/robot/running/librarykeywordrunner.py +0 -224
  379. robotframework-3.0.4rc1/src/robot/running/libraryscopes.py +0 -101
  380. robotframework-3.0.4rc1/src/robot/running/model.py +0 -319
  381. robotframework-3.0.4rc1/src/robot/running/namespace.py +0 -440
  382. robotframework-3.0.4rc1/src/robot/running/runkwregister.py +0 -65
  383. robotframework-3.0.4rc1/src/robot/running/runner.py +0 -220
  384. robotframework-3.0.4rc1/src/robot/running/status.py +0 -234
  385. robotframework-3.0.4rc1/src/robot/running/statusreporter.py +0 -75
  386. robotframework-3.0.4rc1/src/robot/running/steprunner.py +0 -272
  387. robotframework-3.0.4rc1/src/robot/running/testlibraries.py +0 -411
  388. robotframework-3.0.4rc1/src/robot/running/timeouts/ironpython.py +0 -58
  389. robotframework-3.0.4rc1/src/robot/running/timeouts/jython.py +0 -57
  390. robotframework-3.0.4rc1/src/robot/running/usererrorhandler.py +0 -68
  391. robotframework-3.0.4rc1/src/robot/running/userkeyword.py +0 -114
  392. robotframework-3.0.4rc1/src/robot/running/userkeywordrunner.py +0 -236
  393. robotframework-3.0.4rc1/src/robot/tidy.py +0 -330
  394. robotframework-3.0.4rc1/src/robot/utils/__init__.py +0 -76
  395. robotframework-3.0.4rc1/src/robot/utils/compat.py +0 -76
  396. robotframework-3.0.4rc1/src/robot/utils/compress.py +0 -54
  397. robotframework-3.0.4rc1/src/robot/utils/connectioncache.py +0 -178
  398. robotframework-3.0.4rc1/src/robot/utils/encoding.py +0 -104
  399. robotframework-3.0.4rc1/src/robot/utils/error.py +0 -206
  400. robotframework-3.0.4rc1/src/robot/utils/escaping.py +0 -145
  401. robotframework-3.0.4rc1/src/robot/utils/etreewrapper.py +0 -88
  402. robotframework-3.0.4rc1/src/robot/utils/importer.py +0 -274
  403. robotframework-3.0.4rc1/src/robot/utils/match.py +0 -103
  404. robotframework-3.0.4rc1/src/robot/utils/ordereddict.py +0 -127
  405. robotframework-3.0.4rc1/src/robot/utils/platform.py +0 -32
  406. robotframework-3.0.4rc1/src/robot/utils/recommendations.py +0 -75
  407. robotframework-3.0.4rc1/src/robot/utils/robotinspect.py +0 -36
  408. robotframework-3.0.4rc1/src/robot/utils/robotio.py +0 -43
  409. robotframework-3.0.4rc1/src/robot/utils/robottypes.py +0 -52
  410. robotframework-3.0.4rc1/src/robot/utils/robottypes2.py +0 -74
  411. robotframework-3.0.4rc1/src/robot/utils/robottypes3.py +0 -65
  412. robotframework-3.0.4rc1/src/robot/utils/setter.py +0 -46
  413. robotframework-3.0.4rc1/src/robot/utils/unic.py +0 -89
  414. robotframework-3.0.4rc1/src/robot/utils/utf8reader.py +0 -52
  415. robotframework-3.0.4rc1/src/robot/variables/assigner.py +0 -252
  416. robotframework-3.0.4rc1/src/robot/variables/filesetter.py +0 -144
  417. robotframework-3.0.4rc1/src/robot/variables/finders.py +0 -153
  418. robotframework-3.0.4rc1/src/robot/variables/isvar.py +0 -52
  419. robotframework-3.0.4rc1/src/robot/variables/replacer.py +0 -177
  420. robotframework-3.0.4rc1/src/robot/variables/splitter.py +0 -187
  421. robotframework-3.0.4rc1/src/robot/variables/tablesetter.py +0 -150
  422. robotframework-3.0.4rc1/src/robot/writer/__init__.py +0 -26
  423. robotframework-3.0.4rc1/src/robot/writer/aligners.py +0 -64
  424. robotframework-3.0.4rc1/src/robot/writer/dataextractor.py +0 -57
  425. robotframework-3.0.4rc1/src/robot/writer/datafilewriter.py +0 -126
  426. robotframework-3.0.4rc1/src/robot/writer/filewriters.py +0 -149
  427. robotframework-3.0.4rc1/src/robot/writer/formatters.py +0 -150
  428. robotframework-3.0.4rc1/src/robot/writer/htmlformatter.py +0 -131
  429. robotframework-3.0.4rc1/src/robot/writer/htmltemplate.py +0 -71
  430. robotframework-3.0.4rc1/src/robot/writer/rowsplitter.py +0 -108
  431. robotframework-3.0.4rc1/src/robotframework.egg-info/PKG-INFO +0 -175
  432. robotframework-3.0.4rc1/tasks.py +0 -277
  433. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/COPYRIGHT.txt +0 -0
  434. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/LICENSE.txt +0 -0
  435. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/setup.cfg +0 -0
  436. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/htmldata/common/js_disabled.css +0 -0
  437. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/htmldata/lib/jquery.highlight.min.js +0 -0
  438. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/htmldata/lib/jquery.tmpl.min.js +0 -0
  439. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/htmldata/rebot/fileloading.js +0 -0
  440. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/htmldata/testdoc/testdoc.css +0 -0
  441. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/reporting/__init__.py +0 -0
  442. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robot/utils/robotenv.py +0 -0
  443. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robotframework.egg-info/dependency_links.txt +0 -0
  444. {robotframework-3.0.4rc1 → robotframework-7.2rc1}/src/robotframework.egg-info/top_level.txt +0 -0
@@ -0,0 +1,108 @@
1
+ Robot Framework contributors
2
+ ============================
3
+
4
+ This file lists contributors to Robot Framework during the time it was
5
+ developed at Nokia Networks. There are both `core team members`_ as well
6
+ as `other contributors`_.
7
+
8
+ Nowadays contributors are acknowledged separately in the release notes
9
+ and this file is not anymore updated. Contributors can also be found easily
10
+ via GitHub__.
11
+
12
+ __ https://github.com/robotframework/robotframework/graphs/contributors
13
+
14
+ Core team members
15
+ -----------------
16
+
17
+ The members of the Robot Framework core team during the Nokia Networks years
18
+ 2005 - 2015.
19
+
20
+ =========================== ===========
21
+ Name Years
22
+ =========================== ===========
23
+ Pekka Klärck (né Laukkanen) 2005 - 2015
24
+ Petri Haapio 2005 - 2008
25
+ Juha Rantanen 2005 - 2011
26
+ Lasse Koskela 2005 - 2006
27
+ Janne Härkönen 2006 - 2012
28
+ Sami Honkonen 2006 - 2007
29
+ Antti Tuomaala 2006
30
+ Ran Nyman 2007 - 2010
31
+ Heikki Hulkko 2007 - 2009
32
+ Anna Tevaniemi 2008
33
+ Kari Husa 2009 - 2011
34
+ Jussi Malinen 2010 - 2015
35
+ Mikko Korpela 2010 - 2014
36
+ Ismo Aro 2010 - 2012
37
+ Ilmari Kontulainen 2010 - 2013
38
+ Tommi Asiala 2012
39
+ Mika Hänninen 2012 - 2013
40
+ Tatu Kairi 2012 - 2014
41
+ Anssi Syrjäsalo 2013
42
+ Janne Piironen 2013 - 2014
43
+ =========================== ===========
44
+
45
+ Other contributors
46
+ ------------------
47
+
48
+ External contributors after Robot Framework was open sourced in 2008.
49
+ As already mentioned above, this list is not anymore updated.
50
+
51
+ =========================== ===============================================
52
+ Name Contribution
53
+ =========================== ===============================================
54
+ Elisabeth Hendrickson | Quick Start Guide (2.0)
55
+ Marcin Michalak | String library (2.1)
56
+ Chris Prinos | reST (HTML) support (2.1)
57
+ | How-to debug execution with `pdb` (2.7.6)
58
+ Régis Desgroppes | Fixing installation paths (2.1.3)
59
+ | xUnit compatible outputs (2.5.5)
60
+ Robert Spielmann | Report background colors (2.5)
61
+ Xie Yanbo | Alignment of east asian characters (2.5.3)
62
+ JSXGraph Developers | JSXGraph tool and license changes for it (2.6)
63
+ Imran | Template names to listener API (2.6)
64
+ | Suite source to listener API (2.7)
65
+ Tatu Aalto | Get Time keyword enhancement (2.7.5)
66
+ Eemeli Kantola | Fix for non-breaking spaces (2.7.5)
67
+ Martti Haukijärvi | IronPython support to Screenshot library (2.7.5)
68
+ Guy Kisel | How-to use decorators when creating libraries (2.7.7)
69
+ | BuiltIn.Log pprint support (2.8.6)
70
+ | New pattern matching keywords in Collections (2.8.6)
71
+ | Keyword/variable not found recommendations (2.8.6)
72
+ | Tidy ELSE and ELSE IF onto separate lines (2.8.7)
73
+ | Initial contribution guidelines (2.9, #1805)
74
+ Mike Terzo | Better connection errors to Remote library (2.7.7)
75
+ Asko Soukka | reST (plain text) support (2.8.2)
76
+ Vivek Kumar Verma | reST (plain text) support (2.8.2)
77
+ Stefan Zimmermann | `**kwargs` support for dynamic libraries (2.8.2)
78
+ | `**kwargs` support for Java libraries (2.8.3)
79
+ | `*varargs` support using java.util.List (2.8.3)
80
+ Mirel Pehadzic | Terminal emulation for Telnet library (2.8.2)
81
+ Diogo Sa-Chaves De Oliveira | Terminal emulation for Telnet library (2.8.2)
82
+ Lionel Perrin | Giving custom seed to --randomize (2.8.5)
83
+ Michael Walle | Telnet.Write Control Character keyword (2.8.5)
84
+ | Telnet.Read Until Prompt strip_prompt option (2.8.7)
85
+ | String.Strip String (3.0)
86
+ Tero Kinnunen | BDD 'But' prefix ignored (2.8.7)
87
+ Heiko Thiery | Enable log level config option for TelnetLibrary (2.8.7)
88
+ Nicolae Chedea | Float parameters in FOR IN RANGE (2.8.7)
89
+ Jared Hellman | Custom keyword names (2.9)
90
+ | Embedded arguments for library keywords (2.9)
91
+ Vinicius K. Ruoso | Support multiple listeners per library (2.9)
92
+ | Allowing control over connection timeout in Telnet library (2.9.2)
93
+ | Suppress docutils errors/warnings with reST format (2.9.2)
94
+ Joseph Lorenzini | Exposed ERROR log level for keywords (2.9)
95
+ Guillaume Grossetie | Less flashy report and log styles (2.9, #1943)
96
+ Ed Brannin | `FOR ... IN ZIP`, `FOR ... IN ENUMERATE` (2.9, #1989)
97
+ Moon SungHoon | String.Get Regexp Matches keyword (2.9, #1985)
98
+ Hélio Guilherme | Support partial match with String.Get Lines Matching Regexp (2.9, #1836)
99
+ Jean-Charles Deville | Make variable errors not exit `Runner keywords` (2.9, #1869)
100
+ Laurent Bristiel | Convert examples in User Guide to plain text format (2.9, #1972)
101
+ Tim Orling | IronPython support for `Dialogs` library (2.9.2, #1235)
102
+ Jozef Behran | Fix `${TEST_MESSAGE}` to reflect current test message (3.0, #2188)
103
+ Joong-Hee Lee | Extend 'Repeat Keyword' to support timeout (3.0, #2245)
104
+ Anton Nikitin | Should (Not) Contain Any (3.0.1, #2120)
105
+ Yang Qian | Support to copy/deepcopy model objects (3.0.1, #2483)
106
+ Chris Callan | Case-insensitivity support to various comparison keywords (3.0.1, #2439)
107
+ Benjamin Einaudi | Add `--rerunfailedsuites` option (3.0.1, #2117)
108
+ =========================== ===============================================
@@ -36,9 +36,9 @@ Many steps are automated using the generic `Invoke <http://pyinvoke.org>`_
36
36
  tool with a help by our `rellu <https://github.com/robotframework/rellu>`_
37
37
  utilities, but also other tools and modules are needed. A pre-condition is
38
38
  installing all these, and that's easiest done using `pip
39
- <http://pip-installer.org>`_ and the provided `<requirements-build.txt>`_ file::
39
+ <http://pip-installer.org>`_ and the provided `<requirements-dev.txt>`_ file::
40
40
 
41
- pip install -r requirements-build.txt
41
+ pip install -r requirements-dev.txt
42
42
 
43
43
  Using Invoke
44
44
  ~~~~~~~~~~~~
@@ -66,10 +66,17 @@ Testing
66
66
  Make sure that adequate tests are executed before releases are created.
67
67
  See `<atest/README.rst>`_ for details.
68
68
 
69
+ If output.xml `schema <doc/schema/README.rst>`_ has changed, remember to
70
+ run tests also with `full schema validation`__ enabled::
71
+
72
+ atest/run.py --schema-validation
73
+
74
+ __ https://github.com/robotframework/robotframework/tree/master/atest#schema-validation
75
+
69
76
  Preparation
70
77
  -----------
71
78
 
72
- 1. Check that you are on the master branch and have nothing left to commit,
79
+ 1. Check that you are on the right branch and have nothing left to commit,
73
80
  pull, or push::
74
81
 
75
82
  git branch
@@ -86,35 +93,40 @@ Preparation
86
93
 
87
94
  VERSION=<version>
88
95
 
89
- For example, ``VERSION=3.0.1`` or ``VERSION=3.1a2``.
96
+ For example, ``VERSION=7.1.1`` or ``VERSION=7.2a2``. No ``v`` prefix!
90
97
 
91
98
  Release notes
92
99
  -------------
93
100
 
94
- 1. Set GitHub user information into shell variables to ease copy-pasting the
95
- following command::
101
+ 1. Create a personal `GitHub access token`__ to be able to access issue tracker
102
+ programmatically. The token needs only the ``repo/public_repo`` scope.
103
+
104
+ 2. Set GitHub user information into shell variables to ease running the
105
+ ``invoke release-notes`` command in the next step::
96
106
 
97
107
  GITHUB_USERNAME=<username>
98
- GITHUB_PASSWORD=<password>
108
+ GITHUB_ACCESS_TOKEN=<token>
99
109
 
100
- Alternatively, supply the credentials when running that command.
110
+ ``<username>`` is your normal GitHub user name and ``<token>`` is the personal
111
+ access token generated in the previous step. Alternatively this information can
112
+ be given when running the command in the next step.
101
113
 
102
- 2. Generate a template for the release notes::
114
+ 3. Generate a template for the release notes::
103
115
 
104
- invoke release-notes -w -v $VERSION -u $GITHUB_USERNAME -p $GITHUB_PASSWORD
116
+ invoke release-notes -w -v $VERSION -u $GITHUB_USERNAME -p $GITHUB_ACCESS_TOKEN
105
117
 
106
118
  The ``-v $VERSION`` option can be omitted if `version is already set
107
119
  <Set version_>`__. Omit the ``-w`` option if you just want to get release
108
120
  notes printed to the console, not written to a file.
109
121
 
110
- When generating release notes for a preview release like ``3.0.2rc1``,
122
+ When generating release notes for a preview release like ``7.2rc1``,
111
123
  the list of issues is only going to contain issues with that label
112
124
  (e.g. ``rc1``) or with a label of an earlier preview release (e.g.
113
125
  ``alpha1``, ``beta2``).
114
126
 
115
- 2. Fill the missing details in the generated release notes template.
127
+ 4. Fill the missing details in the generated release notes template.
116
128
 
117
- 3. Make sure that issues have correct information:
129
+ 5. Make sure that issues have correct information:
118
130
 
119
131
  - All issues should have type (bug, enhancement or task) and priority set.
120
132
  Notice that issues with the task type are automatically excluded from
@@ -127,26 +139,28 @@ Release notes
127
139
  issue tracker than in the generated release notes. This allows re-generating
128
140
  the list of issues later if more issues are added.
129
141
 
130
- 4. Add, commit and push::
142
+ 6. Add, commit and push::
131
143
 
132
144
  git add doc/releasenotes/rf-$VERSION.rst
133
145
  git commit -m "Release notes for $VERSION" doc/releasenotes/rf-$VERSION.rst
134
146
  git push
135
147
 
136
- 5. Update later if necessary. Writing release notes is typically the biggest
148
+ 7. Update later if necessary. Writing release notes is typically the biggest
137
149
  task when generating releases, and getting everything done in one go is
138
150
  often impossible.
139
151
 
152
+ __ https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token
153
+
140
154
  Set version
141
155
  -----------
142
156
 
143
- 1. Set version information in `<src/robot/version.py>`_ and in `<pom.xml>`_::
157
+ 1. Set version information in `<src/robot/version.py>`_ and `<setup.py>`_::
144
158
 
145
159
  invoke set-version $VERSION
146
160
 
147
161
  2. Commit and push changes::
148
162
 
149
- git commit -m "Updated version to $VERSION" src/robot/version.py pom.xml
163
+ git commit -m "Updated version to $VERSION" src/robot/version.py setup.py
150
164
  git push
151
165
 
152
166
  Tagging
@@ -175,71 +189,39 @@ Creating distributions
175
189
 
176
190
  invoke clean
177
191
 
178
- 3. Create source distribution::
179
-
180
- python setup.py sdist
181
- ls -l dist
182
-
183
- Distributions can be tested locally if needed.
184
-
185
- 4. Upload distributions to PyPI::
186
-
187
- twine upload dist/*
192
+ 3. Build `libdoc.html`::
188
193
 
189
- 5. Verify that project the page at `PyPI
190
- <https://pypi.python.org/pypi/robotframework>`_ looks good.
194
+ npm run build --prefix src/web/
191
195
 
192
- 6. Test installation (add ``--pre`` with pre-releases)::
196
+ This step can be skipped if there are no changes to Libdoc. Prerequisites
197
+ are listed in `<src/web/README.md>`_.
193
198
 
194
- pip install --upgrade robotframework
199
+ 4. Create and validate source distribution and `wheel <https://pythonwheels.com>`_::
195
200
 
196
- 7. JAR distribution
197
-
198
- - Create::
199
-
200
- invoke jar
201
-
202
- - Test that JAR is not totally borken::
203
-
204
- java -jar dist/robotframework-$VERSION.jar --version
205
- java -jar dist/robotframework-$VERSION.jar atest/testdata/misc/pass_and_fail.robot
206
-
207
- 8. Upload JAR to Sonatype
208
-
209
- - Sonatype offers a service where users can upload JARs and they will be synced
210
- to the maven central repository. Below are the instructions to upload the JAR.
211
-
212
- - Prequisites:
213
-
214
- - Install maven
215
- - Create a `Sonatype account`__
216
- - Add these lines (filled with the Sonatype account information) to your ``settings.xml``::
201
+ python setup.py sdist bdist_wheel
202
+ ls -l dist
203
+ twine check dist/*
217
204
 
218
- <servers>
219
- <server>
220
- <id>sonatype-nexus-staging</id>
221
- <username></username>
222
- <password></password>
223
- </server>
224
- </servers>
205
+ Distributions can be tested locally if needed.
225
206
 
226
- - Create `a PGP key`__
227
- - Apply for `publish rights`__ to org.robotframework project. This will
228
- take some time from them to accept.
207
+ 5. Upload distributions to PyPI::
229
208
 
209
+ twine upload dist/*
230
210
 
231
- - Run command::
211
+ 6. Verify that project pages at `PyPI
212
+ <https://pypi.python.org/pypi/robotframework>`_ look good.
232
213
 
233
- mvn gpg:sign-and-deploy-file -Dfile=dist/robotframework-$VERSION.jar -DpomFile=pom.xml -Durl=http://oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=sonatype-nexus-staging
214
+ 7. Test installation::
234
215
 
235
- - Go to https://oss.sonatype.org/index.html#welcome, log in with Sonatype credentials, find the staging repository and do close & release
236
- - After that, the released JAR is synced to Maven central within an hour.
216
+ pip install --pre --upgrade robotframework
237
217
 
238
- __ https://issues.sonatype.org/secure/Dashboard.jspa
239
- __ http://central.sonatype.org/pages/working-with-pgp-signatures.html
240
- __ https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide
218
+ 8. Documentation
241
219
 
242
- 9. Documentation
220
+ - For a reproducible build, set the ``SOURCE_DATE_EPOCH``
221
+ environment variable to a constant value, corresponding to the
222
+ date in seconds since the Epoch (also known as Epoch time). For
223
+ more information regarding this environment variable, see
224
+ https://reproducible-builds.org/docs/source-date-epoch/.
243
225
 
244
226
  - Generate library documentation::
245
227
 
@@ -253,19 +235,19 @@ __ https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Us
253
235
 
254
236
  git checkout gh-pages
255
237
  invoke add-docs $VERSION --push
256
- git checkout master
238
+ git checkout master # replace master with v*-maintenance if needed!
257
239
 
258
240
  Post actions
259
241
  ------------
260
242
 
261
243
  1. Back to master if needed::
262
244
 
263
- git checkout master
245
+ git checkout master # replace master with v*-maintenance if needed!
264
246
 
265
247
  2. Set dev version based on the previous version::
266
248
 
267
249
  invoke set-version dev
268
- git commit -m "Back to dev version" src/robot/version.py pom.xml
250
+ git commit -m "Back to dev version" src/robot/version.py setup.py
269
251
  git push
270
252
 
271
253
  For example, ``1.2.3`` is changed to ``1.2.4.dev1`` and ``2.0.1a1``
@@ -297,7 +279,7 @@ Announcements
297
279
  3. ``#devel`` and ``#general`` channels on Slack.
298
280
 
299
281
  4. `Robot Framework LinkedIn
300
- <https://www.linkedin.com/groups/Robot-Framework-3710899>`_ group.
282
+ <https://www.linkedin.com/groups/3710899/>`_ group.
301
283
 
302
284
  5. Consider sending announcements, at least with major releases, also to other
303
285
  forums where we want to make the framework more well known. For example:
@@ -1,8 +1,9 @@
1
1
  Contribution guidelines
2
2
  =======================
3
3
 
4
- These guidelines instruct how to submit issues and contribute code to the
5
- `Robot Framework project <https://github.com/robotframework/robotframework>`_.
4
+ These guidelines instruct how to submit issues and contribute code or
5
+ documentation to the `Robot Framework project
6
+ <https://github.com/robotframework/robotframework>`_.
6
7
  There are also many other projects in the larger `Robot Framework ecosystem
7
8
  <http://robotframework.org>`_ that you can contribute to. If you notice
8
9
  a library or tool missing, there is hardly any better way to contribute
@@ -12,6 +13,11 @@ answering questions and participating discussion on `robotframework-users
12
13
  and other forums, as well as spreading the word about the framework one way or
13
14
  the other.
14
15
 
16
+ These guidelines expect readers to have a basic knowledge about open source
17
+ as well as why and how to contribute to open source projects. If you are
18
+ totally new to these topics, it may be a good idea to look at the generic
19
+ `Open Source Guides <https://opensource.guide/>`_ first.
20
+
15
21
  .. contents::
16
22
  :depth: 2
17
23
  :local:
@@ -25,7 +31,7 @@ unsure if something is a bug or is a feature worth implementing, you can
25
31
  first ask on `robotframework-users`_ mailing list, on `IRC
26
32
  <http://webchat.freenode.net/?channels=robotframework&prompt=1>`_
27
33
  (#robotframework on irc.freenode.net), or on `Slack
28
- <https://robotframework-slack.herokuapp.com>`_. These and other similar
34
+ <https://robotframework-slack-invite.herokuapp.com>`_. These and other similar
29
35
  forums, not the issue tracker, are also places where to ask general questions.
30
36
 
31
37
  Before submitting a new issue, it is always a good idea to check is the
@@ -41,8 +47,8 @@ and preferably also reproduce it. Key things to have in good bug report:
41
47
  1. Version information
42
48
 
43
49
  - Robot Framework version
44
- - Python interpreter type (Python, Jython or IronPython) and version
45
- - Operating system name and version
50
+ - Python interpreter version
51
+ - Operating system and its version
46
52
 
47
53
  2. Steps to reproduce the problem. With more complex problems it is often
48
54
  a good idea to create a `short, self contained, correct example (SSCCE)
@@ -58,7 +64,7 @@ Enhancement requests
58
64
 
59
65
  Describe the new feature and use cases for it in as much detail as possible.
60
66
  Especially with larger enhancements, be prepared to contribute the code
61
- in form of a pull request as explained below or to pay someone for the work.
67
+ in the form of a pull request as explained below or to pay someone for the work.
62
68
  Consider also would it be better to implement this functionality as a separate
63
69
  tool outside the core framework.
64
70
 
@@ -77,15 +83,27 @@ Often you already have a bug or an enhancement you want to work on in your
77
83
  mind, but you can also look at the `issue tracker`_ to find bugs and
78
84
  enhancements submitted by others. The issues vary significantly in complexity
79
85
  and difficulty, so you can try to find something that matches your skill level
80
- and knowledge.
86
+ and knowledge. There are two specific labels to look for when looking for
87
+ something to contribute:
88
+
89
+ `good first issue`__
90
+ These issues typically do not require any knowledge of Robot Framework
91
+ internals and are generally easy to implement or fix. Thus these issues
92
+ are especially good for new contributors.
93
+
94
+ `help wanted`__
95
+ These issues require external help to get implemented or fixed.
96
+
97
+ __ https://github.com/robotframework/robotframework/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22
98
+ __ https://github.com/robotframework/robotframework/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22
81
99
 
82
100
  Pull requests
83
101
  ~~~~~~~~~~~~~
84
102
 
85
103
  On GitHub pull requests are the main mechanism to contribute code. They
86
- are easy to use both for the contributor and for person accepting
104
+ are easy to use both for the contributor and for the person accepting
87
105
  the contribution, and with more complex contributions it is easy also
88
- for others to join the discussion. Preconditions for creating a pull
106
+ for others to join the discussion. Preconditions for creating pull
89
107
  requests are having a `GitHub account <https://github.com/>`_,
90
108
  installing `Git <https://git-scm.com>`_ and forking the
91
109
  `Robot Framework project`_.
@@ -94,8 +112,8 @@ GitHub has good articles explaining how to
94
112
  `set up Git <https://help.github.com/articles/set-up-git/>`_,
95
113
  `fork a repository <https://help.github.com/articles/fork-a-repo/>`_ and
96
114
  `use pull requests <https://help.github.com/articles/using-pull-requests>`_
97
- and we do not go through them in more detail. We do, however,
98
- recommend to create dedicated branches for pull requests instead of creating
115
+ and we do not go through them in more detail. We do, however, recommend to
116
+ create dedicated topic branches for pull requests instead of creating
99
117
  them based on the master branch. This is especially important if you plan to
100
118
  work on multiple pull requests at the same time.
101
119
 
@@ -118,6 +136,18 @@ All code, including test code, must be compatible with all supported Python
118
136
  interpreters and versions. Most importantly this means that the code must
119
137
  support both Python 2 and Python 3.
120
138
 
139
+ Line length
140
+ '''''''''''
141
+
142
+ Maximum line length with Python code, including docstrings and comments, is 88
143
+ characters. This is also what `Black <https://pypi.org/project/black/>`__ uses
144
+ by default and `their documentation
145
+ <https://black.readthedocs.io/en/stable/the_black_code_style.html#line-length>`__
146
+ explains why. Notice that we do not have immediate plans to actually take Black
147
+ into use but we may consider that later.
148
+
149
+ With Robot Framework tests the maximum line length is 100.
150
+
121
151
  Whitespace
122
152
  ''''''''''
123
153
 
@@ -125,6 +155,8 @@ We are pretty picky about using whitespace. We follow `PEP-8`_ in how to use
125
155
  blank lines and whitespace in general, but we also have some stricter rules:
126
156
 
127
157
  - No blank lines inside functions.
158
+ - No blank lines between a class declaration and class attributes or between
159
+ attributes.
128
160
  - Indentation using spaces, not tabs.
129
161
  - No trailing spaces.
130
162
  - No extra empty lines at the end of the file.
@@ -179,11 +211,24 @@ and follow these guidelines:
179
211
  not trivial.
180
212
 
181
213
  - All new enhancements or changes should have a note telling when the change
182
- was introduced. Often adding something like ``New in Robot Framework 2.9.``
214
+ was introduced. Often adding something like ``New in Robot Framework 3.1.``
183
215
  is enough.
184
216
 
185
- Library documentation can be easily created using `<doc/libraries/lib2html.py>`_
186
- script. Resulting docs should be verified before the code is committed.
217
+ Library documentation can be generated using `Invoke <http://pyinvoke.org>`_
218
+ by running command
219
+
220
+ ::
221
+
222
+ invoke library-docs <name>
223
+
224
+ where ``<name>`` is the name of the library or its unique prefix. Run
225
+
226
+ ::
227
+
228
+ invoke --help library-docs
229
+
230
+ for more information see `<BUILD.rst>`_ for details about installing and
231
+ using Invoke.
187
232
 
188
233
  API documentation
189
234
  '''''''''''''''''
@@ -211,13 +256,13 @@ Tests
211
256
  When submitting a pull request with a new feature or a fix, you should
212
257
  always include tests for your changes. These tests prove that your changes
213
258
  work, help prevent bugs in the future, and help document what your changes
214
- do. Depending an the change, you may need acceptance tests, unit tests
259
+ do. Depending on the change, you may need acceptance tests, unit tests
215
260
  or both.
216
261
 
217
262
  Make sure to run all of the tests before submitting a pull request to be sure
218
263
  that your changes do not break anything. If you can, test in multiple
219
- environments and interpreters (Windows, Linux, OS X, Python, Jython,
220
- IronPython, Python 3, etc). Pull requests are also automatically tested on
264
+ environments and interpreters (Windows, Linux, OS X, different Python
265
+ versions etc). Pull requests are also automatically tested on
221
266
  continuous integration.
222
267
 
223
268
  Executing changed code
@@ -248,41 +293,3 @@ Unit tests
248
293
 
249
294
  Unit tests are great for testing internal logic and should be added when
250
295
  appropriate. For more details see `<utest/README.rst>`_.
251
-
252
- Finalizing pull requests
253
- ~~~~~~~~~~~~~~~~~~~~~~~~
254
-
255
- Once you have code, documentation and tests ready, it is time to finalize
256
- the pull request.
257
-
258
- AUTHORS.txt
259
- '''''''''''
260
-
261
- If you have done any non-trivial change and would like to be credited,
262
- add yourself to `<AUTHORS.txt>`_ file.
263
-
264
- Resolving conflicts
265
- '''''''''''''''''''
266
-
267
- Conflicts can occur if there are new changes to the master that touch the
268
- same code as your changes. In that case you should `sync your fork
269
- <https://help.github.com/articles/syncing-a-fork>`_ and `resolve conflicts
270
- <https://help.github.com/articles/resolving-a-merge-conflict-from-the-command-line>`_
271
- to allow for an easy merge.
272
-
273
- The most common conflicting file is the aforementioned `AUTHORS.txt`_, but
274
- luckily fixing those conflicts is typically easy.
275
-
276
- Squashing commits
277
- '''''''''''''''''
278
-
279
- If the pull request contains multiple commits, it is recommended that you
280
- squash them into a single commit before the pull request is merged.
281
- See `Squashing Github pull requests into a single commit
282
- <http://eli.thegreenplace.net/2014/02/19/squashing-github-pull-requests-into-a-single-commit>`_
283
- article for more details about why and how.
284
-
285
- Squashing is especially important if the pull request contains lots of
286
- temporary commits and changes that have been later reverted or redone.
287
- Squashing is not needed if the commit history is clean and individual
288
- commits are meaningful alone.