Code Monkey home page Code Monkey logo

Comments (37)

skewballfox avatar skewballfox commented on April 28, 2024 3

This will be a lot easier to implement now that we have more than a few people wanting to work on this. Here's a gist containing the incomplete python implementation of the supported data types, splitting this into multiple files and turning this into a library should be easy enough.

As I understand the code(I could be wrong), we still need to call this from a typescript file that implements the PyEvaluationEngine, so that it can pass the output of this program to the visualizer. for reference this is the evaluation engine for javascript.

if my understanding of the code is correct, That should be the only necessary typescript component.

from vscode-debug-visualizer.

hediet avatar hediet commented on April 28, 2024 2

Hey all! Did you manage to work on some of the steps I suggested? ;)
@skewballfox already opened a PR in #81 (huge thanks for this!). I'm no python expert, it would be awesome if some of you could have a look at it ;)

from vscode-debug-visualizer.

hediet avatar hediet commented on April 28, 2024 1

Not necessarily!

from vscode-debug-visualizer.

hediet avatar hediet commented on April 28, 2024 1

@Shivamshaiv @isoletslicer @mvoitko @abhishek-ch Awesome that you are all interested in contributing 🎉
I'm looking forward to great python support 👍
What do you think of my plan?
I think we can collect these value-visualization tuples independently. And then merge and discuss them. Maybe we can already start with the second step, even though we probably may need to change the code later.

from vscode-debug-visualizer.

hediet avatar hediet commented on April 28, 2024 1

@GrantorShadow awesome! I posted a list of steps further up ;)

from vscode-debug-visualizer.

udaypb avatar udaypb commented on April 28, 2024 1

@GrantorShadow Hey , got to see the comment thread today, I have medium to good hands on experience with Python and I would like to contribute!!
Saw the steps you outlined, would love to hear back from you.

from vscode-debug-visualizer.

skewballfox avatar skewballfox commented on April 28, 2024 1

Hey I figured I would post an update here. I talked to @hediet a few days ago about how the library needs to interact with the existing extension.

If I understood the requirements we need some way to make the library available to the python debugger. He was suggesting code injection.

@GrantorShadow @mvoitko @Shivamshaiv @abhishek-ch @Rdroshan
if any of you have experience with code injection, or have some vscode specific insight that would make the library available without injection, I could definitely use the help.

from vscode-debug-visualizer.

skewballfox avatar skewballfox commented on April 28, 2024 1

if anyone wants to tackle the code injection just do a pull request on my branch, it should be just python. we add the necessary typescript components after we have something that can make the classes/functions available to the python debug session(the attached debuggee)

from vscode-debug-visualizer.

hediet avatar hediet commented on April 28, 2024

Hey thanks so much for your interest! Super cool that you want to add support for Python - that's a language I barely know and already wanted to add.

If you like, we can schedule a meeting to discuss how we can add Python! What do you think?

from vscode-debug-visualizer.

hediet avatar hediet commented on April 28, 2024

I saw that data extractors are necessary to convert the data to a serialized json format.

Yes.

Are those visualizers supposed to be in that given language or in javascript?

They are supposed to be in the given language or in whatever additional language the debugger offers.

Also, I want to get familiar with the project structure. What would you consider the entry point to be? how does the flow of execution generally look?

Key component is the EvaluationEngine and Evaluator interface and their implementors.
Probably a PythonEvaluationEngine will be required.

The most difficult thing for Python would be:

  • Identify which data structures Python offers and what visualizations would suit them best (and which additional visualizations might be cool)
  • Think of something how the debugger can inject common data extractors into the python runtime so that the user does not need to install libraries
  • Think of something how users can implement their own data extractors (if they want to implement an adapter that can extract json for their own data structures)

from vscode-debug-visualizer.

skewballfox avatar skewballfox commented on April 28, 2024

If you like, we can schedule a meeting to discuss how we can add Python! What do you think?

Yeah, that sounds great. When would work for you?

They are supposed to be in the given language or in whatever additional language the debugger offers.

I'm guessing that should be found somewhere in the python debugger used by vscode?

Key component is the EvaluationEngine and Evaluator interface and their implementors.
Probably a PythonEvaluationEngine will be required

PythonEvaluationEngine have to be interfacing with the existing debug session right?

sorry if these questions are kinda basic.

from vscode-debug-visualizer.

hediet avatar hediet commented on April 28, 2024

When would work for you?

In the next few days I'm very flexible. What about tomorrow 10am CET here on jitsi?

from vscode-debug-visualizer.

hediet avatar hediet commented on April 28, 2024

PythonEvaluationEngine have to be interfacing with the existing debug session right?

Kind of, but this is pretty easy - I can help you with all that stuff.

from vscode-debug-visualizer.

skewballfox avatar skewballfox commented on April 28, 2024

probably later in the day, I'm in CST which puts that around 3am

from vscode-debug-visualizer.

hediet avatar hediet commented on April 28, 2024

What about this time range: https://www.worldtimebuddy.com/?qm=1&lid=2892794,6&h=2892794&date=2020-7-21&sln=18-23.5

from vscode-debug-visualizer.

