Exemple #1
0
    def setup(self, software=os.getenv('SOFTWARE')):
        if not software:
            raise OSError('STOP PROCESS', 'SOFTWARE couldnt be found.')

        self._software = software.lower()
        self._software_data = libData.get_data()['software'][
            self._software.upper()]

        self._version = self._software_data['version']
        self._path = self._software_data['path']

        # RENDERER
        self._renderer = self._software_data.get('renderer', '')
        self._renderer_path = self._software_data.get('renderer_path', '')

        LOG.debug('------------------------------ {}'.format(self._software))

        sub_path = []
        software_path = []

        # LOG.debug(os.environ['SOFTWARE_SRC_PATH'])
        for each_path in os.environ['SOFTWARE_SRC_PATH'].split(';'):
            # if not each_path.endswith('software'): each_path = os.path.dirname(each_path)
            tmp_paths = ('/').join([each_path, self._software])
            software_path.append(tmp_paths)
            tmp_folder = libFunc.get_file_list(path=tmp_paths,
                                               exclude='.py',
                                               add_path=True)
            if not tmp_folder: continue
            sub_path.extend(tmp_folder)

        os.environ['SOFTWARE'] = self._software.upper()
        os.environ['SOFTWARE_PATH'] = (';').join(software_path)
        os.environ['SOFTWARE_SUB_PATH'] = (';').join(sub_path)
        LOG.debug("SOFTWARE_PATH: {}".format(os.environ['SOFTWARE_PATH']))

        # GET data
        self._software_data = libData.get_data()['software'][
            self._software.upper()]
        self._env = self._software_data.get('ENV', '')

        # ADD software ENV
        if (self._env):
            for env, content in self._env.iteritems():
                if isinstance(content, list):
                    for each in content:
                        libData.add_env(env, each)
                else:
                    libData.add_env(env, content)

            LOG.debug('{}_ENV: {}'.format(self._software.upper(), self._env))
Exemple #2
0
    def add_env(self):
        LOG.debug('______________________________{}'.format(self._software))

        new_path = []
        for each_path in os.environ['SOFTWARE_PATH'].split(';'):
            LOG.debug(self._software)
            tmp_paths = ('/').join([each_path, self._software])
            tmp_folder = libFileFolder.get_file_list(path=tmp_paths,
                                                     exclude='.py',
                                                     add_path=True)
            new_path.extend(tmp_folder)

        os.environ['SOFTWARE'] = self._software.upper()
        os.environ['SOFTWARE_PATH'] = ('/').join([each_path, self._software])
        os.environ['SOFTWARE_SUB_PATH'] = (';').join(new_path)

        # GET data
        self._software_data = libData.get_data()['software'][
            self._software.upper()]
        self._env = self._software_data.get('ENV', '')

        # ADD software ENV
        if (self._env):
            for env, content in self._env.iteritems():
                if isinstance(content, list):
                    for each in content:
                        libData.add_env(env, each)
                else:
                    libData.add_env(env, content)

            LOG.debug('{}_ENV: {}'.format(self._software.upper(), self._env))
Exemple #3
0
def get_help(name = ''):
    project_data = libData.get_data('project')['HELP']
    if not name:
        name = os.getenv('SOFTWARE')
    if name in project_data:
        webbrowser.open(project_data[name])
    else:
        webbrowser.open(project_data['main'])
Exemple #4
0
    def setup(self, software=os.getenv('SOFTWARE')):
        if not software: raise

        self._software = software.lower()

        # GET data
        self._software_data = libData.get_data()['software'][
            self._software.upper()]

        self._version = self._software_data['version']
        self._path = self._software_data['path']

        # RENDERER
        self._renderer = self._software_data.get('renderer', '')
        self._renderer_path = self._software_data.get('renderer_path', '')
def get_help(name=''):
    project_data = libData.get_data('project')['HELP']
    if not name: name = os.getenv('SOFTWARE').lower()

    note = arNotice.Notice(title=name,
                           msg='get help & solve issues here',
                           func='HELP',
                           img='lbl/lbl{}131'.format(name.title()),
                           img_link='')
    arNotice.ArNotice(note)

    if name in project_data:
        webbrowser.open(project_data[name])
    else:
        webbrowser.open(project_data['main'])
