Spack python 3.12: PEP 695 unparse support (#40155)
This commit is contained in:
parent
e60bbd1bfc
commit
32f21f2a01
@ -380,6 +380,10 @@ def visit_ClassDef(self, node):
|
|||||||
self.fill("@")
|
self.fill("@")
|
||||||
self.dispatch(deco)
|
self.dispatch(deco)
|
||||||
self.fill("class " + node.name)
|
self.fill("class " + node.name)
|
||||||
|
if getattr(node, "type_params", False):
|
||||||
|
self.write("[")
|
||||||
|
interleave(lambda: self.write(", "), self.dispatch, node.type_params)
|
||||||
|
self.write("]")
|
||||||
with self.delimit_if("(", ")", condition=node.bases or node.keywords):
|
with self.delimit_if("(", ")", condition=node.bases or node.keywords):
|
||||||
comma = False
|
comma = False
|
||||||
for e in node.bases:
|
for e in node.bases:
|
||||||
@ -425,6 +429,10 @@ def __FunctionDef_helper(self, node, fill_suffix):
|
|||||||
self.dispatch(deco)
|
self.dispatch(deco)
|
||||||
def_str = fill_suffix + " " + node.name
|
def_str = fill_suffix + " " + node.name
|
||||||
self.fill(def_str)
|
self.fill(def_str)
|
||||||
|
if getattr(node, "type_params", False):
|
||||||
|
self.write("[")
|
||||||
|
interleave(lambda: self.write(", "), self.dispatch, node.type_params)
|
||||||
|
self.write("]")
|
||||||
with self.delimit("(", ")"):
|
with self.delimit("(", ")"):
|
||||||
self.dispatch(node.args)
|
self.dispatch(node.args)
|
||||||
if getattr(node, "returns", False):
|
if getattr(node, "returns", False):
|
||||||
@ -1138,3 +1146,23 @@ def visit_MatchOr(self, node):
|
|||||||
with self.require_parens(_Precedence.BOR, node):
|
with self.require_parens(_Precedence.BOR, node):
|
||||||
self.set_precedence(pnext(_Precedence.BOR), *node.patterns)
|
self.set_precedence(pnext(_Precedence.BOR), *node.patterns)
|
||||||
interleave(lambda: self.write(" | "), self.dispatch, node.patterns)
|
interleave(lambda: self.write(" | "), self.dispatch, node.patterns)
|
||||||
|
|
||||||
|
def visit_TypeAlias(self, node):
|
||||||
|
self.fill("type ")
|
||||||
|
self.dispatch(node.name)
|
||||||
|
self.write(" = ")
|
||||||
|
self.dispatch(node.value)
|
||||||
|
|
||||||
|
def visit_TypeVar(self, node):
|
||||||
|
self.write(node.name)
|
||||||
|
if node.bound:
|
||||||
|
self.write(": ")
|
||||||
|
self.dispatch(node.bound)
|
||||||
|
|
||||||
|
def visit_TypeVarTuple(self, node):
|
||||||
|
self.write("*")
|
||||||
|
self.write(node.name)
|
||||||
|
|
||||||
|
def visit_ParamSpec(self, node):
|
||||||
|
self.write("**")
|
||||||
|
self.write(node.name)
|
||||||
|
Loading…
Reference in New Issue
Block a user