test.py prints the contents of the namespace map.
run.sh runs the test on the 2 versions between which the change was introduced.
Dockerfile is needed by run.sh.
I consider this a potential bug, because it breaks compatibility with existing software and I couldn't find the expected format of the namespace map in the docs or release notes. See for example beautifulsoup4 and the following test:
Please see my findings at https:/ /stackoverflow. com/questions/ 57687116/ is-there- a-contract- for-namespace- map-argument- of-targets- start-method- in-lxml
test.py prints the contents of the namespace map.
run.sh runs the test on the 2 versions between which the change was introduced.
Dockerfile is needed by run.sh.
My output from run.sh (results.txt) is: info(major= 3, minor=7, micro=4, releaselevel= 'final' , serial=0) www.w3. org/ns/ ttml', 'tts': 'http:// www.w3. org/ns/ ttml#styling'} info(major= 3, minor=7, micro=4, releaselevel= 'final' , serial=0) www.w3. org/ns/ ttml', 'tts': 'http:// www.w3. org/ns/ ttml#styling'}
Python : sys.version_
lxml.etree : (4, 4, 0, 0)
libxml used : (2, 9, 9)
libxml compiled : (2, 9, 9)
libxslt used : (1, 1, 33)
libxslt compiled : (1, 1, 33)
{'': 'http://
---
Python : sys.version_
lxml.etree : (4, 3, 5, 0)
libxml used : (2, 9, 9)
libxml compiled : (2, 9, 9)
libxslt used : (1, 1, 33)
libxslt compiled : (1, 1, 33)
{None: 'http://
---
I consider this a potential bug, because it breaks compatibility with existing software and I couldn't find the expected format of the namespace map in the docs or release notes. See for example beautifulsoup4 and the following test:
#!/usr/bin/env python3
DFXP_BASE_MARKUP = ''' www.w3. org/ns/ ttml" xmlns:tts="http:// www.w3. org/ns/ ttml#styling" />
<tt xmlns="http://
'''
from bs4 import BeautifulSoup
b = BeautifulSoup( DFXP_BASE_ MARKUP, 'lxml-xml)
print(b.prettify())
On lxml-4.4.0 it produces invalid XML.
On lxml-4.3.5 the output is valid.