Skip to content

Commit fe82d93

Browse files
committed
Remove support for internal source loops
1 parent 492fe21 commit fe82d93

1 file changed

Lines changed: 19 additions & 18 deletions

File tree

repology/repomgr.py

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
def _subst_source_recursively(data: T, name: str) -> T:
4242
if isinstance(data, str):
4343
if '{source}' in data:
44-
warnings.warn('{source} substitution in repo config', DeprecationWarning)
44+
raise RuntimeError('{source} substitution in repo config')
4545
return data.replace('{source}', name) # type: ignore
4646
elif isinstance(data, list):
4747
return [_subst_source_recursively(item, name) for item in data] # type: ignore
@@ -155,24 +155,25 @@ def __init__(self, repositories_config: YamlConfig) -> None:
155155
if sourcedata.get('disabled', False):
156156
continue
157157

158-
for name in _listify(sourcedata['name']):
159-
# if there are multiple names, clone source data for each of them
160-
processed_sourcedata = _subst_source_recursively(copy.deepcopy(sourcedata), name)
161-
sources.append(
162-
Source(
163-
name=name,
164-
subrepo=processed_sourcedata.get('subrepo'),
165-
fetcher=processed_sourcedata['fetcher'],
166-
parser=processed_sourcedata['parser'],
167-
packagelinks=[
168-
PackageLink(
169-
type=LinkType.from_string(linkdata['type']),
170-
url=linkdata['url'],
171-
priority=linkdata.get('priority', 1),
172-
)
173-
for linkdata in processed_sourcedata.get('packagelinks', [])],
174-
)
158+
if not isinstance(sourcedata['name'], str):
159+
raise RuntimeError('loops over source name are not supported')
160+
161+
processed_sourcedata = _subst_source_recursively(copy.deepcopy(sourcedata), '')
162+
sources.append(
163+
Source(
164+
name=sourcedata['name'],
165+
subrepo=processed_sourcedata.get('subrepo'),
166+
fetcher=processed_sourcedata['fetcher'],
167+
parser=processed_sourcedata['parser'],
168+
packagelinks=[
169+
PackageLink(
170+
type=LinkType.from_string(linkdata['type']),
171+
url=linkdata['url'],
172+
priority=linkdata.get('priority', 1),
173+
)
174+
for linkdata in processed_sourcedata.get('packagelinks', [])],
175175
)
176+
)
176177

177178
extra_groups.add(sourcedata['fetcher']['class'])
178179
extra_groups.add(sourcedata['parser']['class'])

0 commit comments

Comments
 (0)