Beispiel #1
0
    def _get_category_folder(self):
        # category folder is not full path
        if self.for_sorter:
            if self.name.upper() in typeList:
                category = [
                    key for key in typeGroups.keys()
                    if set(typeGroups[key]) & set([self.name])
                ][0]
                return category
            if self.name in typeGroups.keys():
                return None

        return self.default_category
Beispiel #2
0
    def get_category(self, extension):
        """Return the category of the file instance as determined by its
        extension.

        Categories are determined in the filegroups module.

        The return value is not a full path, just the base name.
        """
        if extension:
            file_extension = set([extension.upper()])
            for key in typeGroups.keys():
                common = set(typeGroups[key]) & file_extension
                if common:
                    return key
        return self.default_category
Beispiel #3
0
    def _show_types_window(self, button_value):
        if bool(button_value.get()):
            self.file_types = []
            # Create new window
            types_window = Toplevel(self)
            types_window.geometry('{0}x{1}+0+0'.format(
                types_window.winfo_screenwidth() - 3,
                types_window.winfo_screenheight() - 3))
            types_window.bind('<Destroy>', self._on_closing)

            canvas = self._create_canvas(types_window)

            frame = Frame(canvas)

            canvas.create_window(0, 0, anchor=NW, window=frame)

            types = dict()

            # Add items to canvas
            for count, key in enumerate(sorted(typeGroups.keys())):
                options_frame = LabelFrame(frame, text=key)
                options_frame.grid(row=count,
                                   column=0,
                                   padx=5,
                                   pady=10,
                                   sticky=W)

                for item in typeGroups[key]:
                    types[item] = IntVar()
                    item_button = Checkbutton(
                        options_frame,
                        text=item,
                        variable=types[item],
                        command=lambda types=types, key=item: self._set_types(
                            types, key))
                    item_button.pack(side=LEFT)

                # Hack: Alter height to refit contents to canvas
                h = canvas.winfo_height()
                canvas.configure(height=h + 1)

            self._set_window_attributes(types_window, 'File Types')

        else:
            self._on_closing()
Beispiel #4
0
    def _is_sorter_folder(self, path=None):
        """Return True if Folder instance was generated by Sorter, else False.

        The folder in path has to exist.
        """
        path = path or self.path
        try:
            sorter_identity = os.path.join(path,
                                           SORTER_FOLDER_IDENTITY_FILENAME)
            open(sorter_identity, 'r').close()
        except FileNotFoundError:
            # For compatibility
            dirname = self.name
            if dirname.isupper():
                if dirname == self.default_category or dirname in typeList:
                    return True
            else:
                if dirname in typeGroups.keys():
                    return True
        else:
            return True

        return False