Exemple #6
0
    def __init__(self,
                 title='Notice',
                 msg='This is just a Notice Test',
                 user=os.getenv('username'),
                 img='lbl/default',
                 img_link='http://richteralexander.com',
                 func='',
                 timer=int(libData.get_data('script')[TITLE].get('timer', 0))):

        self.title = str(title)  #Pipeline Update
        self.msg = str(msg)  #New Features for Pipeline
        self.img = img  # lbl/lblPreview131
        self.img_link = img_link  # path
        self.time = datetime.now().strftime('%H:%M:%S %Y.%m.%d')
        self.user = user
        self.func = func
        self.timer = timer
Exemple #7
0
    def press_btnMenu(self, menu_tag):
        tmp_menu = self.select_menu[menu_tag]

        for eachMenu in self.select_menu.values():
            eachMenu.setStyleSheet('')

        for i in range(self.wgMenu.layMenu02.count()):
            self.wgMenu.layMenu02.itemAt(0).widget().close()
            self.wgMenu.layMenu02.takeAt(0)

        tmp_menu.setStyleSheet("background-color: rgb(51, 140, 188);")

        if menu_tag == 'data':
            self.data = libData.get_data()
            for eachKey in self.data.keys():
                addButton = QtGui.QPushButton(eachKey)
                addButton.clicked.connect(lambda: self.press_btnSubMenu(eachKey))
                self.wgMenu.layMenu02.addWidget(addButton)

        try:    self.wgMenu.layMenu02.itemAt(0).widget().click()
        except: pass
Exemple #8
0
    # ADD all IMG paths
    for img in os.getenv('IMG_PATH').split(';'):
        for img_sub in libFileFolder.get_deep_folder_list(path=img,
                                                          add_path=True):
            nuke.pluginAddPath(img_sub)

    # ADD sub software paths
    for paths in os.getenv('SOFTWARE_SUB_PATH').split(';'):
        nuke.pluginAddPath(paths)


#*******************
# TOOLBAR
add_plugin_paths()

project_data = libData.get_data()
menu_data = project_data['software']['NUKE']['MENU']
menuNode = nuke.menu('Nodes').addMenu(project_data['project']['name'],
                                      icon='nuke.ico')

# nuke.addOnScriptSave(add_write_node)

for menu_item in menu_data:
    Software().add_menu(menuNode, menu_item)

menuNode.addSeparator()

add_gizmo_menu(menuNode)


#*******************
Exemple #9
0
import os
import errno

import nuke

import libLog
import libData
import libFunc
from tank import Tank

TITLE = os.path.splitext(os.path.basename(__file__))[0]
LOG = libLog.init(script=TITLE)

#************************
# PIPELINE
all_data = libData.get_data()
project_data = all_data['project']
software_data = all_data['software']
RESOLUTION = (' ').join([
    str(project_data['resolution'][0]),
    str(project_data['resolution'][1]), project_data['name'].replace(' ', '')
])


#************************
# FOLDER CREATION
def createWriteDir():
    file_name = nuke.filename(nuke.thisNode())
    file_path = os.path.dirname(file_name)
    os_path = nuke.callbacks.filenameFilter(file_path)
Exemple #10
0
 def data(self):
     return libData.get_data()
Exemple #11
0
 def user_path(self):
     return libData.get_data('project')['PATH']['user'] + '/' + self._id
Exemple #12
0
# author    = Alexander Richter <alexanderrichtertd.com>
#*********************************************************************

import os
import json
import requests

import libData
import libLog

#************************
# VAR
TITLE = os.path.splitext(os.path.basename(__file__))[0]
LOG = libLog.init(script=TITLE)

repo_data = libData.get_data()['project']['REPOSITORY']

# Authentication for user filing issue
# (read/write access to repository)
USERNAME = repo_data['username']
PASSWORD = repo_data['password']

# repository to add this issue
REPO_OWNER = repo_data['owner']
REPO_NAME = repo_data['repository']


