objectif
Fixer mtime à 0 pour des octets gzip identiques à contenu égal.
code minimal
import gzip, io
def comp(data: bytes) -> bytes:
buf = io.BytesIO()
with gzip.GzipFile(fileobj=buf, mode="wb", mtime=0) as f:
f.write(data)
return buf.getvalue()
a, b = comp(b"x"), comp(b"x")
print(a == b) # attendu: True
utilisation
import gzip, io
buf = io.BytesIO()
with gzip.GzipFile(fileobj=buf, mode="wb", mtime=0) as f:
f.write(b"hello")
print(buf.getvalue().startswith(b"\x1f\x8b"))
variante(s) utile(s)
import gzip
print(callable(gzip.GzipFile))
notes
- mtime=0 neutralise l’horodatage dans l’entête gzip.
- Combinez avec un niveau de compression constant.