added unit test, updated Readme and picture

This commit is contained in:
cpu
2023-12-13 01:53:14 +01:00
parent 1522032a36
commit 89f84666bc
8 changed files with 406 additions and 73 deletions

46
lib/dummygpio.py Normal file
View File

@@ -0,0 +1,46 @@
import time
HIGH = True
LOW = False
IN = 0
PUD_UP = None
DUMMY_FALLING_EDGE = "FALLING"
CHANGE_PIN_VALUE_AFTER = 8 # Transition to HIGH after 8 seconds
BCM = 0
FALLING = None
pull_up_down = {PUD_UP: DUMMY_FALLING_EDGE}
state = HIGH
pin_last_change = {}
def setwarnings(value):
pass
def setmode(mode):
pass
def cleanup():
pass
def setup(pin, direction, **kwargs):
pin_last_change[pin] = time.time()
def input(pin):
last_change = pin_last_change.get(pin, 0)
current = time.time()
if current - last_change >= CHANGE_PIN_VALUE_AFTER:
pin_last_change[pin] = current
return HIGH
return LOW
def add_event_detect(pin, edge, callback, **kwargs):
pin_last_change[pin] = time.time()
if edge == FALLING:
callback(pin)

View File

@@ -0,0 +1,189 @@
from datetime import datetime
hodiny_slovnik = {
0: "nula",
1: "jedna",
2: "dve",
3: "tri",
4: "štyri",
5: "päť",
6: "šesť",
7: "sedem",
8: "osem",
9: "deväť",
10: "desať",
11: "jedenásť",
12: "dvanásť",
13: "trinásť",
14: "štrnásť",
15: "pätnásť",
16: "šestnásť",
17: "sedemnásť",
18: "osemnásť",
19: "devätnásť",
20: "dvadsať",
21: "dvadsaťjeden",
22: "dvadsaťdva",
23: "dvadsaťtri",
}
minuty_slovnik = {
0: "nula",
1: "jedna",
2: "dve",
3: "tri",
4: "štyri",
5: "päť",
6: "šesť",
7: "sedem",
8: "osem",
9: "deväť",
10: "desať",
11: "jedenásť",
12: "dvanásť",
13: "trinásť",
14: "štrnásť",
15: "pätnásť",
16: "šestnásť",
17: "sedemnásť",
18: "osemnásť",
19: "devätnásť",
20: "dvadsať",
21: "dvadsaťjeden",
22: "dvadsaťdva",
23: "dvadsaťtri",
24: "dvadsaťštyri",
25: "dvadsaťpäť",
26: "dvadsaťšesť",
27: "dvadsaťsedem",
28: "dvadsaťosem",
29: "dvadsaťdeväť",
30: "tridsať",
31: "tridsaťjeden",
32: "tridsaťdva",
33: "tridsaťtri",
34: "tridsaťštyri",
35: "tridsaťpäť",
36: "tridsaťšesť",
37: "tridsaťsedem",
38: "tridsaťosem",
39: "tridsaťdeväť",
40: "štyridsať",
41: "štyridsaťjeden",
42: "štyridsaťdva",
43: "štyridsaťtri",
44: "štyridsaťštyri",
45: "štyridsaťpäť",
46: "štyridsaťšesť",
47: "štyridsaťsedem",
48: "štyridsaťosem",
49: "štyridsaťdeväť",
50: "päťdesiat",
51: "päťdesiatjeden",
52: "päťdesiatdva",
53: "päťdesiattri",
54: "päťdesiatštyri",
55: "päťdesiatpäť",
56: "päťdesiatšesť",
57: "päťdesiatsedem",
58: "päťdesiatosem",
59: "päťdesiatdeväť",
}
dni_slovnik = {
0: "pondelok",
1: "utorok",
2: "streda",
3: "štvrtok",
4: "piatok",
5: "sobota",
6: "nedeľa",
}
mesiace_slovnik = {
1: "januára",
2: "februára",
3: "marca",
4: "apríla",
5: "mája",
6: "júna",
7: "júla",
8: "augusta",
9: "septembra",
10: "októbra",
11: "novembra",
12: "decembra",
}
cisla = {
1: "prvého",
2: "druhého",
3: "tretieho",
4: "štvrtého",
5: "piateho",
6: "šiesteho",
7: "siedmeho",
8: "ôsmeho",
9: "deviateho",
10: "desiateho",
11: "jedenásteho",
12: "dvanásteho",
13: "trinásteho",
14: "štrnásteho",
15: "pätnásteho",
16: "šestnásteho",
17: "sedemnásteho",
18: "osemnásteho",
19: "devätnásteho",
20: "dvadsiateho",
21: "dvadsiateho prvého",
22: "dvadsiateho druhého",
23: "dvadsiateho tretieho",
24: "dvadsiateho štvrtého",
25: "dvadsiateho piateho",
26: "dvadsiateho šiesteho",
27: "dvadsiateho siedmeho",
28: "dvadsiateho ôsmeho",
29: "dvadsiateho deviateho",
30: "tridsiateho",
31: "tridsiateho prvého",
}
def format_hodiny(hodina):
if hodina == "jedna":
return "hodina"
elif hodina == "dve" or hodina == "tri" or hodina == "štyri":
return "hodiny"
else:
return "hodín"
def format_minuty(minuta):
if minuta == "jedna":
return "minúta"
elif minuta == "dve" or minuta == "tri" or minuta == "štyri":
return "minúty"
else:
return "minút"
def format_prefix(hodiny):
if hodiny == "jedna":
return "Je"
elif hodiny == "dve" or hodiny == "tri" or hodiny == "štyri":
return ""
else:
return "Je"
# Zobrazenie času a dátumu
def get_datetime_as_slovak_sentence(cas):
hodiny = hodiny_slovnik[cas.hour]
minuty = minuty_slovnik[cas.minute]
return f"{format_prefix(hodiny)} {hodiny} {format_hodiny(hodiny)} a {minuty} {format_minuty(minuty)}, {dni_slovnik[cas.weekday()]}, {cisla[cas.day]} {mesiace_slovnik[cas.month]}"
if __name__ == "__main__":
print(get_datetime_as_slovak_sentence(datetime.now()))