Esempio n. 1
0
def mixin_oop(oop_list: List[CompoundOOPData]):
    for data in each_oop_data_from_list_by_name(oop_list, ListType.SHARED,
                                                'getColShapeSize'):
        data.method.signature.return_types.return_types = [
            FunctionType(is_optional=False,
                         names=[
                             'number',
                             'Vector2',
                             'Vector3',
                         ])
        ]

    for data in each_oop_data_from_list_by_name(oop_list, ListType.SHARED,
                                                'setColShapeSize'):
        data.method.signature.arguments.arguments = [[
            FunctionArgument(default_value=None,
                             argument_type=FunctionType(is_optional=False,
                                                        names=[
                                                            'number',
                                                            'Vector2',
                                                            'Vector3',
                                                        ]),
                             name='vectorized')
        ]]

    for data in each_oop_data_from_list_by_name(oop_list, ListType.SHARED,
                                                'getElementBoundingBox'):
        data.method.signature.return_types.return_types = [
            FunctionType(is_optional=False, names=[
                'Vector3',
            ]),
            FunctionType(is_optional=False, names=[
                'Vector3',
            ])
        ]

    for data in each_oop_data_from_list_by_name(oop_list, ListType.SHARED,
                                                'setElementBoundingBox'):
        data.method.signature.arguments.arguments = [
            [
                FunctionArgument(default_value=None,
                                 argument_type=FunctionType(is_optional=False,
                                                            names=[
                                                                'Vector3',
                                                            ]),
                                 name='vectorized')
            ],
        ]
 def vectorize_method_args(method: FunctionData,
                           how: VectorizableType) -> None:
     method.signature.arguments.arguments = [[
         FunctionArgument(
             name='vectorized',
             argument_type=FunctionType(
                 names=[how.value],
                 is_optional=False,
             ),
             default_value=None,
         )
     ], *method.signature.arguments.arguments[6 if how == VectorizableType.
                                              Matrix else 3:]]
def test_function_generate_arg_text():
    arg = [
        FunctionArgument(
            name='z',
            argument_type=FunctionType(
                names=['float'],
                is_optional=True,
            ),
            default_value=None,
        ),
        FunctionArgument(
            name='z_1',
            argument_type=FunctionType(
                names=['string'],
                is_optional=False,
            ),
            default_value='aasdasd',
        ),
    ]
    expected = 'z?: float | string'
    result = TypeScriptFunctionGenerator.function_arg_text(arg)

    assert result == expected
    def generate_file_content(data_list: List[List[EventData]],
                              side: str) -> str:
        result = (
            FilterEventSaveDeclarations.FILE_STARTER +
            FilterFunctionSave.generate_imports(
                FilterEventSaveDeclarations.imports[side], '../structure'))

        # TODO: split declaration generator and file
        #   composer into separated filter classes
        data_list = sorted(data_list, key=lambda x: x[0].name)

        for data_list in data_list:
            data = data_list[0]
            name = FilterEventSaveNames.normalize_enum_variable_name(data.name)
            arguments = deepcopy(data.arguments)

            # Add this:void argument
            arguments.arguments.insert(
                0,
                [
                    FunctionArgument(
                        name='this',
                        argument_type=FunctionType(
                            names=['void'],
                            is_optional=False,
                        ),
                        default_value=None,
                    )
                ],
            )

            function_type = TypeScriptFunctionGenerator.generate_arguments(
                arguments)
            function_type = function_type.replace('\n    ', '\n        ')

            result += f'''
export interface {name} extends GenericEventHandler {{
    name: EventNames.{name};
    function: (
        {function_type}
    ) => void;
}}
'''

        return result
def test_function_generate_arguments_last_varargs_cut(
        function_generator_fixture: TypeScriptFunctionGenerator):
    function_generator_fixture.data.signature.arguments.arguments.append([
        FunctionArgument(
            name='arguments',
            argument_type=FunctionType(names=['var'], is_optional=True),
            default_value=None,
        )
    ])
    expected = '''x: float,
    y: float,
    z: float | string,
    citiesonly?: bool,
    ...varargs: any[]'''
    result = function_generator_fixture.generate_arguments(
        function_generator_fixture.data.signature.arguments)

    assert result == expected
