mirror of
https://github.com/f-droid/fdroidserver.git
synced 2025-11-06 07:20:29 +03:00
metadata: always open metadata files as UTF-8
Windows seems to require this, otherwise this happens:
Traceback (most recent call last):
File "tests/update.TestCase", line 737, in test_translate_per_build_anti_features
apps = fdroidserver.metadata.read_metadata(xref=True)
File "C:\Users\travis\build\fdroidtravis\fdroidserver\fdroidserver\metadata.py", line 813, in read_metadata
app = parse_metadata(metadatapath, appid in check_vcs, refresh)
File "C:\Users\travis\build\fdroidtravis\fdroidserver\fdroidserver\metadata.py", line 1023, in parse_metadata
parse_yaml_metadata(mf, app)
File "C:\Users\travis\build\fdroidtravis\fdroidserver\fdroidserver\metadata.py", line 1073, in parse_yaml_metadata
yamldata = yaml.safe_load(mf)
File "C:\python37\lib\site-packages\yaml\__init__.py", line 162, in safe_load
return load(stream, SafeLoader)
File "C:\python37\lib\site-packages\yaml\__init__.py", line 112, in load
loader = Loader(stream)
File "C:\python37\lib\site-packages\yaml\loader.py", line 34, in __init__
Reader.__init__(self, stream)
File "C:\python37\lib\site-packages\yaml\reader.py", line 85, in __init__
self.determine_encoding()
File "C:\python37\lib\site-packages\yaml\reader.py", line 124, in determine_encoding
self.update_raw()
File "C:\python37\lib\site-packages\yaml\reader.py", line 178, in update_raw
data = self.stream.read(size)
File "C:\python37\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 37: character maps to <undefined>
This commit is contained in:
parent
c12007c260
commit
a6d35a7ee1
5 changed files with 13 additions and 13 deletions
|
|
@ -482,7 +482,7 @@ def parse_yaml_srclib(metadatapath):
|
|||
if type(data) is not dict:
|
||||
if platform.system() == 'Windows':
|
||||
# Handle symlink on Windows
|
||||
symlink = metadatapath.parent / metadatapath.read_text()
|
||||
symlink = metadatapath.parent / metadatapath.read_text(encoding='utf-8')
|
||||
if symlink.is_file():
|
||||
with symlink.open("r", encoding="utf-8") as s:
|
||||
data = yaml.load(s, Loader=SafeLoader)
|
||||
|
|
@ -740,7 +740,7 @@ def parse_metadata(metadatapath):
|
|||
app.id = name
|
||||
|
||||
if metadatapath.suffix == '.yml':
|
||||
with metadatapath.open('r') as mf:
|
||||
with metadatapath.open('r', encoding='utf-8') as mf:
|
||||
parse_yaml_metadata(mf, app)
|
||||
else:
|
||||
_warn_or_exception(_('Unknown metadata format: {path} (use: *.yml)')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue