ENH: Sort computed /ProcSet in a merged page, for reproducibility #1542
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.
This fixes #1531 by sorting the
/ProcSet
array when merging two pages.Inferring from the name and the existing code's use of
frozenset
, I believe/ProcSet
is a set ofNameObject
s, where the order doesn't matter. This means that it is should be fine formerge_page
to always choose a single consistent order for reproducibility, and the easiest order is sorting.Another option would be reproducing the order in the original pages as best as possible (e.g. if page 1 had
/B, /A
and page 2 had/C, /B, /D
, then it could compute/B, /A, /C, /D
, preserving the order for page 1 and page 2, except for duplicating/B
), but this seems like unnecessary complexity.