You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Some keywords accept configuration parameters as **configuration or **config and then read accepted parameters from the resulting dictionary. For example, OperatingSystem has this kind of code:
Python 3 supports the above just fine and Robot has supported these named-only arguments for ages as well. We should update keywords so that they use named-only arguments instead of **config for the following reasons:
Simpler code.
Better documentation in Libdoc. Parameters are named explicitly instead of just mentioned in the documentation.
Based on my search these keywords need to be updated:
OperatingSystem.append_to_environment_variable
BuiltIn.should_contain_any
BuiltIn.should_not_contain_any
Process.run_process
Process.start_process
It would be good to get these updated already in RF 7.3 so that people interested in adding type hints (#5373) in RF 7.4 don't need to wait. Three first ought to be easy to fix, but the last two are a little bit more complicated, because they also accept environment variables freely using format env:name=value. They thus need to continue to accept **extra_env or something like that. If that gets too complicated, fixing Process keywords can wait for RF 7.4.
The text was updated successfully, but these errors were encountered:
pekkaklarck
changed the title
Change keywords accepting configuration parameters as **configuration to use named-only arguments instead
Change keywords accepting configuration parameters as **config to use named-only arguments instead
Apr 24, 2025
pekkaklarck
changed the title
Change keywords accepting configuration parameters as **config to use named-only arguments instead
Change keywords accepting configuration arguments as **config to use named-only arguments instead
Apr 24, 2025
Some keywords accept configuration parameters as
**configuration
or**config
and then read accepted parameters from the resulting dictionary. For example, OperatingSystem has this kind of code:The reason for this configuration approach is that with Python 2 it wasn't possible to have configuration options after
*varargs
like:Python 3 supports the above just fine and Robot has supported these named-only arguments for ages as well. We should update keywords so that they use named-only arguments instead of
**config
for the following reasons:Based on my search these keywords need to be updated:
It would be good to get these updated already in RF 7.3 so that people interested in adding type hints (#5373) in RF 7.4 don't need to wait. Three first ought to be easy to fix, but the last two are a little bit more complicated, because they also accept environment variables freely using format
env:name=value
. They thus need to continue to accept**extra_env
or something like that. If that gets too complicated, fixing Process keywords can wait for RF 7.4.The text was updated successfully, but these errors were encountered: