forked from ungleich-public/cdist
		
	cleanup, add sort method
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
This commit is contained in:
		
					parent
					
						
							
								b4fc05ba09
							
						
					
				
			
			
				commit
				
					
						3873aefcf5
					
				
			
		
					 1 changed files with 10 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -32,6 +32,8 @@ class FileList(collections.MutableSequence):
 | 
			
		|||
    def __init__(self, path, initial=None):
 | 
			
		||||
        self._path = path
 | 
			
		||||
        if initial:
 | 
			
		||||
            # delete existing file
 | 
			
		||||
            os.unlink(self._path)
 | 
			
		||||
            for i in initial:
 | 
			
		||||
                self.append(i)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -40,7 +42,7 @@ class FileList(collections.MutableSequence):
 | 
			
		|||
        try:
 | 
			
		||||
            with open(self._path) as fd:
 | 
			
		||||
                for line in fd:
 | 
			
		||||
                    lines.append(line.strip())
 | 
			
		||||
                    lines.append(line.rstrip('\n'))
 | 
			
		||||
        except EnvironmentError as e:
 | 
			
		||||
            # error ignored
 | 
			
		||||
            pass
 | 
			
		||||
| 
						 | 
				
			
			@ -50,7 +52,7 @@ class FileList(collections.MutableSequence):
 | 
			
		|||
        try:
 | 
			
		||||
            with open(self._path, 'w') as fd:
 | 
			
		||||
                for line in lines:
 | 
			
		||||
                    fd.write(line + '\n')
 | 
			
		||||
                    fd.write(str(line) + '\n')
 | 
			
		||||
        except EnvironmentError as e:
 | 
			
		||||
            # error ignored
 | 
			
		||||
            raise
 | 
			
		||||
| 
						 | 
				
			
			@ -80,6 +82,10 @@ class FileList(collections.MutableSequence):
 | 
			
		|||
        lines.insert(index, value)
 | 
			
		||||
        self.__write(lines)
 | 
			
		||||
 | 
			
		||||
    def sort(self):
 | 
			
		||||
        lines = sorted(self)
 | 
			
		||||
        self.__write(lines)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class DirectoryDict(collections.MutableMapping):
 | 
			
		||||
    """A dict that stores it's state in a directory.
 | 
			
		||||
| 
						 | 
				
			
			@ -98,13 +104,13 @@ class DirectoryDict(collections.MutableMapping):
 | 
			
		|||
    def __getitem__(self, key):
 | 
			
		||||
        try:
 | 
			
		||||
            with open(os.path.join(self._path, key), "r") as fd:
 | 
			
		||||
                return fd.read()
 | 
			
		||||
                return fd.read().rstrip('\n')
 | 
			
		||||
        except EnvironmentError:
 | 
			
		||||
            raise KeyError(key)
 | 
			
		||||
 | 
			
		||||
    def __setitem__(self, key, value):
 | 
			
		||||
        with open(os.path.join(self._path, key), "w") as fd:
 | 
			
		||||
            fd.write(value)        
 | 
			
		||||
            fd.write(str(value))        
 | 
			
		||||
 | 
			
		||||
    def __delitem__(self, key):
 | 
			
		||||
        os.remove(os.path.join(self._path, key))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue