util/misc.py
changeset 3507 e87a2daace80
parent 3498 cf4e6a7d40f8
child 3750 f62625418bff
equal deleted inserted replaced
3506:ca312be56929 3507:e87a2daace80
    26 Misc definitions
    26 Misc definitions
    27 """
    27 """
    28 
    28 
    29 
    29 
    30 from __future__ import absolute_import
    30 from __future__ import absolute_import
    31 import os
    31 import os,sys
       
    32 import random
    32 from functools import reduce
    33 from functools import reduce
    33 
    34 
    34 from util.BitmapLibrary import AddBitmapFolder
    35 from util.BitmapLibrary import AddBitmapFolder
    35 from util.TranslationCatalogs import AddCatalog
    36 from util.TranslationCatalogs import AddCatalog
    36 
    37 
    40     if path is None or not os.path.isdir(path):
    41     if path is None or not os.path.isdir(path):
    41         return False
    42         return False
    42     for root, dirs, files in os.walk(path):
    43     for root, dirs, files in os.walk(path):
    43         files = [f for f in files if not f[0] == '.']
    44         files = [f for f in files if not f[0] == '.']
    44         dirs[:] = [d for d in dirs if not d[0] == '.']
    45         dirs[:] = [d for d in dirs if not d[0] == '.']
       
    46         if sys.platform.startswith('win'):
       
    47             try:
       
    48                 testdirpath = os.path.join(root, "testdir_" + str(random.randint(0, 4294967296)))
       
    49                 os.mkdir(testdirpath)
       
    50                 os.rmdir(testdirpath)
       
    51             except:
       
    52                 return False
       
    53         else:
       
    54             if os.access(root, os.W_OK) is not True:
       
    55                 return False
       
    56 
    45         for name in files:
    57         for name in files:
    46             if os.access(root, os.W_OK) is not True or os.access(os.path.join(root, name), os.W_OK) is not True:
    58             if os.access(os.path.join(root, name), os.W_OK) is not True:
    47                 return False
    59                 return False
    48     return True
    60     return True
    49 
    61 
    50 
    62 
    51 def GetClassImporter(param):
    63 def GetClassImporter(param):