MCPcopy
hub / github.com/PyGithub/PyGithub / create_type

Method create_type

scripts/openapi.py:413–441  ·  view source on GitHub ↗
(
        cls, data_type: PythonType | GithubClass | None, short_class_name: bool = False
    )

Source from the content-addressed store, hash-verified

411
412 @classmethod
413 def create_type(
414 cls, data_type: PythonType | GithubClass | None, short_class_name: bool = False
415 ) -> cst.BaseExpression:
416 if data_type is None:
417 return cst.Name("None")
418 if isinstance(data_type, GithubClass):
419 if short_class_name:
420 return cst.Name(data_type.name.split(".")[-1])
421 return cls.create_attribute([data_type.package, data_type.module] + data_type.name.split("."))
422 if data_type.type == "union":
423 if len(data_type.inner_types) == 0:
424 return cst.Name("None")
425 if len(data_type.inner_types) == 1:
426 return cls.create_type(data_type.inner_types[0], short_class_name)
427 result = cst.BinaryOperation(
428 cls.create_type(data_type.inner_types[0], short_class_name),
429 cst.BitOr(),
430 cls.create_type(data_type.inner_types[1], short_class_name),
431 )
432 for dt in data_type.inner_types[2:]:
433 result = cst.BinaryOperation(result, cst.BitOr(), cls.create_type(dt, short_class_name))
434 return result
435 if data_type.inner_types:
436 elems = [
437 cst.SubscriptElement(cst.Index(cls.create_type(elem, short_class_name)))
438 for elem in data_type.inner_types
439 ]
440 return cst.Subscript(cst.Name(data_type.type), slice=elems)
441 return cst.Name(data_type.type)
442
443 @classmethod
444 def find_nodes(cls, node: cst.CSTNode, node_type: type[cst.CSTNode]) -> list[cst.CSTNode]:

Callers 4

create_init_attrMethod · 0.80
make_attributeMethod · 0.80
create_methodMethod · 0.80

Calls 1

create_attributeMethod · 0.80

Tested by

no test coverage detected