summaryrefslogtreecommitdiff
path: root/aslclass.py
blob: 448053f38c6545ba52f5846e0ac02600bc5bd834 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import sys
import os
import msvcrt
from timeit import timeit as time
from time import clock as clock

class ASLreport:
	def __init__(self):
		self.shotcount=0
		self.pauseinterval=[]
		self.shotlist=[]
	
	def metadata(self):
		self.name=input("\nenter movie name:\n")
		self.report=input("\nwant to generate report file?(y/n)\n")
		print("press enter to start")
		keystroke=str(msvcrt.getch())[-2]
		if keystroke=="r":
			print("counter begins")
			self.key()
		
	def key(self):
		clock()
		keystroke=str(msvcrt.getch())[-2]
		if keystroke=="s":
			timestamp=clock()
			self.shotcount=self.shotcount+1
			self.shotlist.append((self.shotcount,timestamp))
			self.key() 
		elif keystroke=="p": self.pause()
		elif keystroke=="e" : self.reset()
	
	def pause(self):
		print("paused")
		startpause=clock()
		startagain=str(msvcrt.getch())[-2]
		if startagain=="p": 
			endpause=clock()
			print("restarted")
			self.pauseinterval.append(endpause-startpause)
			self.key()
		elif startagain=="e": self.reset()
		else: pass
	
	def reset(self):
		self.totaltime=clock()
		for pausetime in self.pauseinterval: 
			self.totaltime=self.totaltime-pausetime
		print(self.totaltime)
		try:  self.totaltime/self.shotcount
		except ZeroDivisionError: sys.exit("no shots recorded")
		self.ASL=self.totaltime/self.shotcount
		print("number of shots=%d"%self.shotcount)	
		print("ASL =%fseconds"%self.ASL)
		if self.report=="y": self.reportgenerator()
		
	def reportgenerator(self):
		fileopen=open(r"%s.ASLreport"%self.name,mode="w")
		fileopen.write(
		"ASL report for %s \n\n Record Time=%f\n Recorded Shots=%d\n ASL=%f\nShot Timestamps:\n%s"%(self.name,self.totaltime,self.shotcount,self.ASL,(str(shotdata) for shotdata in self.shotlist)))

if __name__=="__main__":
	ASLreport().metadata()