view python/dependencies.py @ 839:0bc7ec47bf0f

python litters so much, but lets turn a blind eye
author Jeff Hammel <k0scist@gmail.com>
date Fri, 31 Mar 2017 16:52:35 -0700
parents af52700d1ce0
children
line wrap: on
line source

#!/usr/bin/env python

"""
illustrate overriding ``setuptools.setup`` to read package data
"""

import imp
import os
import pprint
import sys

current_module = None
info = {}

def setup(**kwargs):
    assert current_module
    info[current_module] = kwargs

def main(args=sys.argv[1:]):

    global current_module
    current_module = None

    setuptools = sys.modules.get('setuptools')
    sys.modules['setuptools'] = sys.modules[__name__]

    try:
        for setup_py in args:
            current_module = setup_py
            assert os.path.exists(setup_py)
            module = imp.load_source('setup', setup_py)
    finally:
        sys.modules.pop('setuptools')
        if setuptools:
            sys.modules['setuptools'] = setuptoools

    pprint.pprint(info)

if __name__ == '__main__':
    main()