Esempio n. 6
0
 name='addAccount',
 return_types=FunctionReturnTypes(
     return_types=[
         FunctionType(
             names=['account'],
             is_optional=False,
         )
     ],
     variable_length=False,
 ),
 arguments=FunctionArgumentValues(
     arguments=[[
         FunctionArgument(
             name='name',
             argument_type=FunctionType(
                 names=['string'],
                 is_optional=False,
             ),
             default_value=None,
         )
     ],
                [
                    FunctionArgument(
                        name='pass',
                        argument_type=FunctionType(
                            names=['string'],
                            is_optional=False,
                        ),
                        default_value=None,
                    )
                ],
                [
     arguments={
         "text": """The text that was output to chatbox. """,
         "r": """The amount of red in the color of the text. """,
         "g": """The amount of green in the color of the text. """,
         "b": """The amount of blue in the color of the text. """,
         "messageType": """The type of message as a number. """
     },
     result='' ,
 ),
 arguments=FunctionArgumentValues(
         arguments=[
             [
                 FunctionArgument(
                     name='text',
                     argument_type=FunctionType(
                         names=['string'],
                         is_optional=False,
                     ),
                     default_value=None,
                 )
             ],
             [
                 FunctionArgument(
                     name='r',
                     argument_type=FunctionType(
                         names=['int'],
                         is_optional=False,
                     ),
                     default_value=None,
                 )
             ],
             [
     name='countPlayers',
     return_types=FunctionReturnTypes(
         return_types=[
             FunctionType(
                 names=['int'],
                 is_optional=False,
             )
         ],
         variable_length=False,
     ),
     arguments=FunctionArgumentValues(
         arguments=[[
             FunctionArgument(
                 name='theTeam',
                 argument_type=FunctionType(
                     names=['team'],
                     is_optional=False,
                 ),
                 default_value=None,
             )
         ]],
         variable_length=False,
     ),
     generic_types=[],
 ),
 docs=FunctionDoc(
     description=
     'This function is for returning the number of players in the specified team.',
     arguments={
         "theTeam":
         """The team you wish to retrieve the player count of. """
     },
     return_types=FunctionReturnTypes(
         return_types=[
             FunctionType(
                         names=['string'],
                         is_optional=False,
                     )
         ],
         variable_length=False,
     ),
     arguments=FunctionArgumentValues(
         arguments=[
             [
                 FunctionArgument(
                     name='bodyPartID',
                     argument_type=FunctionType(
                         names=['int'],
                         is_optional=False,
                     ),
                     default_value=None,
                 )
             ]
         ],
         variable_length=False,
     ),
     generic_types=[
         
     ],
 ),
 docs=FunctionDoc(
     description='This function is used to get the name of a body part on a player.' ,
     arguments={
         "bodyPartID": """: An integer representing the body part ID you wish to retrieve the name of. """
                 names=['int'],
                 is_optional=False,
             ),
             FunctionType(
                 names=['int'],
                 is_optional=False,
             )
         ],
         variable_length=False,
     ),
     arguments=FunctionArgumentValues(
         arguments=[[
             FunctionArgument(
                 name='theTimer',
                 argument_type=FunctionType(
                     names=['timer'],
                     is_optional=False,
                 ),
                 default_value=None,
             )
         ]],
         variable_length=False,
     ),
     generic_types=[],
 ),
 docs=FunctionDoc(
     description=
     'This function is for getting the details of a running timer.',
     arguments={"theTimer": """A timer element. """},
     result=
     '* integer one represents the time left in miliseconds (1000th of a second) of the current time left in the loop.\n* integer two represents the amount of times the timer has left to execute.\n* integer three represents the time interval of timer.\n* returns false if the timer doesnt exist or stopped running. also, debugscript will say bad argument @ gettimerdetails. to prevent this, you can check if the timer exists with istimer().',
 ),
def function_generator_fixture() -> TypeScriptFunctionGenerator:
    data = FunctionData(
        signature=FunctionSignature(
            name='getZoneName',
            return_types=FunctionReturnTypes(
                return_types=[
                    FunctionType(
                        names=['string', 'mixed'],
                        is_optional=True,
                    ),
                    FunctionType(
                        names=['int'],
                        is_optional=False,
                    ),
                ],
                variable_length=True,
            ),
            arguments=FunctionArgumentValues(
                arguments=[[
                    FunctionArgument(
                        name='x',
                        argument_type=FunctionType(
                            names=['float'],
                            is_optional=False,
                        ),
                        default_value=None,
                    )
                ],
                           [
                               FunctionArgument(
                                   name='y',
                                   argument_type=FunctionType(
                                       names=['float'],
                                       is_optional=False,
                                   ),
                                   default_value=None,
                               )
                           ],
                           [
                               FunctionArgument(
                                   name='z',
                                   argument_type=FunctionType(
                                       names=['float'],
                                       is_optional=False,
                                   ),
                                   default_value=None,
                               ),
                               FunctionArgument(
                                   name='z_1',
                                   argument_type=FunctionType(
                                       names=['string'],
                                       is_optional=False,
                                   ),
                                   default_value=None,
                               ),
                           ],
                           [
                               FunctionArgument(
                                   name='citiesonly',
                                   argument_type=FunctionType(
                                       names=['bool'],
                                       is_optional=True,
                                   ),
                                   default_value='false',
                               )
                           ]],
                variable_length=True,
            ),
        ),
        url='getZoneName',
        docs=FunctionDoc(
            description="This function allows you to retrieve "
            "the zone name of a certain location. ",
            arguments={
                "x":
                """The X axis position """,
                "y":
                """The Y axis position """,
                "z":
                """The Z axis position """,
                "citiesonly": (": An optional argument to choose if you want "
                               "to return one of the following city names:\n"
                               "** Tierra Robada\n"
                               "** Bone County\n"
                               "** Las Venturas\n"
                               "** San Fierro\n"
                               "** Red County\n"
                               "** Whetstone\n"
                               "** Flint County\n"
                               "** Los Santos ")
            },
            result="""returns the string of the zone name """,
        ),
    )
    url = PageUrl(
        url="/wiki/GetZoneName",
        name="getZoneName",
        category="World functions",
        type=ListType.SERVER,
    )

    return TypeScriptFunctionGenerator(data=data,
                                       url=url,
                                       host_name='https://example.com')
 name='onClientPickupHit',
 docs=FunctionDoc(
     description='This event triggers whenever a pickup is hit clientside.' ,
     arguments={
         "thePlayer": """the player that hit the pickup """,
         "matchingDimension": """true if thePlayer is in the same dimension as the pickup, false otherwise. """
     },
     result='' ,
 ),
 arguments=FunctionArgumentValues(
         arguments=[
             [
                 FunctionArgument(
                     name='thePlayer',
                     argument_type=FunctionType(
                         names=['player'],
                         is_optional=False,
                     ),
                     default_value=None,
                 )
             ],
             [
                 FunctionArgument(
                     name='matchingDimension',
                     argument_type=FunctionType(
                         names=['bool'],
                         is_optional=False,
                     ),
                     default_value=None,
                 )
             ]
         ],
 return_types=FunctionReturnTypes(
     return_types=[
         FunctionType(
                     names=['bool'],
                     is_optional=False,
                 )
     ],
     variable_length=False,
 ),
 arguments=FunctionArgumentValues(
     arguments=[
         [
             FunctionArgument(
                 name='shader',
                 argument_type=FunctionType(
                     names=['element'],
                     is_optional=False,
                 ),
                 default_value=None,
             )
         ],
         [
             FunctionArgument(
                 name='textureName',
                 argument_type=FunctionType(
                     names=['string'],
                     is_optional=False,
                 ),
                 default_value=None,
             )
         ],
         [
Esempio n. 14
0
     name='getCounter',
     return_types=FunctionReturnTypes(
         return_types=[
             FunctionType(
                 names=['int'],
                 is_optional=False,
             )
         ],
         variable_length=False,
     ),
     arguments=FunctionArgumentValues(
         arguments=[[
             FunctionArgument(
                 name='projectile',
                 argument_type=FunctionType(
                     names=['projectile'],
                     is_optional=False,
                 ),
                 default_value=None,
             )
         ]],
         variable_length=False,
     ),
     generic_types=[],
 ),
 docs=FunctionDoc(
     description=
     'Get the time left before a projectile detonates.',
     arguments={
         "projectile":
         """: the projectile to get the timer of. """
     },
                         is_optional=False,
                     ),
         FunctionType(
                         names=['float'],
                         is_optional=False,
                     )
         ],
         variable_length=False,
     ),
     arguments=FunctionArgumentValues(
         arguments=[
             [
                 FunctionArgument(
                     name='theSearchLight',
                     argument_type=FunctionType(
                         names=['searchlight'],
                         is_optional=False,
                     ),
                     default_value=None,
                 )
             ]
         ],
         variable_length=False,
     ),
     generic_types=[
         
     ],
 ),
 docs=FunctionDoc(
     description='This function gets the end position of a Element/Searchlight|searchlight element.' ,
     arguments={
         "theSearchLight": """: the searchlight to get the position where the searchlights light cone ends. """
Esempio n. 16
0
 name='getOriginalWeaponProperty',
 return_types=FunctionReturnTypes(
     return_types=[
         FunctionType(
             names=['int'],
             is_optional=False,
         )
     ],
     variable_length=False,
 ),
 arguments=FunctionArgumentValues(
     arguments=[[
         FunctionArgument(
             name='weaponID',
             argument_type=FunctionType(
                 names=['int'],
                 is_optional=False,
             ),
             default_value=None,
         ),
         FunctionArgument(
             name='weaponName',
             argument_type=FunctionType(
                 names=['string'],
                 is_optional=False,
             ),
             default_value=None,
         )
     ],
                [
                    FunctionArgument(
                        name='weaponSkill',
 name='getProperty',
 return_types=FunctionReturnTypes(
     return_types=[
         FunctionType(
             names=['int'],
             is_optional=False,
         )
     ],
     variable_length=False,
 ),
 arguments=FunctionArgumentValues(
     arguments=[[
         FunctionArgument(
             name='weaponID',
             argument_type=FunctionType(
                 names=['int'],
                 is_optional=False,
             ),
             default_value=None,
         ),
         FunctionArgument(
             name='weaponName',
             argument_type=FunctionType(
                 names=['string'],
                 is_optional=False,
             ),
             default_value=None,
         )
     ],
                [
                    FunctionArgument(
                        name='weaponSkill',
Esempio n. 18
0
                 names=['int'],
                 is_optional=False,
             ),
             FunctionType(
                 names=['int'],
                 is_optional=False,
             )
         ],
         variable_length=False,
     ),
     arguments=FunctionArgumentValues(
         arguments=[[
             FunctionArgument(
                 name='theLight',
                 argument_type=FunctionType(
                     names=['light'],
                     is_optional=False,
                 ),
                 default_value=None,
             )
         ]],
         variable_length=False,
     ),
     generic_types=[],
 ),
 docs=FunctionDoc(
     description=
     'This function returns the color for a Element/Light|light element.',
     arguments={
         "theLight":
         """The Element/Light|light that you wish to retrieve the color of. """
     },
Esempio n. 19
0
     description='' ,
     arguments={
         "fileResource": """Resource the file belongs to. """,
         "fileName": """Relative resource file path. """,
         "fileSize": """Size of the file in bytes. """,
         "state": """Possible values: <code>queued</code> or <code>finished</code> or <code>failed</code>. """
     },
     result='' ,
 ),
 arguments=FunctionArgumentValues(
         arguments=[
             [
                 FunctionArgument(
                     name='fileResource',
                     argument_type=FunctionType(
                         names=['resource'],
                         is_optional=False,
                     ),
                     default_value=None,
                 )
             ],
             [
                 FunctionArgument(
                     name='fileName',
                     argument_type=FunctionType(
                         names=['string'],
                         is_optional=False,
                     ),
                     default_value=None,
                 )
             ],
             [
     return_types=FunctionReturnTypes(
         return_types=[
             FunctionType(
                         names=['bool'],
                         is_optional=False,
                     )
         ],
         variable_length=False,
     ),
     arguments=FunctionArgumentValues(
         arguments=[
             [
                 FunctionArgument(
                     name='clearFor',
                     argument_type=FunctionType(
                         names=['element'],
                         is_optional=True,
                     ),
                     default_value='getRootElement()',
                 )
             ]
         ],
         variable_length=False,
     ),
     generic_types=[
         
     ],
 ),
 docs=FunctionDoc(
     description='' ,
     arguments={
         "clearFor": """The player whose chat is to be cleared. By default, this is set to the root element, which will affect all players. """
Esempio n. 21
0
 name='createExplosion',
 return_types=FunctionReturnTypes(
     return_types=[
         FunctionType(
             names=['bool'],
             is_optional=False,
         )
     ],
     variable_length=False,
 ),
 arguments=FunctionArgumentValues(
     arguments=[[
         FunctionArgument(
             name='x',
             argument_type=FunctionType(
                 names=['float'],
                 is_optional=False,
             ),
             default_value=None,
         )
     ],
                [
                    FunctionArgument(
                        name='y',
                        argument_type=FunctionType(
                            names=['float'],
                            is_optional=False,
                        ),
                        default_value=None,
                    )
                ],
                [
Esempio n. 22
0
             name='onClientCharacter',
             docs=FunctionDoc(
                 description=
                 'This event triggers whenever the user presses an alphanumeric character on their keyboard. This also includes special characters, ie.  / # %   { }.',
                 arguments={
                     "character":
                     """: a string representing the pressed character. """
                 },
                 result='',
             ),
             arguments=FunctionArgumentValues(
                 arguments=[[
                     FunctionArgument(
                         name='character',
                         argument_type=FunctionType(
                             names=['string'],
                             is_optional=False,
                         ),
                         default_value=None,
                     )
                 ]],
                 variable_length=False,
             ),
         )
     ],
 ),
 CompoundEventData(
     server=[],
     client=[
         EventData(
             name='onClientClick',
             docs=FunctionDoc(
 name='addBan',
 return_types=FunctionReturnTypes(
     return_types=[
         FunctionType(
             names=['ban'],
             is_optional=False,
         )
     ],
     variable_length=False,
 ),
 arguments=FunctionArgumentValues(
     arguments=[[
         FunctionArgument(
             name='IP',
             argument_type=FunctionType(
                 names=['string'],
                 is_optional=True,
             ),
             default_value=None,
         )
     ],
                [
                    FunctionArgument(
                        name='Username',
                        argument_type=FunctionType(
                            names=['string'],
                            is_optional=True,
                        ),
                        default_value=None,
                    )
                ],
                [
Esempio n. 24
0
     name='get',
     return_types=FunctionReturnTypes(
         return_types=[
             FunctionType(
                 names=['var'],
                 is_optional=False,
             )
         ],
         variable_length=False,
     ),
     arguments=FunctionArgumentValues(
         arguments=[[
             FunctionArgument(
                 name='settingName',
                 argument_type=FunctionType(
                     names=['string'],
                     is_optional=False,
                 ),
                 default_value=None,
             )
         ]],
         variable_length=False,
     ),
     generic_types=[],
 ),
 docs=FunctionDoc(
     description=
     'This function gets a settings value, or a group of settings values, from the settings system|settings registry.',
     arguments={},
     result=
     'returns the value of the setting if a single setting was specified and found, or a table (in associative-array form) containing:\n*the list of global setting name/value pairs if . is passed as a setting name,\n*the list of resource settings if a resource name followed by a . is passed,\n*the list of the scripts resource settings if an empty string is passed.\nit returns false if the specified setting or settings group doesnt exist, or if the settings group you are trying to retrieve doesnt have any public or protected settings.',
 ),
 name='loadMapData',
 return_types=FunctionReturnTypes(
     return_types=[
         FunctionType(
             names=['element'],
             is_optional=False,
         )
     ],
     variable_length=False,
 ),
 arguments=FunctionArgumentValues(
     arguments=[[
         FunctionArgument(
             name='node',
             argument_type=FunctionType(
                 names=['xmlnode'],
                 is_optional=False,
             ),
             default_value=None,
         )
     ],
                [
                    FunctionArgument(
                        name='parent',
                        argument_type=FunctionType(
                            names=['element'],
                            is_optional=False,
                        ),
                        default_value=None,
                    )
                ]],
     variable_length=False,
Esempio n. 26
0
     result='Returns a texture if successful, '
     'false if invalid arguments were passed to the function.'),
 signature=FunctionSignature(
     name='dxCreateTexture',
     return_types=FunctionReturnTypes(
         return_types=[
             FunctionType(is_optional=False, names=['DxTexture'])
         ],
         variable_length=False,
     ),
     arguments=FunctionArgumentValues(
         arguments=[
             [
                 FunctionArgument(
                     name='width',
                     argument_type=FunctionType(is_optional=False,
                                                names=['number']),
                     default_value=None,
                 )
             ],
             [
                 FunctionArgument(
                     name='height',
                     argument_type=FunctionType(is_optional=False,
                                                names=['number']),
                     default_value=None,
                 )
             ],
             [
                 FunctionArgument(
                     name='textureFormat',
                     argument_type=FunctionType(is_optional=True,
 return_types=FunctionReturnTypes(
     return_types=[
         FunctionType(
                     names=['bool'],
                     is_optional=False,
                 )
     ],
     variable_length=False,
 ),
 arguments=FunctionArgumentValues(
     arguments=[
         [
             FunctionArgument(
                 name='databaseConnection',
                 argument_type=FunctionType(
                     names=['element'],
                     is_optional=False,
                 ),
                 default_value=None,
             )
         ],
         [
             FunctionArgument(
                 name='query',
                 argument_type=FunctionType(
                     names=['string'],
                     is_optional=False,
                 ),
                 default_value=None,
             )
         ],
         [
     name='getRuleValue',
     return_types=FunctionReturnTypes(
         return_types=[
             FunctionType(
                 names=['string'],
                 is_optional=False,
             )
         ],
         variable_length=False,
     ),
     arguments=FunctionArgumentValues(
         arguments=[[
             FunctionArgument(
                 name='key',
                 argument_type=FunctionType(
                     names=['string'],
                     is_optional=False,
                 ),
                 default_value=None,
             )
         ]],
         variable_length=False,
     ),
     generic_types=[],
 ),
 docs=FunctionDoc(
     description=
     'This function gets a rule value. A rule value is a string that can be viewed by server browsers and used for filtering the server list.',
     arguments={"key": """The name of the rule """},
     result=
     'returns a string containing the value set for the specified key, false if invalid arguments were specified.',
 ),
    def get_argument(self,
                     index_from: int,
                     argument_context: Dict[str, Any]) -> \
            Tuple[List[FunctionArgument], int]:
        """
        Parse a single argument
        :param index_from: Index to start
        :param argument_context: Context
        :return: Parsed argument and index to continue
        """
        stop_token = {
            self.TokenType.ARGUMENT_END,
            self.TokenType.COMMA_SIGN,
        }

        result: List[FunctionArgument] = []
        partial_name: Optional[str] = None
        partial_type: Optional[FunctionType] = None
        partial_default = None
        append = False

        index = index_from
        while index < len(self.tokenized):
            token = self.tokenized[index]
            if token.type in stop_token and partial_name is not None:
                # Add on stop and only if there was a name
                result.append(FunctionArgument(name=partial_name,
                                               argument_type=partial_type,
                                               default_value=partial_default))
                break

            # Special tokens to update the context
            if token.type == self.TokenType.OPTIONAL_START:
                argument_context['optional_counter'] += 1

            elif token.type == self.TokenType.OPTIONAL_END:
                argument_context['optional_counter'] -= 1

            elif token.type == self.TokenType.VARARGS_SIGN:
                argument_context['is_variable_length'] = True

            elif token.type == self.TokenType.TYPE_UNION_SIGN:
                append = True

            elif token.type == self.TokenType.ARGUMENT_TYPE:
                if append:
                    if partial_name is None:
                        partial_type.names.append(token.value)

                        index += 1
                        continue
                    else:
                        result.append(FunctionArgument(
                            name=partial_name,
                            argument_type=partial_type,
                            default_value=partial_default)
                        )
                        partial_name = None
                        partial_default = None
                        append = False

                partial_type = FunctionType(
                    names=[token.value],
                    is_optional=argument_context['optional_counter'] > 0
                )

            elif token.type == self.TokenType.ARGUMENT_NAME:
                partial_name = token.value

            elif token.type == self.TokenType.DEFAULT_VALUE:
                partial_default = token.value

            index += 1

        return result, index
Esempio n. 30
0
 name='createFire',
 return_types=FunctionReturnTypes(
     return_types=[
         FunctionType(
             names=['bool'],
             is_optional=False,
         )
     ],
     variable_length=False,
 ),
 arguments=FunctionArgumentValues(
     arguments=[[
         FunctionArgument(
             name='x',
             argument_type=FunctionType(
                 names=['float'],
                 is_optional=False,
             ),
             default_value=None,
         )
     ],
                [
                    FunctionArgument(
                        name='y',
                        argument_type=FunctionType(
                            names=['float'],
                            is_optional=False,
                        ),
                        default_value=None,
                    )
                ],
                [