(module (future_import_statement name: (dotted_name (identifier))) (import_from_statement module_name: (dotted_name (identifier)) name: (dotted_name (identifier))) (import_statement name: (aliased_import name: (dotted_name (identifier)) alias: (identifier))) (import_from_statement module_name: (dotted_name (identifier)) name: (dotted_name (identifier))) (import_statement name: (aliased_import name: (dotted_name (identifier)) alias: (identifier))) (import_statement name: (aliased_import name: (dotted_name (identifier)) alias: (identifier))) (import_from_statement module_name: (dotted_name (identifier)) name: (dotted_name (identifier))) (import_from_statement module_name: (dotted_name (identifier) (identifier)) name: (dotted_name (identifier))) (import_from_statement module_name: (dotted_name (identifier) (identifier)) name: (dotted_name (identifier)) name: (dotted_name (identifier))) (import_from_statement module_name: (dotted_name (identifier) (identifier)) name: (dotted_name (identifier))) (function_definition name: (identifier) parameters: (parameters (dictionary_splat_pattern (identifier))) body: (block (expression_statement (assignment left: (identifier) right: (string (string_start) (string_content (escape_sequence) (escape_sequence)) (string_end)))) (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (keyword_argument name: (identifier) value: (call function: (identifier) arguments: (argument_list (keyword_argument name: (identifier) value: (integer)) (keyword_argument name: (identifier) value: (integer)) (keyword_argument name: (identifier) value: (integer)) (keyword_argument name: (identifier) value: (integer))))) (keyword_argument name: (identifier) value: (call function: (identifier) arguments: (argument_list (keyword_argument name: (identifier) value: (string (string_start) (string_content) (string_end))) (keyword_argument name: (identifier) value: (string (string_start) (string_content) (string_end))) (keyword_argument name: (identifier) value: (true)) (keyword_argument name: (identifier) value: (string (string_start) (string_content) (string_end))) (keyword_argument name: (identifier) value: (list (float) (integer))) (keyword_argument name: (identifier) value: (call function: (identifier) arguments: (argument_list (keyword_argument name: (identifier) value: (identifier)) (keyword_argument name: (identifier) value: (integer))))) (keyword_argument name: (identifier) value: (integer)) (keyword_argument name: (identifier) value: (string (string_start) (string_content) (string_end))) (keyword_argument name: (identifier) value: (true))))) (keyword_argument name: (identifier) value: (call function: (identifier) arguments: (argument_list (keyword_argument name: (identifier) value: (true)) (keyword_argument name: (identifier) value: (false)) (keyword_argument name: (identifier) value: (string (string_start) (string_content) (string_end))) (keyword_argument name: (identifier) value: (list (float) (integer))) (keyword_argument name: (identifier) value: (call function: (identifier) arguments: (argument_list (keyword_argument name: (identifier) value: (identifier)) (keyword_argument name: (identifier) value: (integer))))) (keyword_argument name: (identifier) value: (integer)) (keyword_argument name: (identifier) value: (string (string_start) (string_content) (string_end))) (keyword_argument name: (identifier) value: (true))))) (keyword_argument name: (identifier) value: (call function: (identifier) arguments: (argument_list (keyword_argument name: (identifier) value: (identifier))))) (keyword_argument name: (identifier) value: (string (string_start) (string_content) (string_end))) (keyword_argument name: (identifier) value: (string (string_start) (string_content) (string_end))))))) (if_statement condition: (boolean_operator left: (comparison_operator (string (string_start) (string_content) (string_end)) (identifier)) right: (comparison_operator (string (string_start) (string_content) (string_end)) (identifier))) consequence: (block (expression_statement (assignment left: (subscript value: (identifier) subscript: (string (string_start) (string_content) (string_end))) right: (false))))) (expression_statement (call function: (identifier) arguments: (argument_list (identifier) (identifier)))) (if_statement condition: (comparison_operator (string (string_start) (string_content) (string_end)) (identifier)) consequence: (block (expression_statement (assignment left: (subscript value: (identifier) subscript: (string (string_start) (string_content) (string_end))) right: (binary_operator left: (string (string_start) (string_content) (string_end)) right: (subscript value: (identifier) subscript: (string (string_start) (string_content) (string_end)))))))) (comment) (return_statement (identifier)))) (decorated_definition (decorator (identifier)) definition: (class_definition name: (identifier) body: (block (expression_statement (assignment left: (identifier) type: (type (identifier)))) (expression_statement (assignment left: (identifier) type: (type (attribute object: (identifier) attribute: (identifier))))) (expression_statement (assignment left: (identifier) type: (type (identifier)) right: (none))) (expression_statement (assignment left: (identifier) type: (type (identifier)) right: (none))) (expression_statement (assignment left: (identifier) type: (type (identifier)) right: (none))) (expression_statement (assignment left: (identifier) type: (type (identifier)) right: (none))) (expression_statement (assignment left: (identifier) type: (type (identifier)) right: (none))) (expression_statement (assignment left: (identifier) type: (type (identifier)) right: (none))) (function_definition name: (identifier) parameters: (parameters (identifier)) body: (block (expression_statement (assignment left: (identifier) right: (attribute object: (identifier) attribute: (identifier)))) (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (attribute object: (identifier) attribute: (identifier)))))) (assert_statement (comparison_operator (string (string_start) (string_content) (string_end)) (attribute object: (identifier) attribute: (identifier)))) (expression_statement (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (string (string_start) (string_content) (string_end))))) (if_statement condition: (comparison_operator (string (string_start) (string_content) (string_end)) (identifier)) consequence: (block (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (assignment left: (identifier) right: (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (string (string_start) (string_content) (string_end))))))) (expression_statement (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (string (string_start) (string_content) (string_end))))))) (if_statement condition: (not_operator argument: (attribute object: (identifier) attribute: (identifier))) (comment) consequence: (block (assert_statement (comparison_operator (call function: (identifier) arguments: (argument_list (identifier))) (integer))) (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (subscript value: (identifier) subscript: (integer))))) alternative: (else_clause body: (block (assert_statement (call function: (identifier) arguments: (argument_list (attribute object: (identifier) attribute: (identifier)) (identifier))))))))) (function_definition name: (identifier) parameters: (parameters (identifier) (default_parameter name: (identifier) value: (false))) body: (block (if_statement condition: (identifier) consequence: (block (expression_statement (assignment left: (identifier) right: (attribute object: (identifier) attribute: (identifier))))) alternative: (else_clause body: (block (expression_statement (assignment left: (identifier) right: (attribute object: (identifier) attribute: (identifier))))))) (if_statement condition: (identifier) consequence: (block (return_statement (identifier)))) (if_statement condition: (boolean_operator left: (identifier) right: (attribute object: (identifier) attribute: (identifier))) consequence: (block (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (attribute object: (identifier) attribute: (identifier))))))) alternative: (else_clause body: (block (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (subscript value: (identifier) subscript: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)))))))))) (if_statement condition: (comparison_operator (attribute object: (identifier) attribute: (identifier)) (none)) consequence: (block (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (attribute object: (identifier) attribute: (identifier)) (attribute object: (identifier) attribute: (identifier)))))) (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (subscript value: (identifier) subscript: (attribute object: (identifier) attribute: (identifier))))))))) (if_statement condition: (identifier) consequence: (block (expression_statement (assignment left: (identifier) right: (float)))) alternative: (else_clause body: (block (expression_statement (assignment left: (identifier) right: (integer)))))) (expression_statement (assignment left: (identifier) right: (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list (string (string_start) (string_content) (string_end)))))) (expression_statement (assignment left: (identifier) right: (list_comprehension body: (call function: (identifier) arguments: (argument_list (subscript value: (identifier) subscript: (slice (binary_operator left: (identifier) right: (integer)) (binary_operator left: (binary_operator left: (identifier) right: (integer)) right: (integer)))) (integer))) (for_in_clause left: (identifier) right: (call function: (identifier) arguments: (argument_list (integer) (integer))))))) (return_statement (binary_operator left: (string (string_start) (string_content) (string_end)) right: (tuple (list_splat (identifier)) (identifier))))))))) (decorated_definition (decorator (identifier)) definition: (class_definition name: (identifier) body: (block (expression_statement (assignment left: (identifier) type: (type (identifier)) right: (none))) (expression_statement (assignment left: (identifier) type: (type (identifier)) right: (none))) (expression_statement (assignment left: (identifier) type: (type (identifier)) right: (none))) (expression_statement (assignment left: (identifier) type: (type (identifier)) right: (none))) (expression_statement (assignment left: (identifier) right: (assignment left: (identifier) right: (false)))) (expression_statement (assignment left: (identifier) type: (type (identifier)) right: (false))) (expression_statement (assignment left: (identifier) type: (type (identifier)) right: (false))) (expression_statement (assignment left: (identifier) type: (type (identifier)) right: (false))) (expression_statement (assignment left: (identifier) type: (type (identifier)) right: (false))) (expression_statement (assignment left: (identifier) type: (type (identifier)) right: (false))) (expression_statement (assignment left: (identifier) type: (type (identifier)) right: (none))) (expression_statement (assignment left: (identifier) type: (type (identifier)) right: (none))) (function_definition name: (identifier) parameters: (parameters (identifier)) body: (block (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (list))) (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (none))) (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (none))) (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (none))))) (function_definition name: (identifier) parameters: (parameters (identifier) (typed_parameter (identifier) type: (type (identifier))) (typed_parameter (identifier) type: (type (identifier))) (typed_parameter (identifier) type: (type (identifier)))) body: (block (expression_statement (assignment left: (identifier) right: (attribute object: (identifier) attribute: (identifier)))) (expression_statement (assignment left: (identifier) right: (dictionary))) (if_statement condition: (boolean_operator left: (attribute object: (identifier) attribute: (identifier)) right: (attribute object: (identifier) attribute: (identifier))) consequence: (block (if_statement condition: (boolean_operator left: (attribute object: (identifier) attribute: (identifier)) right: (comparison_operator (identifier) (integer))) consequence: (block (expression_statement (assignment left: (subscript value: (identifier) subscript: (string (string_start) (string_content) (string_end))) right: (string (string_start) (string_content) (string_end))))) alternative: (else_clause body: (block (expression_statement (assignment left: (subscript value: (identifier) subscript: (string (string_start) (string_content) (string_end))) right: (string (string_start) (string_content) (string_end))))))))) (if_statement condition: (attribute object: (identifier) attribute: (identifier)) consequence: (block (expression_statement (assignment left: (subscript value: (identifier) subscript: (string (string_start) (string_content) (string_end))) right: (string (string_start) (string_content) (string_end))))) alternative: (else_clause body: (block (expression_statement (assignment left: (subscript value: (identifier) subscript: (string (string_start) (string_content) (string_end))) right: (string (string_start) (string_content) (string_end))))))) (if_statement condition: (attribute object: (identifier) attribute: (identifier)) consequence: (block (expression_statement (assignment left: (identifier) right: (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list))))) alternative: (else_clause body: (block (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (attribute object: (identifier) attribute: (identifier))))))))) (expression_statement (assignment left: (identifier) right: (attribute object: (identifier) attribute: (identifier)))) (expression_statement (assignment left: (identifier) right: (call function: (attribute object: (subscript value: (attribute object: (identifier) attribute: (identifier)) subscript: (binary_operator left: (unary_operator argument: (attribute object: (identifier) attribute: (identifier))) right: (parenthesized_expression (comparison_operator (attribute object: (identifier) attribute: (identifier)) (identifier)))) subscript: (identifier)) attribute: (identifier)) arguments: (argument_list)))) (expression_statement (assignment left: (identifier) right: (string (string_start) (string_content) (string_end)))) (if_statement condition: (attribute object: (identifier) attribute: (identifier)) consequence: (block (expression_statement (augmented_assignment left: (identifier) right: (binary_operator left: (string (string_start) (string_content) (string_end)) right: (attribute object: (identifier) attribute: (identifier))))))) (expression_statement (assignment left: (identifier) right: (list))) (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (keyword_argument name: (identifier) value: (integer)))))) (if_statement condition: (attribute object: (identifier) attribute: (identifier)) consequence: (block (expression_statement (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (call function: (identifier) arguments: (argument_list (keyword_argument name: (identifier) value: (integer)) (keyword_argument name: (identifier) value: (string (string_start) (string_content) (string_end)))))))))) (if_statement condition: (call function: (identifier) arguments: (argument_list (identifier))) consequence: (block (expression_statement (assignment left: (identifier) right: (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (keyword_argument name: (identifier) value: (false)))))) (if_statement condition: (attribute object: (identifier) attribute: (identifier)) consequence: (block (expression_statement (assignment left: (subscript value: (identifier) subscript: (string (string_start) (string_content) (string_end))) right: (string (string_start) (string_content) (string_end)))))) (if_statement condition: (attribute object: (identifier) attribute: (identifier)) consequence: (block (expression_statement (assignment left: (subscript value: (identifier) subscript: (string (string_start) (string_content) (string_end))) right: (identifier))))) (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (keyword_argument name: (identifier) value: (string (string_start) (string_content) (string_end))) (keyword_argument name: (identifier) value: (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list (identifier)))) (keyword_argument name: (identifier) value: (identifier)) (keyword_argument name: (identifier) value: (attribute object: (identifier) attribute: (identifier))) (keyword_argument name: (identifier) value: (identifier)) (keyword_argument name: (identifier) value: (call function: (identifier) arguments: (argument_list (keyword_argument name: (identifier) value: (identifier)) (dictionary_splat (identifier))))) (dictionary_splat (identifier)))))) (expression_statement (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (identifier)))) (expression_statement (assignment left: (identifier) right: (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list)))) (expression_statement (assignment left: (identifier) right: (subscript value: (attribute object: (identifier) attribute: (identifier)) subscript: (binary_operator left: (attribute object: (identifier) attribute: (identifier)) right: (parenthesized_expression (comparison_operator (attribute object: (identifier) attribute: (identifier)) (identifier)))) subscript: (identifier))))) alternative: (else_clause body: (block (expression_statement (assignment left: (identifier) right: (subscript value: (attribute object: (identifier) attribute: (identifier)) subscript: (attribute object: (identifier) attribute: (identifier)) subscript: (identifier))))))) (expression_statement (assignment left: (identifier) right: (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list)))) (if_statement condition: (call function: (identifier) arguments: (argument_list (identifier))) consequence: (block (expression_statement (assignment left: (identifier) right: (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (keyword_argument name: (identifier) value: (true)))))) (if_statement condition: (attribute object: (identifier) attribute: (identifier)) consequence: (block (expression_statement (assignment left: (subscript value: (identifier) subscript: (string (string_start) (string_content) (string_end))) right: (string (string_start) (string_content) (string_end)))))) (if_statement condition: (attribute object: (identifier) attribute: (identifier)) consequence: (block (expression_statement (assignment left: (subscript value: (identifier) subscript: (string (string_start) (string_content) (string_end))) right: (identifier)))) alternative: (else_clause body: (block (expression_statement (assignment left: (subscript value: (identifier) subscript: (string (string_start) (string_content) (string_end))) right: (string (string_start) (string_content) (string_end))))))) (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (keyword_argument name: (identifier) value: (string (string_start) (string_content) (string_end))) (keyword_argument name: (identifier) value: (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list (identifier)))) (keyword_argument name: (identifier) value: (identifier)) (keyword_argument name: (identifier) value: (binary_operator left: (string (string_start) (string_content) (string_end)) right: (attribute object: (identifier) attribute: (identifier)))) (keyword_argument name: (identifier) value: (identifier)) (keyword_argument name: (identifier) value: (call function: (identifier) arguments: (argument_list (keyword_argument name: (identifier) value: (identifier)) (dictionary_splat (identifier))))) (keyword_argument name: (identifier) value: (false)) (dictionary_splat (identifier)))))) (expression_statement (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (integer) (identifier)))))) (return_statement (identifier)))) (function_definition name: (identifier) parameters: (parameters (identifier) (list_splat_pattern (identifier)) (dictionary_splat_pattern (identifier))) body: (block (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (identifier) (list_splat (identifier)) (dictionary_splat (identifier)) (keyword_argument name: (identifier) value: (attribute object: (identifier) attribute: (identifier))))))) (expression_statement (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list (identifier)))) (expression_statement (assignment left: (identifier) right: (attribute object: (identifier) attribute: (identifier)))) (if_statement condition: (boolean_operator left: (comparison_operator (attribute object: (identifier) attribute: (identifier)) (none)) right: (comparison_operator (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list)) (attribute object: (identifier) attribute: (identifier)))) consequence: (block (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list)))))) (if_statement condition: (boolean_operator left: (comparison_operator (attribute object: (identifier) attribute: (identifier)) (none)) right: (comparison_operator (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list)) (attribute object: (identifier) attribute: (identifier)))) consequence: (block (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list)))))) (expression_statement (assignment left: (identifier) right: (call function: (attribute object: (attribute object: (subscript value: (attribute object: (identifier) attribute: (identifier)) subscript: (unary_operator argument: (attribute object: (identifier) attribute: (identifier)))) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list)))) (if_statement condition: (boolean_operator left: (comparison_operator (attribute object: (identifier) attribute: (identifier)) (none)) right: (comparison_operator (identifier) (attribute object: (identifier) attribute: (identifier)))) consequence: (block (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (identifier))))))) (function_definition name: (identifier) parameters: (parameters (identifier)) body: (block (expression_statement (assignment left: (identifier) right: (dictionary))) (if_statement condition: (attribute object: (identifier) attribute: (identifier)) consequence: (block (expression_statement (assignment left: (subscript value: (identifier) subscript: (string (string_start) (string_content) (string_end))) right: (true))) (expression_statement (assignment left: (subscript value: (identifier) subscript: (string (string_start) (string_content) (string_end))) right: (list (integer) (attribute object: (identifier) attribute: (identifier))))))) (expression_statement (assignment left: (identifier) right: (list))) (expression_statement (assignment left: (identifier) right: (list))) (for_statement left: (identifier) right: (call function: (identifier) arguments: (argument_list (attribute object: (identifier) attribute: (identifier)) (binary_operator left: (attribute object: (identifier) attribute: (identifier)) right: (integer)))) body: (block (if_statement condition: (boolean_operator left: (boolean_operator left: (comparison_operator (identifier) (attribute object: (identifier) attribute: (identifier))) right: (identifier)) right: (comparison_operator (identifier) (attribute object: (identifier) attribute: (identifier)))) consequence: (block (if_statement condition: (comparison_operator (binary_operator left: (identifier) right: (subscript value: (identifier) subscript: (unary_operator argument: (integer)))) (integer)) consequence: (block (continue_statement))) (if_statement condition: (comparison_operator (binary_operator left: (identifier) right: (integer)) (integer)) consequence: (block (continue_statement))))) (expression_statement (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (identifier)))) (expression_statement (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (call function: (identifier) arguments: (argument_list (identifier)))))))) (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (comment) (keyword_argument name: (identifier) value: (true)) (comment) (comment))))) (if_statement condition: (attribute object: (identifier) attribute: (identifier)) consequence: (block (expression_statement (assignment left: (subscript value: (identifier) subscript: (string (string_start) (string_content) (string_end))) right: (false))))) (expression_statement (assignment left: (identifier) right: (dictionary))) (if_statement condition: (attribute object: (identifier) attribute: (identifier)) consequence: (block (expression_statement (assignment left: (subscript value: (identifier) subscript: (string (string_start) (string_content) (string_end))) right: (true))) (if_statement condition: (attribute object: (identifier) attribute: (identifier)) consequence: (block (expression_statement (assignment left: (subscript value: (identifier) subscript: (string (string_start) (string_content) (string_end))) right: (call function: (identifier) arguments: (argument_list (keyword_argument name: (identifier) value: (attribute object: (identifier) attribute: (identifier))))))))))) (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (keyword_argument name: (identifier) value: (attribute object: (identifier) attribute: (identifier))) (keyword_argument name: (identifier) value: (call function: (identifier) arguments: (argument_list (keyword_argument name: (identifier) value: (attribute object: (identifier) attribute: (identifier))) (dictionary_splat (identifier))))) (keyword_argument name: (identifier) value: (identifier)) (keyword_argument name: (identifier) value: (string (string_start) (string_content) (string_end))) (keyword_argument name: (identifier) value: (integer)) (keyword_argument name: (identifier) value: (dictionary (pair key: (string (string_start) (string_content) (string_end)) value: (integer)))) (dictionary_splat (identifier)))))) (expression_statement (assignment left: (identifier) right: (list))) (expression_statement (assignment left: (identifier) right: (comparison_operator (call function: (identifier) arguments: (argument_list (attribute object: (identifier) attribute: (identifier)))) (integer)))) (for_statement left: (pattern_list (identifier) (identifier)) right: (call function: (identifier) arguments: (argument_list (attribute object: (identifier) attribute: (identifier)))) body: (block (expression_statement (augmented_assignment left: (identifier) right: (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (identifier) (identifier) (identifier))))))) (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (keyword_argument name: (identifier) value: (identifier)) (keyword_argument name: (identifier) value: (identifier)))))) (return_statement (identifier))))))) (decorated_definition (decorator (identifier)) definition: (class_definition name: (identifier) body: (block (expression_statement (assignment left: (identifier) type: (type (identifier)))) (expression_statement (assignment left: (identifier) type: (type (identifier)) right: (none))) (expression_statement (assignment left: (identifier) type: (type (identifier)) right: (none))) (function_definition name: (identifier) parameters: (parameters (identifier)) body: (block (expression_statement (assignment left: (identifier) right: (list))) (expression_statement (assignment left: (identifier) right: (dictionary (pair key: (string (string_start) (string_content) (string_end)) value: (call function: (identifier) arguments: (argument_list (keyword_argument name: (identifier) value: (false)) (keyword_argument name: (identifier) value: (true)))))))) (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list)))) (if_statement condition: (identifier) consequence: (block (expression_statement (assignment left: (subscript value: (subscript value: (identifier) subscript: (string (string_start) (string_content) (string_end))) subscript: (string (string_start) (string_content) (string_end))) right: (identifier))))) (if_statement condition: (comparison_operator (attribute object: (identifier) attribute: (identifier)) (none)) consequence: (block (expression_statement (call function: (identifier) arguments: (argument_list (identifier) (attribute object: (identifier) attribute: (identifier))))))) (expression_statement (assignment left: (identifier) right: (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (keyword_argument name: (identifier) value: (binary_operator left: (string (string_start) (string_content) (string_end)) right: (attribute object: (identifier) attribute: (identifier)))) (keyword_argument name: (identifier) value: (string (string_start) (string_content) (string_end))) (dictionary_splat (identifier)))))) (expression_statement (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (identifier)))) (if_statement condition: (attribute object: (identifier) attribute: (identifier)) consequence: (block (expression_statement (assignment left: (identifier) right: (list (string (string_start) (string_content) (string_end)) (string (string_start) (string_content) (string_end)) (string (string_start) (string_content) (string_end)) (string (string_start) (string_content) (string_end)) (string (string_start) (string_content) (string_end))))) (assert_statement (call function: (attribute object: (call function: (identifier) arguments: (argument_list (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list)))) attribute: (identifier)) arguments: (argument_list (call function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment left: (identifier) right: (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (keyword_argument name: (identifier) value: (binary_operator left: (string (string_start) (string_content) (string_end)) right: (attribute object: (identifier) attribute: (identifier)))) (keyword_argument name: (identifier) value: (true)) (keyword_argument name: (identifier) value: (string (string_start) (string_content) (string_end))) (dictionary_splat (attribute object: (identifier) attribute: (identifier))))))) (expression_statement (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list (identifier) (keyword_argument name: (identifier) value: (string (string_start) (string_content) (string_end)))))))))) (return_statement (identifier))))))))