Package flumotion :: Package common :: Module python
[hide private]

Source Code for Module flumotion.common.python

 1  # -*- Mode: Python; test-case-name: flumotion.test.test_config -*- 
 2  # vi:si:et:sw=4:sts=4:ts=4 
 3  # 
 4  # Flumotion - a streaming media server 
 5  # Copyright (C) 2004,2005,2006,2007 Fluendo, S.L. (www.fluendo.com). 
 6  # All rights reserved. 
 7   
 8  # This file may be distributed and/or modified under the terms of 
 9  # the GNU General Public License version 2 as published by 
10  # the Free Software Foundation. 
11  # This file is distributed without any warranty; without even the implied 
12  # warranty of merchantability or fitness for a particular purpose. 
13  # See "LICENSE.GPL" in the source distribution for more information. 
14   
15  # Licensees having purchased or holding a valid Flumotion Advanced 
16  # Streaming Server license may use this file in accordance with the 
17  # Flumotion Advanced Streaming Server Commercial License Agreement. 
18  # See "LICENSE.Flumotion" in the source distribution for more information. 
19   
20  # Headers in this file shall remain intact. 
21   
22  """ 
23  forward compatibility with future python versions 
24  """ 
25   
26  import sys 
27   
28  __version__ = "$Rev: 6991 $" 
29   
30  # we're possibly redefining some builtins, so don't warn 
31  __pychecker__ = 'no-shadowbuiltin' 
32   
33  # sorted() was introduced in 2.4 
34  if sys.version_info[:2] < (2, 4): 
35 - def sorted(seq, reverse=False):
36 seq = seq[:] 37 seq.sort() 38 if reversed: 39 seq = seq[::-1] 40 return seq
41 else: 42 sorted = sorted 43 44 # any() was introduced in 2.5 45 if sys.version_info[:2] < (2, 5):
46 - def any(seq):
47 for item in seq: 48 if item: 49 return True 50 return False
51 else: 52 any = any 53 54 # all() was introduced in 2.5 55 if sys.version_info[:2] < (2, 5):
56 - def all(seq):
57 for item in seq: 58 if not item: 59 return False 60 return True
61 else: 62 all = all 63 64 65 # python2.4's os.makedirs() lacks EEXIST checks, so here's almost a 66 # literal copy from the python2.5's version of os module 67 if sys.version_info[:2] < (2, 5): 68 import os.path as path 69 from os import mkdir, curdir 70 from errno import EEXIST 71
72 - def makedirs(name, mode=0777):
73 head, tail = path.split(name) 74 if not tail: 75 head, tail = path.split(head) 76 if head and tail and not path.exists(head): 77 try: 78 makedirs(head, mode) 79 except OSError, e: 80 # be happy if someone already created the path 81 if e.errno != EEXIST: 82 raise 83 if tail == curdir: # xxx/newdir/. exists if xxx/newdir exists 84 return 85 mkdir(name, mode)
86 else: 87 from os import makedirs 88