-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Minor tweaks to pdf Name. #23287
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Minor tweaks to pdf Name. #23287
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Fix `__str__` for Python3. `__str__` is never actually used (but can be nice to have for debugging purposes); still, `str(Name("foo"))` currently returns `/b'foo'` where the surrounding `b''` is almost certainly a fallout from the Py2/Py3 str transition; the intent was to return the same thing as `pdfRepr`, but ascii-decoded. Fix that. - Micro-optimize hex escapes. In the presence of characters to be escaped, `str.translate` is quite faster than `regex.sub`: `$ python -mtimeit -s 'from matplotlib.backends.backend_pdf import Name' 'Name("foo\xff\x01")'` shows a >2x speedup, for example. (There is no difference when no characters are actually subbed. I guess the overhead likely comes from the function calls?) This is unlikely to matter in reality, but is also shorter and just as legible (perhaps even a bit better), so...
timhoffm
approved these changes
Jun 16, 2022
oscargus
approved these changes
Jun 16, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Assuming and trusting you that hexify
is private enough to not need to be deprecated.
Didn't mean to close... |
This was referenced Jun 16, 2022
oscargus
pushed a commit
to oscargus/matplotlib
that referenced
this pull request
Jun 18, 2022
- Fix `__str__` for Python3. `__str__` is never actually used (but can be nice to have for debugging purposes); still, `str(Name("foo"))` currently returns `/b'foo'` where the surrounding `b''` is almost certainly a fallout from the Py2/Py3 str transition; the intent was to return the same thing as `pdfRepr`, but ascii-decoded. Fix that. - Micro-optimize hex escapes. In the presence of characters to be escaped, `str.translate` is quite faster than `regex.sub`: `$ python -mtimeit -s 'from matplotlib.backends.backend_pdf import Name' 'Name("foo\xff\x01")'` shows a >2x speedup, for example. (There is no difference when no characters are actually subbed. I guess the overhead likely comes from the function calls?) This is unlikely to matter in reality, but is also shorter and just as legible (perhaps even a bit better), so...
jklymak
pushed a commit
to jklymak/matplotlib
that referenced
this pull request
Jun 24, 2022
- Fix `__str__` for Python3. `__str__` is never actually used (but can be nice to have for debugging purposes); still, `str(Name("foo"))` currently returns `/b'foo'` where the surrounding `b''` is almost certainly a fallout from the Py2/Py3 str transition; the intent was to return the same thing as `pdfRepr`, but ascii-decoded. Fix that. - Micro-optimize hex escapes. In the presence of characters to be escaped, `str.translate` is quite faster than `regex.sub`: `$ python -mtimeit -s 'from matplotlib.backends.backend_pdf import Name' 'Name("foo\xff\x01")'` shows a >2x speedup, for example. (There is no difference when no characters are actually subbed. I guess the overhead likely comes from the function calls?) This is unlikely to matter in reality, but is also shorter and just as legible (perhaps even a bit better), so...
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fix
__str__
for Python3.__str__
is never actually used (but can be nice to have fordebugging purposes); still,
str(Name("foo"))
currently returns/b'foo'
where the surroundingb''
is almost certainly a falloutfrom the Py2/Py3 str transition; the intent was to return the same
thing as
pdfRepr
, but ascii-decoded. Fix that.Micro-optimize hex escapes.
In the presence of characters to be escaped,
str.translate
is quitefaster than
regex.sub
:$ python -mtimeit -s 'from matplotlib.backends.backend_pdf import Name' 'Name("foo\xff\x01")'
shows a >2x speedup, for example.
(There is no difference when no characters are actually subbed. I
guess the overhead likely comes from the function calls?)
This is unlikely to matter in reality, but is also shorter and just as
legible (perhaps even a bit better), so...
PR Summary
PR Checklist
Tests and Styling
pytest
passes).flake8-docstrings
and runflake8 --docstring-convention=all
).Documentation
doc/users/next_whats_new/
(follow instructions in README.rst there).doc/api/next_api_changes/
(follow instructions in README.rst there).