| 387 | return type(self)(Partitions(self.frame, parts), self.iindexer, self.cindexer) |
| 388 | |
| 389 | def _layer(self) -> dict: |
| 390 | if self.stop == self.start: |
| 391 | return { |
| 392 | (self._name, 0): Task( |
| 393 | (self._name, 0), |
| 394 | methods.loc, |
| 395 | TaskRef((self.frame._name, self.start)), |
| 396 | slice(self.iindexer.start, self.iindexer.stop), |
| 397 | self.cindexer, |
| 398 | ) |
| 399 | } |
| 400 | |
| 401 | dsk = { |
| 402 | (self._name, 0): Task( |
| 403 | (self._name, 0), |
| 404 | methods.loc, |
| 405 | TaskRef((self.frame._name, self.start)), |
| 406 | slice(self.iindexer.start, None), |
| 407 | self.cindexer, |
| 408 | ) |
| 409 | } |
| 410 | for i in range(1, self.stop - self.start): |
| 411 | if self.cindexer is None: |
| 412 | dsk[self._name, i] = Alias((self.frame._name, self.start + i)) # type: ignore[assignment] |
| 413 | else: |
| 414 | dsk[self._name, i] = Task( |
| 415 | (self._name, i), |
| 416 | methods.loc, |
| 417 | TaskRef((self.frame._name, self.start + i)), |
| 418 | slice(None, None), |
| 419 | self.cindexer, |
| 420 | ) |
| 421 | |
| 422 | dsk[self._name, self.stop - self.start] = Task( |
| 423 | (self._name, self.stop - self.start), |
| 424 | methods.loc, |
| 425 | TaskRef((self.frame._name, self.stop)), |
| 426 | slice(None, self.iindexer.stop), |
| 427 | self.cindexer, |
| 428 | ) |
| 429 | return dsk |
| 430 | |
| 431 | |
| 432 | class Loc(Blockwise): |