misc.py

Sat, 10 Jun 2017 21:03:26 +0300

author
Teemu Piippo <teemu@hecknology.net>
date
Sat, 10 Jun 2017 21:03:26 +0300
changeset 17
fa3c822859b5
parent 5
a65b680f1774
child 18
1c8ff93fbfac
permissions
-rw-r--r--

Refaktorioitu aikatauluhaku

4
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
1 from datetime import datetime, date, time, timedelta
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
2
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
3 def tänään():
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
4 return date.today()
5
a65b680f1774 Paljon asioita
Teemu Piippo <teemu@hecknology.net>
parents: 4
diff changeset
5 #return date(2017, 1, 10)
4
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
6
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
7 def nyt():
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
8 return datetime.now()
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
9 #return datetime.combine(tänään(), datetime.now().time())
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
10
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
11 def muotoile_aika(aika, suhteellinen = True):
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
12 erotus = aika - nyt()
5
a65b680f1774 Paljon asioita
Teemu Piippo <teemu@hecknology.net>
parents: 4
diff changeset
13 if suhteellinen and erotus < timedelta(minutes = 1):
a65b680f1774 Paljon asioita
Teemu Piippo <teemu@hecknology.net>
parents: 4
diff changeset
14 return 'nyt'
a65b680f1774 Paljon asioita
Teemu Piippo <teemu@hecknology.net>
parents: 4
diff changeset
15 elif suhteellinen and erotus < timedelta(minutes = 10):
4
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
16 return '%dm' % round(erotus.seconds / 60)
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
17 elif aika.date() == tänään():
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
18 return '%d:%02d' % (aika.hour, aika.minute)
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
19 elif erotus < timedelta(7):
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
20 return aika.strftime('%-a %H:%M')
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
21 else:
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
22 return aika.strftime('%-d.%-m. %H:%M')
2
48efa8ca14dd Suppea ajovuoroesitys
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
23
48efa8ca14dd Suppea ajovuoroesitys
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
24 def lue_csv(tiedosto, muunnokset = None):
48efa8ca14dd Suppea ajovuoroesitys
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
25 import csv
48efa8ca14dd Suppea ajovuoroesitys
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
26 lukija = csv.reader(tiedosto)
48efa8ca14dd Suppea ajovuoroesitys
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
27 otsakkeet = next(lukija)
48efa8ca14dd Suppea ajovuoroesitys
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
28 for rivi in lukija:
48efa8ca14dd Suppea ajovuoroesitys
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
29 tietue = dict(zip(otsakkeet, rivi))
48efa8ca14dd Suppea ajovuoroesitys
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
30 if muunnokset:
48efa8ca14dd Suppea ajovuoroesitys
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
31 for avain, muunnos in muunnokset.items():
48efa8ca14dd Suppea ajovuoroesitys
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
32 tietue[avain] = muunnos(tietue[avain])
4
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
33 yield tietue
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
34
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
35 def yö(aika):
Teemu Piippo <teemu@hecknology.net>
parents: 2
diff changeset
36 return aika.hour >= 23 or aika.hour < 5

mercurial