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
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
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()
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