util/misc.py
author laurent
Tue, 21 Aug 2012 18:40:42 +0200
changeset 799 6af48f2e42ca
parent 781 cdc6393705ce
child 806 abf1afc1f04d
permissions -rw-r--r--
Adding korean translation for interface texts
725
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
     1
"""
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
     2
Misc definitions
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
     3
"""
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
     4
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
     5
import os,sys
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
     6
    
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
     7
# helper func to check path write permission
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
     8
def CheckPathPerm(path):
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
     9
    if path is None or not os.path.isdir(path):
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
    10
        return False
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
    11
    for root, dirs, files in os.walk(path):
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
    12
         for name in files:
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
    13
             if os.access(root, os.W_OK) is not True or os.access(os.path.join(root, name), os.W_OK) is not True:
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
    14
                 return False
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
    15
    return True
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
    16
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
    17
def GetClassImporter(classpath):
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
    18
    if type(classpath)==str:
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
    19
        def fac():
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
    20
            mod=__import__(classpath.rsplit('.',1)[0])
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
    21
            return reduce(getattr, classpath.split('.')[1:], mod)
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
    22
        return fac
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
    23
    else:
731
4fc681ed0c61 refecored library extension machanism
Edouard Tisserant
parents: 728
diff changeset
    24
        return classpath
725
31dade089db5 refactoring
Edouard Tisserant
parents:
diff changeset
    25