odb: A couple internal improvements to body parsing/rendering #100
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A few miscellaneous fixes related to
Commit.body
andTree.body
split(maxsplit=1)
, but that will incorrectly lose leading whitespace from the value. Instead, it now explicitly runs.split(b" ", maxsplit=1)
to designate exactly one space character as the separator. This is consistent with how git internally parses those values.O(n^2)
memory usage due to copying each time. (Some python runtimes apparently detect this if the variable isn't used for anything else, but as far as I can find it's still frowned upon). Now, the body parts are yielded from a generator, which is given tob"".join(…)
to construct that contiguous bytestring all at once, giving the internals more leeway for buffer handling.