@@ -183,36 +183,39 @@ def _create_pdf_info_dict(backend, metadata):
183
183
info = {k : v for (k , v ) in info .items () if v is not None }
184
184
185
185
def is_string_like (x ):
186
+ """an instance of str"""
186
187
return isinstance (x , str )
187
188
188
189
def is_date (x ):
190
+ """an instance of datetime.datetime"""
189
191
return isinstance (x , datetime )
190
192
191
193
def check_trapped (x ):
194
+ """one of {"True", "False", "Unknown"}"""
192
195
if isinstance (x , Name ):
193
196
return x .name in (b'True' , b'False' , b'Unknown' )
194
197
else :
195
198
return x in ('True' , 'False' , 'Unknown' )
196
199
197
200
keywords = {
198
- 'Title' : ( is_string_like , 'an instance of str' ) ,
199
- 'Author' : ( is_string_like , 'an instance of str' ) ,
200
- 'Subject' : ( is_string_like , 'an instance of str' ) ,
201
- 'Keywords' : ( is_string_like , 'an instance of str' ) ,
202
- 'Creator' : ( is_string_like , 'an instance of str' ) ,
203
- 'Producer' : ( is_string_like , 'an instance of str' ) ,
204
- 'CreationDate' : ( is_date , 'an instance of datetime.datetime' ) ,
205
- 'ModDate' : ( is_date , 'an instance of datetime.datetime' ) ,
206
- 'Trapped' : ( check_trapped , 'one of {"True", "False", "Unknown"}' ) ,
201
+ 'Title' : is_string_like ,
202
+ 'Author' : is_string_like ,
203
+ 'Subject' : is_string_like ,
204
+ 'Keywords' : is_string_like ,
205
+ 'Creator' : is_string_like ,
206
+ 'Producer' : is_string_like ,
207
+ 'CreationDate' : is_date ,
208
+ 'ModDate' : is_date ,
209
+ 'Trapped' : check_trapped ,
207
210
}
208
211
for k in info :
209
212
if k not in keywords :
210
213
cbook ._warn_external (f'Unknown infodict keyword: { k !r} . '
211
214
f'Must be one of { set (keywords )!r} .' )
212
- elif not keywords [k ][ 0 ] (info [k ]):
215
+ elif not keywords [k ](info [k ]):
213
216
cbook ._warn_external (f'Bad value for infodict keyword { k } . '
214
217
f'Got { info [k ]!r} which is not '
215
- f'{ keywords [k ][ 1 ] } .' )
218
+ f'{ keywords [k ]. __doc__ } .' )
216
219
if 'Trapped' in info :
217
220
info ['Trapped' ] = Name (info ['Trapped' ])
218
221
0 commit comments