util/misc.py
author Andrey Skvortsov <andrej.skvortzov@gmail.com>
Thu, 21 Apr 2016 17:47:35 +0300
changeset 1494 00910a8572d9
parent 1388 67c9a9482d24
child 1511 91538d0c242c
permissions -rw-r--r--
fix wrong Row number in DiscoveryDialog.py that caused following traceback:

Traceback (most recent call last):
File "/home/beremiz/beremiz/ProjectController.py", line 1536, in _Connect
dialog = DiscoveryDialog(self.AppFrame)
File "/home/beremiz/beremiz/dialogs/DiscoveryDialog.py", line 124, in __init__
self._init_ctrls(parent)
File "/home/beremiz/beremiz/dialogs/DiscoveryDialog.py", line 121, in _init_ctrls
self._init_sizers()
File "/home/beremiz/beremiz/dialogs/DiscoveryDialog.py", line 73, in _init_sizers
self._init_coll_ButtonGridSizer_Growables(self.ButtonGridSizer)
File "/home/beremiz/beremiz/dialogs/DiscoveryDialog.py", line 64, in _init_coll_ButtonGridSizer_Growables
parent.AddGrowableRow(1)
File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk2/wx/_core.py", line 15343, in AddGrowableRow
return _core_.FlexGridSizer_AddGrowableRow(*args, **kwargs)
PyAssertionError: C++ assertion "!m_rows || idx < (size_t)m_rows" failed at ../src/common/sizer.cpp(1967) in AddGrowableRow(): invalid row index
"""
Misc definitions
"""

import os,sys

# helper func to check path write permission
def CheckPathPerm(path):
    if path is None or not os.path.isdir(path):
        return False
    for root, dirs, files in os.walk(path):
         for name in files:
             if os.access(root, os.W_OK) is not True or os.access(os.path.join(root, name), os.W_OK) is not True:
                 return False
    return True

def GetClassImporter(classpath):
    if type(classpath)==str:
        def fac():
            mod=__import__(classpath.rsplit('.',1)[0])
            return reduce(getattr, classpath.split('.')[1:], mod)
        return fac
    else:
        return classpath

def InstallLocalRessources(CWD):
    from BitmapLibrary import AddBitmapFolder
    from TranslationCatalogs import AddCatalog
    import wx

    # Beremiz bitmaps
    AddBitmapFolder(os.path.join(CWD, "images"))

    # Internationalization
    AddCatalog(os.path.join(CWD, "locale"))
    import gettext
    import __builtin__
    
    __builtin__.__dict__['_'] = wx.GetTranslation