MCPcopy Create free account
hub / github.com/huggingface/evaluate / _init_writer

Method _init_writer

src/evaluate/module.py:625–664  ·  view source on GitHub ↗
(self, timeout=1)

Source from the content-addressed store, hash-verified

623 return feature_names
624
625 def _init_writer(self, timeout=1):
626 if self.num_process > 1:
627 if self.process_id == 0:
628 file_path = os.path.join(self.data_dir, f"{self.experiment_id}-{self.num_process}-rdv.lock")
629 self.rendez_vous_lock = FileLock(file_path)
630 try:
631 self.rendez_vous_lock.acquire(timeout=timeout)
632 except TimeoutError:
633 raise ValueError(
634 f"Error in _init_writer: another evalution module instance is already using the local cache file at {file_path}. "
635 f"Please specify an experiment_id (currently: {self.experiment_id}) to avoid collision "
636 f"between distributed evaluation module instances."
637 ) from None
638
639 if self.keep_in_memory:
640 self.buf_writer = pa.BufferOutputStream()
641 self.writer = ArrowWriter(
642 features=self.selected_feature_format, stream=self.buf_writer, writer_batch_size=self.writer_batch_size
643 )
644 else:
645 self.buf_writer = None
646
647 # Get cache file name and lock it
648 if self.cache_file_name is None or self.filelock is None:
649 cache_file_name, filelock = self._create_cache_file() # get ready
650 self.cache_file_name = cache_file_name
651 self.filelock = filelock
652
653 self.writer = ArrowWriter(
654 features=self.selected_feature_format,
655 path=self.cache_file_name,
656 writer_batch_size=self.writer_batch_size,
657 )
658 # Setup rendez-vous here if
659 if self.num_process > 1:
660 if self.process_id == 0:
661 self._check_all_processes_locks() # wait for everyone to be ready
662 self.rendez_vous_lock.release() # let everyone go
663 else:
664 self._check_rendez_vous() # wait for master to be ready and to let everyone go
665
666 def _info(self) -> EvaluationModuleInfo:
667 """Construct the EvaluationModuleInfo object. See `EvaluationModuleInfo` for details.

Callers 2

add_batchMethod · 0.95
addMethod · 0.95

Calls 3

_create_cache_fileMethod · 0.95
_check_rendez_vousMethod · 0.95

Tested by

no test coverage detected