From 43013b0e48f589801aef1d9d55db167b7d94ba85 Mon Sep 17 00:00:00 2001 From: Jonathan Rocher Date: Tue, 12 Jul 2022 11:52:38 -0500 Subject: [PATCH 1/2] Add shell for second exercise. --- .../README.md | 0 .../pycasa/__init__.py | 0 .../pycasa/app/__init__.py | 0 .../pycasa/app/app.py | 67 ++++++++ .../pycasa/app/main.py | 0 .../pycasa/model/__init__.py | 0 .../pycasa/model/file_browser.py | 0 .../pycasa/model/image_file.py | 0 .../pycasa/model/image_folder.py | 0 .../pycasa/model/tests/__init__.py | 0 .../pycasa/model/tests/test_image_file.py | 0 .../pycasa/model/tests/test_image_folder.py | 0 .../pycasa/ui/__init__.py | 0 .../pycasa/ui/file_browser_view.py | 0 .../pycasa/ui/image_file_editor.py | 0 .../pycasa/ui/image_file_view.py | 0 .../pycasa/ui/image_folder_editor.py | 0 .../pycasa/ui/image_folder_view.py | 0 .../pycasa/ui/image_resources.py | 0 .../pycasa/ui/images/document-new.png | Bin .../pycasa/ui/images/scipy_logo.png | Bin .../pycasa/ui/path_selector.py | 0 .../pycasa/ui/tasks/__init__.py | 0 .../applications-education-university.png | Bin .../ui/tasks/images/dialog-ok-apply.png | Bin .../ui/tasks/images/document-encrypted.png | Bin .../ui/tasks/images/document-open-recent.png | Bin .../pycasa/ui/tasks/images/document-open.png | Bin .../ui/tasks/images/document-save-as.png | Bin .../pycasa/ui/tasks/images/document-save.png | Bin .../images/edit-table-insert-column-left.png | Bin .../ui/tasks/images/editing-compare-icon.png | Bin .../pycasa/ui/tasks/images/folder-blue.png | Bin .../pycasa/ui/tasks/images/insert-image.png | Bin .../pycasa/ui/tasks/images/ipython_icon.png | Bin .../pycasa/ui/tasks/images/measure.png | Bin .../pycasa/ui/tasks/images/text-x-python.png | Bin .../pycasa/ui/tasks/images/tool-animator.png | Bin .../ui/tasks/images/user-properties.png | Bin .../ui/tasks/images/view-media-equalizer.png | Bin .../pycasa/ui/tasks/images/zoom-draw.png | Bin .../pycasa/ui/tasks/pycasa_browser_pane.py | 0 .../pycasa/ui/tasks/pycasa_task.py | 88 ++++++++++ .../pycasa/ui/tests/__init__.py | 0 .../setup.py | 0 stage6.1_branded_application/README.md | 3 + .../pycasa/__init__.py | 0 .../pycasa/app/__init__.py | 0 .../pycasa/app/app.py | 0 .../pycasa/app/main.py | 11 ++ .../pycasa/model/__init__.py | 0 .../pycasa/model/file_browser.py | 9 ++ .../pycasa/model/image_file.py | 64 ++++++++ .../pycasa/model/image_folder.py | 69 ++++++++ .../pycasa/model/tests/__init__.py | 0 .../pycasa/model/tests/test_image_file.py | 52 ++++++ .../pycasa/model/tests/test_image_folder.py | 35 ++++ .../pycasa/ui/__init__.py | 0 .../pycasa/ui/file_browser_view.py | 19 +++ .../pycasa/ui/image_file_editor.py | 36 +++++ .../pycasa/ui/image_file_view.py | 61 +++++++ .../pycasa/ui/image_folder_editor.py | 36 +++++ .../pycasa/ui/image_folder_view.py | 151 ++++++++++++++++++ .../pycasa/ui/image_resources.py | 5 + .../pycasa/ui/images/document-new.png | Bin 0 -> 1410 bytes .../pycasa/ui/images/scipy_logo.png | Bin 0 -> 192620 bytes .../pycasa/ui/path_selector.py | 16 ++ .../pycasa/ui/tasks/__init__.py | 0 .../applications-education-university.png | Bin 0 -> 5050 bytes .../ui/tasks/images/dialog-ok-apply.png | Bin 0 -> 2901 bytes .../ui/tasks/images/document-encrypted.png | Bin 0 -> 1620 bytes .../ui/tasks/images/document-open-recent.png | Bin 0 -> 2878 bytes .../pycasa/ui/tasks/images/document-open.png | Bin 0 -> 2798 bytes .../ui/tasks/images/document-save-as.png | Bin 0 -> 3792 bytes .../pycasa/ui/tasks/images/document-save.png | Bin 0 -> 2122 bytes .../images/edit-table-insert-column-left.png | Bin 0 -> 3238 bytes .../ui/tasks/images/editing-compare-icon.png | Bin 0 -> 1255 bytes .../pycasa/ui/tasks/images/folder-blue.png | Bin 0 -> 1562 bytes .../pycasa/ui/tasks/images/insert-image.png | Bin 0 -> 3093 bytes .../pycasa/ui/tasks/images/ipython_icon.png | Bin 0 -> 1265 bytes .../pycasa/ui/tasks/images/measure.png | Bin 0 -> 777 bytes .../pycasa/ui/tasks/images/text-x-python.png | Bin 0 -> 1936 bytes .../pycasa/ui/tasks/images/tool-animator.png | Bin 0 -> 3208 bytes .../ui/tasks/images/user-properties.png | Bin 0 -> 3532 bytes .../ui/tasks/images/view-media-equalizer.png | Bin 0 -> 1618 bytes .../pycasa/ui/tasks/images/zoom-draw.png | Bin 0 -> 3162 bytes .../pycasa/ui/tasks/pycasa_browser_pane.py | 28 ++++ .../pycasa/ui/tasks/pycasa_task.py | 0 .../pycasa/ui/tests/__init__.py | 0 stage6.1_branded_application/setup.py | 14 ++ 90 files changed, 764 insertions(+) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/README.md (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/__init__.py (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/app/__init__.py (100%) create mode 100644 stage6.0_shell_for_branded_application/pycasa/app/app.py rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/app/main.py (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/model/__init__.py (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/model/file_browser.py (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/model/image_file.py (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/model/image_folder.py (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/model/tests/__init__.py (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/model/tests/test_image_file.py (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/model/tests/test_image_folder.py (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/__init__.py (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/file_browser_view.py (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/image_file_editor.py (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/image_file_view.py (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/image_folder_editor.py (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/image_folder_view.py (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/image_resources.py (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/images/document-new.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/images/scipy_logo.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/path_selector.py (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/__init__.py (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/images/applications-education-university.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/images/dialog-ok-apply.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/images/document-encrypted.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/images/document-open-recent.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/images/document-open.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/images/document-save-as.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/images/document-save.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/images/edit-table-insert-column-left.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/images/editing-compare-icon.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/images/folder-blue.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/images/insert-image.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/images/ipython_icon.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/images/measure.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/images/text-x-python.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/images/tool-animator.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/images/user-properties.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/images/view-media-equalizer.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/images/zoom-draw.png (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tasks/pycasa_browser_pane.py (100%) create mode 100644 stage6.0_shell_for_branded_application/pycasa/ui/tasks/pycasa_task.py rename {stage6_branded_application => stage6.0_shell_for_branded_application}/pycasa/ui/tests/__init__.py (100%) rename {stage6_branded_application => stage6.0_shell_for_branded_application}/setup.py (100%) create mode 100644 stage6.1_branded_application/README.md create mode 100644 stage6.1_branded_application/pycasa/__init__.py create mode 100644 stage6.1_branded_application/pycasa/app/__init__.py rename {stage6_branded_application => stage6.1_branded_application}/pycasa/app/app.py (100%) create mode 100644 stage6.1_branded_application/pycasa/app/main.py create mode 100644 stage6.1_branded_application/pycasa/model/__init__.py create mode 100644 stage6.1_branded_application/pycasa/model/file_browser.py create mode 100644 stage6.1_branded_application/pycasa/model/image_file.py create mode 100644 stage6.1_branded_application/pycasa/model/image_folder.py create mode 100644 stage6.1_branded_application/pycasa/model/tests/__init__.py create mode 100644 stage6.1_branded_application/pycasa/model/tests/test_image_file.py create mode 100644 stage6.1_branded_application/pycasa/model/tests/test_image_folder.py create mode 100644 stage6.1_branded_application/pycasa/ui/__init__.py create mode 100644 stage6.1_branded_application/pycasa/ui/file_browser_view.py create mode 100644 stage6.1_branded_application/pycasa/ui/image_file_editor.py create mode 100644 stage6.1_branded_application/pycasa/ui/image_file_view.py create mode 100644 stage6.1_branded_application/pycasa/ui/image_folder_editor.py create mode 100644 stage6.1_branded_application/pycasa/ui/image_folder_view.py create mode 100644 stage6.1_branded_application/pycasa/ui/image_resources.py create mode 100644 stage6.1_branded_application/pycasa/ui/images/document-new.png create mode 100644 stage6.1_branded_application/pycasa/ui/images/scipy_logo.png create mode 100644 stage6.1_branded_application/pycasa/ui/path_selector.py create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/__init__.py create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/images/applications-education-university.png create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/images/dialog-ok-apply.png create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/images/document-encrypted.png create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/images/document-open-recent.png create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/images/document-open.png create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/images/document-save-as.png create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/images/document-save.png create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/images/edit-table-insert-column-left.png create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/images/editing-compare-icon.png create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/images/folder-blue.png create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/images/insert-image.png create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/images/ipython_icon.png create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/images/measure.png create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/images/text-x-python.png create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/images/tool-animator.png create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/images/user-properties.png create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/images/view-media-equalizer.png create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/images/zoom-draw.png create mode 100644 stage6.1_branded_application/pycasa/ui/tasks/pycasa_browser_pane.py rename {stage6_branded_application => stage6.1_branded_application}/pycasa/ui/tasks/pycasa_task.py (100%) create mode 100644 stage6.1_branded_application/pycasa/ui/tests/__init__.py create mode 100644 stage6.1_branded_application/setup.py diff --git a/stage6_branded_application/README.md b/stage6.0_shell_for_branded_application/README.md similarity index 100% rename from stage6_branded_application/README.md rename to stage6.0_shell_for_branded_application/README.md diff --git a/stage6_branded_application/pycasa/__init__.py b/stage6.0_shell_for_branded_application/pycasa/__init__.py similarity index 100% rename from stage6_branded_application/pycasa/__init__.py rename to stage6.0_shell_for_branded_application/pycasa/__init__.py diff --git a/stage6_branded_application/pycasa/app/__init__.py b/stage6.0_shell_for_branded_application/pycasa/app/__init__.py similarity index 100% rename from stage6_branded_application/pycasa/app/__init__.py rename to stage6.0_shell_for_branded_application/pycasa/app/__init__.py diff --git a/stage6.0_shell_for_branded_application/pycasa/app/app.py b/stage6.0_shell_for_branded_application/pycasa/app/app.py new file mode 100644 index 0000000..7771607 --- /dev/null +++ b/stage6.0_shell_for_branded_application/pycasa/app/app.py @@ -0,0 +1,67 @@ +# coding=utf-8 +""" TaskApplication object for the Pycasa app. +""" +import logging + +from pyface.tasks.api import TasksApplication, TaskFactory +from pyface.api import SplashScreen +from pyface.action.api import Action +from pyface.action.schema.api import SchemaAddition, SGroup + +from ..ui.tasks.pycasa_task import PycasaTask +from ..ui.image_resources import app_icon, new_icon + +logger = logging.getLogger(__name__) + + +class PycasaApplication(TasksApplication): + """ An application to explore image files and detect faces. + """ + id = "pycasa_application" + + name = "Pycasa" + + description = "An example Tasks application that explores image files." + + def _task_factories_default(self): + return [ + TaskFactory( + id='pycasa.pycasa_task_factory', + name="Main Pycasa Task Factory", + factory=PycasaTask + ) + ] + + def _icon_default(self): + pass + + def _splash_screen_default(self): + pass + + def create_new_task_window(self): + from pyface.tasks.task_window_layout import TaskWindowLayout + + layout = TaskWindowLayout() + layout.items = [self.task_factories[0].id] + window = self.create_window(layout=layout) + self.add_window(window) + window.title += " {}".format(len(self.windows)) + return window + + def create_new_task_menu(self): + return SGroup( + Action(name="New", + accelerator='Ctrl+N', + on_perform=self.create_new_task_window, + image=new_icon), + id='NewGroup', name='NewGroup', + ) + + def _extra_actions_default(self): + extra_actions = [ + SchemaAddition(id='pycasa.custom_new', + factory=self.create_new_task_menu, + path="MenuBar/File/OpenGroup", + absolute_position="first") + ] + return extra_actions diff --git a/stage6_branded_application/pycasa/app/main.py b/stage6.0_shell_for_branded_application/pycasa/app/main.py similarity index 100% rename from stage6_branded_application/pycasa/app/main.py rename to stage6.0_shell_for_branded_application/pycasa/app/main.py diff --git a/stage6_branded_application/pycasa/model/__init__.py b/stage6.0_shell_for_branded_application/pycasa/model/__init__.py similarity index 100% rename from stage6_branded_application/pycasa/model/__init__.py rename to stage6.0_shell_for_branded_application/pycasa/model/__init__.py diff --git a/stage6_branded_application/pycasa/model/file_browser.py b/stage6.0_shell_for_branded_application/pycasa/model/file_browser.py similarity index 100% rename from stage6_branded_application/pycasa/model/file_browser.py rename to stage6.0_shell_for_branded_application/pycasa/model/file_browser.py diff --git a/stage6_branded_application/pycasa/model/image_file.py b/stage6.0_shell_for_branded_application/pycasa/model/image_file.py similarity index 100% rename from stage6_branded_application/pycasa/model/image_file.py rename to stage6.0_shell_for_branded_application/pycasa/model/image_file.py diff --git a/stage6_branded_application/pycasa/model/image_folder.py b/stage6.0_shell_for_branded_application/pycasa/model/image_folder.py similarity index 100% rename from stage6_branded_application/pycasa/model/image_folder.py rename to stage6.0_shell_for_branded_application/pycasa/model/image_folder.py diff --git a/stage6_branded_application/pycasa/model/tests/__init__.py b/stage6.0_shell_for_branded_application/pycasa/model/tests/__init__.py similarity index 100% rename from stage6_branded_application/pycasa/model/tests/__init__.py rename to stage6.0_shell_for_branded_application/pycasa/model/tests/__init__.py diff --git a/stage6_branded_application/pycasa/model/tests/test_image_file.py b/stage6.0_shell_for_branded_application/pycasa/model/tests/test_image_file.py similarity index 100% rename from stage6_branded_application/pycasa/model/tests/test_image_file.py rename to stage6.0_shell_for_branded_application/pycasa/model/tests/test_image_file.py diff --git a/stage6_branded_application/pycasa/model/tests/test_image_folder.py b/stage6.0_shell_for_branded_application/pycasa/model/tests/test_image_folder.py similarity index 100% rename from stage6_branded_application/pycasa/model/tests/test_image_folder.py rename to stage6.0_shell_for_branded_application/pycasa/model/tests/test_image_folder.py diff --git a/stage6_branded_application/pycasa/ui/__init__.py b/stage6.0_shell_for_branded_application/pycasa/ui/__init__.py similarity index 100% rename from stage6_branded_application/pycasa/ui/__init__.py rename to stage6.0_shell_for_branded_application/pycasa/ui/__init__.py diff --git a/stage6_branded_application/pycasa/ui/file_browser_view.py b/stage6.0_shell_for_branded_application/pycasa/ui/file_browser_view.py similarity index 100% rename from stage6_branded_application/pycasa/ui/file_browser_view.py rename to stage6.0_shell_for_branded_application/pycasa/ui/file_browser_view.py diff --git a/stage6_branded_application/pycasa/ui/image_file_editor.py b/stage6.0_shell_for_branded_application/pycasa/ui/image_file_editor.py similarity index 100% rename from stage6_branded_application/pycasa/ui/image_file_editor.py rename to stage6.0_shell_for_branded_application/pycasa/ui/image_file_editor.py diff --git a/stage6_branded_application/pycasa/ui/image_file_view.py b/stage6.0_shell_for_branded_application/pycasa/ui/image_file_view.py similarity index 100% rename from stage6_branded_application/pycasa/ui/image_file_view.py rename to stage6.0_shell_for_branded_application/pycasa/ui/image_file_view.py diff --git a/stage6_branded_application/pycasa/ui/image_folder_editor.py b/stage6.0_shell_for_branded_application/pycasa/ui/image_folder_editor.py similarity index 100% rename from stage6_branded_application/pycasa/ui/image_folder_editor.py rename to stage6.0_shell_for_branded_application/pycasa/ui/image_folder_editor.py diff --git a/stage6_branded_application/pycasa/ui/image_folder_view.py b/stage6.0_shell_for_branded_application/pycasa/ui/image_folder_view.py similarity index 100% rename from stage6_branded_application/pycasa/ui/image_folder_view.py rename to stage6.0_shell_for_branded_application/pycasa/ui/image_folder_view.py diff --git a/stage6_branded_application/pycasa/ui/image_resources.py b/stage6.0_shell_for_branded_application/pycasa/ui/image_resources.py similarity index 100% rename from stage6_branded_application/pycasa/ui/image_resources.py rename to stage6.0_shell_for_branded_application/pycasa/ui/image_resources.py diff --git a/stage6_branded_application/pycasa/ui/images/document-new.png b/stage6.0_shell_for_branded_application/pycasa/ui/images/document-new.png similarity index 100% rename from stage6_branded_application/pycasa/ui/images/document-new.png rename to stage6.0_shell_for_branded_application/pycasa/ui/images/document-new.png diff --git a/stage6_branded_application/pycasa/ui/images/scipy_logo.png b/stage6.0_shell_for_branded_application/pycasa/ui/images/scipy_logo.png similarity index 100% rename from stage6_branded_application/pycasa/ui/images/scipy_logo.png rename to stage6.0_shell_for_branded_application/pycasa/ui/images/scipy_logo.png diff --git a/stage6_branded_application/pycasa/ui/path_selector.py b/stage6.0_shell_for_branded_application/pycasa/ui/path_selector.py similarity index 100% rename from stage6_branded_application/pycasa/ui/path_selector.py rename to stage6.0_shell_for_branded_application/pycasa/ui/path_selector.py diff --git a/stage6_branded_application/pycasa/ui/tasks/__init__.py b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/__init__.py similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/__init__.py rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/__init__.py diff --git a/stage6_branded_application/pycasa/ui/tasks/images/applications-education-university.png b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/applications-education-university.png similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/images/applications-education-university.png rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/applications-education-university.png diff --git a/stage6_branded_application/pycasa/ui/tasks/images/dialog-ok-apply.png b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/dialog-ok-apply.png similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/images/dialog-ok-apply.png rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/dialog-ok-apply.png diff --git a/stage6_branded_application/pycasa/ui/tasks/images/document-encrypted.png b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-encrypted.png similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/images/document-encrypted.png rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-encrypted.png diff --git a/stage6_branded_application/pycasa/ui/tasks/images/document-open-recent.png b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-open-recent.png similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/images/document-open-recent.png rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-open-recent.png diff --git a/stage6_branded_application/pycasa/ui/tasks/images/document-open.png b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-open.png similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/images/document-open.png rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-open.png diff --git a/stage6_branded_application/pycasa/ui/tasks/images/document-save-as.png b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-save-as.png similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/images/document-save-as.png rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-save-as.png diff --git a/stage6_branded_application/pycasa/ui/tasks/images/document-save.png b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-save.png similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/images/document-save.png rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-save.png diff --git a/stage6_branded_application/pycasa/ui/tasks/images/edit-table-insert-column-left.png b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/edit-table-insert-column-left.png similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/images/edit-table-insert-column-left.png rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/edit-table-insert-column-left.png diff --git a/stage6_branded_application/pycasa/ui/tasks/images/editing-compare-icon.png b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/editing-compare-icon.png similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/images/editing-compare-icon.png rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/editing-compare-icon.png diff --git a/stage6_branded_application/pycasa/ui/tasks/images/folder-blue.png b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/folder-blue.png similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/images/folder-blue.png rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/folder-blue.png diff --git a/stage6_branded_application/pycasa/ui/tasks/images/insert-image.png b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/insert-image.png similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/images/insert-image.png rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/insert-image.png diff --git a/stage6_branded_application/pycasa/ui/tasks/images/ipython_icon.png b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/ipython_icon.png similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/images/ipython_icon.png rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/ipython_icon.png diff --git a/stage6_branded_application/pycasa/ui/tasks/images/measure.png b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/measure.png similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/images/measure.png rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/measure.png diff --git a/stage6_branded_application/pycasa/ui/tasks/images/text-x-python.png b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/text-x-python.png similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/images/text-x-python.png rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/text-x-python.png diff --git a/stage6_branded_application/pycasa/ui/tasks/images/tool-animator.png b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/tool-animator.png similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/images/tool-animator.png rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/tool-animator.png diff --git a/stage6_branded_application/pycasa/ui/tasks/images/user-properties.png b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/user-properties.png similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/images/user-properties.png rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/user-properties.png diff --git a/stage6_branded_application/pycasa/ui/tasks/images/view-media-equalizer.png b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/view-media-equalizer.png similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/images/view-media-equalizer.png rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/view-media-equalizer.png diff --git a/stage6_branded_application/pycasa/ui/tasks/images/zoom-draw.png b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/zoom-draw.png similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/images/zoom-draw.png rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/zoom-draw.png diff --git a/stage6_branded_application/pycasa/ui/tasks/pycasa_browser_pane.py b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/pycasa_browser_pane.py similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/pycasa_browser_pane.py rename to stage6.0_shell_for_branded_application/pycasa/ui/tasks/pycasa_browser_pane.py diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/pycasa_task.py b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/pycasa_task.py new file mode 100644 index 0000000..24c1351 --- /dev/null +++ b/stage6.0_shell_for_branded_application/pycasa/ui/tasks/pycasa_task.py @@ -0,0 +1,88 @@ +# General imports +from os.path import splitext + +# ETS imports +from traits.api import Instance +from pyface.api import error, ImageResource +from pyface.action.api import StatusBarManager +from pyface.tasks.api import PaneItem, SplitEditorAreaPane, Task, TaskLayout +from pyface.tasks.action.api import DockPaneToggleGroup, SGroup, SMenu, \ + SMenuBar, SToolBar, TaskAction, TaskWindowAction + +# Local imports +from .pycasa_browser_pane import PycasaBrowserPane +from ...model.image_folder import ImageFolder +from ..image_folder_editor import ImageFolderEditor +from ...model.image_file import ImageFile, SUPPORTED_FORMATS +from ..image_file_editor import ImageFileEditor +from ..path_selector import PathSelector + + +class PycasaTask(Task): + # 'Task' traits ----------------------------------------------------------- + + #: The unique id of the task. + id = "pycasa.pycasa_task" + + #: The human-readable name of the task. + name = "Pycasa" + + central_pane = Instance(SplitEditorAreaPane) + + # Task interface ---------------------------------------------------------- + + def create_central_pane(self): + """ Create the central pane: the script editor. + """ + # Let's keep a handle on it so we can invoke it later to open objects + # in it: + self.central_pane = SplitEditorAreaPane() + return self.central_pane + + def create_dock_panes(self): + return [PycasaBrowserPane()] + + def _default_layout_default(self): + """ Control where to place each (visible) dock panes. + """ + return TaskLayout( + left=PaneItem('pycasa.file_browser_pane', width=300) + ) + + # Task interface ---------------------------------------------------------- + + def open_in_central_pane(self, filepath): + file_ext = splitext(filepath)[1].lower() + if file_ext in SUPPORTED_FORMATS: + obj = ImageFile(filepath=filepath) + self.central_pane.edit(obj, factory=ImageFileEditor) + elif file_ext == "": + obj = ImageFolder(directory=filepath) + self.central_pane.edit(obj, factory=ImageFolderEditor) + else: + print("Unsupported file format: {}".format(file_ext)) + obj = None + + return obj + + # Menu action methods ----------------------------------------------------- + + def create_me(self): + # TODO: Create menu entries here! + pass + + # Initialization methods -------------------------------------------------- + + def _tool_bars_default(self): + # No accelerators here: they are added to menu entries + # Note: Image resources are looked for in an images folder next to the + # module invoking the resource. + tool_bars = [ + # TODO: Create toolbar entries here! + ] + return tool_bars + + def _menu_bar_default(self): + # TODO: Create menu entries here! + menu_bar = SMenuBar() + return menu_bar diff --git a/stage6_branded_application/pycasa/ui/tests/__init__.py b/stage6.0_shell_for_branded_application/pycasa/ui/tests/__init__.py similarity index 100% rename from stage6_branded_application/pycasa/ui/tests/__init__.py rename to stage6.0_shell_for_branded_application/pycasa/ui/tests/__init__.py diff --git a/stage6_branded_application/setup.py b/stage6.0_shell_for_branded_application/setup.py similarity index 100% rename from stage6_branded_application/setup.py rename to stage6.0_shell_for_branded_application/setup.py diff --git a/stage6.1_branded_application/README.md b/stage6.1_branded_application/README.md new file mode 100644 index 0000000..202c314 --- /dev/null +++ b/stage6.1_branded_application/README.md @@ -0,0 +1,3 @@ +# Second real version of the pycasa ETS pyface application +Building on the application state 5.1, this version adds a button to the folder +and file views so the faces can be detected. diff --git a/stage6.1_branded_application/pycasa/__init__.py b/stage6.1_branded_application/pycasa/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/stage6.1_branded_application/pycasa/app/__init__.py b/stage6.1_branded_application/pycasa/app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/stage6_branded_application/pycasa/app/app.py b/stage6.1_branded_application/pycasa/app/app.py similarity index 100% rename from stage6_branded_application/pycasa/app/app.py rename to stage6.1_branded_application/pycasa/app/app.py diff --git a/stage6.1_branded_application/pycasa/app/main.py b/stage6.1_branded_application/pycasa/app/main.py new file mode 100644 index 0000000..20e5fe0 --- /dev/null +++ b/stage6.1_branded_application/pycasa/app/main.py @@ -0,0 +1,11 @@ + +from pycasa.app.app import PycasaApplication + + +def main(): + app = PycasaApplication() + app.run() + + +if __name__ == '__main__': + main() diff --git a/stage6.1_branded_application/pycasa/model/__init__.py b/stage6.1_branded_application/pycasa/model/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/stage6.1_branded_application/pycasa/model/file_browser.py b/stage6.1_branded_application/pycasa/model/file_browser.py new file mode 100644 index 0000000..873a057 --- /dev/null +++ b/stage6.1_branded_application/pycasa/model/file_browser.py @@ -0,0 +1,9 @@ +from os.path import expanduser +from traits.api import Directory, Event, HasStrictTraits + + +class FileBrowser(HasStrictTraits): + root = Directory(expanduser("~")) + + #: Item last double-clicked on in the tree view + requested_item = Event diff --git a/stage6.1_branded_application/pycasa/model/image_file.py b/stage6.1_branded_application/pycasa/model/image_file.py new file mode 100644 index 0000000..e32b718 --- /dev/null +++ b/stage6.1_branded_application/pycasa/model/image_file.py @@ -0,0 +1,64 @@ +# General imports +from os.path import splitext +import PIL.Image +from PIL.ExifTags import TAGS +from skimage import data +from skimage.feature import Cascade +import numpy as np + +# ETS imports +from traits.api import ( + Array, cached_property, Dict, File, HasStrictTraits, List, Property +) + +SUPPORTED_FORMATS = [".png", ".jpg", ".jpeg", ".PNG", ".JPG", ".JPEG"] + + +class ImageFile(HasStrictTraits): + """ Model to hold an image file. + """ + filepath = File + + metadata = Property(Dict, depends_on="filepath") + + data = Property(Array, depends_on="filepath") + + faces = List + + def _is_valid_file(self): + return ( + bool(self.filepath) and + splitext(self.filepath)[1].lower() in SUPPORTED_FORMATS + ) + + @cached_property + def _get_data(self): + if not self._is_valid_file(): + return np.array([]) + with PIL.Image.open(self.filepath) as img: + return np.asarray(img) + + @cached_property + def _get_metadata(self): + if not self._is_valid_file(): + return {} + with PIL.Image.open(self.filepath) as img: + exif = img._getexif() + if not exif: + return {} + return {TAGS[k]: v for k, v in exif.items() if k in TAGS} + + def detect_faces(self): + # Load the trained file from the module root. + trained_file = data.lbp_frontal_face_cascade_filename() + + # Initialize the detector cascade. + detector = Cascade(trained_file) + + detected = detector.detect_multi_scale(img=self.data, + scale_factor=1.2, + step_ratio=1, + min_size=(60, 60), + max_size=(600, 600)) + self.faces = detected + return self.faces diff --git a/stage6.1_branded_application/pycasa/model/image_folder.py b/stage6.1_branded_application/pycasa/model/image_folder.py new file mode 100644 index 0000000..8b1c423 --- /dev/null +++ b/stage6.1_branded_application/pycasa/model/image_folder.py @@ -0,0 +1,69 @@ +# General imports +import glob +from os.path import basename, expanduser, isdir + +import numpy as np +import pandas as pd + +# ETS imports +from traits.api import ( + Directory, Event, HasStrictTraits, Instance, List, observe, +) + +# Local imports +from pycasa.model.image_file import ImageFile, SUPPORTED_FORMATS + +FILENAME_COL = "filename" +NUM_FACE_COL = "Num. faces" + + +class ImageFolder(HasStrictTraits): + """ Model for a folder of images. + """ + directory = Directory(expanduser("~")) + + images = List(Instance(ImageFile)) + + data = Instance(pd.DataFrame) + + data_updated = Event + + def __init__(self, **traits): + # Don't forget this! + super(ImageFolder, self).__init__(**traits) + if not isdir(self.directory): + msg = f"The provided directory isn't a real directory: " \ + f"{self.directory}" + raise ValueError(msg) + self.data = self._create_metadata_df() + + @observe("directory") + def _update_images(self, event): + self.images = [ + ImageFile(filepath=file) + for fmt in SUPPORTED_FORMATS + for file in glob.glob(f"{self.directory}/*{fmt}") + ] + + @observe("images.items") + def _update_metadata(self, event): + self.data = self._create_metadata_df() + + def _create_metadata_df(self): + if not self.images: + return pd.DataFrame({FILENAME_COL: [], NUM_FACE_COL: []}) + return pd.DataFrame([ + { + FILENAME_COL: basename(img.filepath), + NUM_FACE_COL: np.nan, + **img.metadata + + } + for img in self.images + ]) + + def compute_num_faces(self, **kwargs): + for i, image in enumerate(self.images): + faces = image.detect_faces(**kwargs) + self.data[NUM_FACE_COL].iat[i] = len(faces) + self.data_updated = True diff --git a/stage6.1_branded_application/pycasa/model/tests/__init__.py b/stage6.1_branded_application/pycasa/model/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/stage6.1_branded_application/pycasa/model/tests/test_image_file.py b/stage6.1_branded_application/pycasa/model/tests/test_image_file.py new file mode 100644 index 0000000..cc4d56c --- /dev/null +++ b/stage6.1_branded_application/pycasa/model/tests/test_image_file.py @@ -0,0 +1,52 @@ +from os.path import dirname, join +from unittest import TestCase + +import numpy as np + +from pycasa.model.image_file import ImageFile + +import ets_tutorial + +TUTORIAL_DIR = dirname(ets_tutorial.__file__) + +SAMPLE_IMG_DIR = join(TUTORIAL_DIR, "..", "sample_images") + +SAMPLE_IMG1 = join(SAMPLE_IMG_DIR, "IMG-0311_xmas_2020.JPG") + + +class TestImageFile(TestCase): + def test_no_image_file(self): + img = ImageFile() + self.assertEqual(img.metadata, {}) + self.assertIsInstance(img.data, np.ndarray) + self.assertEqual(img.data.shape, (0,)) + + def test_bad_type_image_file(self): + img = ImageFile(filepath=__file__) + self.assertEqual(img.metadata, {}) + self.assertIsInstance(img.data, np.ndarray) + self.assertEqual(img.data.shape, (0,)) + + def test_image_metadata(self): + img = ImageFile(filepath=SAMPLE_IMG1) + self.assertNotEqual(img.metadata, {}) + for key in ['ExifVersion', 'ExifImageWidth', 'ExifImageHeight']: + self.assertIn(key, img.metadata.keys()) + expected_shape = (img.metadata['ExifImageHeight'], + img.metadata['ExifImageWidth'], 3) + self.assertEqual(img.data.shape, expected_shape) + + def test_image_data(self): + img = ImageFile(filepath=SAMPLE_IMG1) + self.assertNotIn(0, img.data.shape) + np.testing.assert_almost_equal(img.data, img.data) + self.assertIsInstance(img.data, np.ndarray) + self.assertNotEqual(img.data.mean(), 0) + + def test_face_detection(self): + img = ImageFile(filepath=SAMPLE_IMG1) + faces = img.detect_faces() + self.assertIsInstance(faces, list) + for face in faces: + self.assertIsInstance(face, dict) + self.assertEqual(len(faces), 5) diff --git a/stage6.1_branded_application/pycasa/model/tests/test_image_folder.py b/stage6.1_branded_application/pycasa/model/tests/test_image_folder.py new file mode 100644 index 0000000..19c62c3 --- /dev/null +++ b/stage6.1_branded_application/pycasa/model/tests/test_image_folder.py @@ -0,0 +1,35 @@ +from os.path import dirname, join +from unittest import TestCase + +import pandas as pd + +from pycasa.model.image_folder import ImageFolder + +import ets_tutorial + +TUTORIAL_DIR = dirname(ets_tutorial.__file__) + +SAMPLE_IMG_DIR = join(TUTORIAL_DIR, "..", "sample_images") + +HERE = dirname(__file__) + + +class TestImageFolder(TestCase): + def test_no_folder(self): + with self.assertRaises(ValueError): + ImageFolder(directory="path/to/nonexistent/dir") + + def test_with_file(self): + with self.assertRaises(ValueError): + ImageFolder(directory=__file__) + + def test_empty_folder(self): + img_folder = ImageFolder(directory=HERE) + self.assertIsInstance(img_folder.data, pd.DataFrame) + self.assertEqual(len(img_folder.data), 0) + + def test_real_folder(self): + img_folder = ImageFolder(directory=SAMPLE_IMG_DIR) + self.assertEqual(len(img_folder.data), 4) + for key in ['ExifVersion', 'ExifImageWidth', 'ExifImageHeight']: + self.assertIn(key, img_folder.data.columns) diff --git a/stage6.1_branded_application/pycasa/ui/__init__.py b/stage6.1_branded_application/pycasa/ui/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/stage6.1_branded_application/pycasa/ui/file_browser_view.py b/stage6.1_branded_application/pycasa/ui/file_browser_view.py new file mode 100644 index 0000000..b904f75 --- /dev/null +++ b/stage6.1_branded_application/pycasa/ui/file_browser_view.py @@ -0,0 +1,19 @@ +# General imports + +# ETS imports +from traits.api import Instance +from traitsui.api import Item, ModelView, FileEditor, View + +# Local imports +from ..model.file_browser import FileBrowser + + +class FileBrowserView(ModelView): + model = Instance(FileBrowser, ()) + + def traits_view(self): + editor = FileEditor(dclick_name="model.requested_item") + return View( + Item("model.root", editor=editor, style="custom", + show_label=False), + ) diff --git a/stage6.1_branded_application/pycasa/ui/image_file_editor.py b/stage6.1_branded_application/pycasa/ui/image_file_editor.py new file mode 100644 index 0000000..51ec208 --- /dev/null +++ b/stage6.1_branded_application/pycasa/ui/image_file_editor.py @@ -0,0 +1,36 @@ +from traits.api import Property +from pyface.tasks.api import Editor + +from .image_file_view import ImageFileView + + +class ImageFileEditor(Editor): + name = Property + + tooltip = Property + + # ------------------------------------------------------------------------- + # 'Editor' interface methods + # ------------------------------------------------------------------------- + + def create(self, parent): + """ Create and set the toolkit-specific control that represents the + editor. + """ + # Setting the kind and the parent allows for the ui to be embedded + # within the parent UI + view = ImageFileView(model=self.obj) + ui = view.edit_traits(kind="subpanel", parent=parent) + + # Grab the Qt widget to return to the editor area + self.control = ui.control + + # ------------------------------------------------------------------------- + # Traits property methods + # ------------------------------------------------------------------------- + + def _get_name(self): + return self.obj.filepath[:25] + + def _get_tooltip(self): + return self.obj.filepath diff --git a/stage6.1_branded_application/pycasa/ui/image_file_view.py b/stage6.1_branded_application/pycasa/ui/image_file_view.py new file mode 100644 index 0000000..8e868ea --- /dev/null +++ b/stage6.1_branded_application/pycasa/ui/image_file_view.py @@ -0,0 +1,61 @@ +# General imports +from matplotlib.figure import Figure +from matplotlib import patches + +# ETS imports +from traits.api import Button, Instance, observe +from traitsui.api import HGroup, Item, ModelView, Spring, View + +# Local imports +from ets_tutorial.util.mpl_figure_editor import MplFigureEditor +from ..model.image_file import ImageFile + + +class ImageFileView(ModelView): + """ ModelView for an image file object. + """ + model = Instance(ImageFile) + + figure = Instance(Figure) + + detect_button = Button("Detect faces") + + view = View( + Item("model.filepath", style="readonly", show_label=False), + Item("figure", editor=MplFigureEditor(), show_label=False), + HGroup( + Spring(), + Item("detect_button", show_label=False), + Spring(), + ), + ) + + @observe("model.filepath") + def build_mpl_figure(self, event): + figure = Figure() + axes = figure.add_subplot(111) + axes.imshow(self.model.data) + self.figure = figure + + @observe("detect_button") + def _detect_button_fired(self, event): + self.model.detect_faces() + + @observe("model.faces") + def update_mpl_figure_with_faces(self, events): + figure = Figure() + axes = figure.add_subplot(111) + axes.imshow(self.model.data) + + for face in self.model.faces: + axes.add_patch( + patches.Rectangle( + (face['c'], face['r']), + face['width'], + face['height'], + fill=False, + color='r', + linewidth=2 + ) + ) + self.figure = figure diff --git a/stage6.1_branded_application/pycasa/ui/image_folder_editor.py b/stage6.1_branded_application/pycasa/ui/image_folder_editor.py new file mode 100644 index 0000000..10a75e5 --- /dev/null +++ b/stage6.1_branded_application/pycasa/ui/image_folder_editor.py @@ -0,0 +1,36 @@ +from traits.api import Property +from pyface.tasks.api import Editor + +from .image_folder_view import ImageFolderView + + +class ImageFolderEditor(Editor): + name = Property + + tooltip = Property + + # ------------------------------------------------------------------------- + # 'Editor' interface methods + # ------------------------------------------------------------------------- + + def create(self, parent): + """ Create and set the toolkit-specific control that represents the + editor. + """ + # Setting the kind and the parent allows for the ui to be embedded + # within the parent UI + view = ImageFolderView(model=self.obj) + ui = view.edit_traits(kind="subpanel", parent=parent) + + # Grab the Qt widget to return to the editor area + self.control = ui.control + + # ------------------------------------------------------------------------- + # Traits property methods + # ------------------------------------------------------------------------- + + def _get_name(self): + return self.obj.directory[:25] + + def _get_tooltip(self): + return self.obj.directory diff --git a/stage6.1_branded_application/pycasa/ui/image_folder_view.py b/stage6.1_branded_application/pycasa/ui/image_folder_view.py new file mode 100644 index 0000000..9ccd65a --- /dev/null +++ b/stage6.1_branded_application/pycasa/ui/image_folder_view.py @@ -0,0 +1,151 @@ +# General imports + +# ETS imports +import numpy as np +import pandas as pd +from traits.api import Bool, Button, Enum, Instance, List, observe +from traitsui.api import HGroup, Item, Label, ListStrEditor, ModelView, \ + Spring, View +from traitsui.ui_editors.data_frame_editor import DataFrameEditor + +# Local imports +from pycasa.model.image_folder import FILENAME_COL, ImageFolder, NUM_FACE_COL + + +DISPLAYED_COLUMNS = [FILENAME_COL, NUM_FACE_COL] + [ + 'ApertureValue', 'ExifVersion', 'Model', 'Make', 'LensModel', 'DateTime', + 'ShutterSpeedValue', 'ExposureTime', 'XResolution', 'YResolution', + 'Orientation', 'GPSInfo', 'DigitalZoomRatio', 'FocalLengthIn35mmFilm', + 'ISOSpeedRatings', 'SceneType' +] + +YEAR_KEY = "__year__" + +DATETIME_COL = "DateTime" + +MAKE_COL = 'Make' + + +class ImageFolderView(ModelView): + """ ModelView for an image folder object. + """ + model = Instance(ImageFolder) + + scan = Button("Scan for faces...") + + # Filters widgets + view_filter_controls = Bool + + # Copy of the model's data, with filtering columns added if missing + all_data = Instance(pd.DataFrame) + + # Filtered dataframe based on filtering widgets + filtered_data = Instance(pd.DataFrame) + + year_mask = Instance(pd.Series) + + selected_years = List + + all_years = List + + selected_make = Enum(["All", "Canon", "Nikon", "Sony", "Apple", "samsung"]) + + make_mask = Instance(pd.Series) + + def traits_view(self): + view = View( + Item("model.directory", style="readonly", show_label=False), + HGroup( + Spring(), + Item("view_filter_controls"), + ), + HGroup( + Item("all_years", label="Years", + editor=ListStrEditor(selected="selected_years", + multi_select=True) + ), + Item("selected_make", label="Camera make"), + visible_when="view_filter_controls", + ), + Item("filtered_data", + editor=DataFrameEditor(columns=DISPLAYED_COLUMNS, + update="data_updated"), + show_label=False, visible_when="len(model.data) > 0"), + HGroup( + Spring(), + Label("No images found. No data to show"), + Spring(), + visible_when="len(model.data) == 0", + ), + HGroup( + Spring(), + Item("scan", show_label=False, + enabled_when="len(model.data) > 0"), + Spring(), + ), + ) + return view + + # Listener methods -------------------------------------------------------- + + @observe("scan") + def scan_for_faces(self, event): + self.model.compute_num_faces() + self.all_data.update(self.model.data) + + @observe("selected_years") + def update_years(self, event): + self.year_mask = self.all_data[YEAR_KEY].isin(self.selected_years) + + @observe("selected_make") + def update_make(self, event): + if self.selected_make == "All": + self.make_mask = pd.Series([True] * len(self.model.data)) + else: + self.make_mask = self.all_data[MAKE_COL] == self.selected_make + + @observe("year_mask, make_mask, all_data") + def update_filtered_data(self, event): + self.filtered_data = self.all_data[self.year_mask & self.make_mask] + + # Initialization methods -------------------------------------------------- + + def _make_mask_default(self): + return pd.Series(np.ones(len(self.model.data), dtype=bool)) + + def _year_mask_default(self): + return pd.Series(np.ones(len(self.model.data), dtype=bool)) + + def _all_data_default(self): + # Enrich metadata with missing fields: date time, make + data = self.model.data.copy() + + if DATETIME_COL not in data.columns: + data[DATETIME_COL] = np.nan + + if MAKE_COL not in data.columns: + data[MAKE_COL] = np.nan + + def parse_year(x): + return x.split(":")[0] if isinstance(x, str) else "unknown" + data[YEAR_KEY] = data[DATETIME_COL].apply(parse_year) + + return data + + def _filtered_data_default(self): + return self.all_data + + def _all_years_default(self): + return sorted(self.all_data[YEAR_KEY].unique().tolist()) + + +if __name__ == '__main__': + from os.path import dirname, join + import ets_tutorial + + TUTORIAL_DIR = dirname(ets_tutorial.__file__) + SAMPLE_IMG_DIR = join(TUTORIAL_DIR, "..", "sample_images") + + image_file = ImageFolder(directory=SAMPLE_IMG_DIR) + view = ImageFolderView(model=image_file) + view.configure_traits() diff --git a/stage6.1_branded_application/pycasa/ui/image_resources.py b/stage6.1_branded_application/pycasa/ui/image_resources.py new file mode 100644 index 0000000..c6599d1 --- /dev/null +++ b/stage6.1_branded_application/pycasa/ui/image_resources.py @@ -0,0 +1,5 @@ +from pyface.api import ImageResource + +app_icon = ImageResource('scipy_logo.png') + +new_icon = ImageResource('document-new.png') diff --git a/stage6.1_branded_application/pycasa/ui/images/document-new.png b/stage6.1_branded_application/pycasa/ui/images/document-new.png new file mode 100644 index 0000000000000000000000000000000000000000..3d0f5cc1d53daab4519aade073a1499cfb39a14c GIT binary patch literal 1410 zcmV-|1%3L7P)d@#lewNb zXJ&WYI2k>eOb(&+gT>zaaG3vJYwdMLlTz|uB6`I#D%g!d3nrB~DMMqNBp0ZnOKy?_ zP(XtMLWp{xo`v8?V>i1fXI*P;t82rH8)&F#00D#3gNyne^fg=_y!@UxEPmiu+U55$ zV=zk!t3?&zz8ut zHqODVA%s4`Mn$I zmG~F?d8mh2;s&=9;)!wcB$E%wl0cUb11iB;X}r0{5c8V=kP=O5kOc&`aSFf%`0*BL0rm{2%jv-5^MDU% zgzDphfExlHFo)rn9TI>ydju6h7)isJ4$dYZ2{=hCqyj2lqHwzP8S#v%It=;M6gJhy9Zqi1zoP8V*|P5o#+8)F;k*x7LmxCF#yj*^#<65_>7 ztXZ>$#>Ph4?zIsLg^0)FszN@WkGfzT&CShpZ0Yz5h{_xQ#amE_StcwzYe@YQ*4EY% z2n1NQYSnY^IGs*hE*F527cXwWnmLpbwLVkT$cd@U?J(yQD2kW9qzNl3*}@C+7_bV% ze4-Zdf@n6IeQpI14yQc>!ZMDtC}Av<$tcluI*nl%PtGa;;%PGmB<)tfwrHN5kP_8( zT}?nF63MLz^?MbSRmPY5J9~isk_MFc9D*fKS(~OwDwQG}9%f`@7>~!x(we0>9ZuP~ zZ{P9LU!VF+N|`NXps0B178DHRGFMp-4Gpn={W>xkQ<>R&pzHKECysxl#BE(dn0Mx_ z+2_kYK0bll?U@lj&~xP6$=;*y=4apb6xc`IdR6{dEXMToG{InSM!ffMce_R0UInn% z3QG&pWC54kB|E$JpZ@CTv0|CqA48kwR0VRO${whxGe6(A|Jb*x=Xr7a2GnO%O@gK8 zr9L{s;Q)t*;c&+ec71W=yHo16%Y}T3LpcNMSvU!x-y&|;fXXHWg!mu%7iW_sYDk^+ QD*ylh07*qoM6N<$f;iQC6#xJL literal 0 HcmV?d00001 diff --git a/stage6.1_branded_application/pycasa/ui/images/scipy_logo.png b/stage6.1_branded_application/pycasa/ui/images/scipy_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b716c497c0c188d5f34c606c2d6d216e0f0f49de GIT binary patch literal 192620 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
    MilU_B)R|%rk!Vib6PhB`40N-}mW35CX2= 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 literal 0 HcmV?d00001 diff --git a/stage6.1_branded_application/pycasa/ui/path_selector.py b/stage6.1_branded_application/pycasa/ui/path_selector.py new file mode 100644 index 0000000..7db6367 --- /dev/null +++ b/stage6.1_branded_application/pycasa/ui/path_selector.py @@ -0,0 +1,16 @@ +from traits.api import Bool, HasStrictTraits, File +from traitsui.api import Item, OKCancelButtons, View +from pycasa.ui.image_resources import app_icon + + +class PathSelector(HasStrictTraits): + filepath = File + + scan_for_faces = Bool + + view = View(Item("filepath"), + Item("scan_for_faces"), + resizable=True, + icon=app_icon, + width=400, height=200, + buttons=OKCancelButtons) diff --git a/stage6.1_branded_application/pycasa/ui/tasks/__init__.py b/stage6.1_branded_application/pycasa/ui/tasks/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/stage6.1_branded_application/pycasa/ui/tasks/images/applications-education-university.png b/stage6.1_branded_application/pycasa/ui/tasks/images/applications-education-university.png new file mode 100644 index 0000000000000000000000000000000000000000..09cc14ca241cd942dc4dce77cf243a91f5beb40a GIT binary patch literal 5050 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 literal 0 HcmV?d00001 diff --git a/stage6.1_branded_application/pycasa/ui/tasks/images/document-open.png b/stage6.1_branded_application/pycasa/ui/tasks/images/document-open.png new file mode 100644 index 0000000000000000000000000000000000000000..3432ed279e6ebf1d590f5a8f60cdac0d056b3125 GIT binary patch literal 2798 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L02IRj02IRk6>v>L00007bV*G`2ipV` z4kH7z=qr@~019qNL_t(&-rbo^h-F6=$A72pz3=t+Oy(=;1dmzt5^V z$HlFCU%l5oMq*DEKDfMh>()JW{^$J9N7aM>=g*yY-szs)pVCy;Sl_p8~km%pMr@df09+OZK`M2ACOUhQ>%#C4@kX z5$`>t(a1swa^}pLd*6Kf?H>Uy{;vR@&b9LZmMJSDIOlL8NPamt4JwU0=h`{WIT;Rz z9J%(|_nbU=^1Hz5)dny<*}2^OySvk@Ri5l}&f%P+)9KLb^*D6s(5oIeapFGU#;XoM zL|U%Ntl|xIYJ}ii9l;{F?2-haEK3#^7C3+I9M8Swmg5gS_~3oOv8w?f0^7S<-0FyE zly1^ZlX^ttiiU8`Q8>r?`a1je?c>Pd!_WJ}$&)_;Zhj^J%I3%0KKa8Bi7UQxN)j6oIpxwNiDJ&VHt4%^bB)Jt{Nt%pKYzjT z$%Q>*;Fhv z@qj8ZMmkm1$}+RnU!M5gW1qVB59~j3BZ6Vc6b?{8Oo#5$U+%oAbMbqJPdqwo0Sqp$ zv$;J2^Jo;%h-#cliI!VFS-QmXSeJ|k~zglDU z=ySmg#ZUv(=#Q;?`qb7}54(p?T)cSk?=1k0f&OTW29KJ6L_!Q#u6nuRSE`O#?P#xw zwWngFtg1FK90uNTtLL*nc!>S0#{i=+@CKc3CB3bUMYmt7sVrp9q0tjUz@jIN1H?E( zZ<|tR_Yjy4;9SX~DBAaS3-q$8=ytm-EiH574F~zy?W?R^I0IT6(<~4|WMl0KMt)?| z08|)_Jl+RJz6Rkl4>Sv2N$EUI<^Y@feB8`X)#=Kf0G3rn)$OvlxWr929O0vHIKst$ zo@EpQVH{8&7!S7DzkJPf7E%;3PYh$!1aA@5u%qwEK{TN93au$!+7(i2J_b+}#m@d^ zejZj#x>R_5pb%xAvyIESvgfvAy# z2lmZ)ASls$M$sb%rUn^>@;;|Yjh1DeJX6U`<#x_ts;%;Kb8}p?e?I`;`>D8cO|}AJ z2%I~2j?<_A#EV~aoV(xuGCuM3M+h;}yF8cyV2bx1(SRi?#3qO{CCS_`4WLZ%Hec`T zBXA;AWy#XwB68#i%PT8rjHnr|C?;)4>aQ>(#K?F&W@BTM>#pta)|apHrH2Dgu5Zl( zi1_FU!BYxE)u|Y0lyrH{pHaLScg~?r42aY~lh;ZS=0zy0ilq=x)iw!OmJphKg_#mV zB!qzXBR=r7^gsTr1PrNT2^sL6uVe7*3-I0h?`Q4&V|VbmuRKuR{jG=i_&aZ9 z(TN2pE|Q=J&4nODf}GIBkd5>?if(r^yODu}Bmmzlu!cfD7k za5cbY;Sz|+!9IagsSOabLncicLk!8YM4rZ7d_`XUhur<<2AIrY$qpk zAIn!s5ZvsNPUQV_b-u5@WEWRX8^icg|Jb01TKMdGout0Ti@GMYpA zvir-b!T z^HmKN1^TIamWj)GOHfLxvU?Yt z{_)#~-utzC)4t}KTi#7I_Zl2sEc?gQOqiT$37D(Tr>wr(=WcQj^{H30w>JcbVfEP? zBI&rNK0;0#YXhh0nWbk2Vi<~GQn>moOi-eX(C{-ZK60;cEd3|=#%~vFo)v7A9MiOd zrQx@Q&;wVdNOLgm32_9WFT?@(Eg=Mf2pR-c(4im!tOKrVlm%D;t}?25qgXJy3x+IE ze*@;~Q#C1J?ts;@no|T1(t+h;#(nRM`|p5%1Jo4-`}2US_y7O^07*qoM6N<$g29be AfdBvi literal 0 HcmV?d00001 diff --git a/stage6.1_branded_application/pycasa/ui/tasks/images/document-save-as.png b/stage6.1_branded_application/pycasa/ui/tasks/images/document-save-as.png new file mode 100644 index 0000000000000000000000000000000000000000..ed2453d9f427bc75170a223ff476351f39e407cd GIT binary patch literal 3792 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 literal 0 HcmV?d00001 diff --git a/stage6.1_branded_application/pycasa/ui/tasks/images/document-save.png b/stage6.1_branded_application/pycasa/ui/tasks/images/document-save.png new file mode 100644 index 0000000000000000000000000000000000000000..cc380a03aee7f4add3e6b6b78338ff6e031c9688 GIT binary patch literal 2122 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 Rg--wg002ovPDHLkV1gWrOiKU& literal 0 HcmV?d00001 diff --git a/stage6.1_branded_application/pycasa/ui/tasks/images/folder-blue.png b/stage6.1_branded_application/pycasa/ui/tasks/images/folder-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..352c3b0e2cf95bee00f408e745f6734567b8148d GIT binary patch literal 1562 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 GE(8EJH2l&4 literal 0 HcmV?d00001 diff --git a/stage6.1_branded_application/pycasa/ui/tasks/images/measure.png b/stage6.1_branded_application/pycasa/ui/tasks/images/measure.png new file mode 100644 index 0000000000000000000000000000000000000000..8686b3fe1b88adc58e5998e5fd563879aaa324f3 GIT binary patch literal 777 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sjKx9jP7LeL$-D$|I14-?iy0V1 z4udeGXo0U2P>{XE)7O>#Cc7x31nd2cv!sD~WCMIcT!B*DneT;i--pfk8ZrI*+#|n$ zBGdwwT|Yc0|F-J-q22Hu$oTmA^V#!Po<4i_{^Q5bU%wtcdgj*cdrzJ{|MKnI(q)@B zY}~zj_tB%r&Rw{8?e?8}zyAEWe)Hb?^?P^iI`;P6#~;6b9XWdb+=c6Z{{8FkpFeHd z(*OVe7nhWzre&n1W#r}Omz9;5mz7skfx<^jVZ zuq4PY7!oGTEF7FXLc$V~@(SvD`sQ}7ZoYnjkx|hxH8r($b&VZB&8vQ4M4Dc*RFm0&tG`_4?2N{GA4PuyTq|vOWX})b9lNqhIkxLPLN<- z+)&jpv60io@No#kv_z&=&5aHUVP(gYm+WQ=5fx!EG|>2ExZy#_`9lx%`NLW-ED&Kx z-Lzqq7(0j4bNZLRJuZm!1@X2=Q4ib@K~i3#~E3AcqKr|R<4cl!Gok^b)FkL zEE1)5yiI!ih(p<0ZU$Ria~yFc^EzVABkaO=?&v;?vx-me=q=nA9@IbEl6_H~8>znyl_; bcOeD_KEn!zPi&fxK%wsG>gTe~DWM4f`JX&E literal 0 HcmV?d00001 diff --git a/stage6.1_branded_application/pycasa/ui/tasks/images/text-x-python.png b/stage6.1_branded_application/pycasa/ui/tasks/images/text-x-python.png new file mode 100644 index 0000000000000000000000000000000000000000..aac29afc375b86e5bf3bfa42813441421fc62aea GIT binary patch literal 1936 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 literal 0 HcmV?d00001 diff --git a/stage6.1_branded_application/pycasa/ui/tasks/images/user-properties.png b/stage6.1_branded_application/pycasa/ui/tasks/images/user-properties.png new file mode 100644 index 0000000000000000000000000000000000000000..b2679719af9cfc852463720d0169499443c93cb4 GIT binary patch literal 3532 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 Q7XSbN07*qoM6N<$f*s-VnE(I) literal 0 HcmV?d00001 diff --git a/stage6.1_branded_application/pycasa/ui/tasks/images/zoom-draw.png b/stage6.1_branded_application/pycasa/ui/tasks/images/zoom-draw.png new file mode 100644 index 0000000000000000000000000000000000000000..0758725eb54fd3c83a03f5788504c5571fea2e43 GIT binary patch literal 3162 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 ALI3~& literal 0 HcmV?d00001 diff --git a/stage6.1_branded_application/pycasa/ui/tasks/pycasa_browser_pane.py b/stage6.1_branded_application/pycasa/ui/tasks/pycasa_browser_pane.py new file mode 100644 index 0000000..8663edf --- /dev/null +++ b/stage6.1_branded_application/pycasa/ui/tasks/pycasa_browser_pane.py @@ -0,0 +1,28 @@ +# General imports + +# ETS imports +from traits.api import Instance, observe +from traitsui.api import InstanceEditor, Item, View +from pyface.tasks.api import TraitsDockPane + +# Local imports +from ..file_browser_view import FileBrowserView + + +class PycasaBrowserPane(TraitsDockPane): + + id = 'pycasa.file_browser_pane' + + name = "File browser" + + file_browser_view = Instance(FileBrowserView, ()) + + def traits_view(self): + return View( + Item("file_browser_view", editor=InstanceEditor(), style="custom", + show_label=False) + ) + + @observe("file_browser_view.model.requested_item") + def open_in_central_pane(self, event): + self.task.open_in_central_pane(event.new) diff --git a/stage6_branded_application/pycasa/ui/tasks/pycasa_task.py b/stage6.1_branded_application/pycasa/ui/tasks/pycasa_task.py similarity index 100% rename from stage6_branded_application/pycasa/ui/tasks/pycasa_task.py rename to stage6.1_branded_application/pycasa/ui/tasks/pycasa_task.py diff --git a/stage6.1_branded_application/pycasa/ui/tests/__init__.py b/stage6.1_branded_application/pycasa/ui/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/stage6.1_branded_application/setup.py b/stage6.1_branded_application/setup.py new file mode 100644 index 0000000..d84c020 --- /dev/null +++ b/stage6.1_branded_application/setup.py @@ -0,0 +1,14 @@ +from setuptools import setup, find_packages + + +setup( + name="pycasa", + version="0.0.1", + description='ETS based GUI application for image exploration and face ' + 'detection', + ext_modules=[], + packages=find_packages(), + data_files=[ + (".", ["README.md"]), + ], +) From 9388f5565ed11b4a81dc981d0043e1d97f8ca831 Mon Sep 17 00:00:00 2001 From: Jonathan Rocher Date: Tue, 12 Jul 2022 11:53:16 -0500 Subject: [PATCH 2/2] Folder name --- .../README.md | 0 .../pycasa/__init__.py | 0 .../pycasa/app/__init__.py | 0 .../pycasa/app/app.py | 0 .../pycasa/app/main.py | 0 .../pycasa/model/__init__.py | 0 .../pycasa/model/file_browser.py | 0 .../pycasa/model/image_file.py | 0 .../pycasa/model/image_folder.py | 0 .../pycasa/model/tests/__init__.py | 0 .../pycasa/model/tests/test_image_file.py | 0 .../pycasa/model/tests/test_image_folder.py | 0 .../pycasa/ui/__init__.py | 0 .../pycasa/ui/file_browser_view.py | 0 .../pycasa/ui/image_file_editor.py | 0 .../pycasa/ui/image_file_view.py | 0 .../pycasa/ui/image_folder_editor.py | 0 .../pycasa/ui/image_folder_view.py | 0 .../pycasa/ui/image_resources.py | 0 .../pycasa/ui/images/document-new.png | Bin .../pycasa/ui/images/scipy_logo.png | Bin .../pycasa/ui/path_selector.py | 0 .../pycasa/ui/tasks/__init__.py | 0 .../images/applications-education-university.png | Bin .../pycasa/ui/tasks/images/dialog-ok-apply.png | Bin .../pycasa/ui/tasks/images/document-encrypted.png | Bin .../pycasa/ui/tasks/images/document-open-recent.png | Bin .../pycasa/ui/tasks/images/document-open.png | Bin .../pycasa/ui/tasks/images/document-save-as.png | Bin .../pycasa/ui/tasks/images/document-save.png | Bin .../tasks/images/edit-table-insert-column-left.png | Bin .../pycasa/ui/tasks/images/editing-compare-icon.png | Bin .../pycasa/ui/tasks/images/folder-blue.png | Bin .../pycasa/ui/tasks/images/insert-image.png | Bin .../pycasa/ui/tasks/images/ipython_icon.png | Bin .../pycasa/ui/tasks/images/measure.png | Bin .../pycasa/ui/tasks/images/text-x-python.png | Bin .../pycasa/ui/tasks/images/tool-animator.png | Bin .../pycasa/ui/tasks/images/user-properties.png | Bin .../pycasa/ui/tasks/images/view-media-equalizer.png | Bin .../pycasa/ui/tasks/images/zoom-draw.png | Bin .../pycasa/ui/tasks/pycasa_browser_pane.py | 0 .../pycasa/ui/tasks/pycasa_task.py | 0 .../pycasa/ui/tests/__init__.py | 0 .../setup.py | 0 45 files changed, 0 insertions(+), 0 deletions(-) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/README.md (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/__init__.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/app/__init__.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/app/app.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/app/main.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/model/__init__.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/model/file_browser.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/model/image_file.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/model/image_folder.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/model/tests/__init__.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/model/tests/test_image_file.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/model/tests/test_image_folder.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/__init__.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/file_browser_view.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/image_file_editor.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/image_file_view.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/image_folder_editor.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/image_folder_view.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/image_resources.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/images/document-new.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/images/scipy_logo.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/path_selector.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/__init__.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/images/applications-education-university.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/images/dialog-ok-apply.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/images/document-encrypted.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/images/document-open-recent.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/images/document-open.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/images/document-save-as.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/images/document-save.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/images/edit-table-insert-column-left.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/images/editing-compare-icon.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/images/folder-blue.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/images/insert-image.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/images/ipython_icon.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/images/measure.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/images/text-x-python.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/images/tool-animator.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/images/user-properties.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/images/view-media-equalizer.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/images/zoom-draw.png (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/pycasa_browser_pane.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tasks/pycasa_task.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/pycasa/ui/tests/__init__.py (100%) rename {stage6.0_shell_for_branded_application => stage6.0_branded_application}/setup.py (100%) diff --git a/stage6.0_shell_for_branded_application/README.md b/stage6.0_branded_application/README.md similarity index 100% rename from stage6.0_shell_for_branded_application/README.md rename to stage6.0_branded_application/README.md diff --git a/stage6.0_shell_for_branded_application/pycasa/__init__.py b/stage6.0_branded_application/pycasa/__init__.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/__init__.py rename to stage6.0_branded_application/pycasa/__init__.py diff --git a/stage6.0_shell_for_branded_application/pycasa/app/__init__.py b/stage6.0_branded_application/pycasa/app/__init__.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/app/__init__.py rename to stage6.0_branded_application/pycasa/app/__init__.py diff --git a/stage6.0_shell_for_branded_application/pycasa/app/app.py b/stage6.0_branded_application/pycasa/app/app.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/app/app.py rename to stage6.0_branded_application/pycasa/app/app.py diff --git a/stage6.0_shell_for_branded_application/pycasa/app/main.py b/stage6.0_branded_application/pycasa/app/main.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/app/main.py rename to stage6.0_branded_application/pycasa/app/main.py diff --git a/stage6.0_shell_for_branded_application/pycasa/model/__init__.py b/stage6.0_branded_application/pycasa/model/__init__.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/model/__init__.py rename to stage6.0_branded_application/pycasa/model/__init__.py diff --git a/stage6.0_shell_for_branded_application/pycasa/model/file_browser.py b/stage6.0_branded_application/pycasa/model/file_browser.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/model/file_browser.py rename to stage6.0_branded_application/pycasa/model/file_browser.py diff --git a/stage6.0_shell_for_branded_application/pycasa/model/image_file.py b/stage6.0_branded_application/pycasa/model/image_file.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/model/image_file.py rename to stage6.0_branded_application/pycasa/model/image_file.py diff --git a/stage6.0_shell_for_branded_application/pycasa/model/image_folder.py b/stage6.0_branded_application/pycasa/model/image_folder.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/model/image_folder.py rename to stage6.0_branded_application/pycasa/model/image_folder.py diff --git a/stage6.0_shell_for_branded_application/pycasa/model/tests/__init__.py b/stage6.0_branded_application/pycasa/model/tests/__init__.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/model/tests/__init__.py rename to stage6.0_branded_application/pycasa/model/tests/__init__.py diff --git a/stage6.0_shell_for_branded_application/pycasa/model/tests/test_image_file.py b/stage6.0_branded_application/pycasa/model/tests/test_image_file.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/model/tests/test_image_file.py rename to stage6.0_branded_application/pycasa/model/tests/test_image_file.py diff --git a/stage6.0_shell_for_branded_application/pycasa/model/tests/test_image_folder.py b/stage6.0_branded_application/pycasa/model/tests/test_image_folder.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/model/tests/test_image_folder.py rename to stage6.0_branded_application/pycasa/model/tests/test_image_folder.py diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/__init__.py b/stage6.0_branded_application/pycasa/ui/__init__.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/__init__.py rename to stage6.0_branded_application/pycasa/ui/__init__.py diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/file_browser_view.py b/stage6.0_branded_application/pycasa/ui/file_browser_view.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/file_browser_view.py rename to stage6.0_branded_application/pycasa/ui/file_browser_view.py diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/image_file_editor.py b/stage6.0_branded_application/pycasa/ui/image_file_editor.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/image_file_editor.py rename to stage6.0_branded_application/pycasa/ui/image_file_editor.py diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/image_file_view.py b/stage6.0_branded_application/pycasa/ui/image_file_view.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/image_file_view.py rename to stage6.0_branded_application/pycasa/ui/image_file_view.py diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/image_folder_editor.py b/stage6.0_branded_application/pycasa/ui/image_folder_editor.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/image_folder_editor.py rename to stage6.0_branded_application/pycasa/ui/image_folder_editor.py diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/image_folder_view.py b/stage6.0_branded_application/pycasa/ui/image_folder_view.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/image_folder_view.py rename to stage6.0_branded_application/pycasa/ui/image_folder_view.py diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/image_resources.py b/stage6.0_branded_application/pycasa/ui/image_resources.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/image_resources.py rename to stage6.0_branded_application/pycasa/ui/image_resources.py diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/images/document-new.png b/stage6.0_branded_application/pycasa/ui/images/document-new.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/images/document-new.png rename to stage6.0_branded_application/pycasa/ui/images/document-new.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/images/scipy_logo.png b/stage6.0_branded_application/pycasa/ui/images/scipy_logo.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/images/scipy_logo.png rename to stage6.0_branded_application/pycasa/ui/images/scipy_logo.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/path_selector.py b/stage6.0_branded_application/pycasa/ui/path_selector.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/path_selector.py rename to stage6.0_branded_application/pycasa/ui/path_selector.py diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/__init__.py b/stage6.0_branded_application/pycasa/ui/tasks/__init__.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/__init__.py rename to stage6.0_branded_application/pycasa/ui/tasks/__init__.py diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/applications-education-university.png b/stage6.0_branded_application/pycasa/ui/tasks/images/applications-education-university.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/applications-education-university.png rename to stage6.0_branded_application/pycasa/ui/tasks/images/applications-education-university.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/dialog-ok-apply.png b/stage6.0_branded_application/pycasa/ui/tasks/images/dialog-ok-apply.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/dialog-ok-apply.png rename to stage6.0_branded_application/pycasa/ui/tasks/images/dialog-ok-apply.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-encrypted.png b/stage6.0_branded_application/pycasa/ui/tasks/images/document-encrypted.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-encrypted.png rename to stage6.0_branded_application/pycasa/ui/tasks/images/document-encrypted.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-open-recent.png b/stage6.0_branded_application/pycasa/ui/tasks/images/document-open-recent.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-open-recent.png rename to stage6.0_branded_application/pycasa/ui/tasks/images/document-open-recent.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-open.png b/stage6.0_branded_application/pycasa/ui/tasks/images/document-open.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-open.png rename to stage6.0_branded_application/pycasa/ui/tasks/images/document-open.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-save-as.png b/stage6.0_branded_application/pycasa/ui/tasks/images/document-save-as.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-save-as.png rename to stage6.0_branded_application/pycasa/ui/tasks/images/document-save-as.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-save.png b/stage6.0_branded_application/pycasa/ui/tasks/images/document-save.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/document-save.png rename to stage6.0_branded_application/pycasa/ui/tasks/images/document-save.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/edit-table-insert-column-left.png b/stage6.0_branded_application/pycasa/ui/tasks/images/edit-table-insert-column-left.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/edit-table-insert-column-left.png rename to stage6.0_branded_application/pycasa/ui/tasks/images/edit-table-insert-column-left.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/editing-compare-icon.png b/stage6.0_branded_application/pycasa/ui/tasks/images/editing-compare-icon.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/editing-compare-icon.png rename to stage6.0_branded_application/pycasa/ui/tasks/images/editing-compare-icon.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/folder-blue.png b/stage6.0_branded_application/pycasa/ui/tasks/images/folder-blue.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/folder-blue.png rename to stage6.0_branded_application/pycasa/ui/tasks/images/folder-blue.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/insert-image.png b/stage6.0_branded_application/pycasa/ui/tasks/images/insert-image.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/insert-image.png rename to stage6.0_branded_application/pycasa/ui/tasks/images/insert-image.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/ipython_icon.png b/stage6.0_branded_application/pycasa/ui/tasks/images/ipython_icon.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/ipython_icon.png rename to stage6.0_branded_application/pycasa/ui/tasks/images/ipython_icon.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/measure.png b/stage6.0_branded_application/pycasa/ui/tasks/images/measure.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/measure.png rename to stage6.0_branded_application/pycasa/ui/tasks/images/measure.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/text-x-python.png b/stage6.0_branded_application/pycasa/ui/tasks/images/text-x-python.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/text-x-python.png rename to stage6.0_branded_application/pycasa/ui/tasks/images/text-x-python.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/tool-animator.png b/stage6.0_branded_application/pycasa/ui/tasks/images/tool-animator.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/tool-animator.png rename to stage6.0_branded_application/pycasa/ui/tasks/images/tool-animator.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/user-properties.png b/stage6.0_branded_application/pycasa/ui/tasks/images/user-properties.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/user-properties.png rename to stage6.0_branded_application/pycasa/ui/tasks/images/user-properties.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/view-media-equalizer.png b/stage6.0_branded_application/pycasa/ui/tasks/images/view-media-equalizer.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/view-media-equalizer.png rename to stage6.0_branded_application/pycasa/ui/tasks/images/view-media-equalizer.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/zoom-draw.png b/stage6.0_branded_application/pycasa/ui/tasks/images/zoom-draw.png similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/images/zoom-draw.png rename to stage6.0_branded_application/pycasa/ui/tasks/images/zoom-draw.png diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/pycasa_browser_pane.py b/stage6.0_branded_application/pycasa/ui/tasks/pycasa_browser_pane.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/pycasa_browser_pane.py rename to stage6.0_branded_application/pycasa/ui/tasks/pycasa_browser_pane.py diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tasks/pycasa_task.py b/stage6.0_branded_application/pycasa/ui/tasks/pycasa_task.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tasks/pycasa_task.py rename to stage6.0_branded_application/pycasa/ui/tasks/pycasa_task.py diff --git a/stage6.0_shell_for_branded_application/pycasa/ui/tests/__init__.py b/stage6.0_branded_application/pycasa/ui/tests/__init__.py similarity index 100% rename from stage6.0_shell_for_branded_application/pycasa/ui/tests/__init__.py rename to stage6.0_branded_application/pycasa/ui/tests/__init__.py diff --git a/stage6.0_shell_for_branded_application/setup.py b/stage6.0_branded_application/setup.py similarity index 100% rename from stage6.0_shell_for_branded_application/setup.py rename to stage6.0_branded_application/setup.py