Search code examples
pythonzip

Function not working when using it with Gooey module


I was trying to a GUI for a zip file extracted function I did use the zipfile module. It's my first time using Gooey, I followed the docs and implemented what I wanted, the GUI seems to be fine, but the extracting functionality doesn't work. I don't know what I missed. Any help would be appreciated! Here is the code am working on.

from zipfile import ZipFile
from gooey import Gooey, GooeyParser

def extract_all_files(files, path_to_extract_to):
    with ZipFile(files, 'r') as file:
        file.extractall(path_to_extract_to)

@Gooey(program_name="Archive Manager", program_description="Extract files")
def parse_args():
    parser = GooeyParser()
    subparsers = parser.add_subparsers(required=True)
    extractor = subparsers.add_parser("Extract", help="Extract zip files")

    extractor.add_argument('input_file', widget="FileChooser", help="File to extract")
    extractor.add_argument('output_file', widget="DirChooser", help="Extracted file location")
    
    return parser.parse_args()

@Gooey
def main():
    args = parse_args()

    files = args.input_file
    path = args.output_file
    extract_all_files(files, path)

if __name__ == "__main__":
    main()



Solution

  • Just Uncomment Or Delete The Decorator Function Line, The Program Will Start Working And I Don't Know Why But There is something wrong with gooey decorator!

    https://github.com/chriskiehl/Gooey/issues/144

    The author also suggests turning off the decorator while debugging.

    Decorator Is Used For Change The Functionality Of A Function So To Change The Program Name And Program Description Go To Directory Where It Has Installed And Change The Default Program Name, Description With Yours.