feat(interface): accept in-memory text records
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 58/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- python
- Domain
- api, backend-api-design, data
Research direction
Start with the Python API's existing AnonymizerInput path and its handling of the public result dataframe, then compare the current file-input validation and schema behavior. Done means typed TextRecord and TextRecordsInput support in the API, preserved IDs and input order, validated configured ID columns, and unchanged file-backed and CLI behavior.
Written by the indexing model from the issue text.
Description
Priority
Medium
Problem
Applications that already hold text in memory must write temporary CSV or Parquet files before calling Anonymizer. That adds avoidable I/O and complicates service integrations. Callers also need a stable way to correlate completed rows with their own request or event IDs, including when an input column name collides with a generated output column.
Proposed solution
- Add typed
TextRecord(id, text)andTextRecordsInputinput shapes. - Let the Python API accept
TextRecordsInputalongside the existing file-backedAnonymizerInputwithout changingAnonymizerInput.sourceor its JSON schema. - Preserve caller IDs and input order in the public result dataframe.
- Keep the CLI file-only; do not expose nested record objects as command-line flags.
- Retain existing file input behavior and validate configured ID columns.
Alternatives considered
- Temporary files: workable, but expensive and awkward for request-oriented services.
- Accepting a raw dataframe: broader and less explicit than the two fields the pipeline needs.
- Reading private
trace_dataframestate: not an appropriate public correlation contract.
Compatibility
Existing AnonymizerInput(source=...) calls, generated schemas, and CLI behavior remain unchanged. The new shape is additive.
- Dominant language
- Python
- Stars
- 129
- Forks
- 21
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 20
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from NVIDIA-NeMo/Anonymizer
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
NVIDIA-NeMo/Anonymizer#327 ·
Maintainers usually reply within 1 day
-
Replacement-map generation can silently omit a requested entity, causing the rewrite to be marked unavailablePossibly taken @dundysm claimed this 33 days ago. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
NVIDIA-NeMo/Anonymizer#278 · 2 comments ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
NVIDIA-NeMo/Anonymizer#6 · 1 comment ·
Maintainers usually reply within 1 day
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 54/100
NVIDIA-NeMo/Anonymizer#331 ·
Maintainers usually reply within 1 day
-
fix(notebooks): preserve GLiNER2 source spans across word-overlapping chunksPossibly taken @lipikaramaswamy claimed this today. Open
Difficulty 4/5 3-5 days Newbie friendliness 35/100
NVIDIA-NeMo/Anonymizer#329 ·
Maintainers usually reply within 1 day
All issues in NVIDIA-NeMo/Anonymizer
Similar issues
-
link-rot
Difficulty 1/5 Under an hour Newbie friendliness 67/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
developmentseed/titiler-cmr#265 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Insecure Brotli version <1.2.1Possibly taken @jamescw19 claimed this today. Open
Difficulty 1/5 Under an hour Newbie friendliness 85/100
stac-utils/stac-fastapi-pgstac#438 · 1 reaction ·
-
bug triage
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Maintainers usually reply within 1 day