Skip to content

Add bytearray.resize() method #129559

Closed
Closed
@cmaloney

Description

@cmaloney

Feature or enhancement

Proposal:

Add bytearray.resize() which wraps PyByteArray_Resize

PyByteArray_Resize is part of the C Stable API and allows efficiently expanding a bytearray object's buffer in place (when possible / most efficient) without needing to have another object which can "hold" the data temporarily or needing to copy the data from one storage to a second. (ex. bytearray.extend(itertools.range(0, 20), a = bytearray(); a += b'temp'.

This can be somewhat emulated currently with appending a itertools.range / iterator that provides __length_hint__, but that still requires copying byte data out of the iterator. PyByteArray_Resize doesn't require setting / clearing the newly allocated space, just always ensures the data ends with a null byte \0.

Has this already been discussed elsewhere?

This is a minor feature, which does not need previous discussion elsewhere

Links to previous discussion of this feature:

No response

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    interpreter-core(Objects, Python, Grammar, and Parser dirs)type-featureA feature request or enhancement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions