robotframework-nl 3.2.0__tar.gz → 5.0.0__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.
@@ -1,47 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: robotframework-nl
3
- Version: 3.2.0
4
- Summary: robotnl is a proving ground to boost Robot framework closer to Natural Language.
3
+ Version: 5.0.0
4
+ Summary: RobotNL is a proving ground to boost Robot Framework closer to Natural Language.
5
5
  Author-email: Johan Foederer <github@famfoe.nl>
6
- License: BSD 3-Clause License
7
-
8
- Copyright (c) 2021, J. Foederer
9
- All rights reserved.
10
-
11
- Redistribution and use in source and binary forms, with or without
12
- modification, are permitted provided that the following conditions are met:
13
-
14
- 1. Redistributions of source code must retain the above copyright notice, this
15
- list of conditions and the following disclaimer.
16
-
17
- 2. Redistributions in binary form must reproduce the above copyright notice,
18
- this list of conditions and the following disclaimer in the documentation
19
- and/or other materials provided with the distribution.
20
-
21
- 3. Neither the name of the copyright holder nor the names of its
22
- contributors may be used to endorse or promote products derived from
23
- this software without specific prior written permission.
24
-
25
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
28
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
29
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
30
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
31
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
33
- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35
-
6
+ License-Expression: BSD-3-Clause
36
7
  Project-URL: Homepage, https://github.com/JFoederer/robotframeworkNL
37
8
  Keywords: robotframework,robot,testing,dsl
38
- Classifier: License :: OSI Approved :: BSD License
39
9
  Classifier: Programming Language :: Python :: 3
40
10
  Classifier: Operating System :: OS Independent
41
- Requires-Python: >=3.8
11
+ Requires-Python: >=3.14
42
12
  Description-Content-Type: text/markdown
43
13
  License-File: LICENSE
44
- Requires-Dist: robotframework>=7.0
14
+ Requires-Dist: robotframework>=7.5.1
45
15
  Dynamic: license-file
46
16
 
47
17
  # RobotNL - the oneliner
@@ -101,7 +71,7 @@ Using *Check that* keywords offers a large reduction in the need for variables i
101
71
 
102
72
  ### Time constraints
103
73
 
