(module (expression_statement (string (string_start) (string_content) (string_end))) (import_from_statement module_name: (relative_import (import_prefix) (dotted_name (identifier))) name: (dotted_name (identifier)) name: (dotted_name (identifier))) (decorated_definition (decorator (identifier)) definition: (function_definition name: (identifier) parameters: (parameters (identifier) (identifier) (default_parameter name: (identifier) value: (false)) (default_parameter name: (identifier) value: (integer)) (default_parameter name: (identifier) value: (true)) (default_parameter name: (identifier) value: (string (string_start) (string_content) (string_end))) (default_parameter name: (identifier) value: (string (string_start) (string_content) (string_end))) (default_parameter name: (identifier) value: (integer))) body: (block (expression_statement (string (string_start) (string_content) (string_end))) (if_statement condition: (identifier) consequence: (block (expression_statement (assignment left: (identifier) right: (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (call function: (identifier) arguments: (argument_list (attribute object: (identifier) attribute: (identifier)))) (keyword_argument name: (identifier) value: (attribute object: (identifier) attribute: (identifier))))))) (expression_statement (assignment left: (identifier) right: (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (call function: (identifier) arguments: (argument_list (attribute object: (identifier) attribute: (identifier)))) (keyword_argument name: (identifier) value: (attribute object: (identifier) attribute: (identifier))))))) (if_statement condition: (identifier) (comment) consequence: (block (if_statement condition: (not_operator argument: (parenthesized_expression (binary_operator left: (identifier) right: (integer)))) consequence: (block (raise_statement (identifier)))) (expression_statement (assignment left: (identifier) right: (binary_operator left: (identifier) right: (integer)))) (expression_statement (assignment left: (subscript value: (identifier) subscript: (identifier)) right: (identifier))) (expression_statement (assignment left: (subscript value: (identifier) subscript: (identifier)) right: (identifier)))) alternative: (else_clause body: (block (expression_statement (assignment left: (subscript value: (identifier) subscript: (identifier)) right: (binary_operator left: (identifier) right: (integer))))))) (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (call function: (identifier) arguments: (argument_list (call function: (identifier) arguments: (argument_list (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (identifier))))) (call function: (identifier) arguments: (argument_list (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (identifier))))))))))) (expression_statement (assignment left: (identifier) right: (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (identifier) (identifier) (keyword_argument name: (identifier) value: (identifier)) (keyword_argument name: (identifier) value: (identifier)))))))) (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (attribute object: (identifier) attribute: (identifier)))))) (expression_statement (assignment left: (subscript value: (identifier) subscript: (identifier)) right: (binary_operator left: (binary_operator left: (subscript value: (attribute object: (identifier) attribute: (identifier)) subscript: (identifier)) right: (identifier)) right: (integer)))) (expression_statement (assignment left: (identifier) right: (binary_operator left: (call function: (identifier) arguments: (argument_list (identifier))) right: (tuple (identifier))))) (expression_statement (assignment left: (identifier) right: (binary_operator left: (attribute object: (identifier) attribute: (identifier)) right: (tuple (subscript value: (attribute object: (identifier) attribute: (identifier)) subscript: (identifier)))))) (expression_statement (assignment left: (identifier) right: (binary_operator left: (binary_operator left: (binary_operator left: (list (call function: (identifier) arguments: (argument_list (none)))) right: (parenthesized_expression (identifier))) right: (list (call function: (identifier) arguments: (argument_list (integer) (subscript value: (identifier) subscript: (identifier)) (identifier))))) right: (binary_operator left: (list (call function: (identifier) arguments: (argument_list (none)))) right: (parenthesized_expression (binary_operator left: (binary_operator left: (attribute object: (identifier) attribute: (identifier)) right: (identifier)) right: (integer))))))) (return_statement (subscript value: (call function: (attribute object: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list (identifier) (keyword_argument name: (identifier) value: (identifier)) (keyword_argument name: (identifier) value: (identifier)))) subscript: (call function: (identifier) arguments: (argument_list (identifier)))))))) (function_definition name: (identifier) parameters: (parameters (identifier)) body: (block (expression_statement (string (string_start) (string_content) (string_end))) (if_statement condition: (comparison_operator (attribute object: (identifier) attribute: (identifier)) (integer)) consequence: (block (return_statement (identifier)))) (expression_statement (assignment left: (identifier) right: (subscript value: (identifier) subscript: (call function: (identifier) arguments: (generator_expression body: (parenthesized_expression (conditional_expression (call function: (identifier) arguments: (argument_list (integer) (integer))) (comparison_operator (identifier) (integer)) (call function: (identifier) arguments: (argument_list (none))))) (for_in_clause left: (identifier) right: (attribute object: (identifier) attribute: (identifier)))))))) (comment) (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (generator_expression body: (identifier) (for_in_clause left: (tuple_pattern (identifier) (identifier)) right: (call function: (identifier) arguments: (argument_list (attribute object: (identifier) attribute: (identifier))))) (if_clause (comparison_operator (identifier) (integer)))) (attribute object: (identifier) attribute: (identifier)))))) (return_statement (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (subscript value: (attribute object: (identifier) attribute: (identifier)) subscript: (slice (identifier)))))))))