Mercurial > hg > PaInt
comparison paint/package.py @ 39:cc25499e9485
note TODO....and cry a little
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Fri, 30 Mar 2012 15:46:37 -0700 |
parents | c9d8abb2026f |
children | 06f21791eba1 |
comparison
equal
deleted
inserted
replaced
38:c9d8abb2026f | 39:cc25499e9485 |
---|---|
122 setup_py = os.path.join(directory, 'setup.py') | 122 setup_py = os.path.join(directory, 'setup.py') |
123 if not os.path.exists(setup_py): | 123 if not os.path.exists(setup_py): |
124 raise AssertionError("%s does not exist" % setup_py) | 124 raise AssertionError("%s does not exist" % setup_py) |
125 | 125 |
126 # setup the egg info | 126 # setup the egg info |
127 exception = None | |
127 try: | 128 try: |
128 call([sys.executable, 'setup.py', 'egg_info'], cwd=directory, stdout=subprocess.PIPE) | 129 code = call([sys.executable, 'setup.py', 'egg_info'], cwd=directory, stdout=subprocess.PIPE) |
129 except BaseException, e: | 130 except BaseException, exception: |
130 print "Failure to generate egg_info" | 131 pass |
131 print ' - src: %s' % self.src | 132 if code or exception: |
132 print ' - directory: %s' % directory | 133 message = """Failure to generate egg_info |
133 raise | 134 - src: %s |
135 - directory: %s | |
136 """ % (self.src, directory) | |
137 if exception: | |
138 sys.stderr.write(message) | |
139 raise exception | |
140 else: | |
141 raise Exception(message) | |
134 | 142 |
135 # get the .egg-info directory | 143 # get the .egg-info directory |
136 egg_info = [i for i in os.listdir(directory) | 144 egg_info = [i for i in os.listdir(directory) |
137 if i.endswith('.egg-info')] | 145 if i.endswith('.egg-info')] |
138 assert len(egg_info) == 1, 'Expected one .egg-info directory in %s, got: %s' % (directory, egg_info) | 146 assert len(egg_info) == 1, 'Expected one .egg-info directory in %s, got: %s' % (directory, egg_info) |
145 | 153 |
146 def info(self): | 154 def info(self): |
147 """return info dictionary for package""" | 155 """return info dictionary for package""" |
148 # could use pkginfo | 156 # could use pkginfo |
149 | 157 |
150 egg_info = self._egg_info() | 158 if self._pkg_info_path: |
159 pkg_info = self._pkg_info_path | |
160 else: | |
161 try: | |
162 egg_info = self._egg_info() | |
163 pkg_info = os.path.join(egg_info, 'PKG-INFO') | |
164 except BaseException, exception: | |
165 # try to get the package info from a file | |
166 raise NotImplementedError("TODO: try to get the package info from a file") | |
151 | 167 |
152 # read the package information | 168 # read the package information |
153 pkg_info = os.path.join(egg_info, 'PKG-INFO') | |
154 info_dict = {} | 169 info_dict = {} |
155 for line in file(pkg_info).readlines(): | 170 for line in file(pkg_info).readlines(): |
156 if not line or line[0].isspace(): | 171 if not line or line[0].isspace(): |
157 continue # XXX neglects description | 172 continue # XXX neglects description |
158 assert ':' in line | 173 assert ':' in line |