# RowEpochs

<table class=".origin_table">
    <tr>
        <td style="text-align: left; border-style: hidden">*class*  of [dascore.core._spool_inventory](`dascore.core._spool_inventory`)<br>inherits from: tuple 
</td>
        <td style="text-align: right; border-style: hidden">[source](https://github.com/DASDAE/dascore/blob/dev/dascore/core/_spool_inventory.py#L732-L765)</td>
    </tr>
</table>

:::{.padded_bottom_10pt}

:::{.def_block}


<b>RowEpochs</b>(<br>
    &nbsp;&nbsp;&nbsp;&nbsp;cuts: <class 'tuple
,<br>
    &nbsp;&nbsp;&nbsp;&nbsp;conflict: Any
,<br>
    &nbsp;&nbsp;&nbsp;&nbsp;context: dascore.core.inventory.ResolvedContext | None[[ResolvedContext](`dascore.core.inventory.ResolvedContext`), None]
,<br>
)


:::

:::
How one index row sits against the epochs of its acquisition_key.

## Attributes

<table class="table">
  <thead>
    <tr>
            <th scope="col"> Parameter</th>
            <th scope="col"> Description</th>
    </tr>
  </thead>
  <tbody>
        <tr>
            <td>cuts</td>
            <td>The instants inside the row at which its optical path changes;<br>empty for a row which stays within one epoch of everything.</td>
        </tr>
        <tr>
            <td>conflict</td>
            <td>The instant at which the row's *acquisition* changes, or None.<br>Subdividing cannot rescue this: the pieces would describe one<br>patch recorded under two configurations, which is a file that<br>should not exist rather than one to reconcile.</td>
        </tr>
        <tr>
            <td>context</td>
            <td>What the row resolves to where it begins, or None where the<br>inventory does not describe the row over its whole span. A row<br>with no cuts and no conflict resolves to this throughout.</td>
        </tr>
  </tbody>
</table>

