From 3fd7649a9f71e6ca02c67036c2a8a50b6f6a0f24 Mon Sep 17 00:00:00 2001 From: Jonny Galloway Date: Thu, 22 Apr 2021 10:20:30 -0500 Subject: [PATCH 1/4] config update Was using engineroot.txt as a search slug, that file no longer exists, switched to engine.json --- .../TechnicalArt/DccScriptingInterface/azpy/__init__.py | 5 ++--- .../DccScriptingInterface/azpy/config_utils.py | 9 ++++----- .../TechnicalArt/DccScriptingInterface/azpy/constants.py | 2 +- .../TechnicalArt/DccScriptingInterface/config.py | 2 +- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/__init__.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/__init__.py index 57b97ad1cb..415b879ece 100755 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/__init__.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/__init__.py @@ -36,11 +36,10 @@ _TYPE_TAG = 'module' _PACKAGENAME = _TOOL_TAG -__all__ = ['initialize_logger', - 'config_utils', 'render', +__all__ = ['config_utils', 'render', 'constants', 'return_stub', 'synthetic_env', 'env_base', 'env_bool', 'test', 'dev', - 'lumberyard', 'marmoset'] #'blender', 'maya', 'substance', 'houdini'] + 'lumberyard', 'marmoset'] # 'blender', 'maya', 'substance', 'houdini'] # ------------------------------------------------------------------------- diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/config_utils.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/config_utils.py index dbc75212d4..9c920a871d 100755 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/config_utils.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/config_utils.py @@ -80,9 +80,9 @@ def return_stub_dir(stub_file='dccsi_stub'): # ------------------------------------------------------------------------- -def get_stub_check_path(in_path=os.getcwd(), check_stub='engineroot.txt'): +def get_stub_check_path(in_path=os.getcwd(), check_stub='engine.json'): ''' - Returns the branch root directory of the dev\\'engineroot.txt' + Returns the branch root directory of the dev\\'engine.json' (... or you can pass it another known stub) so we can safely build relative filepaths within that branch. @@ -158,7 +158,6 @@ def bootstrap_dccsi_py_libs(dccsi_dirpath=return_stub_dir()): """Builds and adds local site dir libs based on py version""" from azpy.constants import STR_DCCSI_PYTHON_LIB_PATH # a path string constructor - #_DCCSI_PYTHON_LIB_PATH = "E:\\P4\\jromnoa_spectra_atom_2\\dev\\Tools\\Python\\3.7.5\\windows\\Lib\\site-packages" _DCCSI_PYTHON_LIB_PATH = STR_DCCSI_PYTHON_LIB_PATH.format(dccsi_dirpath, sys.version_info[0], sys.version_info[1]) @@ -193,9 +192,9 @@ if __name__ == '__main__': _config = get_dccsi_config() _LOGGER.info('DCCSI_CONFIG_PATH: {}'.format(_config)) - _LOGGER.info('LY_DEV: {}'.format(get_stub_check_path('engineroot.txt'))) + _LOGGER.info('LY_DEV: {}'.format(get_stub_check_path('engine.json'))) - _LOGGER.info('LY_PROJECT: {}'.format(get_current_project(get_stub_check_path('engineroot.txt')))) + _LOGGER.info('LY_PROJECT: {}'.format(get_current_project(get_stub_check_path('bootstrap.cfg')))) _LOGGER.info('DCCSI_PYTHON_LIB_PATH: {}'.format(bootstrap_dccsi_py_libs(return_stub_dir('dccsi_stub')))) diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/constants.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/constants.py index 5ca0bc4a95..792f0faee6 100755 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/constants.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/constants.py @@ -92,7 +92,7 @@ TAG_DIR_LY_BUILD = str('build') TAG_QT_PLUGIN_PATH = str('QT_PLUGIN_PATH') # filesystem markers, stub file names. -STUB_LY_DEV = str('engineroot.txt') +STUB_LY_DEV = str('engine.json') STUB_LY_ROOT_PROJECT = str('ly_project_stub') STUB_LY_ROOT_DCCSI = str('dccsi_stub') STUB_LY_DCCSI_AZPY = str('dccsi_azpy_stub') diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/config.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/config.py index 0068b4c766..3757d1dbc8 100755 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/config.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/config.py @@ -218,7 +218,7 @@ os.environ["DYNACONF_DCCSI_DEV_MODE"] = str(_DCCSI_DEV_MODE) # search up to get \dev _LY_DEV = azpy.config_utils.get_stub_check_path(in_path=_DCCSIG_PATH, - check_stub='engineroot.txt') + check_stub='engine.json') os.environ["DYNACONF_LY_DEV"] = str(_LY_DEV.resolve()) _LY_PROJECT = azpy.config_utils.get_current_project(_LY_DEV) os.environ["DYNACONF_LY_PROJECT"] = _LY_PROJECT From 50abfbb3f5dc11b8f393e4c952b4eeaabf607c1d Mon Sep 17 00:00:00 2001 From: gallowj Date: Thu, 22 Apr 2021 16:13:23 -0500 Subject: [PATCH 2/4] This is a sweep to remove bad inclusive terms like master. Also testing functionality. --- .../Python/legacy_asset_converter/main.py | 5 +- .../legacy_asset_converter/utilities.py | 8 +- .../SDK/Maya/Scripts/set_callbacks.py | 34 ++--- .../SDK/Maya/Scripts/userSetup.py | 4 +- .../DccScriptingInterface/SDK/Maya/readme.txt | 8 +- .../SDK/Maya/requirements.txt | 53 ++++++- .../DccScriptingInterface/azpy/__init__.py | 5 +- .../azpy/maya/utils/wing_to_maya.py | 2 +- .../azpy/shared/noodely/__init__.py | 130 +++++++++++++++--- .../azpy/shared/noodely/find_arg.py | 14 +- .../azpy/shared/noodely/master.py | 90 ------------ .../azpy/shared/noodely/node.py | 54 +++++--- .../azpy/shared/noodely/pathnode.py | 53 +++---- .../azpy/shared/ui/custom_treemodel.py | 43 +++--- .../azpy/test/entry_test.py | 1 + .../DccScriptingInterface/config.py | 6 +- .../DccScriptingInterface/requirements.txt | 33 +++-- 17 files changed, 313 insertions(+), 230 deletions(-) delete mode 100644 Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/master.py diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/Scripts/Python/legacy_asset_converter/main.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/Scripts/Python/legacy_asset_converter/main.py index 7fc7d49a40..8ffbee78d5 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/Scripts/Python/legacy_asset_converter/main.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/Scripts/Python/legacy_asset_converter/main.py @@ -29,7 +29,10 @@ import collections from collections import abc # import subprocess import logging as _logging -import pathlib +try: + import pathlib +except: + import pathlib2 as pathlib from pathlib import * import shelve # import socket diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/Scripts/Python/legacy_asset_converter/utilities.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/Scripts/Python/legacy_asset_converter/utilities.py index eb4974bd55..9fd031b106 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/Scripts/Python/legacy_asset_converter/utilities.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/Scripts/Python/legacy_asset_converter/utilities.py @@ -17,8 +17,14 @@ import logging as _logging + +try: + import pathlib +except: + import pathlib2 as pathlib + from pathlib import Path -import pathlib + from box import Box import os diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/Scripts/set_callbacks.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/Scripts/set_callbacks.py index 5d495d2dcd..4a1a7164d8 100755 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/Scripts/set_callbacks.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/Scripts/set_callbacks.py @@ -62,15 +62,15 @@ _LOGGER.debug('Invoking:: {0}.'.format({_MODULENAME})) # To Do: move the callback key like 'NewSceneOpened' here (instead of None) # ^ this would provide ability to loop through and replace key with CB object -_G_callbacks = Box(box_dots=True) # global scope container -_G_masterkey = 'DCCsi_callbacks' -_G_callbacks[_G_masterkey] = True # required master key +_G_CALLBACKS = Box(box_dots=True) # global scope container +_G_PRIMEKEY = 'DCCsi_callbacks' +_G_CALLBACKS[_G_PRIMEKEY] = True # required prime key # ------------------------------------------------------------------------- -def init_callbacks(_callbacks=_G_callbacks): +def init_callbacks(_callbacks=_G_CALLBACKS): # store as a dict (Box is a fancy dict) - _callbacks[_G_masterkey] = True # required master key + _callbacks[_G_PRIMEKEY] = True # required prime key # signature dict['callback key'] = ('CallBack'(type), func, callbackObj) _callbacks['on_new_file'] = ['NewSceneOpened', set_defaults, None] @@ -96,24 +96,24 @@ def uninstall_callbacks(): """Bulk uninstalls hte globally defined set of callbacks: _G_callbacks""" - global _G_callbacks + global _G_CALLBACKS _LOGGER.debug('uninstall_callbacks() fired') - for key, value in _G_callbacks: + for key, value in _G_CALLBACKS: if value[2] is not None: # have a cb value[2].uninstall() # so uninstall it else: _LOGGER.warning('No callback in: key {0}, value:{1}' ''.format(key, value)) - _G_callbacks = None + _G_CALLBACKS = None _LOGGER.info('DCCSI CALLBACKS UNINSTALLED ... EXITING') - return _G_callbacks + return _G_CALLBACKS # ------------------------------------------------------------------------- # ------------------------------------------------------------------------- -def install_callbacks(_callbacks=_G_callbacks): +def install_callbacks(_callbacks=_G_CALLBACKS): """Bulk installs the globally defined set of callbacks: _G_callbacks""" @@ -126,15 +126,15 @@ def install_callbacks(_callbacks=_G_callbacks): _callbacks.pop('box_dots') # don't pass anything but carefully considered dict - if _G_masterkey in _callbacks: - _masterkey = _callbacks.pop(_G_masterkey) + if _G_PRIMEKEY in _callbacks: + _primekey = _callbacks.pop(_G_PRIMEKEY) else: - _LOGGER.error('No master key, use a correct dictionary') + _LOGGER.error('No prime key, use a correct dictionary') #To Do: implement error handling and return codes return _callbacks[None] - for key, value in _G_callbacks.items(): - # we popped the master key should the rest should be safe + for key, value in _G_CALLBACKS.items(): + # we popped the prime key should the rest should be safe if value[0] != 'nodeMessageType': # set callback up _cb = azEvCbH.EventCallbackHandler(value[0], @@ -195,10 +195,10 @@ def update_workspace(foo=None): # ------------------------------------------------------------------------- # install and init callbacks on an import obj -_G_callbacks = install_callbacks(_G_callbacks) +_G_CALLBACKS = install_callbacks(_G_CALLBACKS) # ========================================================================== # Module Tests #========================================================================== if __name__ == '__main__': - _G_callbacks = install_callbacks(_G_callbacks) + _G_CALLBACKS = install_callbacks(_G_CALLBACKS) diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/Scripts/userSetup.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/Scripts/userSetup.py index 809cb97494..c615311f3c 100755 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/Scripts/userSetup.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/Scripts/userSetup.py @@ -262,9 +262,9 @@ def post_startup(): # callbacks, To Do: these should also be moved to the bootstrapping config # Defered startup after the Ui is running. - _G_callbacks = Box(box_dots=True) # this just ensures a global scope container + _G_CALLBACKS = Box(box_dots=True) # this just ensures a global scope container if _G_LOAD_CALLBACKS: - from set_callbacks import _G_callbacks + from set_callbacks import _G_CALLBACKS # ^ need to hold on to this as the install repopulate set # this ensures the fixPaths callback is loaded diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/readme.txt b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/readme.txt index 5936b24632..cc090d922f 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/readme.txt +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/readme.txt @@ -74,7 +74,9 @@ Now your local maya install is all set up with pip so you can install additional Now you will want to run the following file to finish setup... We have a requirements.txt file with the extension packages we use in the DCCsi. -You'll need the repo/branch path of your Lumberyard(O3DE) install. -And you'll need to know where the DCCsi, we will install package dependancies there. +You'll need the repo/branch path of your O3DE (aka Lumberyard) install. +And you'll need to know where the DCCsi is located, we will install package dependancies there. -C:\Program Files\Autodesk\Maya2020\bin>mayapy -m pip install -r C:\Depot\Lumberyard\Gems\AtomLyIntegration\TechnicalArt\DccScriptingInterface\SDK\Maya\requirements.txt -t C:\Depot\Lumberyard\Gems\AtomLyIntegration\TechnicalArt\DccScriptingInterface\3rdParty\Python\Lib\2.x\2.7.x\site-packages +Note: you may need to update the paths below to match your local o3de engine install! + +C:\Program Files\Autodesk\Maya2020\bin>mayapy -m pip install -r C:\Depot\o3de\Gems\AtomLyIntegration\TechnicalArt\DccScriptingInterface\SDK\Maya\requirements.txt -t C:\Depot\o3de\Gems\AtomLyIntegration\TechnicalArt\DccScriptingInterface\3rdParty\Python\Lib\2.x\2.7.x\site-packages diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/requirements.txt b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/requirements.txt index 2d087be121..8fd084dac8 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/requirements.txt +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/SDK/Maya/requirements.txt @@ -4,12 +4,14 @@ # # pip-compile --generate-hashes requirements.txt # -typing==3.7.4.3 \ - --hash=sha256:1187fb9c82fd670d10aa07bbb6cfcfe4bdda42d6fab8d5134f04e8c4d0b71cc9 \ - --hash=sha256:283d868f5071ab9ad873e5e52268d611e851c870a2ba354193026f2dfb29d8b5 - # via - # -r requirements.txt - # dynaconf +cachetools==3.1.1 \ + --hash=sha256:428266a1c0d36dc5aca63a2d7c5942e88c2c898d72139fca0e97fdd2380517ae \ + --hash=sha256:8ea2d3ce97850f31e4a08b0e2b5e6c34997d7216a9d2c98e0f3978630d4da69a + # via -r requirements.txt +certifi==2020.6.20 \ + --hash=sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3 \ + --hash=sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41 + # via -r requirements.txt click==7.1.2 \ --hash=sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a \ --hash=sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc @@ -20,6 +22,14 @@ dynaconf==3.1.4 \ --hash=sha256:b2f472d83052f809c5925565b8a2ba76a103d5dc1dbb9748b693ed67212781b9 \ --hash=sha256:e6f383b84150b70fc439c8b2757581a38a58d07962aa14517292dcce1a77e160 # via -r requirements.txt +hashids==1.3.1 \ + --hash=sha256:6c3dc775e65efc2ce2c157a65acb776d634cb814598f406469abef00ae3f635c \ + --hash=sha256:8bddd1acba501bfc9306e7e5a99a1667f4f2cacdc20cbd70bcc5ddfa5147c94c + # via -r requirements.txt +pathlib2==2.3.5 \ + --hash=sha256:0ec8205a157c80d7acc301c0b18fbd5d44fe655968f5d947b6ecef5290fc35db \ + --hash=sha256:6cd9a47b597b37cc57de1c05e56fb1a1c9cc9fab04fe78c29acd090418529868 + # via -r requirements.txt pathlib==1.0.1 \ --hash=sha256:6940718dfc3eff4258203ad5021090933e5c04707d5ca8cc9e73c94a7894ea9f # via -r requirements.txt @@ -27,7 +37,38 @@ python-box==3.4.6 \ --hash=sha256:694a7555e3ff9fbbce734bbaef3aad92b8e4ed0659d3ed04d56b6a0a0eff26a9 \ --hash=sha256:a71d3dc9dbaa34c8597d3517c89a8041bd62fa875f23c0f3dad55e1958e3ce10 # via -r requirements.txt +scandir==1.10.0 \ + --hash=sha256:2586c94e907d99617887daed6c1d102b5ca28f1085f90446554abf1faf73123e \ + --hash=sha256:2ae41f43797ca0c11591c0c35f2f5875fa99f8797cb1a1fd440497ec0ae4b022 \ + --hash=sha256:2b8e3888b11abb2217a32af0766bc06b65cc4a928d8727828ee68af5a967fa6f \ + --hash=sha256:2c712840c2e2ee8dfaf36034080108d30060d759c7b73a01a52251cc8989f11f \ + --hash=sha256:4d4631f6062e658e9007ab3149a9b914f3548cb38bfb021c64f39a025ce578ae \ + --hash=sha256:67f15b6f83e6507fdc6fca22fedf6ef8b334b399ca27c6b568cbfaa82a364173 \ + --hash=sha256:7d2d7a06a252764061a020407b997dd036f7bd6a175a5ba2b345f0a357f0b3f4 \ + --hash=sha256:8c5922863e44ffc00c5c693190648daa6d15e7c1207ed02d6f46a8dcc2869d32 \ + --hash=sha256:92c85ac42f41ffdc35b6da57ed991575bdbe69db895507af88b9f499b701c188 \ + --hash=sha256:b24086f2375c4a094a6b51e78b4cf7ca16c721dcee2eddd7aa6494b42d6d519d \ + --hash=sha256:cb925555f43060a1745d0a321cca94bcea927c50114b623d73179189a4e100ac + # via + # -r requirements.txt + # pathlib2 +six==1.15.0 \ + --hash=sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259 \ + --hash=sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced + # via + # -r requirements.txt + # pathlib2 +typing==3.7.4.3 \ + --hash=sha256:1187fb9c82fd670d10aa07bbb6cfcfe4bdda42d6fab8d5134f04e8c4d0b71cc9 \ + --hash=sha256:283d868f5071ab9ad873e5e52268d611e851c870a2ba354193026f2dfb29d8b5 + # via + # -r requirements.txt + # dynaconf unipath==1.1 \ --hash=sha256:09839adcc72e8a24d4f76d63656f30b5a1f721fc40c9bcd79d8c67bdd8b47dae \ --hash=sha256:e6257e508d8abbfb6ddd8ec357e33589f1f48b1599127f23b017124d90b0fff7 # via -r requirements.txt +wincertstore==0.2 \ + --hash=sha256:22d5eebb52df88a8d4014d5cf6d1b6c3a5d469e6c3b2e2854f3a003e48872356 \ + --hash=sha256:780bd1557c9185c15d9f4221ea7f905cb20b93f7151ca8ccaed9714dce4b327a + # via -r requirements.txt diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/__init__.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/__init__.py index 415b879ece..69e4543a59 100755 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/__init__.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/__init__.py @@ -67,7 +67,10 @@ _DCCSI_DEV_MODE = env_bool.env_bool(constants.ENVAR_DCCSI_DEV_MODE, False) # for py2.7 (Maya) we provide this, so we must assume some bootstrapping # has occured, see DccScriptingInterface\\config.py (_DCCSI_PYTHON_LIB_PATH) -import pathlib +try: + import pathlib +except: + import pathlib2 as pathlib from pathlib import Path if _G_DEBUG: print('DCCsi debug breadcrumb, pathlib is: {}'.format(pathlib)) diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/maya/utils/wing_to_maya.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/maya/utils/wing_to_maya.py index 9798f3f268..a73f275e4b 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/maya/utils/wing_to_maya.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/maya/utils/wing_to_maya.py @@ -145,7 +145,7 @@ def start_wing_to_maya_menu(): port = object() # init a dummy object # default name ... name is first arg, or a kwarg - portName, kwargs = setSynthArgKwarg(port, argPosIndex=0, argTag='portName', + portName, kwargs = setSynthArgKwarg(port, arg_pos_index=0, argTag='portName', inArgs=args, inKwargs=kwargs, defaultValue="127.0.0.1:6000") diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/__init__.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/__init__.py index 7d165916c5..b30fef72c8 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/__init__.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/__init__.py @@ -15,30 +15,118 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. """azpy.shared.ui.__init__""" import os -import logging -import logging.config +from pathlib import Path +import logging as _logging -# global space debug flag -_G_DEBUG = os.getenv('DCCSI_GDEBUG', False) +from azpy.env_bool import env_bool +from azpy.constants import ENVAR_DCCSI_GDEBUG +from azpy.constants import ENVAR_DCCSI_DEV_MODE -# global space debug flag -_DCCSI_DEV_MODE = os.getenv('DCCSI_DEV_MODE', False) +# global space +_G_DEBUG = env_bool(ENVAR_DCCSI_GDEBUG, False) +_DCCSI_DEV_MODE = env_bool(ENVAR_DCCSI_DEV_MODE, False) +_PACKAGENAME = __name__ +if _PACKAGENAME is '__main__': + _PACKAGENAME = 'azpy.shared.noodely' + +import azpy +_LOGGER = azpy.initialize_logger(_PACKAGENAME) +_LOGGER.debug('Invoking __init__.py for {0}.'.format({_PACKAGENAME})) +# ------------------------------------------------------------------------- +# +__all__ = ['find_arg', + 'helpers', + 'node', + 'synth', + 'synth_arg_kwarg', + 'test_foo'] +# +# ------------------------------------------------------------------------- + + +# -- Project Globals ------------------------------------------------------ +while 1: + # But if we want to change the prject root, we can set a new one here. + def set_G_DEFAULT_PROJECT_DIR(value): + global _G_DEFAULT_PROJECT_DIR + """Sets and returns the _G_DEFAULT_PROJECT_DIR""" + _G_DEFAULT_PROJECT_DIR = Path(value).resolve() + return Path(_G_DEFAULT_PROJECT_DIR) + + def get_G_DEFAULT_PROJECT_DIR(): + global _G_DEFAULT_PROJECT_DIR + """Returns the _G_DEFAULT_PROJECT_DIR""" + return Path(_G_DEFAULT_PROJECT_DIR) + + # if we are initializing everythin properly, we can assume the project + # variables are properly set + global _G_DEFAULT_PROJECT_DIR + _G_DEFAULT_PROJECT_DIR = Path(os.getcwd()).resolve() + + break +# ------------------------------------------------------------------------- + +# ------------------------------------------------------------------------- +while 1: + global _G_PRIME_ROOT_NODE + _G_PRIME_ROOT_NODE = None # <-- needs to be set up! + # But if we want to change the prject root, we can set a new one here. + + def set_G_PRIME_ROOT_NODE(node): + """Sets and returns the _G_PRIME_ROOT_NODE""" + global _G_PRIME_ROOT_NODE + if not isinstance(node, ProjectRootNode): + message = '_G_PRIME_ROOT_NODE: {}\r'.format(type(node)) + message += 'A project root node needs to be properly set\r' + raise TypeError(message) + _G_PRIME_ROOT_NODE = node + return _G_PRIME_ROOT_NODE + + def get_G_PRIME_ROOT_NODE(): + """Returns the _G_PRIME_ROOT_NODE""" + global _G_PRIME_ROOT_NODE + return _G_PRIME_ROOT_NODE + + break +# ------------------------------------------------------------------------- + + +########################################################################### +# tests(), code block for testing module +# ------------------------------------------------------------------------- +def tests(): + _G_DEFAULT_PROJECT_DIR = set_G_DEFAULT_PROJECT_DIR(os.getcwd()) + _LOGGER.info(_G_DEFAULT_PROJECT_DIR) + _LOGGER.info(_G_DEFAULT_PROJECT_DIR.parent) + _LOGGER.info(_G_DEFAULT_PROJECT_DIR.parts) + + # NOT implemented yet + # _G_PRIME_ROOT_NODE + + return +# ------------------------------------------------------------------------- + + +# ------------------------------------------------------------------------- if _DCCSI_DEV_MODE: - _PACKAGENAME = __name__ - if _PACKAGENAME is '__main__': - _PACKAGENAME = 'noodely' - -_PKG_PARENT_PATH = str('azpy.shared') -_PKG_PATH = str('{0}.{1}'.format(_PKG_PARENT_PATH, _PACKAGENAME)) -_LOGGER = logging.getLogger(_PACKAGENAME) -_LOGGER.debug('Invoking __init__.py for {0}.'.format({_PKG_PATH})) - -# ------------------------------------------------------------------------- -# -__all__ = ['config', 'find_arg', 'master', 'node', 'synth', - 'synth_arg_kwarg', 'test_foo'] -# + # If in dev mode this will test imports of __all__ + from azpy import test_imports + _LOGGER.debug('Testing Imports from {0}'.format(_PACKAGENAME)) + test_imports(__all__, + _pkg=_PACKAGENAME, + _logger=_LOGGER) # ------------------------------------------------------------------------- -del _LOGGER + +########################################################################### +# --call block------------------------------------------------------------- +if __name__ == "__main__": + _LOGGER.info("# {0} #".format('-' * 72)) + _LOGGER.info('~ noodely.prime ... Running script as __main__') + _LOGGER.info("# {0} #".format('-' * 72)) + + # run simple tests + tests() + +del _LOGGER \ No newline at end of file diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/find_arg.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/find_arg.py index 517064e57a..36b52bbb50 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/find_arg.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/find_arg.py @@ -23,7 +23,7 @@ __author__ = 'HogJonny' # ------------------------------------------------------------------------- -def find_arg(argPosIndex=None, argTag=None, removeKwarg=None, +def find_arg(arg_pos_index=None, argTag=None, removeKwarg=None, inArgs=None, inKwargs=None, defaultValue=None): """ # finds and returns an arg... @@ -41,15 +41,15 @@ def find_arg(argPosIndex=None, argTag=None, removeKwarg=None, # # foundArg, args, kwargs = find_arg(0, 'name',) """ - if argPosIndex != None: - if not isinstance(argPosIndex, int): + if arg_pos_index != None: + if not isinstance(arg_pos_index, int): raise TypeError('argPosIndex: accepts a index integer!\r' - 'got: {0}'.format(argPosIndex)) + 'got: {0}'.format(arg_pos_index)) # positional args ... check the position if len(inArgs) > 0: try: - foundArg = inArgs[argPosIndex] + foundArg = inArgs[arg_pos_index] except: pass @@ -88,10 +88,10 @@ if __name__ == "__main__": super().__init__() self._name, kwargs = find_arg(argTag='foo', removeKwarg=True, inArgs=args, inKwargs=kwargs) - self._name, kwargs = find_arg(argPosIndex=0, argTag='name', + self._name, kwargs = find_arg(arg_pos_index=0, argTag='name', removeKwarg=True, inArgs=args, inKwargs=kwargs) # <-- first positional OR kwarg - self._parent, kwargs = find_arg(argPosIndex=1, argTag='parent', + self._parent, kwargs = find_arg(arg_pos_index=1, argTag='parent', removeKwarg=True, inArgs=args, inKwargs=kwargs) # <-- second positional OR kwarg diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/master.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/master.py deleted file mode 100644 index d85ea48854..0000000000 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/master.py +++ /dev/null @@ -1,90 +0,0 @@ -""" -All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -its licensors. - -For complete copyright and license terms please see the LICENSE at the root of this -distribution (the "License"). All use of this software is governed by the License, -or, if provided, by the license below or the license accompanying this file. Do not -remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -""" -# ------------------------------------------------------------------------- - -# ------------------------------------------------------------------------- -# ------------------------------------------------------------------------- -# master.py -# Allows for project based setup to be used with noodly -# version: 0.1 -# author: Gallowj -# ------------------------------------------------------------------------- -# ------------------------------------------------------------------------- -import os - -from unipath import Path - -_G_DEFAULT_PROJECT_DIR = os.getcwd() -_G_MASTER_ROOT_NODE = None - - -@property -def _G_DEFAULT_PROJECT_DIR(value): - _G_DEFAULT_PROJECT_DIR = value - return _G_DEFAULT_PROJECT_DIR - - -def set_PROJECT_DIR(value): - """Sets and returns _G_DEFAULT_PROJECT_DIR""" - global _G_DEFAULT_PROJECT_DIR - _G_DEFAULT_PROJECT_DIR = Path(value).expand() - return Path(_G_DEFAULT_PROJECT_DIR) - - -@property -def _G_MASTER_ROOT_NODE(value): - _G_MASTER_ROOT_NODE = value - return _G_MASTER_ROOT_NODE - - -def set_MASTER_ROOT_NODE(value): - """Sets and returns _G_MASTER_ROOT_NODE""" - global _G_MASTER_ROOT_NODE - if not isinstance(inNode, ProjectRootNode): - raise TypeError('self._projectRootNode is: {0}\r' - 'A _projectRootNode, needs to be properly set\r' - 'So that we can acces:\r' - '\tself._projectRootNode._sourceRoot\r' - '\tself._projectRootNode._overrideRoot\r' - 'Use self.assignProjectRootNode()\r' - ''.format(type(inNode))) - - _G_MASTER_ROOT_NODE = inNode - return _G_MASTER_ROOT_NODE - - -########################################################################### -# tests(), code block for testing module -# ------------------------------------------------------------------------- -def tests(): - set_PROJECT_DIR(os.getcwd()) - print(_G_DEFAULT_PROJECT_DIR) - print(_G_DEFAULT_PROJECT_DIR.parent) - print(_G_DEFAULT_PROJECT_DIR.components()) - - # NOT implemented yet - # set_PROJECT_DIR - - return - - -########################################################################### -# --call block------------------------------------------------------------- -if __name__ == "__main__": - print ("# ----------------------------------------------------------------------- #") - print ('~ noodly.master ... Running script as __main__') - print ("# ----------------------------------------------------------------------- #\r") - - # run simple tests - tests() - - #_G_DEFAULT_PROJECT_DIR = Path(os.getcwd()) - print(_G_DEFAULT_PROJECT_DIR.components()) diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/node.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/node.py index 4eca3b315d..7ed008debf 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/node.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/node.py @@ -16,7 +16,7 @@ from __future__ import division # ------------------------------------------------------------------------- # ------------------------------------------------------------------------- # node.py -# simple base Node Class, for tool creation. +# simple base Node Class, useful in tool creation. # version: 0.1 # author: Gallowj # ------------------------------------------------------------------------- @@ -25,16 +25,8 @@ from __future__ import division Module docstring: A Simple Node Base Class Module, for creating basic nodes within a hierarchy. """ - __author__ = 'HogJonny' -_G_DEBUG = True # global state for debugging -_G_SETTINGS = None # global Settings storage -_G_LOG = None # global LOGger storage - -_G_MASTER_NODE = None # We intend to init a master node, unless provided - -# ------------------------------------------------------------------------- # built-ins import os import copy @@ -48,11 +40,32 @@ import cachetools from sched import scheduler # local imports -from LyPy.si_shared.noodly.helpers import display_cached_value -from LyPy.si_shared.noodly.find_arg import find_arg -from LyPy.si_shared.noodly.synth import synthesize +from azpy.shared.noodely.helpers import display_cached_value +from azpy.shared.noodely.find_arg import find_arg +from azpy.shared.noodely.synth import synthesize + +import azpy +from azpy.env_bool import env_bool +from azpy.constants import ENVAR_DCCSI_GDEBUG +from azpy.constants import ENVAR_DCCSI_DEV_MODE + +# global space +# To Do: update to dynaconf dynamic env and settings? +_G_DEBUG = env_bool(ENVAR_DCCSI_GDEBUG, False) +_DCCSI_DEV_MODE = env_bool(ENVAR_DCCSI_DEV_MODE, False) + +_MODULENAME = 'azpy.shared.noodely.node' + +_log_level = int(20) +if _G_DEBUG: + _log_level = int(10) +_LOGGER = azpy.initialize_logger(_MODULENAME, + log_to_file=False, + default_log_level=_log_level) +_LOGGER.debug('Starting:: {}.'.format({_MODULENAME})) # ------------------------------------------------------------------------- + # ------------------------------------------------------------------------- # quick test code (remove later) from hashids import Hashids @@ -79,8 +92,6 @@ if os.path.supports_unicode_filenames: ########################################################################### # HELPER method functions # ------------------------------------------------------------------------- - - def return_node_from_hashid(hashid): if not isinstance(hashid, str): raise TypeError("{0},{1}: Accepts hashids as str types!\r" @@ -95,6 +106,7 @@ def return_node_from_hashid(hashid): # ------------------------------------------------------------------------- +# ------------------------------------------------------------------------- class Node(object): """Class constructor: makes a node.""" @@ -131,7 +143,7 @@ class Node(object): # -- secret keyword ----------------------------------------------- self._temp_node = False - temp_node, kwargs = find_arg(argPosIndex=None, argTag='temp_node', + temp_node, kwargs = find_arg(arg_pos_index=None, argTag='temp_node', removeKwarg=True, inArgs=args, inKwargs=kwargs) # <-- kwarg only self._temp_node = temp_node @@ -141,7 +153,7 @@ class Node(object): # -- store message header ----------------------------------------- # setup the .message_header <-- kwarg only - message_header, kwargs = find_arg(argPosIndex=None, argTag='message_header', + message_header, kwargs = find_arg(arg_pos_index=None, argTag='message_header', removeKwarg=True, inArgs=args, inKwargs=kwargs, defaultValue=('{0}(), Message' .format(self._node_type))) @@ -165,7 +177,7 @@ class Node(object): # -- store the node name ------------------------------------------ self._node_name = node_name if (self._node_class_index == 0 and self._node_name == None): - self._node_name = 'MASTER' + self._node_name = 'PRIME' elif (self._node_class_index > 0 and self._node_name == None): # set a default node_name if none, based on the unihashid if not self._name_is_uni_hashid: @@ -325,7 +337,7 @@ class Node(object): @property def cls_node_dict(self): return Node._cls_node_dict - # ---------------------------------------------------------------------- + # --------------------------------------------------------------------- # --method-set--------------------------------------------------------- def cls_node_count_up(self): @@ -584,10 +596,10 @@ def tests(): print(default_node.hierarchy()) # retreive a node from it's known hashid - master_node = return_node_from_hashid('kxYLm0XQeXJ7jWaP') - print(master_node.uni_hashid) # verify hasid + prime_node = return_node_from_hashid('kxYLm0XQeXJ7jWaP') + print(prime_node.uni_hashid) # verify hasid # should return the same node as default_node - print(master_node.node_name) # should be 'MASTER' + print(prime_node.node_name) # should be 'PRIME' return # ------------------------------------------------------------------------- diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/pathnode.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/pathnode.py index f969e16fbe..b4489a998e 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/pathnode.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/pathnode.py @@ -27,12 +27,6 @@ A simple path objecy based Node Class, for creating path hierarchies. """ __author__ = 'HogJonny' -_G_DEBUG = True # global state for debugging -_G_SETTINGS = None # global Settings storage -_G_LOG = None # global LOGger storage - -_G_MASTER_NODE = None # We intend to init a master node - # ------------------------------------------------------------------------- # built-ins import os @@ -44,10 +38,31 @@ import logging from unipath import Path, AbstractPath # local ly imports -from LyPy.si_shared.noodly.helpers import istext -from LyPy.si_shared.noodly.find_arg import find_arg -from LyPy.si_shared.noodly.synth import synthesize -from LyPy.si_shared.noodly.node import Node +from azpy.shared.noodely.helpers import istext +from azpy.shared.noodely.find_arg import find_arg +from azpy.shared.noodely.synth import synthesize +from azpy.shared.noodely.node import Node + +import azpy +from azpy.env_bool import env_bool +from azpy.constants import ENVAR_DCCSI_GDEBUG +from azpy.constants import ENVAR_DCCSI_DEV_MODE + +# ------------------------------------------------------------------------- +# global space +# To Do: update to dynaconf dynamic env and settings? +_G_DEBUG = env_bool(ENVAR_DCCSI_GDEBUG, False) +_DCCSI_DEV_MODE = env_bool(ENVAR_DCCSI_DEV_MODE, False) + +_MODULENAME = 'azpy.shared.noodely.pathnode' + +_log_level = int(20) +if _G_DEBUG: + _log_level = int(10) +_LOGGER = azpy.initialize_logger(_MODULENAME, + log_to_file=False, + default_log_level=_log_level) +_LOGGER.debug('Starting:: {}.'.format({_MODULENAME})) # ------------------------------------------------------------------------- @@ -63,20 +78,12 @@ if os.path.supports_unicode_filenames: # ------------------------------------------------------------------------- -# set up logger -_G_LOGGER = logging.getLogger(__name__) -# ------------------------------------------------------------------------- - - class PathNode(Node): """doc string""" # share the debug state _DEBUG = _G_DEBUG - # logger - _LOGGER = _G_LOGGER - # class header _message_header = 'noodly, PathNode(): Message' @@ -117,7 +124,7 @@ class PathNode(Node): # -- secret keyword ----------------------------------------------- self._temp_node = False - temp_node, kwargs = find_arg(argPosIndex=None, argTag='temp_node', + temp_node, kwargs = find_arg(arg_pos_index=None, argTag='temp_node', removeKwarg=True, inArgs=args, inKwargs=kwargs) # <-- kwarg only @@ -126,11 +133,11 @@ class PathNode(Node): self.k_wargs_dict['temp_node'] = self._temp_node # -- Node class args/kwargs --------------------------------------- - node_name, kwargs = find_arg(argPosIndex=2, argTag='node_name', + node_name, kwargs = find_arg(arg_pos_index=2, argTag='node_name', removeKwarg=True, inArgs=args, inKwargs=kwargs) # <-- third arg, kwarg - parent_node, kwargs = find_arg(argPosIndex=3, argTag='parent_node', + parent_node, kwargs = find_arg(arg_pos_index=3, argTag='parent_node', removeKwarg=True, inArgs=args, inKwargs=kwargs) # <-- fourth arg, kwarg @@ -344,12 +351,12 @@ class PathNode(Node): # ------------------------------------------------------------------------- def tests(): from node import Node - default_node = Node() # result: Node(node_name='MASTER') + default_node = Node() # result: Node(node_name='PRIME') print(default_node) first_child = PathNode(path=None, node_name='first_child', parent_node=default_node) print(first_child) - # result: PathNode(temp_node=True, parent_node=Node(node_name='MASTER')).siblingNodeFromHashid('WNPZoKBVpXV16QLz') + # result: PathNode(temp_node=True, parent_node=Node(node_name='PRIME')).siblingNodeFromHashid('WNPZoKBVpXV16QLz') # first_child.nodeType # first_child.parent_node # first_child.node_name diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/ui/custom_treemodel.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/ui/custom_treemodel.py index cded8fec09..1ca3221508 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/ui/custom_treemodel.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/ui/custom_treemodel.py @@ -20,7 +20,10 @@ import os # from io import StringIO # for handling unicode strings # azpy -from azpy import initialize_logger +import azpy +from azpy.env_bool import env_bool +from azpy.constants import ENVAR_DCCSI_GDEBUG +from azpy.constants import ENVAR_DCCSI_DEV_MODE # 3rd Party from unipath import Path @@ -28,22 +31,22 @@ import PySide2.QtCore as QtCore import PySide2.QtWidgets as QtWidgets import PySide2.QtGui as QtGui # ------------------------------------------------------------------------- -# global space debug flag -_G_DEBUG = os.getenv('DCCSI_GDEBUG', False) - -# global space debug flag -_DCCSI_DEV_MODE = os.getenv('DCCSI_DEV_MODE', False) +# global space +# To Do: update to dynaconf dynamic env and settings? +_G_DEBUG = env_bool(ENVAR_DCCSI_GDEBUG, False) +_DCCSI_DEV_MODE = env_bool(ENVAR_DCCSI_DEV_MODE, False) _MODULE_PATH = Path(__file__) -_ORG_TAG = 'Amazon_Lumberyard' -_APP_TAG = 'DCCsi' -_TOOL_TAG = 'azpy.shared.ui.custom_treemodel' -_TYPE_TAG = 'test' +_MODULENAME = 'azpy.shared.ui.custom_treemodel' -_MODULENAME = __name__ -if _MODULENAME is '__main__': - _MODULENAME = _TOOL_TAG +_log_level = int(20) +if _G_DEBUG: + _log_level = int(10) +_LOGGER = azpy.initialize_logger(_MODULENAME, + log_to_file=False, + default_log_level=_log_level) +_LOGGER.debug('Starting:: {}.'.format({_MODULENAME})) _UI_FILE = Path(_MODULE_PATH.parent, 'resources', 'example.ui') # ------------------------------------------------------------------------- @@ -75,15 +78,15 @@ class CustomFileTreeModel(QtCore.QAbstractItemModel): # TODO: need to make sure we are getting path objects # build the root node - self._root_node = self.buildRootNode('root', None, self._rootFilePath) + self._root_node = self.build_rootnode('root', None, self._root_filepath) - # master selection - self._masterSelection = masterSelection + # prime selection + self._prime_selection = prime_selection - # build the master selection node - self._masterNode = self.buildMasterNode('master', None, self._masterSelection, self._rootNode.path()) + # build the prime selection node + self._primenode = self.build_primenode('prime', None, self._prime_selection, self._rootnode.path()) # want to store off a couple lists in the model, for retreival later - self._nodeList = None - self._depNodesList = None + self._nodelist = None + self._dep_nodelist = None diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/test/entry_test.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/test/entry_test.py index 67dc3b60ad..7fc2177e9a 100755 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/test/entry_test.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/test/entry_test.py @@ -25,6 +25,7 @@ from pathlib import Path # ------------------------------------------------------------------------- _BOOT_CHECK = False # set true to test breakpoint in this module directly + import azpy from azpy.env_bool import env_bool from azpy.constants import ENVAR_DCCSI_GDEBUG diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/config.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/config.py index 3757d1dbc8..e6edabe503 100755 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/config.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/config.py @@ -26,7 +26,6 @@ import re # our framework for dcc tools need to run in apps like Maya that may still be # on py27 so we need to import and use after some boostrapping - # -------------------------------------------------------------------+------ #os.environ['PYTHONINSPECT'] = 'True' _MODULE_PATH = os.path.abspath(__file__) @@ -78,7 +77,10 @@ _DCCSI_PYTHON_LIB_PATH = azpy.config_utils.bootstrap_dccsi_py_libs(_DCCSIG_PATH) # Now we should be able to just carry on with pth lib and dynaconf from dynaconf import Dynaconf -from pathlib import Path +try: + import pathlib +except: + import pathlib2 as pathlib _DCCSIG_PATH = Path(_DCCSIG_PATH).resolve() _DCCSI_PYTHON_LIB_PATH = Path(_DCCSI_PYTHON_LIB_PATH).resolve() diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/requirements.txt b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/requirements.txt index 05d47ea70c..2f7626addb 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/requirements.txt +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/requirements.txt @@ -4,34 +4,39 @@ # # pip-compile --generate-hashes requirements.txt # -typing==3.7.4.3 \ - --hash=sha256:1187fb9c82fd670d10aa07bbb6cfcfe4bdda42d6fab8d5134f04e8c4d0b71cc9 \ - --hash=sha256:283d868f5071ab9ad873e5e52268d611e851c870a2ba354193026f2dfb29d8b5 - # via - # -r requirements.txt - # dynaconf +cachetools==4.2.1 \ + --hash=sha256:1d9d5f567be80f7c07d765e21b814326d78c61eb0c3a637dffc0e5d1796cb2e2 \ + --hash=sha256:f469e29e7aa4cff64d8de4aad95ce76de8ea1125a16c68e0d93f65c3c3dc92e9 + # via -r requirements.txt +certifi==2020.12.5 \ + --hash=sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c \ + --hash=sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830 + # via -r requirements.txt click==7.1.2 \ --hash=sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a \ --hash=sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc # via # -r requirements.txt - # pip-tools dynaconf==3.1.4 \ --hash=sha256:b2f472d83052f809c5925565b8a2ba76a103d5dc1dbb9748b693ed67212781b9 \ --hash=sha256:e6f383b84150b70fc439c8b2757581a38a58d07962aa14517292dcce1a77e160 # via -r requirements.txt +hashids==1.3.1 \ + --hash=sha256:6c3dc775e65efc2ce2c157a65acb776d634cb814598f406469abef00ae3f635c \ + --hash=sha256:8bddd1acba501bfc9306e7e5a99a1667f4f2cacdc20cbd70bcc5ddfa5147c94c + # via -r requirements.txt pathlib==1.0.1 \ --hash=sha256:6940718dfc3eff4258203ad5021090933e5c04707d5ca8cc9e73c94a7894ea9f # via -r requirements.txt -python-box==3.4.6 \ - --hash=sha256:694a7555e3ff9fbbce734bbaef3aad92b8e4ed0659d3ed04d56b6a0a0eff26a9 \ - --hash=sha256:a71d3dc9dbaa34c8597d3517c89a8041bd62fa875f23c0f3dad55e1958e3ce10 +python-box==5.3.0 \ + --hash=sha256:4ed4ef5d34de505a65c01e3f1911de8cdb29484fcae0c035141dce535c6c194a \ + --hash=sha256:f2a531f9f5bbef078c175fad6abb31e9b59d40d121ea79993197e6bb221c6be6 # via -r requirements.txt unipath==1.1 \ --hash=sha256:09839adcc72e8a24d4f76d63656f30b5a1f721fc40c9bcd79d8c67bdd8b47dae \ --hash=sha256:e6257e508d8abbfb6ddd8ec357e33589f1f48b1599127f23b017124d90b0fff7 # via -r requirements.txt - -# WARNING: The following packages were not pinned, but pip requires them to be -# pinned when the requirements file includes hashes. Consider using the --allow-unsafe flag. -# pip +wincertstore==0.2 \ + --hash=sha256:22d5eebb52df88a8d4014d5cf6d1b6c3a5d469e6c3b2e2854f3a003e48872356 \ + --hash=sha256:780bd1557c9185c15d9f4221ea7f905cb20b93f7151ca8ccaed9714dce4b327a + # via -r requirements.txt \ No newline at end of file From ec8dd9ff88da28dfb07499a144904c287b6a1e71 Mon Sep 17 00:00:00 2001 From: gallowj Date: Thu, 22 Apr 2021 17:21:55 -0500 Subject: [PATCH 3/4] s few more small cleanups --- .../DccScriptingInterface/azpy/shared/ui/help_menu.py | 2 +- .../TechnicalArt/DccScriptingInterface/config.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/ui/help_menu.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/ui/help_menu.py index 39f151cd2e..b261d4b0e1 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/ui/help_menu.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/ui/help_menu.py @@ -68,7 +68,7 @@ class HelpMenu(): INPUTS: main_window = the class instance of the QMainWindow tool_label = the menu label for the tool's help item - tool_help_page = the http:// path to the specific bpTool help page + tool_help_page = the http:// path to the tool specific help page Here's an example # self.help_menu = azpy.shared.ui.help_menu.setup(self, 'Help...', 'https://some.site.com/azpy') diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/config.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/config.py index e6edabe503..c62571b2f5 100755 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/config.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/config.py @@ -81,6 +81,7 @@ try: import pathlib except: import pathlib2 as pathlib +from pathlib import Path _DCCSIG_PATH = Path(_DCCSIG_PATH).resolve() _DCCSI_PYTHON_LIB_PATH = Path(_DCCSI_PYTHON_LIB_PATH).resolve() From a7054844ec76d8915bee5ad576247dfbf610e25d Mon Sep 17 00:00:00 2001 From: gallowj Date: Thu, 22 Apr 2021 18:58:15 -0500 Subject: [PATCH 4/4] I fixed some additional chnages to make formatting more standardized --- .../azpy/maya/utils/wing_to_maya.py | 12 +-- .../azpy/shared/noodely/find_arg.py | 44 +++++----- .../azpy/shared/noodely/node.py | 12 +-- .../azpy/shared/noodely/pathnode.py | 18 ++--- .../azpy/shared/noodely/synth_arg_kwarg.py | 80 +++++++++---------- .../azpy/shared/noodely/test_foo.py | 4 +- .../azpy/synthetic_env.py | 2 +- .../azpy/test/entry_test.py | 6 +- 8 files changed, 90 insertions(+), 88 deletions(-) diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/maya/utils/wing_to_maya.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/maya/utils/wing_to_maya.py index a73f275e4b..3d34aceb40 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/maya/utils/wing_to_maya.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/maya/utils/wing_to_maya.py @@ -36,7 +36,7 @@ _LOGGER.info('local_host: {}'.format(_LOCAL_HOST)) # ------------------------------------------------------------------------- def start_wing_to_maya(local_host=_LOCAL_HOST, - comman_port=6000, + command_port=6000, logger=_LOGGER, *args, **kwargs): """ @@ -58,7 +58,7 @@ def start_wing_to_maya(local_host=_LOCAL_HOST, except NameError: port = None - port_name = str('{0}:{1}'.format(local_host, comman_port)) + port_name = str('{0}:{1}'.format(local_host, command_port)) # should only be getting the port passed in _LOGGER.info('Attempting to open port:: {0}'.format(port_name)) @@ -145,10 +145,10 @@ def start_wing_to_maya_menu(): port = object() # init a dummy object # default name ... name is first arg, or a kwarg - portName, kwargs = setSynthArgKwarg(port, arg_pos_index=0, argTag='portName', - inArgs=args, inKwargs=kwargs, - defaultValue="127.0.0.1:6000") + portName, kwargs = set_synth_arg_kwarg(port, arg_pos_index=0, arg_tag='portName', + in_args=args, in_kwargs=kwargs, + default_value="127.0.0.1:6000") - port = start_wing_to_maya(local_host=_LOCAL_HOST, comman_port=6000) + port = start_wing_to_maya(local_host=_LOCAL_HOST, command_port=6000) return # ------------------------------------------------------------------------- diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/find_arg.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/find_arg.py index 36b52bbb50..1ed217bc73 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/find_arg.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/find_arg.py @@ -23,8 +23,8 @@ __author__ = 'HogJonny' # ------------------------------------------------------------------------- -def find_arg(arg_pos_index=None, argTag=None, removeKwarg=None, - inArgs=None, inKwargs=None, defaultValue=None): +def find_arg(arg_pos_index=None, arg_tag=None, remove_kwarg=None, + in_args=None, in_kwargs=None, default_value=None): """ # finds and returns an arg... # if a positional index is given argPosIndex=0, it checks args first @@ -41,31 +41,33 @@ def find_arg(arg_pos_index=None, argTag=None, removeKwarg=None, # # foundArg, args, kwargs = find_arg(0, 'name',) """ + + found_arg = None + if arg_pos_index != None: if not isinstance(arg_pos_index, int): raise TypeError('argPosIndex: accepts a index integer!\r' 'got: {0}'.format(arg_pos_index)) # positional args ... check the position - if len(inArgs) > 0: + if len(in_args) > 0: try: - foundArg = inArgs[arg_pos_index] + found_arg = in_args[arg_pos_index] except: pass # check kwargs ... a set kwarg will ALWAYS take precident over # positional arg!!! - try: - foundArg - except: - foundArg = inKwargs.get(argTag, defaultValue) # defaults to None + if in_kwargs: + found_arg = in_kwargs.get(arg_tag, default_value) # defaults to None - if removeKwarg: - if argTag in inKwargs: - del inKwargs[argTag] + if remove_kwarg: + if in_kwargs: + if arg_tag in in_kwargs: + del in_kwargs[arg_tag] # if we didn't find the arg/kwarg, the defualt return will be None - return foundArg, inKwargs + return found_arg, in_kwargs # ------------------------------------------------------------------------- @@ -86,14 +88,14 @@ if __name__ == "__main__": class TestNode(Foo): def __init__(self, *args, **kwargs): super().__init__() - self._name, kwargs = find_arg(argTag='foo', removeKwarg=True, - inArgs=args, inKwargs=kwargs) - self._name, kwargs = find_arg(arg_pos_index=0, argTag='name', - removeKwarg=True, - inArgs=args, inKwargs=kwargs) # <-- first positional OR kwarg - self._parent, kwargs = find_arg(arg_pos_index=1, argTag='parent', - removeKwarg=True, - inArgs=args, inKwargs=kwargs) # <-- second positional OR kwarg + self._name, kwargs = find_arg(arg_tag='foo', remove_kwarg=True, + in_args=args, in_kwargs=kwargs) + self._name, kwargs = find_arg(arg_pos_index=0, arg_tag='name', + remove_kwarg=True, + in_args=args, in_kwargs=kwargs) # <-- first positional OR kwarg + self._parent, kwargs = find_arg(arg_pos_index=1, arg_tag='parent', + remove_kwarg=True, + in_args=args, in_kwargs=kwargs) # <-- second positional OR kwarg self._kwargsDict = {} @@ -117,7 +119,7 @@ if __name__ == "__main__": testNode2 = TestNode(name='fooey', parent=testNode) - testNode3 = TestNode('kablooey', testNode2, goober='dufus') + testNode3 = TestNode('kablooey', testNode2, gomer='pile') print ('testNode2, name: {0}, parent: {1}'.format(testNode2._name, testNode2._parent)) print (testNode3) diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/node.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/node.py index 7ed008debf..950b8fcbec 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/node.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/node.py @@ -143,9 +143,9 @@ class Node(object): # -- secret keyword ----------------------------------------------- self._temp_node = False - temp_node, kwargs = find_arg(arg_pos_index=None, argTag='temp_node', - removeKwarg=True, inArgs=args, - inKwargs=kwargs) # <-- kwarg only + temp_node, kwargs = find_arg(arg_pos_index=None, arg_tag='temp_node', + remove_kwarg=True, in_args=args, + in_kwargs=kwargs) # <-- kwarg only self._temp_node = temp_node if self._temp_node: self._kwargs_dict['temp_node'] = self._temp_node @@ -153,9 +153,9 @@ class Node(object): # -- store message header ----------------------------------------- # setup the .message_header <-- kwarg only - message_header, kwargs = find_arg(arg_pos_index=None, argTag='message_header', - removeKwarg=True, inArgs=args, inKwargs=kwargs, - defaultValue=('{0}(), Message' + message_header, kwargs = find_arg(arg_pos_index=None, arg_tag='message_header', + remove_kwarg=True, in_args=args, in_kwargs=kwargs, + default_value=('{0}(), Message' .format(self._node_type))) self._message_header = message_header # ----------------------------------------------------------------- diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/pathnode.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/pathnode.py index b4489a998e..5dee58b1c5 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/pathnode.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/pathnode.py @@ -124,22 +124,22 @@ class PathNode(Node): # -- secret keyword ----------------------------------------------- self._temp_node = False - temp_node, kwargs = find_arg(arg_pos_index=None, argTag='temp_node', - removeKwarg=True, inArgs=args, - inKwargs=kwargs) # <-- kwarg only + temp_node, kwargs = find_arg(arg_pos_index=None, arg_tag='temp_node', + remove_kwarg=True, in_args=args, + in_kwargs=kwargs) # <-- kwarg only self._temp_node = temp_node if self._temp_node: self.k_wargs_dict['temp_node'] = self._temp_node # -- Node class args/kwargs --------------------------------------- - node_name, kwargs = find_arg(arg_pos_index=2, argTag='node_name', - removeKwarg=True, inArgs=args, - inKwargs=kwargs) # <-- third arg, kwarg + node_name, kwargs = find_arg(arg_pos_index=2, arg_tag='node_name', + remove_kwarg=True, in_args=args, + in_kwargs=kwargs) # <-- third arg, kwarg - parent_node, kwargs = find_arg(arg_pos_index=3, argTag='parent_node', - removeKwarg=True, inArgs=args, - inKwargs=kwargs) # <-- fourth arg, kwarg + parent_node, kwargs = find_arg(arg_pos_index=3, arg_tag='parent_node', + remove_kwarg=True, in_args=args, + in_kwargs=kwargs) # <-- fourth arg, kwarg self._root_path = root_path diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/synth_arg_kwarg.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/synth_arg_kwarg.py index 3618ad67de..0f71439dae 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/synth_arg_kwarg.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/synth_arg_kwarg.py @@ -22,9 +22,9 @@ from synth import synthesize # ------------------------------------------------------------------------- -def setSynthArgKwarg(inst, argPosIndex=None, argTag=None, defaultValue=None, - inArgs=None, inKwargs=None, removeKwarg=True, - setAnyway=True): +def set_synth_arg_kwarg(inst, arg_pos_index=None, arg_tag=None, default_value=None, + in_args=None, in_kwargs=None, remove_kwarg=True, + set_anyway=True): """ Uses find_arg and sets a property on a object. @@ -34,44 +34,44 @@ def setSynthArgKwarg(inst, argPosIndex=None, argTag=None, defaultValue=None, If the arg/property doesn't exist we synthesize it """ - foundArg = None - argValueDict = {} + found_arg = None + arg_value_dict = {} # find the argument, or set to default value - foundArg, inKwargs = find_arg(argPosIndex, argTag, removeKwarg, - inArgs, inKwargs, - defaultValue) + found_arg, in_kwargs = find_arg(arg_pos_index, arg_tag, remove_kwarg, + in_args, in_kwargs, + default_value) - if foundArg: - argTag = foundArg + if found_arg: + arg_tag = found_arg # single arg first # make sure the object doesn't arealdy have this property try: - hasattr(inst, argTag) # check if property exists - if setAnyway: + hasattr(inst, arg_tag) # check if property exists + if set_anyway: try: - setattr(inst, argTag, defaultValue) # try to set + setattr(inst, arg_tag, default_value) # try to set except Exception as e: raise e except: pass # make it a synthetic property - if argTag: + if arg_tag: try: - argValue = synthesize(inst, argTag, defaultValue) - argValueDict[argTag] = argValue + arg_value = synthesize(inst, arg_tag, default_value) + arg_value_dict[arg_tag] = arg_value except Exception as e: raise e # multiple and/or remaining kwards next - if inKwargs: - if len(inKwargs) > 0: - for k, v in inKwargs.items(): + if in_kwargs: + if len(in_kwargs) > 0: + for k, v in in_kwargs.items(): try: hasattr(inst, k) # check if property exists - if setAnyway: + if set_anyway: try: setattr(inst, k, v) # try to set except Exception as e: @@ -81,12 +81,12 @@ def setSynthArgKwarg(inst, argPosIndex=None, argTag=None, defaultValue=None, if k: try: - argValue = synthesize(inst, k, v) - argValueDict[k] = argValue + arg_value = synthesize(inst, k, v) + arg_value_dict[k] = arg_value except Exception as e: raise e - return argValueDict + return arg_value_dict # -------------------------------------------------------------------------- @@ -98,28 +98,28 @@ if __name__ == '__main__': from test_foo import Foo # define a arg/property tag we know doesn't exist - synthArgTag = 'syntheticArg' + synth_arg_tag = 'synthetic_arg' # create a test object print('~ creating the test foo object...') - myFoo = Foo() + my_foo = Foo() print('~ Starting - single synthetic arg test...') # find and set existing, or create and set - argValueDict = setSynthArgKwarg(myFoo, - argTag=synthArgTag, - defaultValue='kablooey') + arg_value_dict = set_synth_arg_kwarg(my_foo, + arg_tag=synth_arg_tag, + default_value='kablooey') # what was returned print('~ single value returned...') - for k, v in argValueDict.items(): + for k, v in arg_value_dict.items(): print("Arg '{0}':'{1}'".format(k, v)) # attempt to access the new synthetic property directly print('~ direct property access test...') try: - myFoo.syntheticArg - print('myFoo.{0}: {1}'.format(synthArgTag, myFoo.syntheticArg)) + my_foo.synthetic_arg + print('myFoo.{0}: {1}'.format(synth_arg_tag, my_foo.synthetic_arg)) except Exception as e: raise e @@ -128,31 +128,31 @@ if __name__ == '__main__': newKwargs = {'fooey': 'chop suey', 'success': True} # find and set existing, or create and set - argValueDict = setSynthArgKwarg(myFoo, - inKwargs=newKwargs, - defaultValue='kablooey') + arg_value_dict = set_synth_arg_kwarg(my_foo, + in_kwargs=newKwargs, + default_value='kablooey') # what was returned print('~ multiple values returned...') - for k, v in argValueDict.items(): + for k, v in arg_value_dict.items(): print("Arg '{0}':'{1}'".format(k, v)) print('~ multiple direct property access test...') try: - myFoo.fooey - print('myFoo.{0}: {1}'.format('fooey', myFoo.fooey)) + my_foo.fooey + print('myFoo.{0}: {1}'.format('fooey', my_foo.fooey)) except Exception as e: raise e try: - myFoo.success - print('myFoo.{0}: {1}'.format('success', myFoo.success)) + my_foo.success + print('myFoo.{0}: {1}'.format('success', my_foo.success)) except Exception as e: raise e print('~ Starting - known failure test...') try: - myFoo.knownBad + my_foo.knownBad except Exception as e: print(e) print('Test failed as expected!!!') diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/test_foo.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/test_foo.py index ca652503d2..d1c535fe14 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/test_foo.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/shared/noodely/test_foo.py @@ -25,13 +25,13 @@ class Foo(object): This is a Class, it creates a Foo object... which does nothing really """ - __propertyTag = 'fooProperty' + __property_tag = 'fooProperty' # ------------------------------------------------------------------ def __init__(self, name='Foo', value='defaultValue', *args, **kwargs): '''Class __init__''' synthesize(self, 'name', name) - synthesize(self, Foo.__propertyTag, value) + synthesize(self, Foo.__property_tag, value) synthesize(self, 'test', 'testValue') diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/synthetic_env.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/synthetic_env.py index 6186026852..86e4b68488 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/synthetic_env.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/synthetic_env.py @@ -667,7 +667,7 @@ if __name__ == '__main__': try: import azpy.test.entry_test print('SUCCESS: import azpy.test.entry_test') - azpy.test.entry_test.main(verbose=True, connectDebugger=True) + azpy.test.entry_test.main(verbose=True, connect_debugger=True) except ImportError as e: print('ERROR: {0}'.format(e)) raise e diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/test/entry_test.py b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/test/entry_test.py index 7fc2177e9a..46a852736e 100755 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/test/entry_test.py +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/azpy/test/entry_test.py @@ -49,13 +49,13 @@ _LOGGER.debug('Starting:: {}.'.format({_MODULENAME})) # ------------------------------------------------------------------------- -def main(verbose=_G_DEBUG, connectDebugger=True): +def main(verbose=_G_DEBUG, connect_debugger=True): _LOGGER.info('{}'.format('-' * 74)) _LOGGER.info('entry_test.main()') _LOGGER.info('Root test import successful:') _LOGGER.info('~ {}'.format(__file__)) - if connectDebugger: + if connect_debugger: status = connect_wing() _LOGGER.info(status) # ------------------------------------------------------------------------- @@ -138,4 +138,4 @@ def connect_wing(): # ------------------------------------------------------------------------- if __name__ == '__main__': _G_DEBUG = True - main(verbose=_G_DEBUG, connectDebugger=_G_DEBUG) + main(verbose=_G_DEBUG, connect_debugger=_G_DEBUG)