Mercurial > hg > PaInt
comparison paint/package.py @ 14:6d27c2136163
a decent structure; need to reuse more
| author | Jeff Hammel <jhammel@mozilla.com> |
|---|---|
| date | Fri, 24 Feb 2012 15:50:31 -0800 |
| parents | 0dd1f8f83be2 |
| children | 8c8b7482772f |
comparison
equal
deleted
inserted
replaced
| 13:0dd1f8f83be2 | 14:6d27c2136163 |
|---|---|
| 82 | 82 |
| 83 if self._egg_info: | 83 if self._egg_info: |
| 84 # return cached copy | 84 # return cached copy |
| 85 return self._egg_info | 85 return self._egg_info |
| 86 | 86 |
| 87 directory = self.path | |
| 88 | |
| 89 def info(self): | |
| 90 """return info dictionary for package""" | |
| 91 directory = self.path() | 87 directory = self.path() |
| 92 assert os.path.exists(os.path.join(path, 'setup.py')) | 88 assert os.path.exists(os.path.join(path, 'setup.py')) |
| 93 | 89 |
| 94 # setup the egg info | 90 # setup the egg info |
| 95 call([sys.executable, 'setup.py', 'egg_info'], cwd=directory, stdout=PIPE) | 91 call([sys.executable, 'setup.py', 'egg_info'], cwd=directory, stdout=PIPE) |
| 99 if i.endswith('.egg-info')] | 95 if i.endswith('.egg-info')] |
| 100 assert len(egg_info) == 1, 'Expected one .egg-info directory in %s, got: %s' % (directory, egg_info) | 96 assert len(egg_info) == 1, 'Expected one .egg-info directory in %s, got: %s' % (directory, egg_info) |
| 101 egg_info = os.path.join(directory, egg_info[0]) | 97 egg_info = os.path.join(directory, egg_info[0]) |
| 102 assert os.path.isdir(egg_info), "%s is not a directory" % egg_info | 98 assert os.path.isdir(egg_info), "%s is not a directory" % egg_info |
| 103 | 99 |
| 104 # read the dependencies | 100 # cache it |
| 105 requires = os.path.join(egg_info, 'requires.txt') | 101 self._egg_info = egg_info |
| 106 if os.path.exists(requires): | 102 return self._egg_info |
| 107 dependencies = [i.strip() for i in file(requires).readlines() if i.strip()] | 103 |
| 108 else: | 104 def info(self): |
| 109 dependencies = [] | 105 """return info dictionary for package""" |
| 106 # could use pkginfo | |
| 107 | |
| 108 egg_info = self.egg_info() | |
| 110 | 109 |
| 111 # read the package information | 110 # read the package information |
| 112 pkg_info = os.path.join(egg_info, 'PKG-INFO') | 111 pkg_info = os.path.join(egg_info, 'PKG-INFO') |
| 113 info_dict = {} | 112 info_dict = {} |
| 114 for line in file(pkg_info).readlines(): | 113 for line in file(pkg_info).readlines(): |
| 120 | 119 |
| 121 # return the information | 120 # return the information |
| 122 return info_dict['Name'], dependencies | 121 return info_dict['Name'], dependencies |
| 123 | 122 |
| 124 def dependencies(self): | 123 def dependencies(self): |
| 125 info = self.info() | 124 """return the dependencies""" |
| 125 | |
| 126 egg_info = self.egg_info() | |
| 127 | |
| 128 # read the dependencies | |
| 129 requires = os.path.join(egg_info, 'requires.txt') | |
| 130 if os.path.exists(requires): | |
| 131 dependencies = [i.strip() for i in file(requires).readlines() if i.strip()] | |
| 132 else: | |
| 133 dependencies = [] | |
| 134 |