#************************
# GIT
def make_github_issue(title,
                      body=None,
    def set_pipeline_env(self):

        # SET STATUS
        try:
            os.environ['PIPELINE_STATUS'] = PIPELINE_STATUS[
                len(self.data_pipeline_path) - 1]
        except:
            os.environ['PIPELINE_STATUS'] = 'development{}'.format(
                len(self.data_pipeline_path) - 1)

        # ADD sub ENV
        for eachPath in self.data_pipeline_path:
            self.pipeline_env.add('PIPELINE_PATH', eachPath)

            if os.path.exists(eachPath + '/img'):
                self.pipeline_env.add('IMG_PATH', eachPath + '/img')
            if os.path.exists(eachPath + '/software'):
                self.pipeline_env.add('SOFTWARE_PATH', eachPath + '/software')
            if os.path.exists(eachPath + '/lib'):
                self.pipeline_env.add('LIB_PATH', eachPath + '/lib')
            if os.path.exists(eachPath + '/lib/utils'):
                self.pipeline_env.add('UTILS_PATH', eachPath + '/lib/utils')
            if os.path.exists(eachPath + '/lib/classes'):
                self.pipeline_env.add('CLASSES_PATH',
                                      eachPath + '/lib/classes')

        os.environ['DATA_PATH'] = self.data_pipeline_path[0] + '/data'
        os.environ['DATA_PROJECT_PATH'] = self.data_pipeline_path[
            0] + '/data/project/' + self.pipeline_data['project']

        # ADD all pipeline env
        self.add_env('PIPELINE_PATH',
                     (';').join(self.pipeline_env['PIPELINE_PATH']))
        try:
            self.add_env('IMG_PATH', (';').join(self.pipeline_env['IMG_PATH']))
            self.add_env('LIB_PATH', (';').join(self.pipeline_env['LIB_PATH']))
            self.add_env('UTILS_PATH',
                         (';').join(self.pipeline_env['UTILS_PATH']))
            self.add_env('CLASSES_PATH',
                         (';').join(self.pipeline_env['CLASSES_PATH']))
            self.add_env('SOFTWARE_PATH',
                         (';').join(self.pipeline_env['SOFTWARE_PATH']))
            self.add_env('SOFTWARE_SRC_PATH',
                         (';').join(self.pipeline_env['SOFTWARE_PATH']))
        except:
            raise OSError('STOP PROCESS',
                          'PATH doesnt exist in data/pipeline.yml',
                          self.this_pipeline)

        sys.path.append(os.environ['PIPELINE_PATH'])
        sys.path.append(os.environ['IMG_PATH'])
        sys.path.append(os.environ['LIB_PATH'])
        sys.path.append(os.environ['UTILS_PATH'])
        sys.path.append(os.environ['CLASSES_PATH'])
        sys.path.append(os.environ['SOFTWARE_PATH'])
        sys.path.append(os.environ['DATA_PATH'])
        sys.path.append(os.environ['DATA_PROJECT_PATH'])

        self.add_env('PYTHONPATH', os.environ['IMG_PATH'])
        self.add_env('PYTHONPATH', os.environ['LIB_PATH'])
        self.add_env('PYTHONPATH', os.environ['UTILS_PATH'])
        self.add_env('PYTHONPATH', os.environ['CLASSES_PATH'])

        # DATA ENV
        os.environ['DATA_USER_PATH'] = self.data_pipeline_path[
            0] + '/data/user/' + os.getenv('username')
        os.environ['DATA_USER_OVERWRITE'] = str(
            self.pipeline_data['user_data'])
        sys.path.append(os.environ['DATA_USER_PATH'])

        # SET project Data
        try:
            import libData
        except:
            raise OSError('STOP PROCESS',
                          'Pipeline PATH is missing. See pipeline.yml')

        self.project_data = libData.get_data('project')
        os.environ['PROJECT_NAME'] = self.project_data['name']

        # ADD project path
        if os.path.exists(self.project_data['path']):
            os.environ['PROJECT_PATH'] = os.path.normpath(
                self.project_data['path'])
        else:
            os.environ['PROJECT_PATH'] = ''

        # OS & PYTHON_VERSION
        os.environ['OS'] = sys.platform
        os.environ['PYTHON_VERSION'] = sys.version[:3]
Exemple #14
0
 def refresh_data(self):
     self.data = libData.get_data()
Exemple #15
0
 def extension(self):
     return libData.get_data()['software']['EXTENSION'][self._software]
Exemple #16
0
 def read_data(self):
     libData.get_data()
Exemple #17
0
    def set_pipeline_env(self):
        global LOG

        if not self.data_pipeline_path:
            print('data/pipeline/PATH doesnt exist')
            return

        for eachPath in self.data_pipeline_path:
            eachPath = eachPath[0]

            if not os.path.exists(eachPath):
                print('PIPELINE_PATH doesnt exist: {}\n'\
                      'SOURCE[PATH]: {}'.format(eachPath, data_project_path))
                continue

            self.pipeline_env.add('PIPELINE_PATH', eachPath)

            self.pipeline_env.add('IMG_PATH', eachPath + '/img')
            self.pipeline_env.add('SOFTWARE_PATH', eachPath + '/software')

            self.pipeline_env.add('LIB_PATH', eachPath + '/lib')
            self.pipeline_env.add('UTILS_PATH', eachPath + '/lib/utils')
            self.pipeline_env.add('CLASSES_PATH', eachPath + '/lib/classes')

            self.pipeline_env.add('DATA_PATH', eachPath + '/data')
            self.pipeline_env.add(
                'DATA_USER_PATH',
                eachPath + '/data/user/' + os.getenv('username'))
            self.pipeline_env.add(
                'DATA_PROJECT_PATH',
                eachPath + '/data/project/' + self.pipeline_data['project'])

        # ADD all pipeline env
        self.add_env('PIPELINE_PATH',
                     (';').join(self.pipeline_env['PIPELINE_PATH']))
        self.add_env('IMG_PATH', (';').join(self.pipeline_env['IMG_PATH']))
        self.add_env('LIB_PATH', (';').join(self.pipeline_env['LIB_PATH']))
        self.add_env('UTILS_PATH', (';').join(self.pipeline_env['UTILS_PATH']))
        self.add_env('CLASSES_PATH',
                     (';').join(self.pipeline_env['CLASSES_PATH']))
        self.add_env('SOFTWARE_PATH',
                     (';').join(self.pipeline_env['SOFTWARE_PATH']))
        self.add_env('DATA_PATH', (';').join(self.pipeline_env['DATA_PATH']))
        self.add_env('DATA_PROJECT_PATH',
                     (';').join(self.pipeline_env['DATA_PROJECT_PATH']))

        sys.path.append(os.environ['PIPELINE_PATH'])
        sys.path.append(os.environ['IMG_PATH'])
        sys.path.append(os.environ['LIB_PATH'])
        sys.path.append(os.environ['UTILS_PATH'])
        sys.path.append(os.environ['CLASSES_PATH'])
        sys.path.append(os.environ['SOFTWARE_PATH'])
        sys.path.append(os.environ['DATA_PATH'])
        sys.path.append(os.environ['DATA_PROJECT_PATH'])

        self.add_env('PYTHONPATH', os.environ['LIB_PATH'])
        self.add_env('PYTHONPATH', os.environ['IMG_PATH'])
        self.add_env('PYTHONPATH', os.environ['UTILS_PATH'])
        self.add_env('PYTHONPATH', os.environ['CLASSES_PATH'])
        self.add_env('PYTHONPATH', os.environ['SOFTWARE_PATH'])

        import libLog
        LOG = libLog.init(script=TITLE)
        LOG.debug('')
        LOG.debug(
            '______________________________SETUP______________________________'
        )

        # CHECK if user overwrite is active
        if self.pipeline_data['user_data']:
            self.add_env('DATA_USER_PATH',
                         (';').join(self.pipeline_env['DATA_USER_PATH']))
            sys.path.append(os.environ['DATA_USER_PATH'])
        else:
            os.getenv['DATA_USER_PATH'] = ''
            LOG.warning('USER DATA will be ignored.')

        # SET project Data
        import libData
        project_data = libData.get_data('project')
        os.environ['PROJECT_NAME'] = project_data['name']

        if os.path.exists(project_data['path']):
            os.environ['PROJECT_PATH'] = os.path.normpath(project_data['path'])
        else:
            # ALT: PROJECT_PATH = '../pipeline'
            LOG.critical('PROJECT PATH doesnt exist: {}'.format(
                project_data['path']))
Exemple #18
0
    def __init__(self, parent=None):
        QtGui.QSystemTrayIcon.__init__(self, parent)
        #self.activated.connect(self.showMainWidget)
        self.setIcon(QtGui.QIcon(libData.get_img_path('program/default')))

        self.parent = parent
        menu = QtGui.QMenu()
        self.user = users.User()

        self.config_data = libData.get_data()
        menu.setStyleSheet(self.config_data['style']['arDesktop']['menu'])

        # ADMIN UI
        if self.user.is_admin:
            adminMenu = QtGui.QMenu('Admin')
            adminMenu.setStyleSheet(
                self.config_data['style']['arDesktop']['menu'])
            menu.addMenu(adminMenu)

            menuItem = adminMenu.addAction(
                QtGui.QIcon(libData.get_img_path('btn/btnLogProjekt48')),
                'Project Data')
            QtCore.QObject.connect(menuItem, QtCore.SIGNAL('triggered()'),
                                   self.press_btnOpenProjectLog)
            menuItem = adminMenu.addAction(
                QtGui.QIcon(libData.get_img_path('btn/btnLogLocal48')),
                'User Data')
            QtCore.QObject.connect(menuItem, QtCore.SIGNAL('triggered()'),
                                   self.press_btnOpenLocalLog)

            adminMenu.addSeparator()

            menuItem = adminMenu.addAction(
                QtGui.QIcon(libData.get_img_path('btn/btnProject48')),
                'Reminder')
            QtCore.QObject.connect(menuItem, QtCore.SIGNAL('triggered()'),
                                   self.press_btnWriteReminder)

            menu.addSeparator()

        menuItem = menu.addAction(
            QtGui.QIcon(libData.get_img_path('user/default')), self.user.name)
        QtCore.QObject.connect(menuItem, QtCore.SIGNAL('triggered()'),
                               self.press_btnShowUserData)

        menuItem = menu.addAction(
            QtGui.QIcon(libData.get_img_path('project/default')),
            self.config_data['project']['name'])
        QtCore.QObject.connect(menuItem, QtCore.SIGNAL('triggered()'),
                               self.press_btnOpenProjectPath)

        menu.addSeparator()

        # menuItem = menu.addAction(QtGui.QIcon(libData.get_img_path('btn/btnProject48')), 'Settings')
        # QtCore.QObject.connect(menuItem, QtCore.SIGNAL('triggered()'), self.press_btnProject)

        # menu.addSeparator()

        subMenu = QtGui.QMenu('Software')
        subMenu.setStyleSheet(self.config_data['style']['arDesktop']['menu'])
        menu.addMenu(subMenu)

        menuItem = subMenu.addAction(
            QtGui.QIcon(libData.get_img_path('program/maya')), 'Maya')
        QtCore.QObject.connect(menuItem, QtCore.SIGNAL('triggered()'),
                               self.press_btnOpenMaya)
        menuItem = subMenu.addAction(
            QtGui.QIcon(libData.get_img_path('program/nuke')), 'Nuke')
        QtCore.QObject.connect(menuItem, QtCore.SIGNAL('triggered()'),
                               self.press_btnOpenNuke)
        # menuItem = subMenu.addAction(QtGui.QIcon(libData.get_img_path('program/houdini')), 'Houdini')
        # QtCore.QObject.connect(menuItem, QtCore.SIGNAL('triggered()'), self.press_btnOpenHoudini)

        menu.addSeparator()

        # menuItem = menu.addAction(QtGui.QIcon(libData.get_img_path('btn/btnReport48')), 'Report')
        # QtCore.QObject.connect(menuItem, QtCore.SIGNAL('triggered()'), self.press_btnReport)
        # self.setContextMenu(menu)
        menuItem = menu.addAction(
            QtGui.QIcon(libData.get_img_path('btn/btnHelp48')), 'Help')
        QtCore.QObject.connect(menuItem, QtCore.SIGNAL('triggered()'),
                               self.press_btnHelp)
        self.setContextMenu(menu)

        menu.addSeparator()

        menuItem = menu.addAction(
            QtGui.QIcon(libData.get_img_path('btn/btnDenial48')), 'Quit')
        QtCore.QObject.connect(menuItem, QtCore.SIGNAL('triggered()'),
                               self.press_closeStartup)
        self.setContextMenu(menu)