Changeset 10981:6a2e4532001f in orange


Ignore:
Timestamp:
08/31/12 12:23:35 (20 months ago)
Author:
markotoplak
Branch:
default
Message:

Moved some utilities from the bioinformatics module here.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/utils/__init__.py

    r10937 r10981  
    624624printVerbose = deprecated_function_name(print_verbose) 
    625625 
     626import urllib2 
     627 
     628def copyfileobj(src, dst, buffer=2**10, content_len=None, progress=None): 
     629    """ 
     630    shutil.copyfileobj with progress reporting. 
     631    """ 
     632    count = 0 
     633    if content_len is None: 
     634        content_len = guess_size(src) or sys.maxint 
     635    while True: 
     636        data = src.read(buffer) 
     637        dst.write(data) 
     638        count += len(data) 
     639        if progress: 
     640            progress(100.0 * count / content_len) 
     641        if not data: 
     642            break 
     643             
     644def wget(url, directory=".", dst_obj=None, progress=None): 
     645    stream = urllib2.urlopen(url) 
     646    length = stream.headers.get("content-length", None) 
     647    if length is None: 
     648        length = sys.maxint 
     649    else: 
     650        length = int(length) 
     651     
     652    basename = posixpath.basename(url) 
     653         
     654    if dst_obj is None: 
     655        dst_obj = open(os.path.join(directory, basename), "wb") 
     656     
     657    if progress == True: 
     658        from Orange.utils import ConsoleProgressBar 
     659        progress = ConsoleProgressBar("Downloading %r." % basename) 
     660        with finishing(progress): 
     661            copyfileobj(stream, dst_obj, buffer=2**10, content_len=length, 
     662                        progress=progress) 
     663    else: 
     664        copyfileobj(stream, dst_obj, buffer=2**10, content_len=length, 
     665                    progress=progress) 
     666     
     667 
    626668import warnings 
    627669 
Note: See TracChangeset for help on using the changeset viewer.