Skip to content

Process status writer

cutana.process_status_writer

Process status writer for Cutana - handles individual process progress file writing.

This module is responsible for: - Writing individual process progress files with atomic operations - Process registration and lifecycle management at file level - Progress updates from worker processes - File cleanup and session management

ProcessStatusWriter(progress_dir=None, session_id=None)

Handles writing individual process progress to files with atomic operations and session isolation.

This class provides all file-writing operations for individual process progress tracking, including process registration, progress updates, and cleanup.

Initialize the job status writer.

Parameters:

Name Type Description Default
progress_dir str

Directory for progress files (default: system temp)

None
session_id str

Session ID for progress file isolation (auto-generated if None)

None

write_progress_file(process_id, progress_data)

Write progress data to file with atomic file locking.

Parameters:

Name Type Description Default
process_id str

Process identifier

required
progress_data Dict[str, Any]

Progress data to write

required

Returns:

Type Description
bool

True if write was successful, False otherwise

register_process(process_id, sources_assigned)

Register a new process and create its initial progress file.

Parameters:

Name Type Description Default
process_id str

Unique identifier for the process

required
sources_assigned int

Number of sources assigned to this process

required

Returns:

Type Description
bool

True if registration was successful, False otherwise

update_process_progress(process_id, progress_update)

Update progress for a specific process.

Parameters:

Name Type Description Default
process_id str

Process identifier

required
progress_update Dict[str, Any]

Dictionary with progress information

required

Returns:

Type Description
bool

True if update was successful, False otherwise

complete_process(process_id, completed_count, failed_count)

Mark a process as completed with final counts.

Parameters:

Name Type Description Default
process_id str

Process identifier

required
completed_count int

Final count of successfully processed sources

required
failed_count int

Count of failed sources

required

Returns:

Type Description
bool

True if completion was recorded successfully, False otherwise

cleanup_all_progress_files()

Clean up all progress files for this session.

Returns:

Type Description
int

Number of files cleaned up

report_process_progress(process_id, completed_sources)

Simplified progress reporting method for cutout processes.

This method handles the common case where worker processes need to report their current progress without complex data structures.

Parameters:

Name Type Description Default
process_id str

Process identifier

required
completed_sources int

Number of sources completed so far

required

Returns:

Type Description
bool

True if report was successful, False otherwise