From 5d69f94d6547021197a67bf9344badb07684c56a Mon Sep 17 00:00:00 2001 From: SophiaFrancis1 <112432333+SophiaFrancis1@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:44:59 -0500 Subject: [PATCH 1/7] FormBuilt --- nulrdcscripts/tools/errortool/__init__.py | 0 nulrdcscripts/tools/errortool/main.py | 157 ++++++++++++++++++++++ 2 files changed, 157 insertions(+) create mode 100644 nulrdcscripts/tools/errortool/__init__.py create mode 100644 nulrdcscripts/tools/errortool/main.py diff --git a/nulrdcscripts/tools/errortool/__init__.py b/nulrdcscripts/tools/errortool/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/nulrdcscripts/tools/errortool/main.py b/nulrdcscripts/tools/errortool/main.py new file mode 100644 index 0000000..c824cf3 --- /dev/null +++ b/nulrdcscripts/tools/errortool/main.py @@ -0,0 +1,157 @@ +# Many thanks to Code First with Hala on Youtube for her video Tkinter Data Entry Form tutorial for beginners - Python GUI project [responsive layout] + +import tkinter as tkin +from tkinter import scrolledtext + +window = tkin.Tk() +window.title("Error Entry Form") + +frame = tkin.Frame(window) +frame.pack() + +#Saving video Information + +# Setting up labels +video_info_frame=tkin.LabelFrame(frame, text="Video Information",padx=20,pady=20) +video_info_frame.pack(fill=tkin.BOTH,expand=True) +video_title=tkin.Label(video_info_frame, text="Video Title") +video_title.grid(row=0, column=0) +video_id=tkin.Label(video_info_frame, text="Video Identifier") +video_id.grid(row=0,column=1) +project_id=tkin.Label(video_info_frame,text="Project ID") +project_id.grid(row=0,column=2) +run_time=tkin.Label(video_info_frame, text="Runtime (Mins)") +run_time.grid(row=0,column=3) + +# Setting up entry boxes + +video_title_entry=tkin.Entry(video_info_frame) +video_id_entry=tkin.Entry(video_info_frame) +project_id_entry=tkin.Entry(video_info_frame) +run_time_entry=tkin.Entry(video_info_frame) +video_title_entry.grid(row=1,column=0) +video_id_entry.grid(row=1,column=1) +project_id_entry.grid(row=1,column=2) +run_time_entry.grid(row=1,column=3) + +for widget in video_info_frame.winfo_children(): + widget.grid_configure(padx=10, pady=5) + +# Saving video errors +errors_frame=tkin.LabelFrame(frame,text="Errors Present", padx=20, pady=20) +errors_frame.pack(fill=tkin.BOTH,expand=True) +audiobuzz_check=tkin.Checkbutton(errors_frame,text="Audio Buzz/Hum") +audiocrackle_check=tkin.Checkbutton(errors_frame,text="Audio Crackle") +audiodistortion_check=tkin.Checkbutton(errors_frame,text="Audio Distortion") +audiodrop_check=tkin.Checkbutton(errors_frame,text="Audio Dropout") +audiomuffled_check=tkin.Checkbutton(errors_frame,text="Audio Muffled") +audionoise_check=tkin.Checkbutton(errors_frame,text="Audio Noise") +bearding_check=tkin.Checkbutton(errors_frame, text ="Bearding") +carrier_leak_check=tkin.Checkbutton(errors_frame, text ="Carrier Leak") +color_smearing_check=tkin.Checkbutton(errors_frame, text="Color Smearing") +creased_check=tkin.Checkbutton(errors_frame,text="Creased or Crumpled Tape") +chromnoise_check=tkin.Checkbutton(errors_frame,text="Chrominance Noise") +crosstalk_check=tkin.Checkbutton(errors_frame,text="Crosstalk") +crushed_check=tkin.Checkbutton(errors_frame, text ="Chrushed Setup") +dihedral_check=tkin.Checkbutton(errors_frame,text="Dihedral Maladjustment") +dotcrawl_check=tkin.Checkbutton(errors_frame, text ="Dot Crawl") +dropouts_check=tkin.Checkbutton(errors_frame,text="Dropouts and Dropout Compensation") +egli_check=tkin.Checkbutton(errors_frame, text ="Electrical Ground Loop Interference") +fluorescent_check=tkin.Checkbutton(errors_frame, text ="Fluorescent Strobing") +ghost_check=tkin.Checkbutton(errors_frame, text ="Ghosting") +headclog_check=tkin.Checkbutton(errors_frame,text="Headclogging") +horiHold_check=tkin.Checkbutton(errors_frame,text="Horizontal Hold") +hueError_check=tkin.Checkbutton(errors_frame, text="Hue Error NTSC") +hum_check=tkin.Checkbutton(errors_frame,text="Hum Trouble") +incomp_TVStand=tkin.Checkbutton(errors_frame,text="Incompatibility TV Standards") +incomp_inFam=tkin.Checkbutton(errors_frame,text="Incompatibility in family of formats") +expanshrink_check=tkin.Checkbutton(errors_frame,text="Tape Expansion or Shrinkage") +longPlay_check=tkin.Checkbutton(errors_frame,text="Long Play") +losscolor_check=tkin.Checkbutton(errors_frame,text="Loss of Color Lock") +moire_check=tkin.Checkbutton(errors_frame,text="Moire Effect") +scratchwear_check=tkin.Checkbutton(errors_frame,text="Scratches and Tape Wear") +shiftheadswitch_check=tkin.Checkbutton(errors_frame,text="Shifted Head Switching Point") +skew_check=tkin.Checkbutton(errors_frame,text="Skew Error") +stick_check=tkin.Checkbutton(errors_frame,text="Sticky Tape Syndrome") +stiction_check=tkin.Checkbutton(errors_frame, text ="Stiction") +scpe_check=tkin.Checkbutton(errors_frame, text ="Subcarrier Phase Error") +deform_check=tkin.Checkbutton(errors_frame, text="Tape Deformation") +misalign_check=tkin.Checkbutton(errors_frame,text="Tape Misalignment") +quilting_check=tkin.Checkbutton(errors_frame, text ="Quilting") +ringing_check=tkin.Checkbutton(errors_frame, text ="Ringing") +tBCError_check=tkin.Checkbutton(errors_frame, text="TBC Error") +track_check=tkin.Checkbutton(errors_frame,text="Tracking Error") +vgae_check=tkin.Checkbutton(errors_frame, text ="Vaccum Guide Adjustment Error") +ycdelay_check=tkin.Checkbutton(errors_frame, text ="Y/C Delay Error") +ven_check=tkin.Checkbutton(errors_frame,text="Venetian-Blind Effect PAL") +vhold_check=tkin.Checkbutton(errors_frame,text="Vertical Hold") +vPictJump_check=tkin.Checkbutton(errors_frame,text="Vertical Picture Jumping") +vsync_check=tkin.Checkbutton(errors_frame,text="Vertical Synchronization Error") +visibleFrameLine_check=tkin.Checkbutton(errors_frame, text ="Visble Frame Line") + +audiobuzz_check.grid(row=1,column=0) +audiocrackle_check.grid(row=2,column=0) +audiodistortion_check.grid(row=3,column=0) +audiodrop_check.grid(row=4,column=0) +audiomuffled_check.grid(row=5,column=0) +audionoise_check.grid(row=6,column=0) +bearding_check.grid(row=7,column=0) +carrier_leak_check.grid(row=8,column=0) +color_smearing_check.grid(row=9,column=0) +creased_check.grid(row=10,column=0) +chromnoise_check.grid(row=11,column=0) +crosstalk_check.grid(row=12,column=0) +crushed_check.grid(row=1,column=1) +dihedral_check.grid(row=2,column=1) +dotcrawl_check.grid(row=3,column=1) +dropouts_check.grid(row=4,column=1) +egli_check.grid(row=5,column=1) +fluorescent_check.grid(row=6,column=1) +ghost_check.grid(row=7,column=1) +headclog_check.grid(row=8,column=1) +horiHold_check.grid(row=9,column=1) +hueError_check.grid(row=10,column=1) +hum_check.grid(row=11,column=1) +incomp_TVStand.grid(row=12,column=1) +incomp_inFam.grid(row=1,column=2) +expanshrink_check.grid(row=2,column=2) +longPlay_check.grid(row=3,column=2) +losscolor_check.grid(row=4,column=2) +moire_check.grid(row=5,column=2) +scratchwear_check.grid(row=6,column=2) +shiftheadswitch_check.grid(row=7,column=2) +skew_check.grid(row=8,column=2) +stick_check.grid(row=9,column=2) +stiction_check.grid(row=10,column=2) +scpe_check.grid(row=11,column=2) +deform_check.grid(row=12,column=2) +misalign_check.grid(row=1,column=3) +quilting_check.grid(row=2,column=3) +ringing_check.grid(row=3,column=3) +tBCError_check.grid(row=4,column=3) +track_check.grid(row=5,column=3) +vgae_check.grid(row=6,column=3) +ycdelay_check.grid(row=7,column=3) +ven_check.grid(row=8,column=3) +vhold_check.grid(row=9,column=3) +vPictJump_check.grid(row=10,column=3) +vsync_check.grid(row=11,column=3) +visibleFrameLine_check.grid(row=12,column=3) + +for widget in errors_frame.winfo_children(): + widget.grid_configure(padx=10, pady=5, sticky="NW") + + +# Setting up freeform entry + +notes_entry_frame=tkin.LabelFrame(frame, text=" Additional Notes", padx=20, pady=20) +notes_entry_frame.pack(fill=tkin.BOTH,expand=True) +notes_entry=tkin.scrolledtext.ScrolledText(notes_entry_frame) +notes_entry.pack(fill=tkin.BOTH,expand=True) + + +submit_button=tkin.Button(frame,text="Submit", padx=20,pady=20) +submit_button.pack(fill='x') + + +window.mainloop() \ No newline at end of file From 33e1a3f8730bb277bb3520a41c918b998a94a218 Mon Sep 17 00:00:00 2001 From: SophiaFrancis1 <112432333+SophiaFrancis1@users.noreply.github.com> Date: Mon, 4 Nov 2024 09:33:02 -0600 Subject: [PATCH 2/7] EntryCompleted --- nulrdcscripts/tools/errortool/main.py | 206 +++++++++++++++++++------- 1 file changed, 155 insertions(+), 51 deletions(-) diff --git a/nulrdcscripts/tools/errortool/main.py b/nulrdcscripts/tools/errortool/main.py index c824cf3..f2dfcb6 100644 --- a/nulrdcscripts/tools/errortool/main.py +++ b/nulrdcscripts/tools/errortool/main.py @@ -9,6 +9,62 @@ frame = tkin.Frame(window) frame.pack() + +def enter_data(): + video_id=video_id_entry.get() + video_title=video_title_entry.get() + project_id=project_id_entry.get() + runtime=run_time_entry.get() + audiobuzz=audiobuzz_check_var.get() + audiocrackle=audiocrackle_check_var.get() + audiodistortion=audiodistortion_check_var.get() + audiodrop=audiodrop_check_var.get() + audiomuffled=audiomuffled_check_var.get() + audionoise=audionoise_check_var.get() + bearding=bearding_check_var.get() + carrierleak=carrier_leak_check_var.get() + colorsmear=color_smearing_check_var.get() + creased=creased_check_var.get() + chromnoise=chromnoise_check_var.get() + crosstalk=crosstalk_check_var.get() + crushed=crushed_check_var.get() + dihedralmal=dihedral_check_var.get() + dotcrawl=dotcrawl_check_var.get() + dropouts=dropouts_check_var.get() + egli=egli_check_var.get() + fluorescentstrobe=fluorescent_check_var.get() + ghosting=ghost_check_var.get() + headclogging=headclog_check_var.get() + hHold=horiHold_check_var.get() + hueError=hueError_check_var.get() + humTrouble=hum_check_var.get() + incTVStand=incomp_TVStand_var.get() + incFam=incomp_inFam_var.get() + expanshrink=expanshrink_check_var.get() + longPlay=longPlay_check_var.get() + lossColor=losscolor_check_var.get() + moire=moire_check_var.get() + scratchwear=scratchwear_check_var.get() + shiftedheadswitch=shiftheadswitch_check_var.get() + skew=skew_check_var.get() + stickyshed=stick_check_var.get() + stiction=stiction_check_var.get() + scpe=scpe_check_var.get() + tapeDeform=deform_check_var.get() + tapeMisalign=misalign_check_var.get() + quilting=quilting_check_var.get() + ringing=ringing_check_var.get() + tBCError=tBCError_check_var.get() + tracking=track_check_var.get() + vgae=vgae_check_var.get() + ycdelay=ycdelay_check_var.get() + ven=ven_check_var.get() + vhold=vhold_check_var.get() + vPictJump=vPictJump_check_var.get() + vsync=vsync_check_var.get() + visibleFrame=visibleFrameLine_check_var.get() + additionalNotes=notes_entry.get() + #Saving video Information # Setting up labels @@ -40,54 +96,102 @@ # Saving video errors errors_frame=tkin.LabelFrame(frame,text="Errors Present", padx=20, pady=20) errors_frame.pack(fill=tkin.BOTH,expand=True) -audiobuzz_check=tkin.Checkbutton(errors_frame,text="Audio Buzz/Hum") -audiocrackle_check=tkin.Checkbutton(errors_frame,text="Audio Crackle") -audiodistortion_check=tkin.Checkbutton(errors_frame,text="Audio Distortion") -audiodrop_check=tkin.Checkbutton(errors_frame,text="Audio Dropout") -audiomuffled_check=tkin.Checkbutton(errors_frame,text="Audio Muffled") -audionoise_check=tkin.Checkbutton(errors_frame,text="Audio Noise") -bearding_check=tkin.Checkbutton(errors_frame, text ="Bearding") -carrier_leak_check=tkin.Checkbutton(errors_frame, text ="Carrier Leak") -color_smearing_check=tkin.Checkbutton(errors_frame, text="Color Smearing") -creased_check=tkin.Checkbutton(errors_frame,text="Creased or Crumpled Tape") -chromnoise_check=tkin.Checkbutton(errors_frame,text="Chrominance Noise") -crosstalk_check=tkin.Checkbutton(errors_frame,text="Crosstalk") -crushed_check=tkin.Checkbutton(errors_frame, text ="Chrushed Setup") -dihedral_check=tkin.Checkbutton(errors_frame,text="Dihedral Maladjustment") -dotcrawl_check=tkin.Checkbutton(errors_frame, text ="Dot Crawl") -dropouts_check=tkin.Checkbutton(errors_frame,text="Dropouts and Dropout Compensation") -egli_check=tkin.Checkbutton(errors_frame, text ="Electrical Ground Loop Interference") -fluorescent_check=tkin.Checkbutton(errors_frame, text ="Fluorescent Strobing") -ghost_check=tkin.Checkbutton(errors_frame, text ="Ghosting") -headclog_check=tkin.Checkbutton(errors_frame,text="Headclogging") -horiHold_check=tkin.Checkbutton(errors_frame,text="Horizontal Hold") -hueError_check=tkin.Checkbutton(errors_frame, text="Hue Error NTSC") -hum_check=tkin.Checkbutton(errors_frame,text="Hum Trouble") -incomp_TVStand=tkin.Checkbutton(errors_frame,text="Incompatibility TV Standards") -incomp_inFam=tkin.Checkbutton(errors_frame,text="Incompatibility in family of formats") -expanshrink_check=tkin.Checkbutton(errors_frame,text="Tape Expansion or Shrinkage") -longPlay_check=tkin.Checkbutton(errors_frame,text="Long Play") -losscolor_check=tkin.Checkbutton(errors_frame,text="Loss of Color Lock") -moire_check=tkin.Checkbutton(errors_frame,text="Moire Effect") -scratchwear_check=tkin.Checkbutton(errors_frame,text="Scratches and Tape Wear") -shiftheadswitch_check=tkin.Checkbutton(errors_frame,text="Shifted Head Switching Point") -skew_check=tkin.Checkbutton(errors_frame,text="Skew Error") -stick_check=tkin.Checkbutton(errors_frame,text="Sticky Tape Syndrome") -stiction_check=tkin.Checkbutton(errors_frame, text ="Stiction") -scpe_check=tkin.Checkbutton(errors_frame, text ="Subcarrier Phase Error") -deform_check=tkin.Checkbutton(errors_frame, text="Tape Deformation") -misalign_check=tkin.Checkbutton(errors_frame,text="Tape Misalignment") -quilting_check=tkin.Checkbutton(errors_frame, text ="Quilting") -ringing_check=tkin.Checkbutton(errors_frame, text ="Ringing") -tBCError_check=tkin.Checkbutton(errors_frame, text="TBC Error") -track_check=tkin.Checkbutton(errors_frame,text="Tracking Error") -vgae_check=tkin.Checkbutton(errors_frame, text ="Vaccum Guide Adjustment Error") -ycdelay_check=tkin.Checkbutton(errors_frame, text ="Y/C Delay Error") -ven_check=tkin.Checkbutton(errors_frame,text="Venetian-Blind Effect PAL") -vhold_check=tkin.Checkbutton(errors_frame,text="Vertical Hold") -vPictJump_check=tkin.Checkbutton(errors_frame,text="Vertical Picture Jumping") -vsync_check=tkin.Checkbutton(errors_frame,text="Vertical Synchronization Error") -visibleFrameLine_check=tkin.Checkbutton(errors_frame, text ="Visble Frame Line") +audiobuzz_check_var=tkin.StringVar(value="Absent") +audiobuzz_check=tkin.Checkbutton(errors_frame,text="Audio Buzz/Hum", variable=audiobuzz_check_var, onvalue="Present",offvalue="Absent") +audiocrackle_check_var=tkin.StringVar(value="Absent") +audiocrackle_check=tkin.Checkbutton(errors_frame,text="Audio Crackle",variable=audiocrackle_check_var, onvalue="Present",offvalue="Absent") +audiodistortion_check_var=tkin.StringVar(value="Absent") +audiodistortion_check=tkin.Checkbutton(errors_frame,text="Audio Distortion",variable=audiodistortion_check_var, onvalue="Present",offvalue="Absent") +audiodrop_check_var=tkin.StringVar(value="Absent") +audiodrop_check=tkin.Checkbutton(errors_frame,text="Audio Dropout", variable=audiodrop_check_var, onvalue="Present",offvalue="Absent") +audiomuffled_check_var=tkin.StringVar(value="Absent") +audiomuffled_check=tkin.Checkbutton(errors_frame,text="Audio Muffled",variable=audiomuffled_check_var,onvalue="Present",offvalue="Absent") +audionoise_check_var=tkin.StringVar(value="Absent") +audionoise_check=tkin.Checkbutton(errors_frame,text="Audio Noise", variable=audionoise_check_var,onvalue="Present",offvalue="Absent") +bearding_check_var=tkin.StringVar(value="Absent") +bearding_check=tkin.Checkbutton(errors_frame, text ="Bearding",variable=bearding_check_var,onvalue="Present",offvalue="Absent") +carrier_leak_check_var=tkin.StringVar(value="Absent") +carrier_leak_check=tkin.Checkbutton(errors_frame, text ="Carrier Leak",variable=carrier_leak_check_var,onvalue="Present",offvalue="Absent") +color_smearing_check_var=tkin.StringVar(value="Absent") +color_smearing_check=tkin.Checkbutton(errors_frame, text="Color Smearing",variable=color_smearing_check_var,onvalue="Present",offvalue="Absent") +creased_check_var=tkin.StringVar(value="Absent") +creased_check=tkin.Checkbutton(errors_frame,text="Creased or Crumpled Tape",variable=creased_check_var,onvalue="Present",offvalue="Absent") +chromnoise_check_var=tkin.StringVar(value="Absent") +chromnoise_check=tkin.Checkbutton(errors_frame,text="Chrominance Noise",variable=chromnoise_check_var,onvalue="Present",offvalue="Absent") +crosstalk_check_var=tkin.StringVar(value="Absent") +crosstalk_check=tkin.Checkbutton(errors_frame,text="Crosstalk",variable=crosstalk_check_var,onvalue="Present",offvalue="Absent") +crushed_check_var=tkin.StringVar(value="Absent") +crushed_check=tkin.Checkbutton(errors_frame, text ="Chrushed Setup",variable=crushed_check_var,onvalue="Present",offvalue="Absent") +dihedral_check_var=tkin.StringVar(value="Absent") +dihedral_check=tkin.Checkbutton(errors_frame,text="Dihedral Maladjustment",variable=dihedral_check_var,onvalue="Present",offvalue="Absent") +dotcrawl_check_var=tkin.StringVar(value="Absent") +dotcrawl_check=tkin.Checkbutton(errors_frame, text ="Dot Crawl",variable=dotcrawl_check_var,onvalue="Present",offvalue="Absent") +dropouts_check_var=tkin.StringVar(value="Absent") +dropouts_check=tkin.Checkbutton(errors_frame,text="Dropouts and Dropout Compensation",variable=dropouts_check_var,onvalue="Present",offvalue="Absent") +egli_check_var=tkin.StringVar(value="Absent") +egli_check=tkin.Checkbutton(errors_frame, text ="Electrical Ground Loop Interference", variable=egli_check_var,onvalue="Present",offvalue="Absent") +fluorescent_check_var=tkin.StringVar(value="Absent") +fluorescent_check=tkin.Checkbutton(errors_frame, text ="Fluorescent Strobing",variable=fluorescent_check_var,onvalue="Present",offvalue="Absent") +ghost_check_var=tkin.StringVar(value="Absent") +ghost_check=tkin.Checkbutton(errors_frame, text ="Ghosting",variable=ghost_check_var,onvalue="Present",offvalue="Absent") +headclog_check_var=tkin.StringVar(value="Absent") +headclog_check=tkin.Checkbutton(errors_frame,text="Headclogging", variable=headclog_check_var,onvalue="Present",offvalue="Absent") +horiHold_check_var=tkin.StringVar(value="Absent") +horiHold_check=tkin.Checkbutton(errors_frame,text="Horizontal Hold",variable=horiHold_check_var,onvalue="Present",offvalue="Absent") +hueError_check_var=tkin.StringVar(value="Absent") +hueError_check=tkin.Checkbutton(errors_frame, text="Hue Error NTSC",variable=hueError_check_var,onvalue="Present",offvalue="Absent") +hum_check_var=tkin.StringVar(value="Absent") +hum_check=tkin.Checkbutton(errors_frame,text="Hum Trouble",variable=hum_check_var,onvalue="Present",offvalue="Absent") +incomp_TVStand_var=tkin.StringVar(value="Absent") +incomp_TVStand=tkin.Checkbutton(errors_frame,text="Incompatibility TV Standards",variable=incomp_TVStand_var,onvalue="Present",offvalue="Absent") +incomp_inFam_var=tkin.StringVar(value="Absent") +incomp_inFam=tkin.Checkbutton(errors_frame,text="Incompatibility in family of formats",variable=incomp_inFam_var,onvalue="Present",offvalue="Absent") +expanshrink_check_var=tkin.StringVar(value="Absent") +expanshrink_check=tkin.Checkbutton(errors_frame,text="Tape Expansion or Shrinkage",variable=expanshrink_check_var,onvalue="Present",offvalue="Absent") +longPlay_check_var=tkin.StringVar(value="Absent") +longPlay_check=tkin.Checkbutton(errors_frame,text="Long Play",variable=longPlay_check_var,onvalue="Present",offvalue="Absent") +losscolor_check_var=tkin.StringVar(value="Absent") +losscolor_check=tkin.Checkbutton(errors_frame,text="Loss of Color Lock",variable=losscolor_check_var,onvalue="Present",offvalue="Absent") +moire_check_var=tkin.StringVar(value="Absent") +moire_check=tkin.Checkbutton(errors_frame,text="Moire Effect",variable=moire_check_var,onvalue="Present",offvalue="Absent") +scratchwear_check_var=tkin.StringVar(value="Absent") +scratchwear_check=tkin.Checkbutton(errors_frame,text="Scratches and Tape Wear",variable=scratchwear_check_var,onvalue="Present",offvalue="Absent") +shiftheadswitch_check_var=tkin.StringVar(value="Absent") +shiftheadswitch_check=tkin.Checkbutton(errors_frame,text="Shifted Head Switching Point",variable=shiftheadswitch_check_var,onvalue="Present",offvalue="Absent") +skew_check_var=tkin.StringVar(value="Absent") +skew_check=tkin.Checkbutton(errors_frame,text="Skew Error",variable=skew_check_var,onvalue="Present",offvalue="Absent") +stick_check_var=tkin.StringVar(value="Absent") +stick_check=tkin.Checkbutton(errors_frame,text="Sticky Tape Syndrome",variable=stick_check_var,onvalue="Present",offvalue="Absent") +stiction_check_var=tkin.StringVar(value="Absent") +stiction_check=tkin.Checkbutton(errors_frame, text ="Stiction",variable=stiction_check_var,onvalue="Present",offvalue="Absent") +scpe_check_var=tkin.StringVar(value="Absent") +scpe_check=tkin.Checkbutton(errors_frame, text ="Subcarrier Phase Error",variable=scpe_check_var,onvalue="Present",offvalue="Absent") +deform_check_var=tkin.StringVar(value="Absent") +deform_check=tkin.Checkbutton(errors_frame, text="Tape Deformation",variable=deform_check_var,onvalue="Present",offvalue="Absent") +misalign_check_var=tkin.StringVar(value="Absent") +misalign_check=tkin.Checkbutton(errors_frame,text="Tape Misalignment",variable=misalign_check_var,onvalue="Present",offvalue="Absent") +quilting_check_var=tkin.StringVar(value="Absent") +quilting_check=tkin.Checkbutton(errors_frame, text ="Quilting",variable=quilting_check_var,onvalue="Present",offvalue="Absent") +ringing_check_var=tkin.StringVar(value="Absent") +ringing_check=tkin.Checkbutton(errors_frame, text ="Ringing",variable=ringing_check_var,onvalue="Present",offvalue="Absent") +tBCError_check_var=tkin.StringVar(value="Absent") +tBCError_check=tkin.Checkbutton(errors_frame, text="TBC Error",variable=tBCError_check_var,onvalue="Present",offvalue="Absent") +track_check_var=tkin.StringVar(value="Absent") +track_check=tkin.Checkbutton(errors_frame,text="Tracking Error",variable=track_check_var,onvalue="Present",offvalue="Absent") +vgae_check_var=tkin.StringVar(value="Absent") +vgae_check=tkin.Checkbutton(errors_frame, text ="Vaccum Guide Adjustment Error",variable=vgae_check_var,onvalue="Present",offvalue="Absent") +ycdelay_check_var=tkin.StringVar(value="Absent") +ycdelay_check=tkin.Checkbutton(errors_frame, text ="Y/C Delay Error",variable=ycdelay_check_var,onvalue="Present",offvalue="Absent") +ven_check_var=tkin.StringVar(value="Absent") +ven_check=tkin.Checkbutton(errors_frame,text="Venetian-Blind Effect PAL",variable=ven_check_var,onvalue="Present",offvalue="Absent") +vhold_check_var=tkin.StringVar(value="Absent") +vhold_check=tkin.Checkbutton(errors_frame,text="Vertical Hold",variable=vhold_check_var,onvalue="Present",offvalue="Absent") +vPictJump_check_var=tkin.StringVar(value="Absent") +vPictJump_check=tkin.Checkbutton(errors_frame,text="Vertical Picture Jumping",variable=vPictJump_check_var,onvalue="Present",offvalue="Absent") +vsync_check_var=tkin.StringVar(value="Absent") +vsync_check=tkin.Checkbutton(errors_frame,text="Vertical Synchronization Error",variable=vsync_check_var,onvalue="Present",offvalue="Absent") +visibleFrameLine_check_var=tkin.StringVar(value="Absent") +visibleFrameLine_check=tkin.Checkbutton(errors_frame, text ="Visible Frame Line",variable=visibleFrameLine_check_var,onvalue="Present",offvalue="Absent") audiobuzz_check.grid(row=1,column=0) audiocrackle_check.grid(row=2,column=0) @@ -149,9 +253,9 @@ notes_entry=tkin.scrolledtext.ScrolledText(notes_entry_frame) notes_entry.pack(fill=tkin.BOTH,expand=True) - -submit_button=tkin.Button(frame,text="Submit", padx=20,pady=20) -submit_button.pack(fill='x') +#Button setup +submit_button=tkin.Button(frame,text="Submit Error Report", padx=20,pady=20, command=enter_data) +submit_button.pack(fill='x',padx=10,pady=10) window.mainloop() \ No newline at end of file From c6250bc3b810be86430d6cbd82686aa8ecdcf936 Mon Sep 17 00:00:00 2001 From: SophiaFrancis1 <112432333+SophiaFrancis1@users.noreply.github.com> Date: Mon, 4 Nov 2024 09:45:55 -0600 Subject: [PATCH 3/7] Changed RunTime to SpinBox --- nulrdcscripts/tools/errortool/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nulrdcscripts/tools/errortool/main.py b/nulrdcscripts/tools/errortool/main.py index f2dfcb6..b47d40b 100644 --- a/nulrdcscripts/tools/errortool/main.py +++ b/nulrdcscripts/tools/errortool/main.py @@ -84,7 +84,7 @@ def enter_data(): video_title_entry=tkin.Entry(video_info_frame) video_id_entry=tkin.Entry(video_info_frame) project_id_entry=tkin.Entry(video_info_frame) -run_time_entry=tkin.Entry(video_info_frame) +run_time_entry=tkin.Spinbox(video_info_frame,from_="0", to="500") video_title_entry.grid(row=1,column=0) video_id_entry.grid(row=1,column=1) project_id_entry.grid(row=1,column=2) From d7b6ec154bee6705ef1c2e1ebd0cda12c7aeb972 Mon Sep 17 00:00:00 2001 From: SophiaFrancis1 <112432333+SophiaFrancis1@users.noreply.github.com> Date: Mon, 4 Nov 2024 16:13:59 -0600 Subject: [PATCH 4/7] Functional --- nulrdcscripts/tools/errortool/main.py | 223 +++++++++++++----------- nulrdcscripts/tools/errortool/params.py | 14 ++ poetry.lock | 202 ++++++++++++++++++++- pyproject.toml | 1 + 4 files changed, 337 insertions(+), 103 deletions(-) create mode 100644 nulrdcscripts/tools/errortool/params.py diff --git a/nulrdcscripts/tools/errortool/main.py b/nulrdcscripts/tools/errortool/main.py index b47d40b..cd231e1 100644 --- a/nulrdcscripts/tools/errortool/main.py +++ b/nulrdcscripts/tools/errortool/main.py @@ -1,7 +1,9 @@ # Many thanks to Code First with Hala on Youtube for her video Tkinter Data Entry Form tutorial for beginners - Python GUI project [responsive layout] - +import os +import pandas as pd import tkinter as tkin -from tkinter import scrolledtext +from tkinter import scrolledtext,messagebox +from nulrdcscripts.tools.errortool.params import args window = tkin.Tk() window.title("Error Entry Form") @@ -11,60 +13,81 @@ def enter_data(): + video_id=video_id_entry.get() video_title=video_title_entry.get() project_id=project_id_entry.get() - runtime=run_time_entry.get() - audiobuzz=audiobuzz_check_var.get() - audiocrackle=audiocrackle_check_var.get() - audiodistortion=audiodistortion_check_var.get() - audiodrop=audiodrop_check_var.get() - audiomuffled=audiomuffled_check_var.get() - audionoise=audionoise_check_var.get() - bearding=bearding_check_var.get() - carrierleak=carrier_leak_check_var.get() - colorsmear=color_smearing_check_var.get() - creased=creased_check_var.get() - chromnoise=chromnoise_check_var.get() - crosstalk=crosstalk_check_var.get() - crushed=crushed_check_var.get() - dihedralmal=dihedral_check_var.get() - dotcrawl=dotcrawl_check_var.get() - dropouts=dropouts_check_var.get() - egli=egli_check_var.get() - fluorescentstrobe=fluorescent_check_var.get() - ghosting=ghost_check_var.get() - headclogging=headclog_check_var.get() - hHold=horiHold_check_var.get() - hueError=hueError_check_var.get() - humTrouble=hum_check_var.get() - incTVStand=incomp_TVStand_var.get() - incFam=incomp_inFam_var.get() - expanshrink=expanshrink_check_var.get() - longPlay=longPlay_check_var.get() - lossColor=losscolor_check_var.get() - moire=moire_check_var.get() - scratchwear=scratchwear_check_var.get() - shiftedheadswitch=shiftheadswitch_check_var.get() - skew=skew_check_var.get() - stickyshed=stick_check_var.get() - stiction=stiction_check_var.get() - scpe=scpe_check_var.get() - tapeDeform=deform_check_var.get() - tapeMisalign=misalign_check_var.get() - quilting=quilting_check_var.get() - ringing=ringing_check_var.get() - tBCError=tBCError_check_var.get() - tracking=track_check_var.get() - vgae=vgae_check_var.get() - ycdelay=ycdelay_check_var.get() - ven=ven_check_var.get() - vhold=vhold_check_var.get() - vPictJump=vPictJump_check_var.get() - vsync=vsync_check_var.get() - visibleFrame=visibleFrameLine_check_var.get() - additionalNotes=notes_entry.get() + if video_id and video_title and project_id: + runtime=run_time_entry.get() + audiobuzz=audiobuzz_check_var.get() + audiocrackle=audiocrackle_check_var.get() + audiodistortion=audiodistortion_check_var.get() + audiodrop=audiodrop_check_var.get() + audiomuffled=audiomuffled_check_var.get() + audionoise=audionoise_check_var.get() + bearding=bearding_check_var.get() + carrierleak=carrier_leak_check_var.get() + colorsmear=color_smearing_check_var.get() + creased=creased_check_var.get() + chromnoise=chromnoise_check_var.get() + crosstalk=crosstalk_check_var.get() + crushed=crushed_check_var.get() + dihedralmal=dihedral_check_var.get() + dotcrawl=dotcrawl_check_var.get() + dropouts=dropouts_check_var.get() + egli=egli_check_var.get() + fluorescentstrobe=fluorescent_check_var.get() + ghosting=ghost_check_var.get() + headclogging=headclog_check_var.get() + hHold=horiHold_check_var.get() + hueError=hueError_check_var.get() + humTrouble=hum_check_var.get() + incTVStand=incomp_TVStand_var.get() + incFam=incomp_inFam_var.get() + expanshrink=expanshrink_check_var.get() + longPlay=longPlay_check_var.get() + lossColor=losscolor_check_var.get() + moire=moire_check_var.get() + scratchwear=scratchwear_check_var.get() + shiftedheadswitch=shiftheadswitch_check_var.get() + skew=skew_check_var.get() + stickyshed=stick_check_var.get() + stiction=stiction_check_var.get() + scpe=scpe_check_var.get() + tapeDeform=deform_check_var.get() + tapeMisalign=misalign_check_var.get() + quilting=quilting_check_var.get() + ringing=ringing_check_var.get() + tBCError=tBCError_check_var.get() + tracking=track_check_var.get() + vgae=vgae_check_var.get() + ycdelay=ycdelay_check_var.get() + ven=ven_check_var.get() + vhold=vhold_check_var.get() + vPictJump=vPictJump_check_var.get() + vsync=vsync_check_var.get() + visibleFrame=visibleFrameLine_check_var.get() + additionalNotes=notes_entry.get("1.0",tkin.END) + + video_errors=[audiobuzz,audiocrackle,audiodrop,audiodistortion,audiomuffled,audionoise,bearding,carrierleak,colorsmear,creased,chromnoise,crosstalk,crushed,dihedralmal,dotcrawl,dropouts,egli,fluorescentstrobe,ghosting,headclogging,hHold,hueError,humTrouble,incTVStand,incFam,expanshrink,longPlay,lossColor,moire,scratchwear,shiftedheadswitch,skew,stickyshed,stiction,scpe,tapeDeform,tapeMisalign,quilting,ringing,tBCError,tracking,vgae,ycdelay,ven,vhold,vPictJump,vsync,visibleFrame,additionalNotes] + errors = "; ".join([x for x in video_errors if x != "Absent"]) + data = { + 'project_id':[project_id], + 'video_id':[video_id], + 'video_title':[video_title], + 'runtime (mins)':[runtime], + 'log':[errors] + + } + df = pd.DataFrame(data) + + file_output=os.path.abspath(args.output_path) + csv_file=os.path.abspath((file_output+"/"+project_id+".csv")) + df.to_csv(csv_file,index=False) + + else: + tkin.messagebox.showwarning(title="Error",message="You have not entered a project id, a video id, and/or a video title. Please re-enter data.") #Saving video Information # Setting up labels @@ -97,101 +120,101 @@ def enter_data(): errors_frame=tkin.LabelFrame(frame,text="Errors Present", padx=20, pady=20) errors_frame.pack(fill=tkin.BOTH,expand=True) audiobuzz_check_var=tkin.StringVar(value="Absent") -audiobuzz_check=tkin.Checkbutton(errors_frame,text="Audio Buzz/Hum", variable=audiobuzz_check_var, onvalue="Present",offvalue="Absent") +audiobuzz_check=tkin.Checkbutton(errors_frame,text="Audio Buzz/Hum", variable=audiobuzz_check_var, onvalue="Audio Buzz/Hum",offvalue="Absent") audiocrackle_check_var=tkin.StringVar(value="Absent") -audiocrackle_check=tkin.Checkbutton(errors_frame,text="Audio Crackle",variable=audiocrackle_check_var, onvalue="Present",offvalue="Absent") +audiocrackle_check=tkin.Checkbutton(errors_frame,text="Audio Crackle",variable=audiocrackle_check_var, onvalue="Audio Crackle",offvalue="Absent") audiodistortion_check_var=tkin.StringVar(value="Absent") -audiodistortion_check=tkin.Checkbutton(errors_frame,text="Audio Distortion",variable=audiodistortion_check_var, onvalue="Present",offvalue="Absent") +audiodistortion_check=tkin.Checkbutton(errors_frame,text="Audio Distortion",variable=audiodistortion_check_var, onvalue="Audio Distortion",offvalue="Absent") audiodrop_check_var=tkin.StringVar(value="Absent") -audiodrop_check=tkin.Checkbutton(errors_frame,text="Audio Dropout", variable=audiodrop_check_var, onvalue="Present",offvalue="Absent") +audiodrop_check=tkin.Checkbutton(errors_frame,text="Audio Dropout", variable=audiodrop_check_var, onvalue="Audio Dropout",offvalue="Absent") audiomuffled_check_var=tkin.StringVar(value="Absent") -audiomuffled_check=tkin.Checkbutton(errors_frame,text="Audio Muffled",variable=audiomuffled_check_var,onvalue="Present",offvalue="Absent") +audiomuffled_check=tkin.Checkbutton(errors_frame,text="Audio Muffled",variable=audiomuffled_check_var,onvalue="Audio Muffled",offvalue="Absent") audionoise_check_var=tkin.StringVar(value="Absent") -audionoise_check=tkin.Checkbutton(errors_frame,text="Audio Noise", variable=audionoise_check_var,onvalue="Present",offvalue="Absent") +audionoise_check=tkin.Checkbutton(errors_frame,text="Audio Noise", variable=audionoise_check_var,onvalue="Audio Noise",offvalue="Absent") bearding_check_var=tkin.StringVar(value="Absent") -bearding_check=tkin.Checkbutton(errors_frame, text ="Bearding",variable=bearding_check_var,onvalue="Present",offvalue="Absent") +bearding_check=tkin.Checkbutton(errors_frame, text ="Bearding",variable=bearding_check_var,onvalue="Bearding",offvalue="Absent") carrier_leak_check_var=tkin.StringVar(value="Absent") -carrier_leak_check=tkin.Checkbutton(errors_frame, text ="Carrier Leak",variable=carrier_leak_check_var,onvalue="Present",offvalue="Absent") +carrier_leak_check=tkin.Checkbutton(errors_frame, text ="Carrier Leak",variable=carrier_leak_check_var,onvalue="Carrier Leak",offvalue="Absent") color_smearing_check_var=tkin.StringVar(value="Absent") -color_smearing_check=tkin.Checkbutton(errors_frame, text="Color Smearing",variable=color_smearing_check_var,onvalue="Present",offvalue="Absent") +color_smearing_check=tkin.Checkbutton(errors_frame, text="Color Smearing",variable=color_smearing_check_var,onvalue="Color Smearing",offvalue="Absent") creased_check_var=tkin.StringVar(value="Absent") -creased_check=tkin.Checkbutton(errors_frame,text="Creased or Crumpled Tape",variable=creased_check_var,onvalue="Present",offvalue="Absent") +creased_check=tkin.Checkbutton(errors_frame,text="Creased or Crumpled Tape",variable=creased_check_var,onvalue="Creased or Crumpled Tape",offvalue="Absent") chromnoise_check_var=tkin.StringVar(value="Absent") -chromnoise_check=tkin.Checkbutton(errors_frame,text="Chrominance Noise",variable=chromnoise_check_var,onvalue="Present",offvalue="Absent") +chromnoise_check=tkin.Checkbutton(errors_frame,text="Chrominance Noise",variable=chromnoise_check_var,onvalue="Chrominance Noise",offvalue="Absent") crosstalk_check_var=tkin.StringVar(value="Absent") -crosstalk_check=tkin.Checkbutton(errors_frame,text="Crosstalk",variable=crosstalk_check_var,onvalue="Present",offvalue="Absent") +crosstalk_check=tkin.Checkbutton(errors_frame,text="Crosstalk",variable=crosstalk_check_var,onvalue="Crosstalk",offvalue="Absent") crushed_check_var=tkin.StringVar(value="Absent") -crushed_check=tkin.Checkbutton(errors_frame, text ="Chrushed Setup",variable=crushed_check_var,onvalue="Present",offvalue="Absent") +crushed_check=tkin.Checkbutton(errors_frame, text ="Chrushed Setup",variable=crushed_check_var,onvalue="Crushed Setup",offvalue="Absent") dihedral_check_var=tkin.StringVar(value="Absent") -dihedral_check=tkin.Checkbutton(errors_frame,text="Dihedral Maladjustment",variable=dihedral_check_var,onvalue="Present",offvalue="Absent") +dihedral_check=tkin.Checkbutton(errors_frame,text="Dihedral Maladjustment",variable=dihedral_check_var,onvalue="Dihedral Maladjustment",offvalue="Absent") dotcrawl_check_var=tkin.StringVar(value="Absent") -dotcrawl_check=tkin.Checkbutton(errors_frame, text ="Dot Crawl",variable=dotcrawl_check_var,onvalue="Present",offvalue="Absent") +dotcrawl_check=tkin.Checkbutton(errors_frame, text ="Dot Crawl",variable=dotcrawl_check_var,onvalue="Dot Crawl",offvalue="Absent") dropouts_check_var=tkin.StringVar(value="Absent") -dropouts_check=tkin.Checkbutton(errors_frame,text="Dropouts and Dropout Compensation",variable=dropouts_check_var,onvalue="Present",offvalue="Absent") +dropouts_check=tkin.Checkbutton(errors_frame,text="Dropouts and Dropout Compensation",variable=dropouts_check_var,onvalue="Dropouts & Dropout Compensation",offvalue="Absent") egli_check_var=tkin.StringVar(value="Absent") -egli_check=tkin.Checkbutton(errors_frame, text ="Electrical Ground Loop Interference", variable=egli_check_var,onvalue="Present",offvalue="Absent") +egli_check=tkin.Checkbutton(errors_frame, text ="Electrical Ground Loop Interference", variable=egli_check_var,onvalue="Electrical Ground Loop Interference",offvalue="Absent") fluorescent_check_var=tkin.StringVar(value="Absent") -fluorescent_check=tkin.Checkbutton(errors_frame, text ="Fluorescent Strobing",variable=fluorescent_check_var,onvalue="Present",offvalue="Absent") +fluorescent_check=tkin.Checkbutton(errors_frame, text ="Fluorescent Strobing",variable=fluorescent_check_var,onvalue="Fluorescent Strobing",offvalue="Absent") ghost_check_var=tkin.StringVar(value="Absent") -ghost_check=tkin.Checkbutton(errors_frame, text ="Ghosting",variable=ghost_check_var,onvalue="Present",offvalue="Absent") +ghost_check=tkin.Checkbutton(errors_frame, text ="Ghosting",variable=ghost_check_var,onvalue="Ghosting",offvalue="Absent") headclog_check_var=tkin.StringVar(value="Absent") -headclog_check=tkin.Checkbutton(errors_frame,text="Headclogging", variable=headclog_check_var,onvalue="Present",offvalue="Absent") +headclog_check=tkin.Checkbutton(errors_frame,text="Headclogging", variable=headclog_check_var,onvalue="Headclogging",offvalue="Absent") horiHold_check_var=tkin.StringVar(value="Absent") -horiHold_check=tkin.Checkbutton(errors_frame,text="Horizontal Hold",variable=horiHold_check_var,onvalue="Present",offvalue="Absent") +horiHold_check=tkin.Checkbutton(errors_frame,text="Horizontal Hold",variable=horiHold_check_var,onvalue="Horizontal Hold",offvalue="Absent") hueError_check_var=tkin.StringVar(value="Absent") -hueError_check=tkin.Checkbutton(errors_frame, text="Hue Error NTSC",variable=hueError_check_var,onvalue="Present",offvalue="Absent") +hueError_check=tkin.Checkbutton(errors_frame, text="Hue Error NTSC",variable=hueError_check_var,onvalue="Hue Error",offvalue="Absent") hum_check_var=tkin.StringVar(value="Absent") -hum_check=tkin.Checkbutton(errors_frame,text="Hum Trouble",variable=hum_check_var,onvalue="Present",offvalue="Absent") +hum_check=tkin.Checkbutton(errors_frame,text="Hum Trouble",variable=hum_check_var,onvalue="Hum Trouble",offvalue="Absent") incomp_TVStand_var=tkin.StringVar(value="Absent") -incomp_TVStand=tkin.Checkbutton(errors_frame,text="Incompatibility TV Standards",variable=incomp_TVStand_var,onvalue="Present",offvalue="Absent") +incomp_TVStand=tkin.Checkbutton(errors_frame,text="Incompatibility TV Standards",variable=incomp_TVStand_var,onvalue="Incompatibility in TV Standards",offvalue="Absent") incomp_inFam_var=tkin.StringVar(value="Absent") -incomp_inFam=tkin.Checkbutton(errors_frame,text="Incompatibility in family of formats",variable=incomp_inFam_var,onvalue="Present",offvalue="Absent") +incomp_inFam=tkin.Checkbutton(errors_frame,text="Incompatibility in family of formats",variable=incomp_inFam_var,onvalue="Incompatibility in Family of Formats",offvalue="Absent") expanshrink_check_var=tkin.StringVar(value="Absent") -expanshrink_check=tkin.Checkbutton(errors_frame,text="Tape Expansion or Shrinkage",variable=expanshrink_check_var,onvalue="Present",offvalue="Absent") +expanshrink_check=tkin.Checkbutton(errors_frame,text="Tape Expansion or Shrinkage",variable=expanshrink_check_var,onvalue="Tape Expansion or Shrinkage",offvalue="Absent") longPlay_check_var=tkin.StringVar(value="Absent") -longPlay_check=tkin.Checkbutton(errors_frame,text="Long Play",variable=longPlay_check_var,onvalue="Present",offvalue="Absent") +longPlay_check=tkin.Checkbutton(errors_frame,text="Long Play",variable=longPlay_check_var,onvalue="Long Play",offvalue="Absent") losscolor_check_var=tkin.StringVar(value="Absent") -losscolor_check=tkin.Checkbutton(errors_frame,text="Loss of Color Lock",variable=losscolor_check_var,onvalue="Present",offvalue="Absent") +losscolor_check=tkin.Checkbutton(errors_frame,text="Loss of Color Lock",variable=losscolor_check_var,onvalue="Loss of Color Lock",offvalue="Absent") moire_check_var=tkin.StringVar(value="Absent") -moire_check=tkin.Checkbutton(errors_frame,text="Moire Effect",variable=moire_check_var,onvalue="Present",offvalue="Absent") +moire_check=tkin.Checkbutton(errors_frame,text="Moire Effect",variable=moire_check_var,onvalue="Moire Effect",offvalue="Absent") scratchwear_check_var=tkin.StringVar(value="Absent") -scratchwear_check=tkin.Checkbutton(errors_frame,text="Scratches and Tape Wear",variable=scratchwear_check_var,onvalue="Present",offvalue="Absent") +scratchwear_check=tkin.Checkbutton(errors_frame,text="Scratches and Tape Wear",variable=scratchwear_check_var,onvalue="Scratches and Tape Wear",offvalue="Absent") shiftheadswitch_check_var=tkin.StringVar(value="Absent") -shiftheadswitch_check=tkin.Checkbutton(errors_frame,text="Shifted Head Switching Point",variable=shiftheadswitch_check_var,onvalue="Present",offvalue="Absent") +shiftheadswitch_check=tkin.Checkbutton(errors_frame,text="Shifted Head Switching Point",variable=shiftheadswitch_check_var,onvalue="Headswitching Noise",offvalue="Absent") skew_check_var=tkin.StringVar(value="Absent") -skew_check=tkin.Checkbutton(errors_frame,text="Skew Error",variable=skew_check_var,onvalue="Present",offvalue="Absent") +skew_check=tkin.Checkbutton(errors_frame,text="Skew Error",variable=skew_check_var,onvalue="Skew Error",offvalue="Absent") stick_check_var=tkin.StringVar(value="Absent") -stick_check=tkin.Checkbutton(errors_frame,text="Sticky Tape Syndrome",variable=stick_check_var,onvalue="Present",offvalue="Absent") +stick_check=tkin.Checkbutton(errors_frame,text="Sticky Tape Syndrome",variable=stick_check_var,onvalue="Sticky Tape Syndrome",offvalue="Absent") stiction_check_var=tkin.StringVar(value="Absent") -stiction_check=tkin.Checkbutton(errors_frame, text ="Stiction",variable=stiction_check_var,onvalue="Present",offvalue="Absent") +stiction_check=tkin.Checkbutton(errors_frame, text ="Stiction",variable=stiction_check_var,onvalue="Stiction",offvalue="Absent") scpe_check_var=tkin.StringVar(value="Absent") -scpe_check=tkin.Checkbutton(errors_frame, text ="Subcarrier Phase Error",variable=scpe_check_var,onvalue="Present",offvalue="Absent") +scpe_check=tkin.Checkbutton(errors_frame, text ="Subcarrier Phase Error",variable=scpe_check_var,onvalue="Subcarrier Phase Error",offvalue="Absent") deform_check_var=tkin.StringVar(value="Absent") -deform_check=tkin.Checkbutton(errors_frame, text="Tape Deformation",variable=deform_check_var,onvalue="Present",offvalue="Absent") +deform_check=tkin.Checkbutton(errors_frame, text="Tape Deformation",variable=deform_check_var,onvalue="Tape Deformation",offvalue="Absent") misalign_check_var=tkin.StringVar(value="Absent") -misalign_check=tkin.Checkbutton(errors_frame,text="Tape Misalignment",variable=misalign_check_var,onvalue="Present",offvalue="Absent") +misalign_check=tkin.Checkbutton(errors_frame,text="Tape Misalignment",variable=misalign_check_var,onvalue="Tape Misalignment",offvalue="Absent") quilting_check_var=tkin.StringVar(value="Absent") -quilting_check=tkin.Checkbutton(errors_frame, text ="Quilting",variable=quilting_check_var,onvalue="Present",offvalue="Absent") +quilting_check=tkin.Checkbutton(errors_frame, text ="Quilting",variable=quilting_check_var,onvalue="Quilting",offvalue="Absent") ringing_check_var=tkin.StringVar(value="Absent") -ringing_check=tkin.Checkbutton(errors_frame, text ="Ringing",variable=ringing_check_var,onvalue="Present",offvalue="Absent") +ringing_check=tkin.Checkbutton(errors_frame, text ="Ringing",variable=ringing_check_var,onvalue="Ringing",offvalue="Absent") tBCError_check_var=tkin.StringVar(value="Absent") -tBCError_check=tkin.Checkbutton(errors_frame, text="TBC Error",variable=tBCError_check_var,onvalue="Present",offvalue="Absent") +tBCError_check=tkin.Checkbutton(errors_frame, text="TBC Error",variable=tBCError_check_var,onvalue="TBC Error",offvalue="Absent") track_check_var=tkin.StringVar(value="Absent") -track_check=tkin.Checkbutton(errors_frame,text="Tracking Error",variable=track_check_var,onvalue="Present",offvalue="Absent") +track_check=tkin.Checkbutton(errors_frame,text="Tracking Error",variable=track_check_var,onvalue="Tracking Error",offvalue="Absent") vgae_check_var=tkin.StringVar(value="Absent") -vgae_check=tkin.Checkbutton(errors_frame, text ="Vaccum Guide Adjustment Error",variable=vgae_check_var,onvalue="Present",offvalue="Absent") +vgae_check=tkin.Checkbutton(errors_frame, text ="Vacuum Guide Adjustment Error",variable=vgae_check_var,onvalue="Vacuum Guide Adjustment Error",offvalue="Absent") ycdelay_check_var=tkin.StringVar(value="Absent") -ycdelay_check=tkin.Checkbutton(errors_frame, text ="Y/C Delay Error",variable=ycdelay_check_var,onvalue="Present",offvalue="Absent") +ycdelay_check=tkin.Checkbutton(errors_frame, text ="Y/C Delay Error",variable=ycdelay_check_var,onvalue="Y/C Delay Error",offvalue="Absent") ven_check_var=tkin.StringVar(value="Absent") -ven_check=tkin.Checkbutton(errors_frame,text="Venetian-Blind Effect PAL",variable=ven_check_var,onvalue="Present",offvalue="Absent") +ven_check=tkin.Checkbutton(errors_frame,text="Venetian-Blind Effect PAL",variable=ven_check_var,onvalue="Venetian-Blind Effect",offvalue="Absent") vhold_check_var=tkin.StringVar(value="Absent") -vhold_check=tkin.Checkbutton(errors_frame,text="Vertical Hold",variable=vhold_check_var,onvalue="Present",offvalue="Absent") +vhold_check=tkin.Checkbutton(errors_frame,text="Vertical Hold",variable=vhold_check_var,onvalue="Vertical Hold",offvalue="Absent") vPictJump_check_var=tkin.StringVar(value="Absent") -vPictJump_check=tkin.Checkbutton(errors_frame,text="Vertical Picture Jumping",variable=vPictJump_check_var,onvalue="Present",offvalue="Absent") +vPictJump_check=tkin.Checkbutton(errors_frame,text="Vertical Picture Jumping",variable=vPictJump_check_var,onvalue="Vertical Picture Jumping",offvalue="Absent") vsync_check_var=tkin.StringVar(value="Absent") -vsync_check=tkin.Checkbutton(errors_frame,text="Vertical Synchronization Error",variable=vsync_check_var,onvalue="Present",offvalue="Absent") +vsync_check=tkin.Checkbutton(errors_frame,text="Vertical Synchronization Error",variable=vsync_check_var,onvalue="VSync Error",offvalue="Absent") visibleFrameLine_check_var=tkin.StringVar(value="Absent") -visibleFrameLine_check=tkin.Checkbutton(errors_frame, text ="Visible Frame Line",variable=visibleFrameLine_check_var,onvalue="Present",offvalue="Absent") +visibleFrameLine_check=tkin.Checkbutton(errors_frame, text ="Visible Frame Line",variable=visibleFrameLine_check_var,onvalue="Visible Frame Line",offvalue="Absent") audiobuzz_check.grid(row=1,column=0) audiocrackle_check.grid(row=2,column=0) diff --git a/nulrdcscripts/tools/errortool/params.py b/nulrdcscripts/tools/errortool/params.py new file mode 100644 index 0000000..51e91f5 --- /dev/null +++ b/nulrdcscripts/tools/errortool/params.py @@ -0,0 +1,14 @@ +import argparse + +parser = argparse.ArgumentParser() + +parser.add_argument( + "--output", + "-o", + action="store", + dest="output_path", + default = "Z:\\RDC\\ACTIVE_AV\\errorReports", + type=str, + help="full path to output folder", +) +args = parser.parse_args() \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index ef2fcc5..3572d1a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,7 +1,203 @@ -# This file is automatically @generated by Poetry 1.7.0 and should not be changed by hand. -package = [] +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. + +[[package]] +name = "numpy" +version = "2.1.3" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.10" +files = [ + {file = "numpy-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c894b4305373b9c5576d7a12b473702afdf48ce5369c074ba304cc5ad8730dff"}, + {file = "numpy-2.1.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b47fbb433d3260adcd51eb54f92a2ffbc90a4595f8970ee00e064c644ac788f5"}, + {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:825656d0743699c529c5943554d223c021ff0494ff1442152ce887ef4f7561a1"}, + {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:6a4825252fcc430a182ac4dee5a505053d262c807f8a924603d411f6718b88fd"}, + {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e711e02f49e176a01d0349d82cb5f05ba4db7d5e7e0defd026328e5cfb3226d3"}, + {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78574ac2d1a4a02421f25da9559850d59457bac82f2b8d7a44fe83a64f770098"}, + {file = "numpy-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c7662f0e3673fe4e832fe07b65c50342ea27d989f92c80355658c7f888fcc83c"}, + {file = "numpy-2.1.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fa2d1337dc61c8dc417fbccf20f6d1e139896a30721b7f1e832b2bb6ef4eb6c4"}, + {file = "numpy-2.1.3-cp310-cp310-win32.whl", hash = "sha256:72dcc4a35a8515d83e76b58fdf8113a5c969ccd505c8a946759b24e3182d1f23"}, + {file = "numpy-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:ecc76a9ba2911d8d37ac01de72834d8849e55473457558e12995f4cd53e778e0"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4d1167c53b93f1f5d8a139a742b3c6f4d429b54e74e6b57d0eff40045187b15d"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c80e4a09b3d95b4e1cac08643f1152fa71a0a821a2d4277334c88d54b2219a41"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:576a1c1d25e9e02ed7fa5477f30a127fe56debd53b8d2c89d5578f9857d03ca9"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:973faafebaae4c0aaa1a1ca1ce02434554d67e628b8d805e61f874b84e136b09"}, + {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:762479be47a4863e261a840e8e01608d124ee1361e48b96916f38b119cfda04a"}, + {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc6f24b3d1ecc1eebfbf5d6051faa49af40b03be1aaa781ebdadcbc090b4539b"}, + {file = "numpy-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:17ee83a1f4fef3c94d16dc1802b998668b5419362c8a4f4e8a491de1b41cc3ee"}, + {file = "numpy-2.1.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15cb89f39fa6d0bdfb600ea24b250e5f1a3df23f901f51c8debaa6a5d122b2f0"}, + {file = "numpy-2.1.3-cp311-cp311-win32.whl", hash = "sha256:d9beb777a78c331580705326d2367488d5bc473b49a9bc3036c154832520aca9"}, + {file = "numpy-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:d89dd2b6da69c4fff5e39c28a382199ddedc3a5be5390115608345dec660b9e2"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f55ba01150f52b1027829b50d70ef1dafd9821ea82905b63936668403c3b471e"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13138eadd4f4da03074851a698ffa7e405f41a0845a6b1ad135b81596e4e9958"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a6b46587b14b888e95e4a24d7b13ae91fa22386c199ee7b418f449032b2fa3b8"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:0fa14563cc46422e99daef53d725d0c326e99e468a9320a240affffe87852564"}, + {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8637dcd2caa676e475503d1f8fdb327bc495554e10838019651b76d17b98e512"}, + {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2312b2aa89e1f43ecea6da6ea9a810d06aae08321609d8dc0d0eda6d946a541b"}, + {file = "numpy-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a38c19106902bb19351b83802531fea19dee18e5b37b36454f27f11ff956f7fc"}, + {file = "numpy-2.1.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:02135ade8b8a84011cbb67dc44e07c58f28575cf9ecf8ab304e51c05528c19f0"}, + {file = "numpy-2.1.3-cp312-cp312-win32.whl", hash = "sha256:e6988e90fcf617da2b5c78902fe8e668361b43b4fe26dbf2d7b0f8034d4cafb9"}, + {file = "numpy-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:0d30c543f02e84e92c4b1f415b7c6b5326cbe45ee7882b6b77db7195fb971e3a"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96fe52fcdb9345b7cd82ecd34547fca4321f7656d500eca497eb7ea5a926692f"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f653490b33e9c3a4c1c01d41bc2aef08f9475af51146e4a7710c450cf9761598"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:dc258a761a16daa791081d026f0ed4399b582712e6fc887a95af09df10c5ca57"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:016d0f6f5e77b0f0d45d77387ffa4bb89816b57c835580c3ce8e099ef830befe"}, + {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c181ba05ce8299c7aa3125c27b9c2167bca4a4445b7ce73d5febc411ca692e43"}, + {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5641516794ca9e5f8a4d17bb45446998c6554704d888f86df9b200e66bdcce56"}, + {file = "numpy-2.1.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ea4dedd6e394a9c180b33c2c872b92f7ce0f8e7ad93e9585312b0c5a04777a4a"}, + {file = "numpy-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0df3635b9c8ef48bd3be5f862cf71b0a4716fa0e702155c45067c6b711ddcef"}, + {file = "numpy-2.1.3-cp313-cp313-win32.whl", hash = "sha256:50ca6aba6e163363f132b5c101ba078b8cbd3fa92c7865fd7d4d62d9779ac29f"}, + {file = "numpy-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:747641635d3d44bcb380d950679462fae44f54b131be347d5ec2bce47d3df9ed"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:996bb9399059c5b82f76b53ff8bb686069c05acc94656bb259b1d63d04a9506f"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:45966d859916ad02b779706bb43b954281db43e185015df6eb3323120188f9e4"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:baed7e8d7481bfe0874b566850cb0b85243e982388b7b23348c6db2ee2b2ae8e"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a9f7f672a3388133335589cfca93ed468509cb7b93ba3105fce780d04a6576a0"}, + {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7aac50327da5d208db2eec22eb11e491e3fe13d22653dce51b0f4109101b408"}, + {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4394bc0dbd074b7f9b52024832d16e019decebf86caf909d94f6b3f77a8ee3b6"}, + {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:50d18c4358a0a8a53f12a8ba9d772ab2d460321e6a93d6064fc22443d189853f"}, + {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:14e253bd43fc6b37af4921b10f6add6925878a42a0c5fe83daee390bca80bc17"}, + {file = "numpy-2.1.3-cp313-cp313t-win32.whl", hash = "sha256:08788d27a5fd867a663f6fc753fd7c3ad7e92747efc73c53bca2f19f8bc06f48"}, + {file = "numpy-2.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:4f2015dfe437dfebbfce7c85c7b53d81ba49e71ba7eadbf1df40c915af75979f"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:3522b0dfe983a575e6a9ab3a4a4dfe156c3e428468ff08ce582b9bb6bd1d71d4"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c006b607a865b07cd981ccb218a04fc86b600411d83d6fc261357f1c0966755d"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e14e26956e6f1696070788252dcdff11b4aca4c3e8bd166e0df1bb8f315a67cb"}, + {file = "numpy-2.1.3.tar.gz", hash = "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761"}, +] + +[[package]] +name = "pandas" +version = "2.2.3" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, + {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"}, + {file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"}, + {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"}, + {file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"}, + {file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"}, + {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"}, + {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.22.4", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, +] +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "pytz" +version = "2024.2" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, + {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, +] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "tzdata" +version = "2024.2" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +files = [ + {file = "tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd"}, + {file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"}, +] [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "17ca553b0bb9298a6ed528dd21e544ca433179192dba32a9920168e1c199d74f" +content-hash = "a15e78472a1149c9c01bea8d4f4e5ccf79db7aa7491c9e93d0df99d9603987f5" diff --git a/pyproject.toml b/pyproject.toml index 0c061f4..4a78834 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,6 +14,7 @@ readme = "README.md" [tool.poetry.dependencies] python = "^3.10" +pandas = "^2.2.3" [tool.poetry.dev-dependencies] From 700b66e38ef1c28d02028835e62ff9bc5e305e90 Mon Sep 17 00:00:00 2001 From: SophiaFrancis1 <112432333+SophiaFrancis1@users.noreply.github.com> Date: Tue, 5 Nov 2024 08:52:35 -0600 Subject: [PATCH 5/7] Adding to Poetry and Updating the Version of Poetry --- nulrdcscripts/tools/errortool/main.py | 932 +++++++++++++++++++------- poetry.lock | 29 +- pyproject.toml | 4 +- 3 files changed, 703 insertions(+), 262 deletions(-) diff --git a/nulrdcscripts/tools/errortool/main.py b/nulrdcscripts/tools/errortool/main.py index cd231e1..0d5eaa9 100644 --- a/nulrdcscripts/tools/errortool/main.py +++ b/nulrdcscripts/tools/errortool/main.py @@ -1,284 +1,698 @@ # Many thanks to Code First with Hala on Youtube for her video Tkinter Data Entry Form tutorial for beginners - Python GUI project [responsive layout] import os -import pandas as pd +import openpyxl import tkinter as tkin -from tkinter import scrolledtext,messagebox +from tkinter import scrolledtext, messagebox from nulrdcscripts.tools.errortool.params import args -window = tkin.Tk() -window.title("Error Entry Form") -frame = tkin.Frame(window) -frame.pack() +def main(): + window = tkin.Tk() + window.title("Error Entry Form") + frame = tkin.Frame(window) + frame.pack() -def enter_data(): + def enter_data(): - video_id=video_id_entry.get() - video_title=video_title_entry.get() - project_id=project_id_entry.get() + video_id = video_id_entry.get() + video_title = video_title_entry.get() + project_id = project_id_entry.get() - if video_id and video_title and project_id: - runtime=run_time_entry.get() - audiobuzz=audiobuzz_check_var.get() - audiocrackle=audiocrackle_check_var.get() - audiodistortion=audiodistortion_check_var.get() - audiodrop=audiodrop_check_var.get() - audiomuffled=audiomuffled_check_var.get() - audionoise=audionoise_check_var.get() - bearding=bearding_check_var.get() - carrierleak=carrier_leak_check_var.get() - colorsmear=color_smearing_check_var.get() - creased=creased_check_var.get() - chromnoise=chromnoise_check_var.get() - crosstalk=crosstalk_check_var.get() - crushed=crushed_check_var.get() - dihedralmal=dihedral_check_var.get() - dotcrawl=dotcrawl_check_var.get() - dropouts=dropouts_check_var.get() - egli=egli_check_var.get() - fluorescentstrobe=fluorescent_check_var.get() - ghosting=ghost_check_var.get() - headclogging=headclog_check_var.get() - hHold=horiHold_check_var.get() - hueError=hueError_check_var.get() - humTrouble=hum_check_var.get() - incTVStand=incomp_TVStand_var.get() - incFam=incomp_inFam_var.get() - expanshrink=expanshrink_check_var.get() - longPlay=longPlay_check_var.get() - lossColor=losscolor_check_var.get() - moire=moire_check_var.get() - scratchwear=scratchwear_check_var.get() - shiftedheadswitch=shiftheadswitch_check_var.get() - skew=skew_check_var.get() - stickyshed=stick_check_var.get() - stiction=stiction_check_var.get() - scpe=scpe_check_var.get() - tapeDeform=deform_check_var.get() - tapeMisalign=misalign_check_var.get() - quilting=quilting_check_var.get() - ringing=ringing_check_var.get() - tBCError=tBCError_check_var.get() - tracking=track_check_var.get() - vgae=vgae_check_var.get() - ycdelay=ycdelay_check_var.get() - ven=ven_check_var.get() - vhold=vhold_check_var.get() - vPictJump=vPictJump_check_var.get() - vsync=vsync_check_var.get() - visibleFrame=visibleFrameLine_check_var.get() - additionalNotes=notes_entry.get("1.0",tkin.END) + if video_id and video_title and project_id: + runtime = run_time_entry.get() + audiobuzz = audiobuzz_check_var.get() + audiocrackle = audiocrackle_check_var.get() + audiodistortion = audiodistortion_check_var.get() + audiodrop = audiodrop_check_var.get() + audiomuffled = audiomuffled_check_var.get() + audionoise = audionoise_check_var.get() + bearding = bearding_check_var.get() + carrierleak = carrier_leak_check_var.get() + colorsmear = color_smearing_check_var.get() + creased = creased_check_var.get() + chromnoise = chromnoise_check_var.get() + crosstalk = crosstalk_check_var.get() + crushed = crushed_check_var.get() + dihedralmal = dihedral_check_var.get() + dotcrawl = dotcrawl_check_var.get() + dropouts = dropouts_check_var.get() + egli = egli_check_var.get() + fluorescentstrobe = fluorescent_check_var.get() + ghosting = ghost_check_var.get() + headclogging = headclog_check_var.get() + hHold = horiHold_check_var.get() + hueError = hueError_check_var.get() + humTrouble = hum_check_var.get() + incTVStand = incomp_TVStand_var.get() + incFam = incomp_inFam_var.get() + expanshrink = expanshrink_check_var.get() + longPlay = longPlay_check_var.get() + lossColor = losscolor_check_var.get() + moire = moire_check_var.get() + scratchwear = scratchwear_check_var.get() + shiftedheadswitch = shiftheadswitch_check_var.get() + skew = skew_check_var.get() + stickyshed = stick_check_var.get() + stiction = stiction_check_var.get() + scpe = scpe_check_var.get() + tapeDeform = deform_check_var.get() + tapeMisalign = misalign_check_var.get() + quilting = quilting_check_var.get() + ringing = ringing_check_var.get() + tBCError = tBCError_check_var.get() + tracking = track_check_var.get() + vgae = vgae_check_var.get() + ycdelay = ycdelay_check_var.get() + ven = ven_check_var.get() + vhold = vhold_check_var.get() + vPictJump = vPictJump_check_var.get() + vsync = vsync_check_var.get() + visibleFrame = visibleFrameLine_check_var.get() + additionalNotes = notes_entry.get("1.0", tkin.END) - video_errors=[audiobuzz,audiocrackle,audiodrop,audiodistortion,audiomuffled,audionoise,bearding,carrierleak,colorsmear,creased,chromnoise,crosstalk,crushed,dihedralmal,dotcrawl,dropouts,egli,fluorescentstrobe,ghosting,headclogging,hHold,hueError,humTrouble,incTVStand,incFam,expanshrink,longPlay,lossColor,moire,scratchwear,shiftedheadswitch,skew,stickyshed,stiction,scpe,tapeDeform,tapeMisalign,quilting,ringing,tBCError,tracking,vgae,ycdelay,ven,vhold,vPictJump,vsync,visibleFrame,additionalNotes] - errors = "; ".join([x for x in video_errors if x != "Absent"]) - data = { - 'project_id':[project_id], - 'video_id':[video_id], - 'video_title':[video_title], - 'runtime (mins)':[runtime], - 'log':[errors] - - } - df = pd.DataFrame(data) - - file_output=os.path.abspath(args.output_path) - csv_file=os.path.abspath((file_output+"/"+project_id+".csv")) - df.to_csv(csv_file,index=False) + video_errors = [ + audiobuzz, + audiocrackle, + audiodrop, + audiodistortion, + audiomuffled, + audionoise, + bearding, + carrierleak, + colorsmear, + creased, + chromnoise, + crosstalk, + crushed, + dihedralmal, + dotcrawl, + dropouts, + egli, + fluorescentstrobe, + ghosting, + headclogging, + hHold, + hueError, + humTrouble, + incTVStand, + incFam, + expanshrink, + longPlay, + lossColor, + moire, + scratchwear, + shiftedheadswitch, + skew, + stickyshed, + stiction, + scpe, + tapeDeform, + tapeMisalign, + quilting, + ringing, + tBCError, + tracking, + vgae, + ycdelay, + ven, + vhold, + vPictJump, + vsync, + visibleFrame, + additionalNotes, + ] + errors = "; ".join([x for x in video_errors if x != "Absent"]) - else: - tkin.messagebox.showwarning(title="Error",message="You have not entered a project id, a video id, and/or a video title. Please re-enter data.") -#Saving video Information + file_output = os.path.abspath(args.output_path) + csv_file = os.path.abspath((file_output + "/" + project_id + ".csv")) + if not os.path.exists(csv_file): + workbook = openpyxl.Workbook() + sheet = workbook.active + heading = [ + "Project ID", + "Video ID", + "Video Title", + "Runtime (Mins),Log", + ] + sheet.append(heading) + workbook = openpyxl.load_workbook(csv_file) + sheet = workbook.active + sheet.append([project_id, video_id, video_title, runtime, errors]) -# Setting up labels -video_info_frame=tkin.LabelFrame(frame, text="Video Information",padx=20,pady=20) -video_info_frame.pack(fill=tkin.BOTH,expand=True) -video_title=tkin.Label(video_info_frame, text="Video Title") -video_title.grid(row=0, column=0) -video_id=tkin.Label(video_info_frame, text="Video Identifier") -video_id.grid(row=0,column=1) -project_id=tkin.Label(video_info_frame,text="Project ID") -project_id.grid(row=0,column=2) -run_time=tkin.Label(video_info_frame, text="Runtime (Mins)") -run_time.grid(row=0,column=3) + else: + tkin.messagebox.showwarning( + title="Error", + message="You have not entered a project id, a video id, and/or a video title. Please re-enter data.", + ) -# Setting up entry boxes + # Saving video Information -video_title_entry=tkin.Entry(video_info_frame) -video_id_entry=tkin.Entry(video_info_frame) -project_id_entry=tkin.Entry(video_info_frame) -run_time_entry=tkin.Spinbox(video_info_frame,from_="0", to="500") -video_title_entry.grid(row=1,column=0) -video_id_entry.grid(row=1,column=1) -project_id_entry.grid(row=1,column=2) -run_time_entry.grid(row=1,column=3) + # Setting up labels + video_info_frame = tkin.LabelFrame( + frame, text="Video Information", padx=20, pady=20 + ) + video_info_frame.pack(fill=tkin.BOTH, expand=True) + video_title = tkin.Label(video_info_frame, text="Video Title") + video_title.grid(row=0, column=0) + video_id = tkin.Label(video_info_frame, text="Video Identifier") + video_id.grid(row=0, column=1) + project_id = tkin.Label(video_info_frame, text="Project ID") + project_id.grid(row=0, column=2) + run_time = tkin.Label(video_info_frame, text="Runtime (Mins)") + run_time.grid(row=0, column=3) -for widget in video_info_frame.winfo_children(): - widget.grid_configure(padx=10, pady=5) + # Setting up entry boxes -# Saving video errors -errors_frame=tkin.LabelFrame(frame,text="Errors Present", padx=20, pady=20) -errors_frame.pack(fill=tkin.BOTH,expand=True) -audiobuzz_check_var=tkin.StringVar(value="Absent") -audiobuzz_check=tkin.Checkbutton(errors_frame,text="Audio Buzz/Hum", variable=audiobuzz_check_var, onvalue="Audio Buzz/Hum",offvalue="Absent") -audiocrackle_check_var=tkin.StringVar(value="Absent") -audiocrackle_check=tkin.Checkbutton(errors_frame,text="Audio Crackle",variable=audiocrackle_check_var, onvalue="Audio Crackle",offvalue="Absent") -audiodistortion_check_var=tkin.StringVar(value="Absent") -audiodistortion_check=tkin.Checkbutton(errors_frame,text="Audio Distortion",variable=audiodistortion_check_var, onvalue="Audio Distortion",offvalue="Absent") -audiodrop_check_var=tkin.StringVar(value="Absent") -audiodrop_check=tkin.Checkbutton(errors_frame,text="Audio Dropout", variable=audiodrop_check_var, onvalue="Audio Dropout",offvalue="Absent") -audiomuffled_check_var=tkin.StringVar(value="Absent") -audiomuffled_check=tkin.Checkbutton(errors_frame,text="Audio Muffled",variable=audiomuffled_check_var,onvalue="Audio Muffled",offvalue="Absent") -audionoise_check_var=tkin.StringVar(value="Absent") -audionoise_check=tkin.Checkbutton(errors_frame,text="Audio Noise", variable=audionoise_check_var,onvalue="Audio Noise",offvalue="Absent") -bearding_check_var=tkin.StringVar(value="Absent") -bearding_check=tkin.Checkbutton(errors_frame, text ="Bearding",variable=bearding_check_var,onvalue="Bearding",offvalue="Absent") -carrier_leak_check_var=tkin.StringVar(value="Absent") -carrier_leak_check=tkin.Checkbutton(errors_frame, text ="Carrier Leak",variable=carrier_leak_check_var,onvalue="Carrier Leak",offvalue="Absent") -color_smearing_check_var=tkin.StringVar(value="Absent") -color_smearing_check=tkin.Checkbutton(errors_frame, text="Color Smearing",variable=color_smearing_check_var,onvalue="Color Smearing",offvalue="Absent") -creased_check_var=tkin.StringVar(value="Absent") -creased_check=tkin.Checkbutton(errors_frame,text="Creased or Crumpled Tape",variable=creased_check_var,onvalue="Creased or Crumpled Tape",offvalue="Absent") -chromnoise_check_var=tkin.StringVar(value="Absent") -chromnoise_check=tkin.Checkbutton(errors_frame,text="Chrominance Noise",variable=chromnoise_check_var,onvalue="Chrominance Noise",offvalue="Absent") -crosstalk_check_var=tkin.StringVar(value="Absent") -crosstalk_check=tkin.Checkbutton(errors_frame,text="Crosstalk",variable=crosstalk_check_var,onvalue="Crosstalk",offvalue="Absent") -crushed_check_var=tkin.StringVar(value="Absent") -crushed_check=tkin.Checkbutton(errors_frame, text ="Chrushed Setup",variable=crushed_check_var,onvalue="Crushed Setup",offvalue="Absent") -dihedral_check_var=tkin.StringVar(value="Absent") -dihedral_check=tkin.Checkbutton(errors_frame,text="Dihedral Maladjustment",variable=dihedral_check_var,onvalue="Dihedral Maladjustment",offvalue="Absent") -dotcrawl_check_var=tkin.StringVar(value="Absent") -dotcrawl_check=tkin.Checkbutton(errors_frame, text ="Dot Crawl",variable=dotcrawl_check_var,onvalue="Dot Crawl",offvalue="Absent") -dropouts_check_var=tkin.StringVar(value="Absent") -dropouts_check=tkin.Checkbutton(errors_frame,text="Dropouts and Dropout Compensation",variable=dropouts_check_var,onvalue="Dropouts & Dropout Compensation",offvalue="Absent") -egli_check_var=tkin.StringVar(value="Absent") -egli_check=tkin.Checkbutton(errors_frame, text ="Electrical Ground Loop Interference", variable=egli_check_var,onvalue="Electrical Ground Loop Interference",offvalue="Absent") -fluorescent_check_var=tkin.StringVar(value="Absent") -fluorescent_check=tkin.Checkbutton(errors_frame, text ="Fluorescent Strobing",variable=fluorescent_check_var,onvalue="Fluorescent Strobing",offvalue="Absent") -ghost_check_var=tkin.StringVar(value="Absent") -ghost_check=tkin.Checkbutton(errors_frame, text ="Ghosting",variable=ghost_check_var,onvalue="Ghosting",offvalue="Absent") -headclog_check_var=tkin.StringVar(value="Absent") -headclog_check=tkin.Checkbutton(errors_frame,text="Headclogging", variable=headclog_check_var,onvalue="Headclogging",offvalue="Absent") -horiHold_check_var=tkin.StringVar(value="Absent") -horiHold_check=tkin.Checkbutton(errors_frame,text="Horizontal Hold",variable=horiHold_check_var,onvalue="Horizontal Hold",offvalue="Absent") -hueError_check_var=tkin.StringVar(value="Absent") -hueError_check=tkin.Checkbutton(errors_frame, text="Hue Error NTSC",variable=hueError_check_var,onvalue="Hue Error",offvalue="Absent") -hum_check_var=tkin.StringVar(value="Absent") -hum_check=tkin.Checkbutton(errors_frame,text="Hum Trouble",variable=hum_check_var,onvalue="Hum Trouble",offvalue="Absent") -incomp_TVStand_var=tkin.StringVar(value="Absent") -incomp_TVStand=tkin.Checkbutton(errors_frame,text="Incompatibility TV Standards",variable=incomp_TVStand_var,onvalue="Incompatibility in TV Standards",offvalue="Absent") -incomp_inFam_var=tkin.StringVar(value="Absent") -incomp_inFam=tkin.Checkbutton(errors_frame,text="Incompatibility in family of formats",variable=incomp_inFam_var,onvalue="Incompatibility in Family of Formats",offvalue="Absent") -expanshrink_check_var=tkin.StringVar(value="Absent") -expanshrink_check=tkin.Checkbutton(errors_frame,text="Tape Expansion or Shrinkage",variable=expanshrink_check_var,onvalue="Tape Expansion or Shrinkage",offvalue="Absent") -longPlay_check_var=tkin.StringVar(value="Absent") -longPlay_check=tkin.Checkbutton(errors_frame,text="Long Play",variable=longPlay_check_var,onvalue="Long Play",offvalue="Absent") -losscolor_check_var=tkin.StringVar(value="Absent") -losscolor_check=tkin.Checkbutton(errors_frame,text="Loss of Color Lock",variable=losscolor_check_var,onvalue="Loss of Color Lock",offvalue="Absent") -moire_check_var=tkin.StringVar(value="Absent") -moire_check=tkin.Checkbutton(errors_frame,text="Moire Effect",variable=moire_check_var,onvalue="Moire Effect",offvalue="Absent") -scratchwear_check_var=tkin.StringVar(value="Absent") -scratchwear_check=tkin.Checkbutton(errors_frame,text="Scratches and Tape Wear",variable=scratchwear_check_var,onvalue="Scratches and Tape Wear",offvalue="Absent") -shiftheadswitch_check_var=tkin.StringVar(value="Absent") -shiftheadswitch_check=tkin.Checkbutton(errors_frame,text="Shifted Head Switching Point",variable=shiftheadswitch_check_var,onvalue="Headswitching Noise",offvalue="Absent") -skew_check_var=tkin.StringVar(value="Absent") -skew_check=tkin.Checkbutton(errors_frame,text="Skew Error",variable=skew_check_var,onvalue="Skew Error",offvalue="Absent") -stick_check_var=tkin.StringVar(value="Absent") -stick_check=tkin.Checkbutton(errors_frame,text="Sticky Tape Syndrome",variable=stick_check_var,onvalue="Sticky Tape Syndrome",offvalue="Absent") -stiction_check_var=tkin.StringVar(value="Absent") -stiction_check=tkin.Checkbutton(errors_frame, text ="Stiction",variable=stiction_check_var,onvalue="Stiction",offvalue="Absent") -scpe_check_var=tkin.StringVar(value="Absent") -scpe_check=tkin.Checkbutton(errors_frame, text ="Subcarrier Phase Error",variable=scpe_check_var,onvalue="Subcarrier Phase Error",offvalue="Absent") -deform_check_var=tkin.StringVar(value="Absent") -deform_check=tkin.Checkbutton(errors_frame, text="Tape Deformation",variable=deform_check_var,onvalue="Tape Deformation",offvalue="Absent") -misalign_check_var=tkin.StringVar(value="Absent") -misalign_check=tkin.Checkbutton(errors_frame,text="Tape Misalignment",variable=misalign_check_var,onvalue="Tape Misalignment",offvalue="Absent") -quilting_check_var=tkin.StringVar(value="Absent") -quilting_check=tkin.Checkbutton(errors_frame, text ="Quilting",variable=quilting_check_var,onvalue="Quilting",offvalue="Absent") -ringing_check_var=tkin.StringVar(value="Absent") -ringing_check=tkin.Checkbutton(errors_frame, text ="Ringing",variable=ringing_check_var,onvalue="Ringing",offvalue="Absent") -tBCError_check_var=tkin.StringVar(value="Absent") -tBCError_check=tkin.Checkbutton(errors_frame, text="TBC Error",variable=tBCError_check_var,onvalue="TBC Error",offvalue="Absent") -track_check_var=tkin.StringVar(value="Absent") -track_check=tkin.Checkbutton(errors_frame,text="Tracking Error",variable=track_check_var,onvalue="Tracking Error",offvalue="Absent") -vgae_check_var=tkin.StringVar(value="Absent") -vgae_check=tkin.Checkbutton(errors_frame, text ="Vacuum Guide Adjustment Error",variable=vgae_check_var,onvalue="Vacuum Guide Adjustment Error",offvalue="Absent") -ycdelay_check_var=tkin.StringVar(value="Absent") -ycdelay_check=tkin.Checkbutton(errors_frame, text ="Y/C Delay Error",variable=ycdelay_check_var,onvalue="Y/C Delay Error",offvalue="Absent") -ven_check_var=tkin.StringVar(value="Absent") -ven_check=tkin.Checkbutton(errors_frame,text="Venetian-Blind Effect PAL",variable=ven_check_var,onvalue="Venetian-Blind Effect",offvalue="Absent") -vhold_check_var=tkin.StringVar(value="Absent") -vhold_check=tkin.Checkbutton(errors_frame,text="Vertical Hold",variable=vhold_check_var,onvalue="Vertical Hold",offvalue="Absent") -vPictJump_check_var=tkin.StringVar(value="Absent") -vPictJump_check=tkin.Checkbutton(errors_frame,text="Vertical Picture Jumping",variable=vPictJump_check_var,onvalue="Vertical Picture Jumping",offvalue="Absent") -vsync_check_var=tkin.StringVar(value="Absent") -vsync_check=tkin.Checkbutton(errors_frame,text="Vertical Synchronization Error",variable=vsync_check_var,onvalue="VSync Error",offvalue="Absent") -visibleFrameLine_check_var=tkin.StringVar(value="Absent") -visibleFrameLine_check=tkin.Checkbutton(errors_frame, text ="Visible Frame Line",variable=visibleFrameLine_check_var,onvalue="Visible Frame Line",offvalue="Absent") + video_title_entry = tkin.Entry(video_info_frame) + video_id_entry = tkin.Entry(video_info_frame) + project_id_entry = tkin.Entry(video_info_frame) + run_time_entry = tkin.Spinbox(video_info_frame, from_="0", to="500") + video_title_entry.grid(row=1, column=0) + video_id_entry.grid(row=1, column=1) + project_id_entry.grid(row=1, column=2) + run_time_entry.grid(row=1, column=3) -audiobuzz_check.grid(row=1,column=0) -audiocrackle_check.grid(row=2,column=0) -audiodistortion_check.grid(row=3,column=0) -audiodrop_check.grid(row=4,column=0) -audiomuffled_check.grid(row=5,column=0) -audionoise_check.grid(row=6,column=0) -bearding_check.grid(row=7,column=0) -carrier_leak_check.grid(row=8,column=0) -color_smearing_check.grid(row=9,column=0) -creased_check.grid(row=10,column=0) -chromnoise_check.grid(row=11,column=0) -crosstalk_check.grid(row=12,column=0) -crushed_check.grid(row=1,column=1) -dihedral_check.grid(row=2,column=1) -dotcrawl_check.grid(row=3,column=1) -dropouts_check.grid(row=4,column=1) -egli_check.grid(row=5,column=1) -fluorescent_check.grid(row=6,column=1) -ghost_check.grid(row=7,column=1) -headclog_check.grid(row=8,column=1) -horiHold_check.grid(row=9,column=1) -hueError_check.grid(row=10,column=1) -hum_check.grid(row=11,column=1) -incomp_TVStand.grid(row=12,column=1) -incomp_inFam.grid(row=1,column=2) -expanshrink_check.grid(row=2,column=2) -longPlay_check.grid(row=3,column=2) -losscolor_check.grid(row=4,column=2) -moire_check.grid(row=5,column=2) -scratchwear_check.grid(row=6,column=2) -shiftheadswitch_check.grid(row=7,column=2) -skew_check.grid(row=8,column=2) -stick_check.grid(row=9,column=2) -stiction_check.grid(row=10,column=2) -scpe_check.grid(row=11,column=2) -deform_check.grid(row=12,column=2) -misalign_check.grid(row=1,column=3) -quilting_check.grid(row=2,column=3) -ringing_check.grid(row=3,column=3) -tBCError_check.grid(row=4,column=3) -track_check.grid(row=5,column=3) -vgae_check.grid(row=6,column=3) -ycdelay_check.grid(row=7,column=3) -ven_check.grid(row=8,column=3) -vhold_check.grid(row=9,column=3) -vPictJump_check.grid(row=10,column=3) -vsync_check.grid(row=11,column=3) -visibleFrameLine_check.grid(row=12,column=3) + for widget in video_info_frame.winfo_children(): + widget.grid_configure(padx=10, pady=5) -for widget in errors_frame.winfo_children(): - widget.grid_configure(padx=10, pady=5, sticky="NW") + # Saving video errors + errors_frame = tkin.LabelFrame(frame, text="Errors Present", padx=20, pady=20) + errors_frame.pack(fill=tkin.BOTH, expand=True) + audiobuzz_check_var = tkin.StringVar(value="Absent") + audiobuzz_check = tkin.Checkbutton( + errors_frame, + text="Audio Buzz/Hum", + variable=audiobuzz_check_var, + onvalue="Audio Buzz/Hum", + offvalue="Absent", + ) + audiocrackle_check_var = tkin.StringVar(value="Absent") + audiocrackle_check = tkin.Checkbutton( + errors_frame, + text="Audio Crackle", + variable=audiocrackle_check_var, + onvalue="Audio Crackle", + offvalue="Absent", + ) + audiodistortion_check_var = tkin.StringVar(value="Absent") + audiodistortion_check = tkin.Checkbutton( + errors_frame, + text="Audio Distortion", + variable=audiodistortion_check_var, + onvalue="Audio Distortion", + offvalue="Absent", + ) + audiodrop_check_var = tkin.StringVar(value="Absent") + audiodrop_check = tkin.Checkbutton( + errors_frame, + text="Audio Dropout", + variable=audiodrop_check_var, + onvalue="Audio Dropout", + offvalue="Absent", + ) + audiomuffled_check_var = tkin.StringVar(value="Absent") + audiomuffled_check = tkin.Checkbutton( + errors_frame, + text="Audio Muffled", + variable=audiomuffled_check_var, + onvalue="Audio Muffled", + offvalue="Absent", + ) + audionoise_check_var = tkin.StringVar(value="Absent") + audionoise_check = tkin.Checkbutton( + errors_frame, + text="Audio Noise", + variable=audionoise_check_var, + onvalue="Audio Noise", + offvalue="Absent", + ) + bearding_check_var = tkin.StringVar(value="Absent") + bearding_check = tkin.Checkbutton( + errors_frame, + text="Bearding", + variable=bearding_check_var, + onvalue="Bearding", + offvalue="Absent", + ) + carrier_leak_check_var = tkin.StringVar(value="Absent") + carrier_leak_check = tkin.Checkbutton( + errors_frame, + text="Carrier Leak", + variable=carrier_leak_check_var, + onvalue="Carrier Leak", + offvalue="Absent", + ) + color_smearing_check_var = tkin.StringVar(value="Absent") + color_smearing_check = tkin.Checkbutton( + errors_frame, + text="Color Smearing", + variable=color_smearing_check_var, + onvalue="Color Smearing", + offvalue="Absent", + ) + creased_check_var = tkin.StringVar(value="Absent") + creased_check = tkin.Checkbutton( + errors_frame, + text="Creased or Crumpled Tape", + variable=creased_check_var, + onvalue="Creased or Crumpled Tape", + offvalue="Absent", + ) + chromnoise_check_var = tkin.StringVar(value="Absent") + chromnoise_check = tkin.Checkbutton( + errors_frame, + text="Chrominance Noise", + variable=chromnoise_check_var, + onvalue="Chrominance Noise", + offvalue="Absent", + ) + crosstalk_check_var = tkin.StringVar(value="Absent") + crosstalk_check = tkin.Checkbutton( + errors_frame, + text="Crosstalk", + variable=crosstalk_check_var, + onvalue="Crosstalk", + offvalue="Absent", + ) + crushed_check_var = tkin.StringVar(value="Absent") + crushed_check = tkin.Checkbutton( + errors_frame, + text="Chrushed Setup", + variable=crushed_check_var, + onvalue="Crushed Setup", + offvalue="Absent", + ) + dihedral_check_var = tkin.StringVar(value="Absent") + dihedral_check = tkin.Checkbutton( + errors_frame, + text="Dihedral Maladjustment", + variable=dihedral_check_var, + onvalue="Dihedral Maladjustment", + offvalue="Absent", + ) + dotcrawl_check_var = tkin.StringVar(value="Absent") + dotcrawl_check = tkin.Checkbutton( + errors_frame, + text="Dot Crawl", + variable=dotcrawl_check_var, + onvalue="Dot Crawl", + offvalue="Absent", + ) + dropouts_check_var = tkin.StringVar(value="Absent") + dropouts_check = tkin.Checkbutton( + errors_frame, + text="Dropouts and Dropout Compensation", + variable=dropouts_check_var, + onvalue="Dropouts & Dropout Compensation", + offvalue="Absent", + ) + egli_check_var = tkin.StringVar(value="Absent") + egli_check = tkin.Checkbutton( + errors_frame, + text="Electrical Ground Loop Interference", + variable=egli_check_var, + onvalue="Electrical Ground Loop Interference", + offvalue="Absent", + ) + fluorescent_check_var = tkin.StringVar(value="Absent") + fluorescent_check = tkin.Checkbutton( + errors_frame, + text="Fluorescent Strobing", + variable=fluorescent_check_var, + onvalue="Fluorescent Strobing", + offvalue="Absent", + ) + ghost_check_var = tkin.StringVar(value="Absent") + ghost_check = tkin.Checkbutton( + errors_frame, + text="Ghosting", + variable=ghost_check_var, + onvalue="Ghosting", + offvalue="Absent", + ) + headclog_check_var = tkin.StringVar(value="Absent") + headclog_check = tkin.Checkbutton( + errors_frame, + text="Headclogging", + variable=headclog_check_var, + onvalue="Headclogging", + offvalue="Absent", + ) + horiHold_check_var = tkin.StringVar(value="Absent") + horiHold_check = tkin.Checkbutton( + errors_frame, + text="Horizontal Hold", + variable=horiHold_check_var, + onvalue="Horizontal Hold", + offvalue="Absent", + ) + hueError_check_var = tkin.StringVar(value="Absent") + hueError_check = tkin.Checkbutton( + errors_frame, + text="Hue Error NTSC", + variable=hueError_check_var, + onvalue="Hue Error", + offvalue="Absent", + ) + hum_check_var = tkin.StringVar(value="Absent") + hum_check = tkin.Checkbutton( + errors_frame, + text="Hum Trouble", + variable=hum_check_var, + onvalue="Hum Trouble", + offvalue="Absent", + ) + incomp_TVStand_var = tkin.StringVar(value="Absent") + incomp_TVStand = tkin.Checkbutton( + errors_frame, + text="Incompatibility TV Standards", + variable=incomp_TVStand_var, + onvalue="Incompatibility in TV Standards", + offvalue="Absent", + ) + incomp_inFam_var = tkin.StringVar(value="Absent") + incomp_inFam = tkin.Checkbutton( + errors_frame, + text="Incompatibility in family of formats", + variable=incomp_inFam_var, + onvalue="Incompatibility in Family of Formats", + offvalue="Absent", + ) + expanshrink_check_var = tkin.StringVar(value="Absent") + expanshrink_check = tkin.Checkbutton( + errors_frame, + text="Tape Expansion or Shrinkage", + variable=expanshrink_check_var, + onvalue="Tape Expansion or Shrinkage", + offvalue="Absent", + ) + longPlay_check_var = tkin.StringVar(value="Absent") + longPlay_check = tkin.Checkbutton( + errors_frame, + text="Long Play", + variable=longPlay_check_var, + onvalue="Long Play", + offvalue="Absent", + ) + losscolor_check_var = tkin.StringVar(value="Absent") + losscolor_check = tkin.Checkbutton( + errors_frame, + text="Loss of Color Lock", + variable=losscolor_check_var, + onvalue="Loss of Color Lock", + offvalue="Absent", + ) + moire_check_var = tkin.StringVar(value="Absent") + moire_check = tkin.Checkbutton( + errors_frame, + text="Moire Effect", + variable=moire_check_var, + onvalue="Moire Effect", + offvalue="Absent", + ) + scratchwear_check_var = tkin.StringVar(value="Absent") + scratchwear_check = tkin.Checkbutton( + errors_frame, + text="Scratches and Tape Wear", + variable=scratchwear_check_var, + onvalue="Scratches and Tape Wear", + offvalue="Absent", + ) + shiftheadswitch_check_var = tkin.StringVar(value="Absent") + shiftheadswitch_check = tkin.Checkbutton( + errors_frame, + text="Shifted Head Switching Point", + variable=shiftheadswitch_check_var, + onvalue="Headswitching Noise", + offvalue="Absent", + ) + skew_check_var = tkin.StringVar(value="Absent") + skew_check = tkin.Checkbutton( + errors_frame, + text="Skew Error", + variable=skew_check_var, + onvalue="Skew Error", + offvalue="Absent", + ) + stick_check_var = tkin.StringVar(value="Absent") + stick_check = tkin.Checkbutton( + errors_frame, + text="Sticky Tape Syndrome", + variable=stick_check_var, + onvalue="Sticky Tape Syndrome", + offvalue="Absent", + ) + stiction_check_var = tkin.StringVar(value="Absent") + stiction_check = tkin.Checkbutton( + errors_frame, + text="Stiction", + variable=stiction_check_var, + onvalue="Stiction", + offvalue="Absent", + ) + scpe_check_var = tkin.StringVar(value="Absent") + scpe_check = tkin.Checkbutton( + errors_frame, + text="Subcarrier Phase Error", + variable=scpe_check_var, + onvalue="Subcarrier Phase Error", + offvalue="Absent", + ) + deform_check_var = tkin.StringVar(value="Absent") + deform_check = tkin.Checkbutton( + errors_frame, + text="Tape Deformation", + variable=deform_check_var, + onvalue="Tape Deformation", + offvalue="Absent", + ) + misalign_check_var = tkin.StringVar(value="Absent") + misalign_check = tkin.Checkbutton( + errors_frame, + text="Tape Misalignment", + variable=misalign_check_var, + onvalue="Tape Misalignment", + offvalue="Absent", + ) + quilting_check_var = tkin.StringVar(value="Absent") + quilting_check = tkin.Checkbutton( + errors_frame, + text="Quilting", + variable=quilting_check_var, + onvalue="Quilting", + offvalue="Absent", + ) + ringing_check_var = tkin.StringVar(value="Absent") + ringing_check = tkin.Checkbutton( + errors_frame, + text="Ringing", + variable=ringing_check_var, + onvalue="Ringing", + offvalue="Absent", + ) + tBCError_check_var = tkin.StringVar(value="Absent") + tBCError_check = tkin.Checkbutton( + errors_frame, + text="TBC Error", + variable=tBCError_check_var, + onvalue="TBC Error", + offvalue="Absent", + ) + track_check_var = tkin.StringVar(value="Absent") + track_check = tkin.Checkbutton( + errors_frame, + text="Tracking Error", + variable=track_check_var, + onvalue="Tracking Error", + offvalue="Absent", + ) + vgae_check_var = tkin.StringVar(value="Absent") + vgae_check = tkin.Checkbutton( + errors_frame, + text="Vacuum Guide Adjustment Error", + variable=vgae_check_var, + onvalue="Vacuum Guide Adjustment Error", + offvalue="Absent", + ) + ycdelay_check_var = tkin.StringVar(value="Absent") + ycdelay_check = tkin.Checkbutton( + errors_frame, + text="Y/C Delay Error", + variable=ycdelay_check_var, + onvalue="Y/C Delay Error", + offvalue="Absent", + ) + ven_check_var = tkin.StringVar(value="Absent") + ven_check = tkin.Checkbutton( + errors_frame, + text="Venetian-Blind Effect PAL", + variable=ven_check_var, + onvalue="Venetian-Blind Effect", + offvalue="Absent", + ) + vhold_check_var = tkin.StringVar(value="Absent") + vhold_check = tkin.Checkbutton( + errors_frame, + text="Vertical Hold", + variable=vhold_check_var, + onvalue="Vertical Hold", + offvalue="Absent", + ) + vPictJump_check_var = tkin.StringVar(value="Absent") + vPictJump_check = tkin.Checkbutton( + errors_frame, + text="Vertical Picture Jumping", + variable=vPictJump_check_var, + onvalue="Vertical Picture Jumping", + offvalue="Absent", + ) + vsync_check_var = tkin.StringVar(value="Absent") + vsync_check = tkin.Checkbutton( + errors_frame, + text="Vertical Synchronization Error", + variable=vsync_check_var, + onvalue="VSync Error", + offvalue="Absent", + ) + visibleFrameLine_check_var = tkin.StringVar(value="Absent") + visibleFrameLine_check = tkin.Checkbutton( + errors_frame, + text="Visible Frame Line", + variable=visibleFrameLine_check_var, + onvalue="Visible Frame Line", + offvalue="Absent", + ) + audiobuzz_check.grid(row=1, column=0) + audiocrackle_check.grid(row=2, column=0) + audiodistortion_check.grid(row=3, column=0) + audiodrop_check.grid(row=4, column=0) + audiomuffled_check.grid(row=5, column=0) + audionoise_check.grid(row=6, column=0) + bearding_check.grid(row=7, column=0) + carrier_leak_check.grid(row=8, column=0) + color_smearing_check.grid(row=9, column=0) + creased_check.grid(row=10, column=0) + chromnoise_check.grid(row=11, column=0) + crosstalk_check.grid(row=12, column=0) + crushed_check.grid(row=1, column=1) + dihedral_check.grid(row=2, column=1) + dotcrawl_check.grid(row=3, column=1) + dropouts_check.grid(row=4, column=1) + egli_check.grid(row=5, column=1) + fluorescent_check.grid(row=6, column=1) + ghost_check.grid(row=7, column=1) + headclog_check.grid(row=8, column=1) + horiHold_check.grid(row=9, column=1) + hueError_check.grid(row=10, column=1) + hum_check.grid(row=11, column=1) + incomp_TVStand.grid(row=12, column=1) + incomp_inFam.grid(row=1, column=2) + expanshrink_check.grid(row=2, column=2) + longPlay_check.grid(row=3, column=2) + losscolor_check.grid(row=4, column=2) + moire_check.grid(row=5, column=2) + scratchwear_check.grid(row=6, column=2) + shiftheadswitch_check.grid(row=7, column=2) + skew_check.grid(row=8, column=2) + stick_check.grid(row=9, column=2) + stiction_check.grid(row=10, column=2) + scpe_check.grid(row=11, column=2) + deform_check.grid(row=12, column=2) + misalign_check.grid(row=1, column=3) + quilting_check.grid(row=2, column=3) + ringing_check.grid(row=3, column=3) + tBCError_check.grid(row=4, column=3) + track_check.grid(row=5, column=3) + vgae_check.grid(row=6, column=3) + ycdelay_check.grid(row=7, column=3) + ven_check.grid(row=8, column=3) + vhold_check.grid(row=9, column=3) + vPictJump_check.grid(row=10, column=3) + vsync_check.grid(row=11, column=3) + visibleFrameLine_check.grid(row=12, column=3) -# Setting up freeform entry + for widget in errors_frame.winfo_children(): + widget.grid_configure(padx=10, pady=5, sticky="NW") -notes_entry_frame=tkin.LabelFrame(frame, text=" Additional Notes", padx=20, pady=20) -notes_entry_frame.pack(fill=tkin.BOTH,expand=True) -notes_entry=tkin.scrolledtext.ScrolledText(notes_entry_frame) -notes_entry.pack(fill=tkin.BOTH,expand=True) + # Setting up freeform entry -#Button setup -submit_button=tkin.Button(frame,text="Submit Error Report", padx=20,pady=20, command=enter_data) -submit_button.pack(fill='x',padx=10,pady=10) + notes_entry_frame = tkin.LabelFrame( + frame, text=" Additional Notes", padx=20, pady=20 + ) + notes_entry_frame.pack(fill=tkin.BOTH, expand=True) + notes_entry = tkin.scrolledtext.ScrolledText(notes_entry_frame) + notes_entry.pack(fill=tkin.BOTH, expand=True) + # Button setup + submit_button = tkin.Button( + frame, text="Submit Error Report", padx=20, pady=20, command=enter_data + ) + submit_button.pack(fill="x", padx=10, pady=10) -window.mainloop() \ No newline at end of file + # Reset Button + def reset_form(): + project_id_entry.delete(0, tkin.END) + video_id_entry.delete(0, tkin.END) + video_title_entry.delete(0, tkin.END) + run_time_entry.delete(0, tkin.END) + audiobuzz_check.set("Absent") + audiocrackle_check.set("Absent") + audiodistortion_check.set("Absent") + audiodrop_check.set("Absent") + audiomuffled_check.set("Absent") + audionoise_check.set("Absent") + bearding_check.set("Absent") + carrier_leak_check.set("Absent") + color_smearing_check.set("Absent") + creased_check.set("Absent") + chromnoise_check.set("Absent") + crosstalk_check.set("Absent") + crushed_check.set("Absent") + dihedral_check.set("Absent") + dotcrawl_check.set("Absent") + dropouts_check.set("Absent") + egli_check.set("Absent") + ghost_check.set("Absent") + headclog_check.set("Absent") + horiHold_check.set("Absent") + hueError_check.set("Absent") + hum_check.set("Absent") + incomp_TVStand.set("Absent") + incomp_inFam.set("Absent") + expanshrink_check.set("Absent") + longPlay_check.set("Absent") + losscolor_check.set("Absent") + moire_check.set("Absent") + scratchwear_check.set("Absent") + shiftheadswitch_check.set("Absent") + skew_check.set("Absent") + stick_check.set("Absent") + stiction_check.set("Absent") + scpe_check.set("Absent") + deform_check.set("Absent") + misalign_check.set("Absent") + quilting_check.set("Absent") + ringing_check.set("Absent") + tBCError_check.set("Absent") + track_check.set("Absent") + vgae_check.set("Absent") + ycdelay_check.set("Absent") + ven_check.set("Absent") + vhold_check.set("Absent") + vPictJump_check.set("Absent") + vsync_check.set("Absent") + visibleFrameLine_check.set("Absent") + notes_entry.delete(1.0, tkin.END) + + reset_button = tkin.Button( + frame, text="Reset Form", padx=20, pady=20, command=reset_form + ) + reset_button.pack(fill="x", padx=10, pady=10) + + window.mainloop() + + +if __name__ == "__main__": + main() diff --git a/poetry.lock b/poetry.lock index 3572d1a..bebe8c5 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,15 @@ -# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.7.0 and should not be changed by hand. + +[[package]] +name = "et-xmlfile" +version = "2.0.0" +description = "An implementation of lxml.xmlfile for the standard library" +optional = false +python-versions = ">=3.8" +files = [ + {file = "et_xmlfile-2.0.0-py3-none-any.whl", hash = "sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f536151b2caa"}, + {file = "et_xmlfile-2.0.0.tar.gz", hash = "sha256:dab3f4764309081ce75662649be815c4c9081e88f0837825f90fd28317d4da54"}, +] [[package]] name = "numpy" @@ -64,6 +75,20 @@ files = [ {file = "numpy-2.1.3.tar.gz", hash = "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761"}, ] +[[package]] +name = "openpyxl" +version = "3.1.5" +description = "A Python library to read/write Excel 2010 xlsx/xlsm files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2"}, + {file = "openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050"}, +] + +[package.dependencies] +et-xmlfile = "*" + [[package]] name = "pandas" version = "2.2.3" @@ -200,4 +225,4 @@ files = [ [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "a15e78472a1149c9c01bea8d4f4e5ccf79db7aa7491c9e93d0df99d9603987f5" +content-hash = "5e2d3a8adecb5a8b0c75e1b7968e3a066917a3ef179ab291a2072d2cd8487bf4" diff --git a/pyproject.toml b/pyproject.toml index 4a78834..fdd6cac 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "nul-rdc-scripts" -version = "0.4.1" +version = "0.5.0" description = "Scripts for NUL RDC Digitization Team" authors = [ "Northwestern University Libraries ", @@ -15,6 +15,7 @@ readme = "README.md" [tool.poetry.dependencies] python = "^3.10" pandas = "^2.2.3" +openpyxl = "^3.1.5" [tool.poetry.dev-dependencies] @@ -28,6 +29,7 @@ spectrograms = 'nulrdcscripts.tools.spectrogramgeneration.main:main' md5 = 'nulrdcscripts.tools.md5generation.main:main' trim = 'nulrdcscripts.tools.videotrimmer.main:main' micro = 'nulrdcscripts.ingestMicro.ingest:main' +errorgui='nulrdcscripts.tools.errortool.main:main' [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" From 1e090a38e9cedb703a0594a5ea4e5c9ae401a8a9 Mon Sep 17 00:00:00 2001 From: SophiaFrancis1 <112432333+SophiaFrancis1@users.noreply.github.com> Date: Tue, 5 Nov 2024 08:59:56 -0600 Subject: [PATCH 6/7] Added README --- nulrdcscripts/tools/errortool/README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 nulrdcscripts/tools/errortool/README.md diff --git a/nulrdcscripts/tools/errortool/README.md b/nulrdcscripts/tools/errortool/README.md new file mode 100644 index 0000000..8975006 --- /dev/null +++ b/nulrdcscripts/tools/errortool/README.md @@ -0,0 +1,21 @@ +Version Date: 11/5/2024 + +Document Owner: Sophia Francis + +Software Used: None + +# Description +This is a script that is used to run a tkinter window that allows for data collection for video materials either in the capture or QC phase. + +# Installation Instructions +This script runs through poetry and can be installed and updated from it. + +## Usage + +``` +poetry run errorgui +``` + +Notes: + +The CSV will be saved to the location in the params.py file. You can change where the default folder is here and it will be titled with the project id number. \ No newline at end of file From 5e131ae066a42b02b2f9d987546db6d74da8e885 Mon Sep 17 00:00:00 2001 From: SophiaFrancis1 <112432333+SophiaFrancis1@users.noreply.github.com> Date: Wed, 6 Nov 2024 09:04:28 -0600 Subject: [PATCH 7/7] Fixes --- nulrdcscripts/tools/errortool/main.py | 118 +++++++++++++------------- 1 file changed, 58 insertions(+), 60 deletions(-) diff --git a/nulrdcscripts/tools/errortool/main.py b/nulrdcscripts/tools/errortool/main.py index 0d5eaa9..37f8062 100644 --- a/nulrdcscripts/tools/errortool/main.py +++ b/nulrdcscripts/tools/errortool/main.py @@ -125,21 +125,19 @@ def enter_data(): errors = "; ".join([x for x in video_errors if x != "Absent"]) file_output = os.path.abspath(args.output_path) - csv_file = os.path.abspath((file_output + "/" + project_id + ".csv")) - if not os.path.exists(csv_file): - workbook = openpyxl.Workbook() - sheet = workbook.active - heading = [ - "Project ID", - "Video ID", - "Video Title", - "Runtime (Mins),Log", - ] + xlsx_file = os.path.abspath((file_output + "/" + project_id + ".xlsx")) + if not os.path.exists(xlsx_file): # if there is no is no xlsx file already named this + wb=openpyxl.Workbook() + sheet=wb.active + heading=["Project ID","Video ID","Video Title","Run Time (Mins)", "Log"] sheet.append(heading) - workbook = openpyxl.load_workbook(csv_file) - sheet = workbook.active - sheet.append([project_id, video_id, video_title, runtime, errors]) + wb.save(xlsx_file) + wb=openpyxl.load_workbook(xlsx_file) + sheet=wb.active + sheet.append([project_id,video_id,video_title,runtime,errors]) + wb.save(xlsx_file) + else: tkin.messagebox.showwarning( title="Error", @@ -637,53 +635,53 @@ def reset_form(): video_id_entry.delete(0, tkin.END) video_title_entry.delete(0, tkin.END) run_time_entry.delete(0, tkin.END) - audiobuzz_check.set("Absent") - audiocrackle_check.set("Absent") - audiodistortion_check.set("Absent") - audiodrop_check.set("Absent") - audiomuffled_check.set("Absent") - audionoise_check.set("Absent") - bearding_check.set("Absent") - carrier_leak_check.set("Absent") - color_smearing_check.set("Absent") - creased_check.set("Absent") - chromnoise_check.set("Absent") - crosstalk_check.set("Absent") - crushed_check.set("Absent") - dihedral_check.set("Absent") - dotcrawl_check.set("Absent") - dropouts_check.set("Absent") - egli_check.set("Absent") - ghost_check.set("Absent") - headclog_check.set("Absent") - horiHold_check.set("Absent") - hueError_check.set("Absent") - hum_check.set("Absent") - incomp_TVStand.set("Absent") - incomp_inFam.set("Absent") - expanshrink_check.set("Absent") - longPlay_check.set("Absent") - losscolor_check.set("Absent") - moire_check.set("Absent") - scratchwear_check.set("Absent") - shiftheadswitch_check.set("Absent") - skew_check.set("Absent") - stick_check.set("Absent") - stiction_check.set("Absent") - scpe_check.set("Absent") - deform_check.set("Absent") - misalign_check.set("Absent") - quilting_check.set("Absent") - ringing_check.set("Absent") - tBCError_check.set("Absent") - track_check.set("Absent") - vgae_check.set("Absent") - ycdelay_check.set("Absent") - ven_check.set("Absent") - vhold_check.set("Absent") - vPictJump_check.set("Absent") - vsync_check.set("Absent") - visibleFrameLine_check.set("Absent") + audiobuzz_check.deselect() + audiocrackle_check.deselect() + audiodistortion_check.deselect() + audiodrop_check.deselect() + audiomuffled_check.deselect() + audionoise_check.deselect() + bearding_check.deselect() + carrier_leak_check.deselect() + color_smearing_check.deselect() + creased_check.deselect() + chromnoise_check.deselect() + crosstalk_check.deselect() + crushed_check.deselect() + dihedral_check.deselect() + dotcrawl_check.deselect() + dropouts_check.deselect() + egli_check.deselect() + ghost_check.deselect() + headclog_check.deselect() + horiHold_check.deselect() + hueError_check.deselect() + hum_check.deselect() + incomp_TVStand.deselect() + incomp_inFam.deselect() + expanshrink_check.deselect() + longPlay_check.deselect() + losscolor_check.deselect() + moire_check.deselect() + scratchwear_check.deselect() + shiftheadswitch_check.deselect() + skew_check.deselect() + stick_check.deselect() + stiction_check.deselect() + scpe_check.deselect() + deform_check.deselect() + misalign_check.deselect() + quilting_check.deselect() + ringing_check.deselect() + tBCError_check.deselect() + track_check.deselect() + vgae_check.deselect() + ycdelay_check.deselect() + ven_check.deselect() + vhold_check.deselect() + vPictJump_check.deselect() + vsync_check.deselect() + visibleFrameLine_check.deselect() notes_entry.delete(1.0, tkin.END) reset_button = tkin.Button(