add RemoteFile object for streaming from URL
This commit is contained in:
		
							parent
							
								
									b47cc70d92
								
							
						
					
					
						commit
						f0543842c1
					
				
					 1 changed files with 22 additions and 0 deletions
				
			
		|  | @ -1,3 +1,4 @@ | |||
| import urllib2 | ||||
| """ | ||||
|     General utilities used within saucebrush that may be useful elsewhere. | ||||
| """ | ||||
|  | @ -72,6 +73,12 @@ def str_or_list(obj): | |||
| # | ||||
| 
 | ||||
| class Files(object): | ||||
|     """ Iterate over multiple files as a single file. Pass the paths of the | ||||
|         files as arguments to the class constructor: | ||||
|          | ||||
|             for line in Files('/path/to/file/a', '/path/to/file/b'): | ||||
|                 pass | ||||
|     """ | ||||
| 
 | ||||
|     def __init__(self, *args): | ||||
|         self.paths = [] | ||||
|  | @ -95,3 +102,18 @@ class Files(object): | |||
|                 for line in f: | ||||
|                     yield line | ||||
|                 f.close() | ||||
| 
 | ||||
| class RemoteFile(object): | ||||
|     """ Stream data from a remote file. | ||||
|      | ||||
|         :param url: URL to remote file | ||||
|     """ | ||||
|      | ||||
|     def __init__(self, url): | ||||
|         self._url = url | ||||
|          | ||||
|     def __iter__(self): | ||||
|         resp = urllib2.urlopen(self._url) | ||||
|         for line in resp: | ||||
|             yield line.rstrip() | ||||
|         resp.close() | ||||
		Loading…
	
		Reference in a new issue
	
	 Jeremy Carbaugh
						Jeremy Carbaugh