[docs]classSlicedInstanceSource(InstanceSource):""" An instance source that provides a slice of another instance source. """def__init__(self,source:InstanceSource,source_slice:slice,*,seed:Optional[int]=None,work_dir:PathOrStr,):super().__init__(work_dir=work_dir,sequence_length=source.sequence_length,max_sequence_length=source.max_sequence_length,label=source.label,)self._source=sourceself._slice=source_sliceself._seed=resolve_seed(seed)self._sliced_indices=build_global_indices(len(source),sequence_length=self.sequence_length,max_sequence_length=self.max_sequence_length,seed=self.seed,)[source_slice]ifself._sliced_indices.size==0:raiseOLMoConfigurationError(f"{self.__class__.__name__} created with an empty slice ({source_slice}) from source "f"with {len(source):,d} instances.")@propertydefsource(self)->InstanceSource:returnself._source@propertydefsource_slice(self)->slice:returnself._slice@propertydefseed(self)->Optional[int]:returnself._seed@propertydefnum_instances(self)->int:chunk_size=self.max_sequence_length//self.sequence_lengthreturnchunk_size*(len(self._sliced_indices)//chunk_size)@ft.cached_propertydeffingerprint(self)->str:sha256_hash=hashlib.sha256()chunk_size=self.max_sequence_length//self.sequence_lengthsha256_hash.update((f"class={self.__class__.__name__},"f"{self.seed=},"f"{self.max_sequence_length=},"f"slice_start={self.source_slice.start//chunk_sizeifself.source_slice.startisnotNoneelse0},"f"slice_stop={self.source_slice.stop//chunk_sizeifself.source_slice.stopisnotNoneelse-1},"f"slice_step={self.source_slice.step//chunk_sizeifself.source_slice.stepisnotNoneelse1},"f"source={self.source.fingerprint},").encode())returnsha256_hash.hexdigest()