Mercurial > hg > PaInt
view paint/info.py @ 54:a8236b97abd3
separate methods for gathering package information
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Wed, 23 Jan 2013 15:12:37 -0800 |
parents | |
children | 042a1b2a3e8a |
line wrap: on
line source
""" interfaces to get information from a package """ import os import sys class PackageInfo(object): """abstract base class of package info""" def __init__(self, path): """ - path : path to setup.py or its directory """ if os.path.isdir(path): path = os.path.join(path, 'setup.py') assert os.path.exists(path), "'%s' not found" % path self.setup_py = os.path.abspath(path) def __call__(self): """returns dictionary of package info""" raise NotImplementedError("abstract base class") class SetupOverridePackageInfo(PackageInfo): """ gather setup.py information by overriding the function """ def __call__(self): setuptools = sys.modules.get('setuptools') sys.modules['setuptools'] = sys.modules[__name__] globals()['setup'] = self._setup try: return self.__dict__.pop('_info') def _setup(self, **kwargs): self._info = kwargs