[game-data-packager] 03/14: to_yaml: turn sets into sorted lists, and output more fields
Simon McVittie
smcv at debian.org
Mon Nov 2 00:49:17 UTC 2015
This is an automated email from the git hooks/post-receive script.
smcv pushed a commit to branch master
in repository game-data-packager.
commit 423613870b49577d059028904f880c68b3f72825
Author: Simon McVittie <smcv at debian.org>
Date: Mon Nov 2 00:31:53 2015 +0000
to_yaml: turn sets into sorted lists, and output more fields
---
debian/changelog | 1 +
game_data_packager/__init__.py | 129 +++++++++++++++++++++++++++--------------
2 files changed, 88 insertions(+), 42 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 6319df9..ff35637 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -16,6 +16,7 @@ game-data-packager (44) UNRELEASED; urgency=medium
[ Simon McVittie ]
* quake, quake2: make aliases consistently strings
* Always build vfs.zip, and optionally use it even when uninstalled
+ * to_yaml: turn sets into sorted lists, and output more fields
-- Simon McVittie <smcv at debian.org> Sun, 01 Nov 2015 11:10:56 +0100
diff --git a/game_data_packager/__init__.py b/game_data_packager/__init__.py
index 247e69c..609c959 100644
--- a/game_data_packager/__init__.py
+++ b/game_data_packager/__init__.py
@@ -95,23 +95,41 @@ class WantedFile(HashedFile):
self._provides = set(value)
def to_yaml(self):
- return {
- 'alternatives': self.alternatives,
+ ret = {
'distinctive_name': self.distinctive_name,
- 'distinctive_size': self.distinctive_size,
- 'download': self.download,
- 'executable': self.executable,
- 'install_as': self.install_as,
- 'install_to': self.install_to,
- 'license': self.license,
- 'look_for': list(self.look_for),
'name': self.name,
- 'provides': list(self.provides),
'size': self.size,
- 'skip_hash_matching': self.skip_hash_matching,
- 'unpack': self.unpack,
}
+ for k in (
+ 'alternatives',
+ 'distinctive_size',
+ 'executable',
+ 'license',
+ 'look_for',
+ 'provides',
+ 'skip_hash_matching',
+ ):
+ v = getattr(self, k)
+ if v:
+ if isinstance(v, set):
+ ret[k] = sorted(v)
+ else:
+ ret[k] = v
+
+ for k in (
+ 'download',
+ 'install_as',
+ 'install_to',
+ 'unsuitable',
+ 'unpack',
+ ):
+ v = getattr(self, k)
+ if v is not None:
+ ret[k] = v
+
+ return ret
+
class GameDataPackage(object):
def __init__(self, name):
# The name of the binary package
@@ -272,24 +290,56 @@ class GameDataPackage(object):
self.langs = [value]
def to_yaml(self):
- return {
+ ret = {
'architecture': self.architecture,
- 'demo_for': sorted(self.demo_for),
- 'better_version': self.better_version,
- 'expansion_for': self.expansion_for,
- 'install': sorted(self.install),
+ 'component': self.component,
'install_to': self.install_to,
- 'install_to_docdir': self.install_to_docdir,
'name': self.name,
- 'optional': sorted(self.optional),
- 'rip_cd': self.rip_cd,
- 'steam': self.steam,
- 'gog': self.gog,
- 'origin': self.origin,
- 'symlinks': self.symlinks,
+ 'section': self.section,
'type': self.type,
+ 'version': self.version,
}
+ for k in (
+ 'aliases',
+ 'debian',
+ 'demo_for',
+ 'dotemu',
+ 'gog',
+ 'install',
+ 'install_contents_of',
+ 'install_to_docdir',
+ 'optional',
+ 'origin',
+ 'rip_cd',
+ 'steam',
+ 'symlinks',
+ ):
+ v = getattr(self, k)
+ if v:
+ if isinstance(v, set):
+ ret[k] = sorted(v)
+ else:
+ ret[k] = v
+
+ for k in (
+ 'better_version',
+ 'copyright',
+ 'description',
+ 'disks',
+ 'engine',
+ 'expansion_for',
+ 'expansion_for_ext',
+ 'longname',
+ 'url_misc',
+ 'wiki',
+ ):
+ v = getattr(self, k)
+ if v is not None:
+ ret[k] = v
+
+ return ret
+
class GameData(object):
def __init__(self, shortname, data):
# The name of the game for command-line purposes, e.g. quake3
@@ -555,35 +605,30 @@ class GameData(object):
def to_yaml(self):
files = {}
- providers = {}
packages = {}
- known_filenames = {}
- known_sizes = {}
+
+ def sort_set_values(d):
+ ret = {}
+ for k, v in d.items():
+ assert isinstance(v, set), (repr(k), repr(v))
+ ret[k] = sorted(v)
for filename, f in self.files.items():
files[filename] = f.to_yaml()
- for provided, by in self.providers.items():
- providers[provided] = list(by)
-
- for size, known in self.known_sizes.items():
- known_sizes[size] = list(known)
-
- for filename, known in self.known_filenames.items():
- known_filenames[filename] = list(known)
-
for name, package in self.packages.items():
packages[name] = package.to_yaml()
return {
+ 'copyright_notice': self.copyright_notice,
'help_text': self.help_text,
- 'known_filenames': known_filenames,
- 'known_md5s': self.known_md5s,
- 'known_sha1s': self.known_sha1s,
- 'known_sha256s': self.known_sha256s,
- 'known_sizes': known_sizes,
+ 'known_filenames': sort_set_values(self.known_filenames),
+ 'known_md5s': sort_set_values(self.known_md5s),
+ 'known_sha1s': sort_set_values(self.known_sha1s),
+ 'known_sha256s': sort_set_values(self.known_sha256s),
+ 'known_sizes': sort_set_values(self.known_sizes),
'packages': packages,
- 'providers': providers,
+ 'providers': sort_set_values(self.providers),
'files': files,
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git
More information about the Pkg-games-commits
mailing list