## DiffEntry


One object's row in `Repo.diff`.


Usage

``` python
DiffEntry(
    key,
    change,
    a_pin=None,
    b_pin=None,
    detail=None,
    detail_error=None,
    why=()
)
```


## Parameter Attributes


`key: str`  
Object key.

`change: str`  
`"added"`, `"removed"`, `"changed"`, or `"unchanged"`.

`a_pin: str | None = None`  
Pin id on side A.

`b_pin: str | None = None`  
Pin id on side B.

`detail: ObjectDiff | None = None`  
Native content diff (only with `content=True` and a [DIFF](testing.Capability.md#tether.testing.Capability.DIFF) backend).

`detail_error: str | None = None`  
Backend failure while computing [detail](Action.md#tether.Action.detail), if any.

`why: tuple[str, …] = ()`  
For [changed](SetReport.md#tether.SetReport.changed): which of `state`, [pin](testing.ObjectBackend.md#tether.testing.ObjectBackend.pin), `locator`, `policy` differ. A locator or policy change alone is a change too - the object is addressed or governed differently even though its state is the same.
