kalong 0.5.7__py3-none-any.whl → 0.7.0__py3-none-any.whl

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.
kalong/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
1
  """A new take on debugging"""
2
2
 
3
- __version__ = "0.5.7"
3
+ __version__ = "0.7.0"
4
4
  import os
5
5
  import sys
6
6
  from pathlib import Path
kalong/communication.py CHANGED
@@ -137,7 +137,7 @@ async def handle_message(ws, data, frame, event, arg):
137
137
  "type": "SET_ANSWER",
138
138
  "key": data["key"],
139
139
  "command": data.get("command"),
140
- **serialize_inspect(data["id"]),
140
+ **serialize_inspect(data["id"], frame),
141
141
  }
142
142
 
143
143
  elif data["type"] == "REQUEST_SUGGESTION":
kalong/debugger.py CHANGED
@@ -24,7 +24,7 @@ from jedi import Interpreter
24
24
  from .errors import SetFrameError
25
25
  from .utils import cutter_mock, dedent, discompile, universal_travel
26
26
  from .utils.io import capture_display, capture_exception, capture_std
27
- from .utils.iterators import force_iterable, iter_cause, iter_stack
27
+ from .utils.iterators import force_iterable, iter_cause, iter_frame, iter_stack
28
28
  from .utils.obj import (
29
29
  get_code,
30
30
  get_infos,
@@ -265,10 +265,10 @@ def serialize_inspect_eval(prompt, frame):
265
265
  "prompt": prompt,
266
266
  "answer": [serialize_exception(*sys.exc_info())],
267
267
  }
268
- return serialize_inspect(key)
268
+ return serialize_inspect(key, frame)
269
269
 
270
270
 
271
- def serialize_inspect(key):
271
+ def serialize_inspect(key, frame):
272
272
  obj = obj_cache.get(key)
273
273
  attributes = [
274
274
  {"key": key, "value": value, "id": obj_cache.register(value)}
@@ -317,8 +317,17 @@ def serialize_inspect(key):
317
317
  "source": source,
318
318
  }
319
319
  ]
320
+ for frame_ in iter_frame(frame):
321
+ if obj in frame_.f_locals.values():
322
+ break
323
+ else:
324
+ frame_ = None
320
325
 
321
- return {"prompt": safe_repr(obj, "<unrepresentable>"), "answer": answer}
326
+ return {
327
+ "prompt": safe_repr(obj, "<unrepresentable>"),
328
+ "answer": answer,
329
+ "frame": id(frame_),
330
+ }
322
331
 
323
332
 
324
333
  def serialize_diff_eval(prompt, frame):