skewballfox avatar skewballfox commented on April 28, 2024

yeah, any time in the block would be great

from vscode-debug-visualizer.

hediet avatar hediet commented on April 28, 2024

So 6pm CET then on jitsi (just click this link)? Happy to meet you and to discuss the Python support! I think Python programmers are used to visual tools and might really like this extension.

from vscode-debug-visualizer.

skewballfox avatar skewballfox commented on April 28, 2024

6pm CET sounds great

yeah, I've been prepping for technical interviews and doing a lot of algorithm problems so this is definitely going to come in handy.

from vscode-debug-visualizer.

hediet avatar hediet commented on April 28, 2024

yeah, I've been prepping for technical interviews and doing a lot of algorithm problems so this is definitely going to come in handy.

No worries, I'm a CS student too and you probably won't need complex algorithms for this project ;)

from vscode-debug-visualizer.

abhishek-ch avatar abhishek-ch commented on April 28, 2024

May I know what is the status for this ?

from vscode-debug-visualizer.

hediet avatar hediet commented on April 28, 2024

There still is work to do ;) If you would like to help, please reach out!

from vscode-debug-visualizer.

abhishek-ch avatar abhishek-ch commented on April 28, 2024

love to , does the fix needs programming in TS/JS or ...

from vscode-debug-visualizer.

mvoitko avatar mvoitko commented on April 28, 2024

I would like to help

from vscode-debug-visualizer.

skewballfox avatar skewballfox commented on April 28, 2024

It needs a bit of both TS and Python. I wrote part of the necessary python code, but didn't make it too far with the necessary TS code

from vscode-debug-visualizer.

hediet avatar hediet commented on April 28, 2024

That is awesome!

  1. I think the first step would be to document which python values should be visualized and how they should be visualized. For now, the "how" should be one of the existing visualizations. All those existing visualizations can be described with JSON, so the goal would be to collect (python value, JSON document) tuples.

  2. Then, we can think of python functions that build such JSON documents from such a python value. For the debug visualizer, such a function is called "Data Extractor". These python functions also need to decide whether they can extract a JSON document for a given value and how good the extracted visualization data is in terms of a numerical priority. Each such data extractor should have a unique id.

  3. Given a list of those data extractors, an optional preferred data extractor id and some value, we need some logic to return the best visualization data for that value, considering the preferred data extractor id. Also, all applicable data extractors should be reported (so that the user can select one of them, this is already implemented).

  4. Now we need a way to make this data extraction library available to all python scripts. In case of javascript, the debug visualizer extension just evals the library into the debuggee.

Users should be able to easily define their own data extractors.

from vscode-debug-visualizer.

bhavintandel avatar bhavintandel commented on April 28, 2024

I think if python support is added to this project, it will huge benefit to lot of people.
Just out of curiosity, as python is known for its dynamic typing, how will we tackle that while creating the visuals?

from vscode-debug-visualizer.

hediet avatar hediet commented on April 28, 2024

@bhavintandel I don't know, I have close to zero experience with python. I guess there is some kind of instanceof check too. Everything else has to test structural matching.

from vscode-debug-visualizer.

Shivamshaiv avatar Shivamshaiv commented on April 28, 2024

I think I have the skillset and am willing to take up responsibility of the Python side of the project. But will need a lot of support from others. As I have severe time constraints.

from vscode-debug-visualizer.

isoletslicer avatar isoletslicer commented on April 28, 2024

Hey, I'd like to help too, have a medium skillset of python here. I wanna do some side projects while in free time at college/work/research. Still, at my work, i use Python tho.

from vscode-debug-visualizer.

abhishek-ch avatar abhishek-ch commented on April 28, 2024

Many more are interested in adding support for #python , this is amazing

from vscode-debug-visualizer.

Rdroshan avatar Rdroshan commented on April 28, 2024

I find this project interesting. Can I also be a part of the python support for this project?
Want to take it as a side project and learn a lot of new things.

from vscode-debug-visualizer.

hediet avatar hediet commented on April 28, 2024

@Rdroshan Of course! ;) Please have a look at the steps that I outlined above :)
I suggest to start with the (python-value; visualization-data) tuples as gist file!

from vscode-debug-visualizer.

GrantorShadow avatar GrantorShadow commented on April 28, 2024

Hey everyone, I've been working with python for quite a while now. Would love to contribute here, how do I get started?

from vscode-debug-visualizer.

human02 avatar human02 commented on April 28, 2024

Hi,

Even I would like to contribute to python implementation. This is a really cool project. I checked the 4 steps that you mentioned above. It's my first open source contribution, some guidance apart from the aforementioned steps will be really helpful.

Thank you and hope to hear back from you soon!
TC.

from vscode-debug-visualizer.

mvoitko avatar mvoitko commented on April 28, 2024

@hediet I have already left some comments

from vscode-debug-visualizer.

skewballfox avatar skewballfox commented on April 28, 2024

if you guys want to contribute to the python implementation but don't want to merge the python implementation into the existing plugin until completed, you could do pull request on my branch

from vscode-debug-visualizer.

human02 avatar human02 commented on April 28, 2024

from vscode-debug-visualizer.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.