Sort packagelist

This commit is contained in:
Ellwood Zwovic
2017-07-13 22:32:51 -07:00
parent 29e2db8952
commit 745331a927

View File

@@ -228,15 +228,20 @@ class Repository:
self.set_from_dict(repodict) self.set_from_dict(repodict)
def to_dict(self) -> dict: def to_dict(self, sort=False) -> dict:
""" """
Return a dict representation of the repository Return a dict representation of the repository
""" """
self.log.debug("Rendering to a dict") if self.packages:
self.log.debug("url: %s", self.url) packages = [p.to_dict() for p in self.packages]
if sort:
packages.sort(key=lambda p: p['bl_info']['name'].lower())
else:
packages = []
return { return {
'name': self.name, 'name': self.name,
'packages': [p.to_dict() for p in self.packages] if self.packages is not None else None, 'packages': packages,
'url': self.url, 'url': self.url,
'_headers': self._headers, '_headers': self._headers,
} }
@@ -497,7 +502,7 @@ def refresh(pipe_to_blender, storage_path: pathlib.Path, repository_url: str):
pipe_to_blender.send(DownloadError(err.status_code, err.message)) pipe_to_blender.send(DownloadError(err.status_code, err.message))
repo.to_file(repo_path) # TODO: this always writes even if repo wasn't changed repo.to_file(repo_path) # TODO: this always writes even if repo wasn't changed
pipe_to_blender.send(Result(repo.to_dict())) pipe_to_blender.send(Result(repo.to_dict(sort=True)))
def debug_hang(): def debug_hang():
"""Hangs for an hour. For testing purposes only.""" """Hangs for an hour. For testing purposes only."""