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 ecbaf3fec6410997dd8142e9ffded932720a2a37 Author: Simon McVittie <[email protected]> Date: Tue Dec 26 16:54:44 2017 +0000 FileGroup: Optionally include contents in to_data() Signed-off-by: Simon McVittie <[email protected]> --- game_data_packager/__init__.py | 5 +++-- game_data_packager/data.py | 36 +++++++++++++++++++++++++++++++++++- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/game_data_packager/__init__.py b/game_data_packager/__init__.py index 59e6ca2..feae963 100644 --- a/game_data_packager/__init__.py +++ b/game_data_packager/__init__.py @@ -365,10 +365,11 @@ class GameData(object): files[filename] = f.to_data(expand=expand) for name, g in self.groups.items(): - groups[name] = g.to_data(expand=expand) + groups[name] = g.to_data(expand=expand, files=self.files) for name, package in self.packages.items(): - packages[name] = package.to_data(expand=expand) + packages[name] = package.to_data( + expand=expand, files=self.files, groups=self.groups) if files: ret['files'] = files diff --git a/game_data_packager/data.py b/game_data_packager/data.py index 33e31b2..3128594 100644 --- a/game_data_packager/data.py +++ b/game_data_packager/data.py @@ -18,6 +18,7 @@ import hashlib import io +import yaml from .version import (GAME_PACKAGE_VERSION) @@ -387,6 +388,14 @@ class PackageRelation: def __repr__(self): return 'PackageRelation(' + repr(self.to_data()) + ')' +class YamlLiteral(str): + @classmethod + def to_yaml(cls, dumper, data): + return dumper.represent_scalar( + 'tag:yaml.org,2002:str', data, style='|') + +yaml.add_representer(YamlLiteral, YamlLiteral.to_yaml) + class FileGroup: __APPLY_TO_ALL = ( 'doc', 'executable', 'install_to', 'license', 'unsuitable', @@ -410,7 +419,7 @@ class FileGroup: if value is not None: setattr(other, attr, value) - def to_data(self, expand=True): + def to_data(self, expand=True, files=None): ret = {} for attr in self.__APPLY_TO_ALL: @@ -419,6 +428,31 @@ class FileGroup: if value is not None: ret[attr] = value + if self.group_members: + if files is None: + ret['group_members'] = sorted(self.group_members) + else: + group_members = [] + + for name in sorted(self.group_members): + if name in files: + f = files[name] + size = f.size + md5 = f.md5 + else: + size = '_' + md5 = '_' + + if size is None: + size = '_' + + if md5 is None: + md5 = '_' + + group_members.append('%-9s %s %s\n' % (size, md5, name)) + + ret['group_members'] = YamlLiteral(''.join(group_members)) + return ret class Package(object): -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

