diff --git a/pype/api.py b/pype/api.py
index 5775bb3ce4..44a31f2626 100644
--- a/pype/api.py
+++ b/pype/api.py
@@ -12,6 +12,8 @@ from pypeapp.lib.mongo import (
get_default_components
)
+from . import resources
+
from .plugin import (
Extractor,
@@ -54,6 +56,8 @@ __all__ = [
"compose_url",
"get_default_components",
+ # Resources
+ "resources",
# plugin classes
"Extractor",
# ordering
diff --git a/pype/modules/ftrack/tray/login_tools.py b/pype/modules/ftrack/tray/login_tools.py
index b259f2d2ed..02982294f2 100644
--- a/pype/modules/ftrack/tray/login_tools.py
+++ b/pype/modules/ftrack/tray/login_tools.py
@@ -1,16 +1,16 @@
from http.server import BaseHTTPRequestHandler, HTTPServer
from urllib import parse
-import os
import webbrowser
import functools
-import pype
-import inspect
from Qt import QtCore
+from pype.api import resources
class LoginServerHandler(BaseHTTPRequestHandler):
'''Login server handler.'''
+ message_filepath = resources.get_resource("ftrack", "sign_in_message.html")
+
def __init__(self, login_callback, *args, **kw):
'''Initialise handler.'''
self.login_callback = login_callback
@@ -28,23 +28,21 @@ class LoginServerHandler(BaseHTTPRequestHandler):
login_credentials = parse.parse_qs(query)
api_user = login_credentials['api_user'][0]
api_key = login_credentials['api_key'][0]
- # get path to resources
- path_items = os.path.dirname(
- inspect.getfile(pype)
- ).split(os.path.sep)
- del path_items[-1]
- path_items.extend(['res', 'ftrack', 'sign_in_message.html'])
- message_filepath = os.path.sep.join(path_items)
- message_file = open(message_filepath, 'r')
- sign_in_message = message_file.read()
- message_file.close()
+
+ with open(self.message_filepath, "r") as message_file:
+ sign_in_message = message_file.read()
+
# formatting html code for python
- replacement = [('{', '{{'), ('}', '}}'), ('{{}}', '{}')]
- for r in (replacement):
- sign_in_message = sign_in_message.replace(*r)
+ replacements = (
+ ("{", "{{"),
+ ("}", "}}"),
+ ("{{}}", "{}")
+ )
+ for replacement in (replacements):
+ sign_in_message = sign_in_message.replace(*replacement)
message = sign_in_message.format(api_user)
else:
- message = '
Failed to sign in
'
+ message = "Failed to sign in
"
self.send_response(200)
self.end_headers()
@@ -74,7 +72,6 @@ class LoginServerThread(QtCore.QThread):
def run(self):
'''Listen for events.'''
- # self._server = BaseHTTPServer.HTTPServer(
self._server = HTTPServer(
('localhost', 0),
functools.partial(
diff --git a/pype/modules/rest_api/rest_api.py b/pype/modules/rest_api/rest_api.py
index 5f0969a5a2..1c4db9f706 100644
--- a/pype/modules/rest_api/rest_api.py
+++ b/pype/modules/rest_api/rest_api.py
@@ -102,7 +102,11 @@ class RestApiServer:
port = self.find_port()
self.rest_api_thread = RestApiThread(self, port)
- statics_dir = os.path.sep.join([os.environ["PYPE_MODULE_ROOT"], "res"])
+ statics_dir = os.path.join(
+ os.environ["PYPE_MODULE_ROOT"],
+ "pype",
+ "resources"
+ )
self.register_statics("/res", statics_dir)
os.environ["PYPE_STATICS_SERVER"] = "{}/res".format(
os.environ["PYPE_REST_API_URL"]
diff --git a/res/app_icons/Aport.png b/pype/resources/app_icons/Aport.png
similarity index 100%
rename from res/app_icons/Aport.png
rename to pype/resources/app_icons/Aport.png
diff --git a/res/app_icons/blender.png b/pype/resources/app_icons/blender.png
similarity index 100%
rename from res/app_icons/blender.png
rename to pype/resources/app_icons/blender.png
diff --git a/res/app_icons/celaction_local.png b/pype/resources/app_icons/celaction_local.png
similarity index 100%
rename from res/app_icons/celaction_local.png
rename to pype/resources/app_icons/celaction_local.png
diff --git a/res/app_icons/celaction_remotel.png b/pype/resources/app_icons/celaction_remotel.png
similarity index 100%
rename from res/app_icons/celaction_remotel.png
rename to pype/resources/app_icons/celaction_remotel.png
diff --git a/res/app_icons/clockify-white.png b/pype/resources/app_icons/clockify-white.png
similarity index 100%
rename from res/app_icons/clockify-white.png
rename to pype/resources/app_icons/clockify-white.png
diff --git a/res/app_icons/clockify.png b/pype/resources/app_icons/clockify.png
similarity index 100%
rename from res/app_icons/clockify.png
rename to pype/resources/app_icons/clockify.png
diff --git a/res/app_icons/djvView.png b/pype/resources/app_icons/djvView.png
similarity index 100%
rename from res/app_icons/djvView.png
rename to pype/resources/app_icons/djvView.png
diff --git a/res/app_icons/harmony.png b/pype/resources/app_icons/harmony.png
similarity index 100%
rename from res/app_icons/harmony.png
rename to pype/resources/app_icons/harmony.png
diff --git a/res/app_icons/houdini.png b/pype/resources/app_icons/houdini.png
similarity index 100%
rename from res/app_icons/houdini.png
rename to pype/resources/app_icons/houdini.png
diff --git a/res/app_icons/maya.png b/pype/resources/app_icons/maya.png
similarity index 100%
rename from res/app_icons/maya.png
rename to pype/resources/app_icons/maya.png
diff --git a/res/app_icons/nuke.png b/pype/resources/app_icons/nuke.png
similarity index 100%
rename from res/app_icons/nuke.png
rename to pype/resources/app_icons/nuke.png
diff --git a/res/app_icons/nukex.png b/pype/resources/app_icons/nukex.png
similarity index 100%
rename from res/app_icons/nukex.png
rename to pype/resources/app_icons/nukex.png
diff --git a/res/app_icons/photoshop.png b/pype/resources/app_icons/photoshop.png
similarity index 100%
rename from res/app_icons/photoshop.png
rename to pype/resources/app_icons/photoshop.png
diff --git a/res/app_icons/premiere.png b/pype/resources/app_icons/premiere.png
similarity index 100%
rename from res/app_icons/premiere.png
rename to pype/resources/app_icons/premiere.png
diff --git a/res/app_icons/python.png b/pype/resources/app_icons/python.png
similarity index 100%
rename from res/app_icons/python.png
rename to pype/resources/app_icons/python.png
diff --git a/res/app_icons/resolve.png b/pype/resources/app_icons/resolve.png
similarity index 100%
rename from res/app_icons/resolve.png
rename to pype/resources/app_icons/resolve.png
diff --git a/res/app_icons/storyboardpro.png b/pype/resources/app_icons/storyboardpro.png
similarity index 100%
rename from res/app_icons/storyboardpro.png
rename to pype/resources/app_icons/storyboardpro.png
diff --git a/res/app_icons/ue4.png b/pype/resources/app_icons/ue4.png
similarity index 100%
rename from res/app_icons/ue4.png
rename to pype/resources/app_icons/ue4.png
diff --git a/res/ftrack/action_icons/ActionAskWhereIRun.svg b/pype/resources/ftrack/action_icons/ActionAskWhereIRun.svg
similarity index 100%
rename from res/ftrack/action_icons/ActionAskWhereIRun.svg
rename to pype/resources/ftrack/action_icons/ActionAskWhereIRun.svg
diff --git a/res/ftrack/action_icons/AssetsRemover.svg b/pype/resources/ftrack/action_icons/AssetsRemover.svg
similarity index 100%
rename from res/ftrack/action_icons/AssetsRemover.svg
rename to pype/resources/ftrack/action_icons/AssetsRemover.svg
diff --git a/res/ftrack/action_icons/ComponentOpen.svg b/pype/resources/ftrack/action_icons/ComponentOpen.svg
similarity index 100%
rename from res/ftrack/action_icons/ComponentOpen.svg
rename to pype/resources/ftrack/action_icons/ComponentOpen.svg
diff --git a/res/ftrack/action_icons/CreateFolders.svg b/pype/resources/ftrack/action_icons/CreateFolders.svg
similarity index 100%
rename from res/ftrack/action_icons/CreateFolders.svg
rename to pype/resources/ftrack/action_icons/CreateFolders.svg
diff --git a/res/ftrack/action_icons/CreateProjectFolders.svg b/pype/resources/ftrack/action_icons/CreateProjectFolders.svg
similarity index 100%
rename from res/ftrack/action_icons/CreateProjectFolders.svg
rename to pype/resources/ftrack/action_icons/CreateProjectFolders.svg
diff --git a/res/ftrack/action_icons/DeleteAsset.svg b/pype/resources/ftrack/action_icons/DeleteAsset.svg
similarity index 100%
rename from res/ftrack/action_icons/DeleteAsset.svg
rename to pype/resources/ftrack/action_icons/DeleteAsset.svg
diff --git a/res/ftrack/action_icons/Delivery.svg b/pype/resources/ftrack/action_icons/Delivery.svg
similarity index 100%
rename from res/ftrack/action_icons/Delivery.svg
rename to pype/resources/ftrack/action_icons/Delivery.svg
diff --git a/res/ftrack/action_icons/MultipleNotes.svg b/pype/resources/ftrack/action_icons/MultipleNotes.svg
similarity index 100%
rename from res/ftrack/action_icons/MultipleNotes.svg
rename to pype/resources/ftrack/action_icons/MultipleNotes.svg
diff --git a/res/ftrack/action_icons/PrepareProject.svg b/pype/resources/ftrack/action_icons/PrepareProject.svg
similarity index 100%
rename from res/ftrack/action_icons/PrepareProject.svg
rename to pype/resources/ftrack/action_icons/PrepareProject.svg
diff --git a/res/ftrack/action_icons/PypeAdmin.svg b/pype/resources/ftrack/action_icons/PypeAdmin.svg
similarity index 100%
rename from res/ftrack/action_icons/PypeAdmin.svg
rename to pype/resources/ftrack/action_icons/PypeAdmin.svg
diff --git a/res/ftrack/action_icons/PypeDoctor.svg b/pype/resources/ftrack/action_icons/PypeDoctor.svg
similarity index 100%
rename from res/ftrack/action_icons/PypeDoctor.svg
rename to pype/resources/ftrack/action_icons/PypeDoctor.svg
diff --git a/res/ftrack/action_icons/PypeUpdate.svg b/pype/resources/ftrack/action_icons/PypeUpdate.svg
similarity index 100%
rename from res/ftrack/action_icons/PypeUpdate.svg
rename to pype/resources/ftrack/action_icons/PypeUpdate.svg
diff --git a/res/ftrack/action_icons/RV.png b/pype/resources/ftrack/action_icons/RV.png
similarity index 100%
rename from res/ftrack/action_icons/RV.png
rename to pype/resources/ftrack/action_icons/RV.png
diff --git a/res/ftrack/action_icons/SeedProject.svg b/pype/resources/ftrack/action_icons/SeedProject.svg
similarity index 100%
rename from res/ftrack/action_icons/SeedProject.svg
rename to pype/resources/ftrack/action_icons/SeedProject.svg
diff --git a/res/ftrack/action_icons/SyncHierarchicalAttrs.svg b/pype/resources/ftrack/action_icons/SyncHierarchicalAttrs.svg
similarity index 100%
rename from res/ftrack/action_icons/SyncHierarchicalAttrs.svg
rename to pype/resources/ftrack/action_icons/SyncHierarchicalAttrs.svg
diff --git a/res/ftrack/action_icons/SyncToAvalon.svg b/pype/resources/ftrack/action_icons/SyncToAvalon.svg
similarity index 100%
rename from res/ftrack/action_icons/SyncToAvalon.svg
rename to pype/resources/ftrack/action_icons/SyncToAvalon.svg
diff --git a/res/ftrack/action_icons/TestAction.svg b/pype/resources/ftrack/action_icons/TestAction.svg
similarity index 100%
rename from res/ftrack/action_icons/TestAction.svg
rename to pype/resources/ftrack/action_icons/TestAction.svg
diff --git a/res/ftrack/action_icons/Thumbnail.svg b/pype/resources/ftrack/action_icons/Thumbnail.svg
similarity index 100%
rename from res/ftrack/action_icons/Thumbnail.svg
rename to pype/resources/ftrack/action_icons/Thumbnail.svg
diff --git a/res/ftrack/sign_in_message.html b/pype/resources/ftrack/sign_in_message.html
similarity index 100%
rename from res/ftrack/sign_in_message.html
rename to pype/resources/ftrack/sign_in_message.html