merge
This commit is contained in:
		
						commit
						aa64721d12
					
				
					 2 changed files with 24 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -31,9 +31,10 @@ import os
 | 
			
		|||
import os.path
 | 
			
		||||
import shutil
 | 
			
		||||
import tempfile
 | 
			
		||||
import lockfile
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
__all__ = ['change_newlines', 'count_lines', 'temp_path']
 | 
			
		||||
__all__ = ['temp_path']
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class DosFile(file):
 | 
			
		||||
| 
						 | 
				
			
			@ -45,6 +46,27 @@ class DosFile(file):
 | 
			
		|||
        super(DosFile, self).write(string.replace(os.linesep, '\r\n'))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def locking_copy(src, dst):
 | 
			
		||||
    """
 | 
			
		||||
    Implements a "locking" version of ``shutil.copy()``.
 | 
			
		||||
 | 
			
		||||
    This function exists to provide a more atomic method for copying a file
 | 
			
		||||
    into a Linux folder which is being watched by a file monitor running on the
 | 
			
		||||
    Linux machine.  This is necessary because it is not practical to watch for
 | 
			
		||||
    any particular ``pyinotify`` event in order to know when the file is "free"
 | 
			
		||||
    - at least in the case of a simple copy.  The reason for this is that
 | 
			
		||||
    ``shutil.copy()`` first copies the file, but then will attempt to change
 | 
			
		||||
    its attributes.  Under normal circumstances it would seem best to respond
 | 
			
		||||
    to the "create" (or "write close") event on the file, but in this case the
 | 
			
		||||
    attribute update really must occur before the watched file is processed.
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
    fn = os.path.basename(src)
 | 
			
		||||
    dst = os.path.join(dst, fn)
 | 
			
		||||
    with lockfile.FileLock(dst):
 | 
			
		||||
        shutil.copy(src, dst)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def change_newlines(path, newline):
 | 
			
		||||
    """
 | 
			
		||||
    Rewrites the file at ``path``, changing its newline character(s) to that of
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1
									
								
								setup.py
									
										
									
									
									
								
							
							
						
						
									
										1
									
								
								setup.py
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -71,6 +71,7 @@ requires = [
 | 
			
		|||
    # package                           # low                   high
 | 
			
		||||
 | 
			
		||||
    'decorator',                        # 3.3.2
 | 
			
		||||
    'lockfile',                         # 0.9.1
 | 
			
		||||
    'progressbar',                      # 2.3
 | 
			
		||||
    'pytz',                             # 2012b
 | 
			
		||||
    ]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue