Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

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

import os 

import datetime 

 

class TaskHandlerInterface(): 

 

def __init__(self, frequancy, *args, **kwargs): 

self._get_or_create_metadata_file() 

self.frequancy = frequancy 

if kwargs.get('dry_run', None): 

self.dry_run = kwargs['dry_run'] 

else: 

self.dry_run = False 

 

def _get_or_create_metadata_file(self): 

name = self.__class__.__name__ 

var_path = os.path.join(os.environ["HOME"], 'var') 

if not os.path.exists(var_path): 

os.makedirs(var_path) 

self.meta_filename = os.path.join(var_path, name) 

 

def should_run(self): 

try: 

with open(self.meta_filename, 'r') as f: 

data = ''.join(f.readlines()) 

try: 

last_run = datetime.datetime.strptime( 

data, 

"%Y-%m-%d %H:%M:%S") 

except Exception as e: 

return True 

now = datetime.datetime.now() 

d = now - last_run 

if d.total_seconds() < self.frequancy: 

return False 

except IOError: 

pass 

return True 

 

def update_last_run(self): 

with open(self.meta_filename, 'w') as f: 

f.write(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) 

 

def get_list_of_tasks(self): 

raise NotImplementedError() 

 

def preTransaction(self): 

raise NotImplementedError() 

 

def postTransaction(self): 

raise NotImplementedError() 

 

def perform_task(self, task): 

raise NotImplementedError() 

 

def configure(self): 

raise NotImplementedError()