<!-- # hard line break macro for HTML -->

# fiftyone.operators.logging_utils

Stdio capture utilities for operator worker processes.

Copyright 2017-2026, Voxel51, Inc.
<br/>
[voxel51.com](https://voxel51.com/)
<br/>
<br/>

**Classes:**

| [`LineFlushedStdio`](#fiftyone.operators.logging_utils.LineFlushedStdio)(original)   | Replace tqdm-style r updates with n-terminated lines so the container runtime's line-delimited log pipeline flushes per tick.   |
|--------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|

### *class* fiftyone.operators.logging_utils.LineFlushedStdio(original)

Bases: `object`

Replace tqdm-style r updates with n-terminated lines so the
container runtime’s line-delimited log pipeline flushes per tick.
Progress lines are throttled to one emit per integer percent; totalless
progress lines (which render no percent) to one per count doubling.

**Methods:**

| [`write`](#fiftyone.operators.logging_utils.LineFlushedStdio.write)(s)   |                                                      |
|--------------------------------------------------------------------------|------------------------------------------------------|
| [`flush`](#fiftyone.operators.logging_utils.LineFlushedStdio.flush)()    |                                                      |
| [`drain`](#fiftyone.operators.logging_utils.LineFlushedStdio.drain)()    | Emit any unterminated buffered text as a final line. |

#### write(s)

#### flush()

#### drain()

Emit any unterminated buffered text as a final line.
