def __init__(self, in_blocks: BlockList, stats: DatasetStats, dataset_uuid=None): """Create a plan with no transformation stages. Args: in_blocks: Base list of blocks. stats: Stats for the base blocks. dataset_uuid: Dataset's UUID. """ self._in_blocks = in_blocks self._in_stats = stats # A computed snapshot of some prefix of stages. self._snapshot_blocks = None self._snapshot_stats = None # Chains of stages. self._stages_before_snapshot = [] self._stages_after_snapshot = [] # Cache of optimized stages. self._last_optimized_stages = None self._dataset_uuid = dataset_uuid or uuid.uuid4().hex if not stats.dataset_uuid: stats.dataset_uuid = self._dataset_uuid
def _rewrite_read_stages( blocks: BlockList, stats: DatasetStats, stages: List[Stage], dataset_uuid: str, ) -> Tuple[BlockList, DatasetStats, List[Stage]]: """Rewrites read stages into one-to-one stages, if needed.""" if _is_lazy(blocks) and stages: blocks, stats, stage = _rewrite_read_stage(blocks) stats.dataset_uuid = dataset_uuid stages.insert(0, stage) return blocks, stats, stages
def __init__(self, in_blocks: BlockList, stats: DatasetStats, dataset_uuid=None): """Create a plan with no transformation stages. Args: in_blocks: Base list of blocks. stats: Stats for the base blocks. """ self._in_blocks = in_blocks self._out_blocks = None self._in_stats = stats self._out_stats = None self._stages = [] self._dataset_uuid = dataset_uuid or uuid.uuid4().hex if not stats.dataset_uuid: stats.dataset_uuid = self._dataset_uuid