mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-02-04 21:50:54 +03:00
Fix 'BytesWarning: Comparison between bytes and string' in PdfDict
When bytes warnings are enabled with the '-b' argument, the PdfDict class would emit a warning. https://docs.python.org/3/using/cmdline.html#miscellaneous-options > -b > > Issue a warning when comparing bytes or bytearray with str or bytes > with int. Object attributes are always type str, so can safely encode them without a type check. Observe: $ python3 >>> o = object() >>> setattr(o, b'foo', b'bar') Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: attribute name must be string, not 'bytes'
This commit is contained in:
parent
b62ff510aa
commit
c41ec5b115
|
@ -269,18 +269,13 @@ class PdfDict(UserDict):
|
||||||
else:
|
else:
|
||||||
self.__dict__[key] = value
|
self.__dict__[key] = value
|
||||||
else:
|
else:
|
||||||
if isinstance(key, str):
|
self[key.encode("us-ascii")] = value
|
||||||
key = key.encode("us-ascii")
|
|
||||||
self[key] = value
|
|
||||||
|
|
||||||
def __getattr__(self, key):
|
def __getattr__(self, key):
|
||||||
try:
|
try:
|
||||||
value = self[key]
|
value = self[key.encode("us-ascii")]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
try:
|
raise AttributeError(key)
|
||||||
value = self[key.encode("us-ascii")]
|
|
||||||
except KeyError:
|
|
||||||
raise AttributeError(key)
|
|
||||||
if isinstance(value, bytes):
|
if isinstance(value, bytes):
|
||||||
value = decode_text(value)
|
value = decode_text(value)
|
||||||
if key.endswith("Date"):
|
if key.endswith("Date"):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user