comparison paint/info.py @ 73:5b10f2c03cb9

more stubbing of something really stupid that is really hard
author Jeff Hammel <jhammel@mozilla.com>
date Sun, 27 Jan 2013 18:19:14 -0800
parents da69d58f960d
children 84890934af1f
comparison
equal deleted inserted replaced
72:017b75cd61d8 73:5b10f2c03cb9
1 """ 1 """
2 interfaces to get information from a package 2 interfaces to get information from a package
3 """ 3 """
4
4 5
5 import imp 6 import imp
6 import os 7 import os
7 import subprocess 8 import subprocess
8 import sys 9 import sys
9 10
11 from distutils.dist import Distribution
10 from distutils.dist import DistributionMetadata 12 from distutils.dist import DistributionMetadata
11 from subprocess import check_call as call 13 from subprocess import check_call as call
14 from StringIO import StringIO
12 15
13 # TODO: 16 # TODO:
14 # Reconcile the difference between the keys (and values) between the different 17 # Reconcile the difference between the keys (and values) between the different
15 # implementations. Pick a canon and stick with it. 18 # implementations. Pick a canon and stick with it.
16 19
24 # Metadata for Python Software Packages 27 # Metadata for Python Software Packages
25 28
26 29
27 # TODO: consider using pkginfo 30 # TODO: consider using pkginfo
28 31
29 def setup2metadata(**kwargs): 32 def setup2metadata(**attrs):
30 """ 33 """
31 convert setup arguments to standard python metadata: 34 convert setup arguments to standard python metadata:
32 http://www.python.org/dev/peps/pep-0314/ 35 http://www.python.org/dev/peps/pep-0314/
33 """ 36 """
34 metadata = DistributionMetadata() 37 distribution = Distribution(kwargs)
38 buffer = StringIO()
39 distribution.metadata.write_pkg_file(buffer)
35 raise NotImplementedError("TODO") 40 raise NotImplementedError("TODO")
36 41
37 42
38 class PackageInfo(object): 43 class PackageInfo(object):
39 """abstract base class of package info""" 44 """abstract base class of package info"""
47 self.setup_py = os.path.abspath(path) 52 self.setup_py = os.path.abspath(path)
48 53
49 def __call__(self): 54 def __call__(self):
50 """returns dictionary of package info""" 55 """returns dictionary of package info"""
51 raise NotImplementedError("abstract base class") 56 raise NotImplementedError("abstract base class")
52
53 def dependencies(self): 57 def dependencies(self):
54 raise NotImplementedError("abstract base class") 58 raise NotImplementedError("abstract base class")
55 59
56 class SetupOverridePackageInfo(PackageInfo): 60 class SetupOverridePackageInfo(PackageInfo):
57 """ 61 """