Source code for bibliopixel.commands.info

"""
Print information about BiblioPixel
"""

DESCRIPTION = """
Prints the versions of BiblioPixel's dependencies, and the platform
that the program is running on.
"""

import datetime, os, platform, sys
import bibliopixel, BiblioPixelAnimations, loady
from bibliopixel.util import log
from bibliopixel.util.platform import Platform

NONE = '(none)'
MODULES = bibliopixel, BiblioPixelAnimations, loady


[docs]def run(args): platform = Platform() now = datetime.datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S') bp_path = sys.argv[0] library_path = os.path.dirname(bibliopixel.__file__) dependencies = '\n'.join(_dependency(m) for m in MODULES) if platform.cpuinfo: cpuinfo = CPUINFO % '\n'.join(platform.cpuinfo) else: cpuinfo = '' log.printer(MESSAGE.format(**locals()))
[docs]def add_arguments(parser): parser.set_defaults(run=run)
def _dependency(module): path = os.path.dirname(module.__file__) parent = os.path.dirname(path) try: fp = open(os.path.join(path, 'VERSION')) except: try: fp = open(os.path.join(parent, 'VERSION')) except: fp = None version = fp.read().strip() if fp else NONE try: import git repo = git.Repo(os.path.dirname(path)) except: commit_id = tag = NONE else: commit_id = repo.commit('HEAD').hexsha[:7] tag = repo.tags[-1].name if repo.tags else '(none)' return (' %s: version %s, git commit: %s, git tag %s' % (module.__name__, version, commit_id, tag)) MESSAGE = """\ Timestamp: {now} Python version: {platform.python_version} `bp` path: {bp_path} Library path: {library_path} Platform: {platform.platform} Platform version: {platform.platform_version} Platform release: {platform.release} Dependencies: {dependencies} {cpuinfo}""" CPUINFO = """ cpuinfo -------------------------------------------------------------------------------- %s -------------------------------------------------------------------------------- """