(module (expression_statement (string (string_start) (string_content) (string_end))) (import_from_statement module_name: (dotted_name (identifier)) name: (dotted_name (identifier)) name: (dotted_name (identifier)) name: (dotted_name (identifier)) name: (dotted_name (identifier))) (import_statement name: (dotted_name (identifier))) (import_statement name: (dotted_name (identifier))) (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (string (string_start) (string_content) (string_end)))))) (function_definition name: (identifier) parameters: (parameters (typed_parameter (identifier) type: (type (attribute object: (identifier) attribute: (identifier)))) (typed_parameter (identifier) type: (type (identifier)))) return_type: (type (generic_type (identifier) (type_parameter (type (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)))))) body: (block (expression_statement (string (string_start) (string_content) (string_end))) (for_statement left: (identifier) right: (attribute object: (identifier) attribute: (identifier)) body: (block (if_statement condition: (comparison_operator (attribute object: (identifier) attribute: (identifier)) (identifier)) consequence: (block (return_statement (identifier)))))) (for_statement left: (identifier) right: (attribute object: (identifier) attribute: (identifier)) body: (block (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (attribute object: (identifier) attribute: (identifier)) (identifier))))) (if_statement condition: (identifier) consequence: (block (return_statement (identifier)))))) (return_statement (none)))) (function_definition name: (identifier) parameters: (parameters (typed_parameter (identifier) type: (type (attribute object: (identifier) attribute: (identifier)))) (typed_parameter (identifier) type: (type (identifier)))) return_type: (type (generic_type (identifier) (type_parameter (type (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)))))) body: (block (expression_statement (string (string_start) (string_content) (string_end))) (if_statement condition: (comparison_operator (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) (identifier)) consequence: (block (return_statement (attribute object: (identifier) attribute: (identifier))))) (for_statement left: (identifier) right: (attribute object: (identifier) attribute: (identifier)) body: (block (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (attribute object: (identifier) attribute: (identifier)) (identifier))))) (if_statement condition: (identifier) consequence: (block (return_statement (identifier)))))) (return_statement (none)))) (function_definition name: (identifier) parameters: (parameters (typed_parameter (identifier) type: (type (attribute object: (identifier) attribute: (identifier)))) (typed_parameter (identifier) type: (type (generic_type (identifier) (type_parameter (type (generic_type (identifier) (type_parameter (type (ellipsis)) (type (identifier))))) (type (attribute object: (identifier) attribute: (identifier)))))))) return_type: (type (generic_type (identifier) (type_parameter (type (generic_type (identifier) (type_parameter (type (ellipsis)) (type (identifier))))) (type (attribute object: (identifier) attribute: (identifier)))))) body: (block (expression_statement (string (string_start) (string_content) (string_end))) (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (identifier) consequence: (block (expression_statement (assignment left: (identifier) right: (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list (identifier)))))) alternative: (else_clause body: (block (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (identifier) consequence: (block (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (identifier))) (expression_statement (assignment left: (identifier) right: (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list (identifier)))))))))) (return_statement (identifier)))) (function_definition name: (identifier) parameters: (parameters (typed_parameter (identifier) type: (type (attribute object: (identifier) attribute: (identifier)))) (typed_parameter (identifier) type: (type (generic_type (identifier) (type_parameter (type (ellipsis)) (type (identifier)))))) (list_splat_pattern (identifier)) (dictionary_splat_pattern (identifier))) return_type: (type (identifier)) body: (block (expression_statement (string (string_start) (string_content) (string_end))) (return_statement (call function: (attribute object: (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list)) attribute: (identifier)) arguments: (argument_list (call function: (identifier) arguments: (argument_list (identifier) (identifier))) (list_splat (identifier)) (dictionary_splat (identifier))))))) (function_definition name: (identifier) parameters: (parameters (typed_parameter (identifier) type: (type (attribute object: (identifier) attribute: (identifier)))) (typed_parameter (identifier) type: (type (generic_type (identifier) (type_parameter (type (ellipsis)) (type (identifier)))))) (list_splat_pattern (identifier)) (dictionary_splat_pattern (identifier))) return_type: (type (identifier)) body: (block (expression_statement (string (string_start) (string_content) (string_end))) (return_statement (call function: (attribute object: (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list)) attribute: (identifier)) arguments: (argument_list (call function: (identifier) arguments: (argument_list (identifier) (identifier))) (list_splat (identifier)) (dictionary_splat (identifier))))))))