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))
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))
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'])
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'])
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
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
# 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) #*******************
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)
def data(self): return libData.get_data()
def user_path(self): return libData.get_data('project')['PATH']['user'] + '/' + self._id
# 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]
def refresh_data(self): self.data = libData.get_data()
def extension(self): return libData.get_data()['software']['EXTENSION'][self._software]
def read_data(self): libData.get_data()
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']))
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)