Merge branch 'metadata_purge_legacy' into 'master'

metadata: Remove code ensuring YAML 1.2 compatibility

See merge request fdroid/fdroidserver!1328
This commit is contained in:
Hans-Christoph Steiner 2023-04-20 07:59:20 +00:00
commit 331d3663db
3 changed files with 4 additions and 82 deletions

View file

@ -607,33 +607,11 @@ def read_metadata(appids={}, sort_by_time=False):
return apps return apps
# Port legacy ';' separators
list_sep = re.compile(r'[,;]')
def split_list_values(s):
res = []
for v in re.split(list_sep, s):
if not v:
continue
v = v.strip()
if not v:
continue
res.append(v)
return res
def sorted_builds(builds): def sorted_builds(builds):
return sorted(builds, key=lambda build: build.versionCode) return sorted(builds, key=lambda build: build.versionCode)
esc_newlines = re.compile(r'\\( |\n)')
def post_metadata_parse(app): def post_metadata_parse(app):
if 'flavours' in app and app['flavours'] == [True]:
app['flavours'] = 'yes'
for k, v in app.items(): for k, v in app.items():
if fieldtype(k) == TYPE_LIST: if fieldtype(k) == TYPE_LIST:
if isinstance(v, str): if isinstance(v, str):
@ -650,21 +628,6 @@ def post_metadata_parse(app):
if type(v) in (float, int): if type(v) in (float, int):
app[k] = str(v) app[k] = str(v)
def _yaml_bool_unmapable(v):
return v in (True, False, [True], [False])
def _yaml_bool_unmap(v):
if v is True:
return 'yes'
elif v is False:
return 'no'
elif v == [True]:
return ['yes']
elif v == [False]:
return ['no']
_bool_allowed = ('maven')
builds = [] builds = []
if 'Builds' in app: if 'Builds' in app:
for build in app.get('Builds', []): for build in app.get('Builds', []):
@ -673,24 +636,13 @@ def post_metadata_parse(app):
for k, v in build.items(): for k, v in build.items():
if not (v is None): if not (v is None):
if flagtype(k) == TYPE_LIST: if flagtype(k) == TYPE_LIST:
if _yaml_bool_unmapable(v):
build[k] = _yaml_bool_unmap(v)
if isinstance(v, str): if isinstance(v, str):
build[k] = [v] build[k] = [v]
elif isinstance(v, bool):
if v:
build[k] = ['yes']
else:
build[k] = []
elif flagtype(k) is TYPE_INT: elif flagtype(k) is TYPE_INT:
build[k] = v build[k] = v
elif flagtype(k) is TYPE_STRING: elif flagtype(k) is TYPE_STRING:
if isinstance(v, bool) and k in _bool_allowed: if k == 'maven':
build[k] = v build[k] = v
else:
if _yaml_bool_unmapable(v):
build[k] = _yaml_bool_unmap(v)
else: else:
build[k] = str(v) build[k] = str(v)
builds.append(build) builds.append(build)
@ -723,18 +675,6 @@ def post_metadata_parse(app):
# #
bool_true = re.compile(r'([Yy]es|[Tt]rue)')
bool_false = re.compile(r'([Nn]o|[Ff]alse)')
def _decode_bool(s):
if bool_true.match(s):
return True
if bool_false.match(s):
return False
_warn_or_exception(_("Invalid boolean '%s'") % s)
def parse_metadata(metadatapath): def parse_metadata(metadatapath):
"""Parse metadata file, also checking the source repo for .fdroid.yml. """Parse metadata file, also checking the source repo for .fdroid.yml.
@ -894,22 +834,8 @@ def write_yaml(mf, app):
raise FDroidException('currently installed version of ruamel.yaml ({}) is too old, >= 1.13 required.'.format(ruamel.yaml.__version__)) raise FDroidException('currently installed version of ruamel.yaml ({}) is too old, >= 1.13 required.'.format(ruamel.yaml.__version__))
# suiteable version ruamel.yaml imported successfully # suiteable version ruamel.yaml imported successfully
_yaml_bools_true = ('y', 'Y', 'yes', 'Yes', 'YES',
'true', 'True', 'TRUE',
'on', 'On', 'ON')
_yaml_bools_false = ('n', 'N', 'no', 'No', 'NO',
'false', 'False', 'FALSE',
'off', 'Off', 'OFF')
_yaml_bools_plus_lists = []
_yaml_bools_plus_lists.extend(_yaml_bools_true)
_yaml_bools_plus_lists.extend([[x] for x in _yaml_bools_true])
_yaml_bools_plus_lists.extend(_yaml_bools_false)
_yaml_bools_plus_lists.extend([[x] for x in _yaml_bools_false])
def _field_to_yaml(typ, value): def _field_to_yaml(typ, value):
if typ is TYPE_STRING: if typ is TYPE_STRING:
if value in _yaml_bools_plus_lists:
return ruamel.yaml.scalarstring.SingleQuotedScalarString(str(value))
return str(value) return str(value)
elif typ is TYPE_INT: elif typ is TYPE_INT:
return int(value) return int(value)
@ -997,10 +923,6 @@ def write_yaml(mf, app):
ruamel.yaml.round_trip_dump(yaml_app, mf, indent=4, block_seq_indent=2) ruamel.yaml.round_trip_dump(yaml_app, mf, indent=4, block_seq_indent=2)
build_line_sep = re.compile(r'(?<!\\),')
build_cont = re.compile(r'^[ \t]')
def write_metadata(metadatapath, app): def write_metadata(metadatapath, app):
metadatapath = Path(metadatapath) metadatapath = Path(metadatapath)
if metadatapath.suffix == '.yml': if metadatapath.suffix == '.yml':

View file

@ -64,7 +64,7 @@ Builds:
patch: patch:
- manifest-ads.patch - manifest-ads.patch
- mobilecore.patch - mobilecore.patch
maven: 'yes' maven: yes
srclibs: srclibs:
- FacebookSDK@sdk-version-3.0.2 - FacebookSDK@sdk-version-3.0.2

View file

@ -64,7 +64,7 @@ Builds:
patch: patch:
- manifest-ads.patch - manifest-ads.patch
- mobilecore.patch - mobilecore.patch
maven: 'yes' maven: yes
srclibs: srclibs:
- FacebookSDK@sdk-version-3.0.2 - FacebookSDK@sdk-version-3.0.2