feat(py) Add *args and **kwargs support (#71)

This commit is contained in:
danymat
2022-02-22 21:08:38 +01:00
parent 2936644b9d
commit 3ac1e14138
5 changed files with 29 additions and 2 deletions

View File

@@ -30,7 +30,6 @@ return {
node_type = "parameters",
subtree = {
{ retrieve = "all", node_type = "identifier", extract = true },
{
retrieve = "all",
node_type = "default_parameter",
@@ -48,6 +47,18 @@ return {
extract = true,
subtree = { { retrieve = "all", node_type = "identifier", extract = true } },
},
{
retrieve = "first",
node_type = "list_splat_pattern",
extract = true,
as = i.ArbitraryArgs,
},
{
retrieve = "first",
node_type = "dictionary_splat_pattern",
extract = true,
as = i.ArbitraryArgs,
},
},
},
{
@@ -120,6 +131,8 @@ return {
results[i.HasReturn] = (res.return_statement or res.anonymous_return or res[i.ReturnTypeHint])
and { true }
or nil
results[i.ArbitraryArgs] = res[i.ArbitraryArgs]
results[i.Kwargs] = res[i.Kwargs]
return results
end,
},

View File

@@ -15,6 +15,8 @@ return {
{ i.HasParameter, "Args:", { type = { "func" } } },
{ i.Parameter, " %s ($1): $1", { type = { "func" } } },
{ { i.Parameter, i.Type }, " %s (%s): $1", { required = "typed_parameters", type = { "func" } } },
{ i.ArbitraryArgs, " %s: $1", { type = { "func" } } },
{ i.Kwargs, " %s: $1", { type = { "func" } } },
{ i.ClassAttribute, " %s: $1", { before_first_item = { "", "Attributes: " } } },
{ i.HasReturn, "", { type = { "func" } } },
{ i.HasReturn, "Returns:", { type = { "func" } } },

View File

@@ -24,6 +24,16 @@ return {
"%s : %s",
{ after_each = " $1", required = "typed_parameters", type = { "func" } },
},
{
i.ArbitraryArgs,
"%s",
{ after_each = " $1", type = { "func" } },
},
{
i.Kwargs,
"%s",
{ after_each = " $1", type = { "func" } },
},
{ i.ClassAttribute, "%s : $1", { before_first_item = { "", "Attributes", "----------" } } },
{ i.HasReturn, "", { type = { "func" } } },
{ i.HasReturn, "Returns", { type = { "func" } } },

View File

@@ -18,6 +18,8 @@ template.item = {
ClassAttribute = "attributes",
HasParameter = "has_parameters",
HasReturn = "has_return",
ArbitraryArgs = "arbitrary_args",
Kwargs = "kwargs",
}
return template

View File

@@ -1 +1 @@
print(require('neogen').version)
print(require("neogen").version)