Remove f-strings from DAP
Commit Message
Kévin pointed out that gdb claims a minimum Python version of 3.2, but
the DAP code uses f-strings, which were added in 3.6.
This patch removes the uses of f-strings from the DAP code. I can't
test an older version of Python, but I did confirm that this still
works with the version I have.
---
gdb/python/lib/gdb/dap/evaluate.py | 2 +-
gdb/python/lib/gdb/dap/io.py | 2 +-
gdb/python/lib/gdb/dap/launch.py | 2 +-
gdb/python/lib/gdb/dap/state.py | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
Comments
> On Jun 2, 2023, at 11:45 AM, Tom Tromey via Gdb-patches <gdb-patches@sourceware.org> wrote:
>
> Kévin pointed out that gdb claims a minimum Python version of 3.2, but
> the DAP code uses f-strings, which were added in 3.6.
>
> This patch removes the uses of f-strings from the DAP code. I can't
> test an older version of Python, but I did confirm that this still
> works with the version I have.
> ---
> gdb/python/lib/gdb/dap/evaluate.py | 2 +-
> gdb/python/lib/gdb/dap/io.py | 2 +-
> gdb/python/lib/gdb/dap/launch.py | 2 +-
> gdb/python/lib/gdb/dap/state.py | 2 +-
> 4 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/gdb/python/lib/gdb/dap/evaluate.py b/gdb/python/lib/gdb/dap/evaluate.py
> index fffd255417b..7c4fee4f84b 100644
> --- a/gdb/python/lib/gdb/dap/evaluate.py
> +++ b/gdb/python/lib/gdb/dap/evaluate.py
> @@ -62,7 +62,7 @@ def eval_request(*, expression, frameId=None, context="variables", **args):
> elif context == "repl":
> return send_gdb_with_response(lambda: _repl(expression, frameId))
> else:
> - raise Exception(f'unknown evaluate context "{context}"')
> + raise Exception("unknown evaluate context " + context)
That (and the others) is not quite equivalent to what was there before. You might do this with calls to the "format" method explicitly, as in:
+ raise Exception('unknown evaluate context "{}"'.format(context))
paul
>>>>> "Paul" == Paul Koning <paulkoning@comcast.net> writes:
>> - raise Exception(f'unknown evaluate context "{context}"')
>> + raise Exception("unknown evaluate context " + context)
Paul> That (and the others) is not quite equivalent to what was there
Paul> before.
Yeah, it isn't identical, but it's the same in practice.
In some spots the argument is known to be a string, and in ones where
str() is applied, it's known to be an int. This is clearer after the
runtime type-checking patch is applied.
Tom
> On Jun 2, 2023, at 12:34 PM, Tom Tromey <tromey@adacore.com> wrote:
>
>>>>>> "Paul" == Paul Koning <paulkoning@comcast.net> writes:
>
>>> - raise Exception(f'unknown evaluate context "{context}"')
>>> + raise Exception("unknown evaluate context " + context)
>
> Paul> That (and the others) is not quite equivalent to what was there
> Paul> before.
>
> Yeah, it isn't identical, but it's the same in practice.
>
> In some spots the argument is known to be a string, and in ones where
> str() is applied, it's known to be an int. This is clearer after the
> runtime type-checking patch is applied.
>
> Tom
Ok, but at least in that line I pointed to, the output is different: the previous text quotes the value while your changed code does not.
paul
Paul> Ok, but at least in that line I pointed to, the output is
Paul> different: the previous text quotes the value while your changed
Paul> code does not.
Ah, now I see what you mean. I've fixed that.
Tom
>>>>> "Tom" == Tom Tromey via Gdb-patches <gdb-patches@sourceware.org> writes:
Tom> Kévin pointed out that gdb claims a minimum Python version of 3.2, but
Tom> the DAP code uses f-strings, which were added in 3.6.
Tom> This patch removes the uses of f-strings from the DAP code. I can't
Tom> test an older version of Python, but I did confirm that this still
Tom> works with the version I have.
I'm checking in the updated version of this patch.
Tom
@@ -62,7 +62,7 @@ def eval_request(*, expression, frameId=None, context="variables", **args):
elif context == "repl":
return send_gdb_with_response(lambda: _repl(expression, frameId))
else:
- raise Exception(f'unknown evaluate context "{context}"')
+ raise Exception("unknown evaluate context " + context)
@in_gdb_thread
@@ -60,7 +60,7 @@ def start_json_writer(stream, queue):
seq = seq + 1
encoded = json.dumps(obj)
body_bytes = encoded.encode("utf-8")
- header = f"Content-Length: {len(body_bytes)}\r\n\r\n"
+ header = "Content-Length: " + str(len(body_bytes)) + "\r\n\r\n"
header_bytes = header.encode("ASCII")
stream.write(header_bytes)
stream.write(body_bytes)
@@ -40,7 +40,7 @@ def launch(*, program=None, args=[], env=None, **extra):
if program is not None:
global _program
_program = program
- send_gdb(f"file {_program}")
+ send_gdb("file " + _program)
if len(args) > 0 or env is not None:
send_gdb(lambda: _set_args_env(args, env))
@@ -22,4 +22,4 @@ def set_thread(thread_id):
if thread_id == 0:
log("+++ Thread == 0 +++")
else:
- exec_and_log(f"thread {thread_id}")
+ exec_and_log("thread " + str(thread_id))