Skip to content

How does it generate the python source from AST? #5

Description

@alexpantyukhin

Question mostly. How does it generate the python source from AST? Or it's not ready yet? Sorry, I can't find it.

Activity

  1. dbrattli commented on Oct 19, 2021

    @dbrattli
    Collaborator

    Try unparse:

    open Fable.Python.Ast
    ast.unparse(ast.parse("42"))
  2. alexpantyukhin commented on Oct 21, 2021

    @alexpantyukhin
    ContributorAuthor

    maybe this is out of scope of the current question, but I have the suggestion about getting base python typeshed. What if parse Python pyi into some json with some python tool (need to check if pytypo can do this). Then generate a F# AST basing on it.

  3. dbrattli commented on Oct 22, 2021

    @dbrattli
    Collaborator

    Yes, the idea I had was to parse the .pyi using ast.parse and then convert to Python AST since it's already using unions and records. That would then be easier to translate to e.g F# AST.

  4. alexpantyukhin commented on Oct 27, 2021

    @alexpantyukhin
    ContributorAuthor

    Correct me if wrong,pyi files contains sometimes conditions, evaluations. How much deep asp.parse should sniff? There are many modules functions like html.escape. But it also contains classes with if's depends on python version for example.

  5. dbrattli commented on Oct 27, 2021

    @dbrattli
    Collaborator

    Yes, we would need to create a mini Python to F# transpiler handling if statements as needed. The idea is not to generate perfect code, but something that can be manually edited and fixed before making a PR.

  6. alexpantyukhin commented on Oct 29, 2021

    @alexpantyukhin
    ContributorAuthor

    I have played a little bit with parsing definitions of function.
    Tests with demo: https://github.com/alexpantyukhin/PythonParser/blob/master/PythonParser.Test/ParserTests.fs
    Source: https://github.com/alexpantyukhin/PythonParser/blob/master/PythonParser/Parser.fs

    It looks ugly for now (i'm newbie in F# yet). But It could the start for making some helptool for generating files based on pyi's. @dbrattli could you pleasecheck it out?

  7. dbrattli commented on Oct 30, 2021

    @dbrattli
    Collaborator

    Very nice that you want to try and build a Python type-hint parser. I would probably use the Ast-module myself, but I currently have more than enough with the Fable2Python parser. If you could make it work, then it would be really great!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions