Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 79c26b4

Browse files
committed
Omit metadata tag if it's empty
1 parent ed4b877 commit 79c26b4

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

lib/matplotlib/backends/backend_svg.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -370,23 +370,30 @@ def _write_metadata(self, metadata):
370370
else:
371371
metadata['Date'] = datetime.datetime.today().isoformat()
372372

373-
mid = writer.start('metadata')
374-
writer.start('rdf:RDF', attrib={
373+
mid = None
374+
def ensure_metadata(mid):
375+
if mid is not None:
376+
return mid
377+
mid = writer.start('metadata')
378+
writer.start('rdf:RDF', attrib={
375379
'xmlns:dc': "http://purl.org/dc/elements/1.1/",
376380
'xmlns:cc': "http://creativecommons.org/ns#",
377381
'xmlns:rdf': "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
378382
})
379-
writer.start('cc:Work')
383+
writer.start('cc:Work')
384+
return mid
380385

381386
uri = metadata.pop('Type', None)
382387
if uri is not None:
388+
mid = ensure_metadata(mid)
383389
writer.element('dc:type', attrib={'rdf:resource': uri})
384390

385391
# Single value only.
386392
for key in ['title', 'coverage', 'date', 'description', 'format',
387393
'identifier', 'language', 'relation', 'source']:
388394
info = metadata.pop(key.title(), None)
389395
if info is not None:
396+
mid = ensure_metadata(mid)
390397
writer.element(f'dc:{key}', text=info)
391398

392399
# Multiple Agent values.
@@ -398,6 +405,7 @@ def _write_metadata(self, metadata):
398405
if isinstance(agents, str):
399406
agents = [agents]
400407

408+
mid = ensure_metadata(mid)
401409
writer.start(f'dc:{key}')
402410
for agent in agents:
403411
writer.start('cc:Agent')
@@ -411,14 +419,16 @@ def _write_metadata(self, metadata):
411419
if isinstance(keywords, str):
412420
keywords = [keywords]
413421

422+
mid = ensure_metadata(mid)
414423
writer.start('dc:subject')
415424
writer.start('rdf:Bag')
416425
for keyword in keywords:
417426
writer.element('rdf:li', text=keyword)
418427
writer.end('rdf:Bag')
419428
writer.end('dc:subject')
420429

421-
writer.close(mid)
430+
if mid is not None:
431+
writer.close(mid)
422432

423433
if metadata:
424434
raise ValueError('Unknown metadata key(s) passed to SVG writer: ' +

0 commit comments

Comments
 (0)