104
- *Check that* offers support for executing checks that may take some time to complete. When using the optional `within` argument, followed by a time duration, *Check that* will apply *smart polling* to re-evaluate the expression and the keywords during the given period. Specifying the time limit is done using the standard [Robot Framework time format](https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#toc-entry-176). It is advised to use a realistic time duration. This sets the correct expectation for the reader and helps RobotNL optimise its polling algorithm.
74
+ *Check that* offers support for executing checks that may take some time to complete. When using the optional `within` argument, followed by a time duration, *Check that* will apply *smart polling* to re-evaluate the expression and the keywords during the given period. Specifying the time limit is done using the standard [Robot Framework time format](https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#time-as-time-string). It is advised to use a realistic time duration. This sets the correct expectation for the reader and helps RobotNL optimise its polling algorithm.
105
75
 
106
76
  |**Example using time constaints**||||||
107
77
  |---|---|---|---|---|---|
@@ -55,7 +55,7 @@ Using *Check that* keywords offers a large reduction in the need for variables i
55
55
 
56
56
  ### Time constraints
57
57
 
58
- *Check that* offers support for executing checks that may take some time to complete. When using the optional `within` argument, followed by a time duration, *Check that* will apply *smart polling* to re-evaluate the expression and the keywords during the given period. Specifying the time limit is done using the standard [Robot Framework time format](https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#toc-entry-176). It is advised to use a realistic time duration. This sets the correct expectation for the reader and helps RobotNL optimise its polling algorithm.
58
+ *Check that* offers support for executing checks that may take some time to complete. When using the optional `within` argument, followed by a time duration, *Check that* will apply *smart polling* to re-evaluate the expression and the keywords during the given period. Specifying the time limit is done using the standard [Robot Framework time format](https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#time-as-time-string). It is advised to use a realistic time duration. This sets the correct expectation for the reader and helps RobotNL optimise its polling algorithm.
59
59
 
60
60
  |**Example using time constaints**||||||
61
61
  |---|---|---|---|---|---|
@@ -1,27 +1,27 @@
1
1
  [build-system]
2
2
  requires = [
3
- "setuptools>=61.0.0",
3
+ "setuptools>=83.0.0",
4
4
  "wheel"
5
5
  ]
6
6
  build-backend = "setuptools.build_meta"
7
7
 
8
8
  [project]
9
9
  name = "robotframework-nl"
10
- version = "3.2.0"
11
- description = "robotnl is a proving ground to boost Robot framework closer to Natural Language."
10
+ version = "5.0.0"
11
+ description = "RobotNL is a proving ground to boost Robot Framework closer to Natural Language."
12
12
  readme = "README.md"
13
13
  authors = [{ name = "Johan Foederer", email = "github@famfoe.nl" }]
14
- license = { file = "LICENSE" }
14
+ license = "BSD-3-Clause"
15
+ license-files = ["LICENSE"]
15
16
  classifiers = [
16
- "License :: OSI Approved :: BSD License",
17
17
  "Programming Language :: Python :: 3",
18
18
  "Operating System :: OS Independent",
19
19
  ]
20
20
  keywords = ["robotframework", "robot", "testing", "dsl"]
21
21
  dependencies = [
22
- "robotframework >= 7.0",
22
+ "robotframework >= 7.5.1",
23
23
  ]
24
- requires-python = ">=3.8"
24
+ requires-python = ">=3.14"
25
25
 
26
26
  [tool.setuptools]
27
27
  packages = ["robotnl"]
@@ -1,47 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: robotframework-nl
3
- Version: 3.2.0
4
- Summary: robotnl is a proving ground to boost Robot framework closer to Natural Language.
3
+ Version: 5.0.0
4
+ Summary: RobotNL is a proving ground to boost Robot Framework closer to Natural Language.
5
5
  Author-email: Johan Foederer <github@famfoe.nl>
6
- License: BSD 3-Clause License
7
-
8
- Copyright (c) 2021, J. Foederer
9
- All rights reserved.
10
-
11
- Redistribution and use in source and binary forms, with or without
12
- modification, are permitted provided that the following conditions are met:
13
-
14
- 1. Redistributions of source code must retain the above copyright notice, this
15
- list of conditions and the following disclaimer.
16
-
17
- 2. Redistributions in binary form must reproduce the above copyright notice,
18
- this list of conditions and the following disclaimer in the documentation
19
- and/or other materials provided with the distribution.
20
-
21
- 3. Neither the name of the copyright holder nor the names of its
22
- contributors may be used to endorse or promote products derived from
23
- this software without specific prior written permission.
24
-
25
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
28
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
29
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
30
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
31
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
33
- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35
-
6
+ License-Expression: BSD-3-Clause
36
7
  Project-URL: Homepage, https://github.com/JFoederer/robotframeworkNL
37
8
  Keywords: robotframework,robot,testing,dsl
38
- Classifier: License :: OSI Approved :: BSD License
39
9
  Classifier: Programming Language :: Python :: 3
40
10
  Classifier: Operating System :: OS Independent
41
- Requires-Python: >=3.8
11
+ Requires-Python: >=3.14
42
12
  Description-Content-Type: text/markdown
43
13
  License-File: LICENSE
44
- Requires-Dist: robotframework>=7.0
14
+ Requires-Dist: robotframework>=7.5.1
45
15
  Dynamic: license-file
46
16
 
47
17
  # RobotNL - the oneliner
@@ -101,7 +71,7 @@ Using *Check that* keywords offers a large reduction in the need for variables i
101
71
 
102
72
  ### Time constraints
103
73
 
104
- *Check that* offers support for executing checks that may take some time to complete. When using the optional `within` argument, followed by a time duration, *Check that* will apply *smart polling* to re-evaluate the expression and the keywords during the given period. Specifying the time limit is done using the standard [Robot Framework time format](https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#toc-entry-176). It is advised to use a realistic time duration. This sets the correct expectation for the reader and helps RobotNL optimise its polling algorithm.
74
+ *Check that* offers support for executing checks that may take some time to complete. When using the optional `within` argument, followed by a time duration, *Check that* will apply *smart polling* to re-evaluate the expression and the keywords during the given period. Specifying the time limit is done using the standard [Robot Framework time format](https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#time-as-time-string). It is advised to use a realistic time duration. This sets the correct expectation for the reader and helps RobotNL optimise its polling algorithm.
105
75
 
106
76
  |**Example using time constaints**||||||
107
77
  |---|---|---|---|---|---|
@@ -0,0 +1 @@
1
+ robotframework>=7.5.1
@@ -35,6 +35,7 @@ from robot.api.deco import keyword as robot_keyword
35
35
  from robot.utils import type_name
36
36
  from robot.running.arguments import TypeConverter
37
37
 
38
+ from annotationlib import get_annotations, Format
38
39
  from functools import wraps
39
40
  from typing import TypeVar, Generic, Union
40
41
 
@@ -84,8 +85,10 @@ class InlineKeyword(Generic[TypeVar('T')]):
84
85
 
85
86
  # work around for Libdoc
86
87
  try:
87
- from robot.libdocpkg.standardtypes import STANDARD_TYPE_DOCS
88
- STANDARD_TYPE_DOCS[InlineKeyword] = InlineKeyword.__doc__
88
+ from robot.libdocpkg.standardtypes import _std_docs_robot
89
+ _std_docs_robot[InlineKeyword] = InlineKeyword.__doc__
90
+ from robot.libdocpkg.standardtypes import _std_docs_markdown
91
+ _std_docs_markdown[InlineKeyword] = InlineKeyword.__doc__
89
92
  except:
90
93
  pass
91
94
 
@@ -95,14 +98,14 @@ class InlineKeywordConverter(TypeConverter):
95
98
  type = InlineKeyword
96
99
  type_name = 'InlineKeyword'
97
100
 
98
- def __init__(self, type_info, custom_converters=None, languages=None):
99
- super().__init__(type_info, custom_converters, languages)
101
+ def __init__(self, type_info, custom_converters=None, languages=None, reraise_fatal=False):
102
+ super().__init__(type_info, custom_converters, languages, reraise_fatal)
100
103
  self.converter = self.converter_for(self.type_info.nested[0])
101
104
  self.type_name = f"keyword returning {type_name(self.type_info.nested[0].type)}"
102
105
 
103
106
  def _convert(self, value):
104
107
  if not is_keyword(value):
105
- raise ValueError
108
+ raise ValueError("Not a keyword")
106
109
  BuiltIn().log(f"Evaluating argument as keyword [{value}]")
107
110
  result = BuiltIn().run_keyword(value)
108
111
  BuiltIn().log(f"{value} → {result}")
@@ -116,11 +119,16 @@ class InlineKeywordConverter(TypeConverter):
116
119
 
117
120
  return result
118
121
 
119
-
120
122
  def keyword(name=None, tags=(), types=()):
121
123
  def decorator(func):
122
- for var, type_ in func.__annotations__.items():
123
- func.__annotations__[var] = Union[type_, InlineKeyword[type_]]
124
+ annotations = get_annotations(func, format=Format.VALUE)
125
+ for var, type_ in annotations.items():
126
+ annotations[var] = Union[type_, InlineKeyword[type_]]
127
+
128
+ def new_annotate(self, format=Format.VALUE):
129
+ return annotations
130
+ func.__annotate__ = new_annotate
131
+
124
132
  @robot_keyword(name, tags, types)
125
133
  @wraps(func)
126
134
  def wrapped(*args, **kwargs):
@@ -0,0 +1 @@
1
+ VERSION = '5.0.0'
@@ -1 +0,0 @@
1
- robotframework>=7.0
@@ -1 +0,0 @@
1
- VERSION = '3.2.0'