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: 8713 $" 
 29   
 30  # we're possibly redefining some builtins, so don't warn 
 31  __pychecker__ = 'no-shadowbuiltin' 
 32   
 33  # any() was introduced in 2.5 
 34  if sys.version_info[:2] < (2, 5): 
 35   
36 - def any(seq):
37 for item in seq: 38 if item: 39 return True 40 return False
41 else: 42 any = any 43 44 # all() was introduced in 2.5 45 if sys.version_info[:2] < (2, 5): 46
47 - def all(seq):
48 for item in seq: 49 if not item: 50 return False 51 return True
52 else: 53 all = all 54 55 56 # python2.4's os.makedirs() lacks EEXIST checks, so here's almost a 57 # literal copy from the python2.5's version of os module 58 if sys.version_info[:2] < (2, 5): 59 import os.path as path 60 from os import mkdir, curdir 61 from errno import EEXIST 62
63 - def makedirs(name, mode=0777):
64 head, tail = path.split(name) 65 if not tail: 66 head, tail = path.split(head) 67 if head and tail and not path.exists(head): 68 try: 69 makedirs(head, mode) 70 except OSError, e: 71 # be happy if someone already created the path 72 if e.errno != EEXIST: 73 raise 74 if tail == curdir: # xxx/newdir/. exists if xxx/newdir exists 75 return 76 mkdir(name, mode)
77 else: 78 from os import makedirs 79 80 # python 2.6 deprecates sha and md5 modules in favor of hashlib 81 try: 82 _hashlib = __import__("hashlib") 83 except ImportError: 84 from md5 import md5 85 from sha import sha as sha1 86 else: 87 from hashlib import md5 as md5 88 from hashlib import sha1 as sha1 89 90 # python 2.6 deprecated the sets module in favor of a builtin set class 91 try: 92 set = set 93 except NameError: 94 from sets import Set as set 95 96 # itertools.chain.from_iterable appeared in python 2.6 97 if sys.version_info[:2] < (2, 6): 98
99 - def from_iterable(iterables):
100 for it in iterables: 101 for element in it: 102 yield element
103 else: 104 from itertools import chain 105 from_iterable = chain.from_iterable 106