robotframework-nl 3.2.0__tar.gz → 4.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,44 +1,14 @@
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: 4.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
14
  Requires-Dist: robotframework>=7.0
@@ -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,19 +1,19 @@
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 = "4.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
  ]
@@ -21,7 +21,7 @@ keywords = ["robotframework", "robot", "testing", "dsl"]
21
21
  dependencies = [
22
22
  "robotframework >= 7.0",
23
23
  ]
24
- requires-python = ">=3.8"
24
+ requires-python = ">=3.14"
25
25
 
26
26
  [tool.setuptools]
27
27
  packages = ["robotnl"]
@@ -1,44 +1,14 @@
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: 4.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
14
  Requires-Dist: robotframework>=7.0
@@ -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
  |---|---|---|---|---|---|
@@ -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
 
@@ -102,7 +103,7 @@ class InlineKeywordConverter(TypeConverter):
102
103
 
103
104
  def _convert(self, value):
104
105
  if not is_keyword(value):
105
- raise ValueError
106
+ raise ValueError("Not a keyword")
106
107
  BuiltIn().log(f"Evaluating argument as keyword [{value}]")
107
108
  result = BuiltIn().run_keyword(value)
108
109
  BuiltIn().log(f"{value} → {result}")
@@ -116,11 +117,16 @@ class InlineKeywordConverter(TypeConverter):
116
117
 
117
118
  return result
118
119
 
119
-
120
120
  def keyword(name=None, tags=(), types=()):
121
121
  def decorator(func):
122
- for var, type_ in func.__annotations__.items():
123
- func.__annotations__[var] = Union[type_, InlineKeyword[type_]]
122
+ annotations = get_annotations(func, format=Format.VALUE)
123
+ for var, type_ in annotations.items():
124
+ annotations[var] = Union[type_, InlineKeyword[type_]]
125
+
126
+ def new_annotate(self, format=Format.VALUE):
127
+ return annotations
128
+ func.__annotate__ = new_annotate
129
+
124
130
  @robot_keyword(name, tags, types)
125
131
  @wraps(func)
126
132
  def wrapped(*args, **kwargs):
@@ -0,0 +1 @@
1
+ VERSION = '4.0.0'
@@ -1 +0,0 @@
1
- VERSION = '3.2.0'