This mapping has 1 multi-map group: several pairings are equally correct there. The code view shows one arbitrary valid pairing, not the only one.

Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

1from datetime import (
2 datetime,
3 timezone,
4)
5
6import numpy as np
7import pytest
8
9from pandas._libs.tslibs import iNaT
10from pandas.compat import (
11 is_ci_environment,
12 is_platform_windows,
13)
14from pandas.compat.pyarrow import pa_version_under22p0
15
16import pandas as pd
17import pandas._testing as tm
18from pandas.core.interchange.column import PandasColumn
19from pandas.core.interchange.dataframe_protocol import (
…lines 20–382 unchanged (363 lines)
383
384def test_interchange_from_non_pandas_tz_aware(request):
385 # GH 54239, 54287
386 pa = pytest.importorskip("pyarrow", "11.0.0")
387 import pyarrow.compute as pc
388
389 if is_platform_windows() and is_ci_environment() and pa_version_under22p0:
390 mark = pytest.mark.xfail(
391 raises=pa.ArrowInvalid,
392 reason=(
393 "TODO: Set ARROW_TIMEZONE_DATABASE environment variable "
394 "on CI to path to the tzdata for pyarrow."
395 ),
…lines 396–700 unchanged (305 lines)

After

1from datetime import (
2 datetime,
3 timezone,
4)
5
6import numpy as np
7import pytest
8
9from pandas._libs.tslibs import iNaT
10from pandas.compat import is_platform_windows
11from pandas.compat.pyarrow import pa_version_under22p0
12
13import pandas as pd
14import pandas._testing as tm
15from pandas.core.interchange.column import PandasColumn
16from pandas.core.interchange.dataframe_protocol import (
…lines 17–379 unchanged (363 lines)
380
381def test_interchange_from_non_pandas_tz_aware(request):
382 # GH 54239, 54287
383 pa = pytest.importorskip("pyarrow", "11.0.0")
384 import pyarrow.compute as pc
385
386 if is_platform_windows() and pa_version_under22p0:
387 mark = pytest.mark.xfail(
388 raises=pa.ArrowInvalid,
389 reason=(
390 "TODO: Set ARROW_TIMEZONE_DATABASE environment variable "
391 "on CI to path to the tzdata for pyarrow."
392 ),
…lines 393–697 unchanged (305 lines)

Before

module
import_from_statement
from "from"
dotted_name
identifier "datetime"
import "import"
( "("
dotted_name
identifier "datetime"
, ","
dotted_name
identifier "timezone"
, ","
) ")"
import_statement
import "import"
aliased_import
dotted_name
identifier "numpy"
as "as"
identifier "np"
import_statement
import "import"
dotted_name
identifier "pytest"
import_from_statement
from "from"
dotted_name
identifier "pandas"
. "."
identifier "_libs"
. "."
identifier "tslibs"
import "import"
dotted_name
identifier "iNaT"
import_from_statement
from "from"
dotted_name
identifier "pandas"
. "."
identifier "compat"
import "import"
( "("
dotted_name
identifier "is_ci_environment"
, ","
dotted_name
identifier "is_platform_windows"
, ","
) ")"
import_from_statement
from "from"
dotted_name
identifier "pandas"
. "."
identifier "compat"
. "."
identifier "pyarrow"
import "import"
dotted_name
identifier "pa_version_under22p0"
import_statement
import "import"
aliased_import
dotted_name
identifier "pandas"
as "as"
identifier "pd"
import_statement
import "import"
aliased_import
dotted_name
identifier "pandas"
. "."
identifier "_testing"
as "as"
identifier "tm"
import_from_statement
from "from"
dotted_name
identifier "pandas"
. "."
identifier "core"
. "."
identifier "interchange"
. "."
identifier "column"
import "import"
dotted_name
identifier "PandasColumn"
import_from_statement
from "from"
dotted_name
identifier "pandas"
. "."
identifier "core"
. "."
identifier "interchange"
. "."
identifier "dataframe_protocol"
import "import"
( "("
dotted_name
identifier "ColumnNullType"
, ","
dotted_name
identifier "DtypeKind"
, ","
) ")"
import_from_statement
from "from"
dotted_name
identifier "pandas"
. "."
identifier "core"
. "."
identifier "interchange"
. "."
identifier "from_dataframe"
import "import"
dotted_name
identifier "from_dataframe"
import_from_statement
from "from"
dotted_name
identifier "pandas"
. "."
identifier "core"
. "."
identifier "interchange"
. "."
identifier "utils"
import "import"
dotted_name
identifier "ArrowCTypes"
decorated_definition (+411 nodes collapsed)
function_definition (+249 nodes collapsed)
decorated_definition (+198 nodes collapsed)
function_definition (+224 nodes collapsed)
decorated_definition (+359 nodes collapsed)
decorated_definition (+553 nodes collapsed)
function_definition (+348 nodes collapsed)
decorated_definition (+244 nodes collapsed)
function_definition (+164 nodes collapsed)
function_definition (+300 nodes collapsed)
function_definition (+116 nodes collapsed)
function_definition (+193 nodes collapsed)
function_definition (+170 nodes collapsed)
decorated_definition (+155 nodes collapsed)
function_definition (+141 nodes collapsed)
function_definition (+350 nodes collapsed)
function_definition (+216 nodes collapsed)
decorated_definition (+158 nodes collapsed)
function_definition
def "def"
identifier "test_interchange_from_non_pandas_tz_aware"
parameters
( "("
identifier "request"
) ")"
: ":"
comment "# GH 54239, 54287"
block
expression_statement (+21 nodes collapsed)
import_statement
import "import"
aliased_import
dotted_name
identifier "pyarrow"
. "."
identifier "compute"
as "as"
identifier "pc"
if_statement
if "if"
boolean_operator any 2:1
boolean_operator any 2:1
call
identifier "is_platform_windows"
argument_list
( "("
) ")"
and "and"
call
identifier "is_ci_environment"
argument_list
( "("
) ")"
and "and"
identifier "pa_version_under22p0"
: ":"
block (+50 nodes collapsed)
expression_statement (+38 nodes collapsed)
expression_statement
assignment
identifier "arr"
= "="
call
attribute
identifier "pc"
. "."
identifier "assume_timezone"
argument_list
( "("
identifier "arr"
, ","
string
string_start "\""
string_content "Asia/Kathmandu"
string_end "\""
) ")"
expression_statement (+22 nodes collapsed)
expression_statement
assignment
identifier "exchange_df"
= "="
call
attribute
identifier "table"
. "."
identifier "__dataframe__"
argument_list
( "("
) ")"
with_statement (+31 nodes collapsed)
expression_statement (+49 nodes collapsed)
expression_statement
call
attribute
identifier "tm"
. "."
identifier "assert_frame_equal"
argument_list
( "("
identifier "expected"
, ","
identifier "result"
) ")"
function_definition (+264 nodes collapsed)
function_definition (+102 nodes collapsed)
function_definition (+159 nodes collapsed)
function_definition (+93 nodes collapsed)
function_definition (+169 nodes collapsed)
decorated_definition (+700 nodes collapsed)
decorated_definition (+745 nodes collapsed)
function_definition (+130 nodes collapsed)
function_definition (+172 nodes collapsed)
function_definition (+142 nodes collapsed)
decorated_definition (+567 nodes collapsed)
function_definition (+108 nodes collapsed)

After

module
import_from_statement
from "from"
dotted_name
identifier "datetime"
import "import"
( "("
dotted_name
identifier "datetime"
, ","
dotted_name
identifier "timezone"
, ","
) ")"
import_statement
import "import"
aliased_import
dotted_name
identifier "numpy"
as "as"
identifier "np"
import_statement
import "import"
dotted_name
identifier "pytest"
import_from_statement
from "from"
dotted_name
identifier "pandas"
. "."
identifier "_libs"
. "."
identifier "tslibs"
import "import"
dotted_name
identifier "iNaT"
import_from_statement
from "from"
dotted_name
identifier "pandas"
. "."
identifier "compat"
import "import"
dotted_name
identifier "is_platform_windows"
import_from_statement
from "from"
dotted_name
identifier "pandas"
. "."
identifier "compat"
. "."
identifier "pyarrow"
import "import"
dotted_name
identifier "pa_version_under22p0"
import_statement
import "import"
aliased_import
dotted_name
identifier "pandas"
as "as"
identifier "pd"
import_statement
import "import"
aliased_import
dotted_name
identifier "pandas"
. "."
identifier "_testing"
as "as"
identifier "tm"
import_from_statement
from "from"
dotted_name
identifier "pandas"
. "."
identifier "core"
. "."
identifier "interchange"
. "."
identifier "column"
import "import"
dotted_name
identifier "PandasColumn"
import_from_statement
from "from"
dotted_name
identifier "pandas"
. "."
identifier "core"
. "."
identifier "interchange"
. "."
identifier "dataframe_protocol"
import "import"
( "("
dotted_name
identifier "ColumnNullType"
, ","
dotted_name
identifier "DtypeKind"
, ","
) ")"
import_from_statement
from "from"
dotted_name
identifier "pandas"
. "."
identifier "core"
. "."
identifier "interchange"
. "."
identifier "from_dataframe"
import "import"
dotted_name
identifier "from_dataframe"
import_from_statement
from "from"
dotted_name
identifier "pandas"
. "."
identifier "core"
. "."
identifier "interchange"
. "."
identifier "utils"
import "import"
dotted_name
identifier "ArrowCTypes"
decorated_definition (+411 nodes collapsed)
function_definition (+249 nodes collapsed)
decorated_definition (+198 nodes collapsed)
function_definition (+224 nodes collapsed)
decorated_definition (+359 nodes collapsed)
decorated_definition (+553 nodes collapsed)
function_definition (+348 nodes collapsed)
decorated_definition (+244 nodes collapsed)
function_definition (+164 nodes collapsed)
function_definition (+300 nodes collapsed)
function_definition (+116 nodes collapsed)
function_definition (+193 nodes collapsed)
function_definition (+170 nodes collapsed)
decorated_definition (+155 nodes collapsed)
function_definition (+141 nodes collapsed)
function_definition (+350 nodes collapsed)
function_definition (+216 nodes collapsed)
decorated_definition (+158 nodes collapsed)
function_definition
def "def"
identifier "test_interchange_from_non_pandas_tz_aware"
parameters
( "("
identifier "request"
) ")"
: ":"
comment "# GH 54239, 54287"
block
expression_statement (+21 nodes collapsed)
import_statement
import "import"
aliased_import
dotted_name
identifier "pyarrow"
. "."
identifier "compute"
as "as"
identifier "pc"
if_statement
if "if"
boolean_operator any 2:1
call
identifier "is_platform_windows"
argument_list
( "("
) ")"
and "and"
identifier "pa_version_under22p0"
: ":"
block (+50 nodes collapsed)
expression_statement (+38 nodes collapsed)
expression_statement
assignment
identifier "arr"
= "="
call
attribute
identifier "pc"
. "."
identifier "assume_timezone"
argument_list
( "("
identifier "arr"
, ","
string
string_start "\""
string_content "Asia/Kathmandu"
string_end "\""
) ")"
expression_statement (+22 nodes collapsed)
expression_statement
assignment
identifier "exchange_df"
= "="
call
attribute
identifier "table"
. "."
identifier "__dataframe__"
argument_list
( "("
) ")"
with_statement (+31 nodes collapsed)
expression_statement (+49 nodes collapsed)
expression_statement
call
attribute
identifier "tm"
. "."
identifier "assert_frame_equal"
argument_list
( "("
identifier "expected"
, ","
identifier "result"
) ")"
function_definition (+264 nodes collapsed)
function_definition (+102 nodes collapsed)
function_definition (+159 nodes collapsed)
function_definition (+93 nodes collapsed)
function_definition (+169 nodes collapsed)
decorated_definition (+700 nodes collapsed)
decorated_definition (+745 nodes collapsed)
function_definition (+130 nodes collapsed)
function_definition (+172 nodes collapsed)
function_definition (+142 nodes collapsed)
decorated_definition (+567 nodes collapsed)
function_definition (+108 nodes collapsed)