File tree Expand file tree Collapse file tree 3 files changed +18
-5
lines changed
Expand file tree Collapse file tree 3 files changed +18
-5
lines changed Original file line number Diff line number Diff line change @@ -84,15 +84,15 @@ def _parse_encoding(
8484 else :
8585 raise Exception ("not found" )
8686 except Exception :
87- logger_error (f "Advanced encoding { enc } not implemented yet" , __name__ )
87+ logger_error ("Advanced encoding %(encoding)s not implemented yet" , source = __name__ , encoding = enc )
8888 encoding = enc
8989 elif isinstance (enc , DictionaryObject ) and "/BaseEncoding" in enc :
9090 try :
9191 encoding = charset_encoding [cast (str , enc ["/BaseEncoding" ])].copy ()
9292 except Exception :
9393 logger_error (
94- f "Advanced encoding { encoding } not implemented yet" ,
95- __name__ ,
94+ "Advanced encoding %( encoding)s not implemented yet" ,
95+ source = __name__ , encoding = encoding
9696 )
9797 encoding = charset_encoding ["/StandardEncoding" ].copy ()
9898 else :
Original file line number Diff line number Diff line change @@ -440,7 +440,7 @@ def deprecation_no_replacement(name: str, removed_in: str) -> None:
440440 deprecation (f"{ name } is deprecated and was removed in pypdf { removed_in } ." )
441441
442442
443- def logger_error (msg : str , src : str ) -> None :
443+ def logger_error (message : str , * , source : str , ** values : Any ) -> None :
444444 """
445445 Use this instead of logger.error directly.
446446
@@ -449,7 +449,7 @@ def logger_error(msg: str, src: str) -> None:
449449 See the docs on when to use which:
450450 https://pypdf.readthedocs.io/en/latest/user/suppress-warnings.html
451451 """
452- logging .getLogger (src ).error (msg )
452+ logging .getLogger (source ).error (message , values )
453453
454454
455455def logger_warning (msg : str , src : str ) -> None :
Original file line number Diff line number Diff line change 2121 deprecate_with_replacement ,
2222 deprecation_no_replacement ,
2323 format_iso8824_date ,
24+ logger_error ,
2425 mark_location ,
2526 matrix_multiply ,
2627 parse_iso8824_date ,
3334 skip_over_whitespace ,
3435)
3536from pypdf .errors import DeprecationError , PdfReadError , PdfStreamError
37+ from pypdf .generic import DictionaryObject , NameObject , TextStringObject
3638
3739from . import is_sublist
3840
@@ -331,6 +333,17 @@ def foo() -> None:
331333 foo ()
332334
333335
336+ def test_logger_error (caplog ):
337+ enc = NameObject ("/Invalid" )
338+ message = "Advanced encoding %(encoding)s not implemented yet"
339+ logger_error (message , source = __name__ , encoding = enc )
340+ assert "Advanced encoding /Invalid not implemented yet" in caplog .text
341+ encoding = DictionaryObject ({NameObject ("/key" ): TextStringObject ("value" )})
342+ message = "Advanced encoding %(encoding)s not implemented yet"
343+ logger_error (message , source = __name__ , encoding = encoding )
344+ assert "Advanced encoding {'/key': 'value'} not implemented yet" in caplog .text
345+
346+
334347def test_rename_kwargs ():
335348 def deprecation_bookmark_nofail (** aliases : str ) -> Callable :
336349 """
You can’t perform that action at this time.
0 commit comments