importing: make importlib_importer recognize .pyc cache (#13239)
Our importer was always parsing from source (which is considerably slower) because the source size recorded in the .pyc file differed from the size of the input file. Override path_stats in the prepending importer to fool it into thinking that the source size is the size *with* the prepended code.
This commit is contained in:
		| @@ -15,6 +15,12 @@ def __init__(self, full_name, path, prepend=None): | |||||||
|         super(PrependFileLoader, self).__init__(full_name, path) |         super(PrependFileLoader, self).__init__(full_name, path) | ||||||
|         self.prepend = prepend |         self.prepend = prepend | ||||||
|  |  | ||||||
|  |     def path_stats(self, path): | ||||||
|  |         stats = super(PrependFileLoader, self).path_stats(path) | ||||||
|  |         if self.prepend: | ||||||
|  |             stats["size"] += len(self.prepend) + 1 | ||||||
|  |         return stats | ||||||
|  |  | ||||||
|     def get_data(self, path): |     def get_data(self, path): | ||||||
|         data = super(PrependFileLoader, self).get_data(path) |         data = super(PrependFileLoader, self).get_data(path) | ||||||
|         if path != self.path or self.prepend is None: |         if path != self.path or self.prepend is None: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Todd Gamblin
					Todd Gamblin