Skip to content

Add bytearray.resize() method #129559

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

Activity

  1. added a commit that references this issue on Feb 1, 2025
  2. changed the title [-]Expose PyByteArray_Resize on Python bytearray objects[/-] [+]Add bytearray.resize() method[/+] on Feb 2, 2025
  3. changed the title [-]Add bytearray.resize() method[/-] [+]Add `bytearray.resize()` method[/+] on Feb 3, 2025
  4. added a commit that references this issue on Feb 5, 2025
  5. gpshead commented on Feb 5, 2025

    @gpshead
    Member

    thanks!

  6. added a commit that references this issue on Feb 7, 2025
  7. added a commit that references this issue on Feb 8, 2025
  8. added a commit that references this issue on Oct 14, 2025
  9. added a commit that references this issue on Oct 15, 2025
  10. added a commit that references this issue on Oct 15, 2025
  11. added a commit that references this issue on Oct 15, 2025
  12. added a commit that references this issue on Nov 19, 2025
  13. added a commit that references this issue on Nov 21, 2025
  14. added a commit that references this issue on Nov 22, 2025
  15. added a commit that references this issue on Nov 22, 2025
  16. added 2 commits that reference this issue on Dec 6, 2025
  17. added a commit that references this issue on Dec 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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