mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-19 19:18:27 +00:00

The recent switch to Python3 (2ccdf0e396e82dd) introduced a regression that led to file content no longer being compared: In compareEntries(), two generators/iterators are created: sourceInfoList = filter(lambda sourceInfo: …, sourceZip.infolist()) destinationInfoList = filter(lambda destinationInfo: …, destinationZip.infolist()) Few lines later, those are exhausted: if len(sourceInfoList) != len(destinationInfoList): Yet another few lines later, the exhausted generator is used again: for sourceEntryInfo in sourceInfoList: … # <-- unreachable This is caused by behavioral differences between Python2 and Python3: user@z_signal:~$ python2 Python 2.7.13 (default, Sep 26 2018, 18:42:22) [GCC 6.3.0 20170516] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> f = filter(lambda i: i % 2 == 0, [0, 1, 2, 3, 4, 5, 6]) >>> list(f) [0, 2, 4, 6] >>> list(f) [0, 2, 4, 6] >>> user@z_signal:~$ python3 Python 3.5.3 (default, Sep 27 2018, 17:25:39) [GCC 6.3.0 20170516] on linux Type "help", "copyright", "credits" or "license" for more information. >>> f = filter(lambda i: i % 2 == 0, [0, 1, 2, 3, 4, 5, 6]) >>> list(f) [0, 2, 4, 6] >>> list(f) [] >>>