bblfsh/python-client

SupportedLanguages protocol V2 \w aliases

bzz opened this issue · 6 comments

bzz commented

Alias support was added to the SupportedLanguages request in Go client at bblfsh/go-client#122

It would make sense to expos it in the python client as well, esp given that there seems to be a user demand for it https://github.com/src-d/tm-experiments/pull/9/files#r299316435

Since we are slowly reaching an end of v1 support, I propose to only support v2 protocol in Python client. Thus, we won't need the same version check as in the Go client to implement this feature.

Since we are slowly reaching an end of v1 support, I propose to only support v2 protocol in Python client. Thus, we won't need the same version check as in the Go client to implement this feature.

This makes sense to me—unless there's a clear blocker, let's plan on that.

m09 commented

Friendly ping to document that we are still running into this issue: most recently for the preparation of the workshop we'll do in one week:

from bblfsh import BblfshClient

client = BblfshClient("devfest_bblfshd:9432")
client.supported_languages()

results in

[name: "Python"
language: "python"
version: "v2.10.1"
status: "beta"
features: "ast"
features: "uast"
features: "roles"
, name: "C++"
language: "cpp"
version: "v1.5.0"
status: "beta"
features: "ast"
features: "uast"
features: "roles"
, name: "Java"
language: "java"
version: "v2.7.4"
status: "beta"
features: "ast"
features: "uast"
features: "roles"
, name: "JavaScript"
language: "javascript"
version: "v2.10.0"
status: "beta"
features: "ast"
features: "uast"
features: "roles"
, name: "Bash"
language: "bash"
version: "v2.7.1"
status: "beta"
features: "ast"
features: "uast"
features: "roles"
, name: "Ruby"
language: "ruby"
version: "v2.9.5"
status: "beta"
features: "ast"
features: "uast"
features: "roles"
, name: "Go"
language: "go"
version: "v2.7.1"
status: "beta"
features: "ast"
features: "uast"
features: "roles"
, name: "C#"
language: "csharp"
version: "v1.7.0"
status: "beta"
features: "ast"
features: "uast"
features: "roles"
, name: "PHP"
language: "php"
version: "v2.8.1"
status: "beta"
features: "ast"
features: "uast"
features: "roles"
]

(indeed https://github.com/bblfsh/python-client/blob/master/bblfsh/client.py#L87 is still using v1)

We still maintain the list separately:

SUPPORTED_LANGUAGES = [
    "C#",
    "C++",
    "C",
    "Cuda",
    "OpenCL",
    "Metal",
    "Bash",
    "Shell",
    "Go",
    "Java",
    "JavaScript",
    "JS",
    "JSX",
    "PHP",
    "Python",
    "Ruby",
    "TypeScript",
]

@m09 - it has not been merged, yet (it's still on branch https://github.com/bblfsh/python-client/tree/v4), as far as I remember.
This branch uses only v2, so we are waiting for ML team to switch to v2, so we can merge it into the master.

m09 commented

Thanks for clarifying 🙇‍♂️

The PR is here: #196
It basically extends current API by two new methods (for v2, v1 has not been changed).