moat-kv-cal 0.1.2__py3-none-any.whl → 0.1.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- moat/kv/cal/_main.py +4 -4
- moat/kv/cal/util.py +6 -4
- {moat_kv_cal-0.1.2.dist-info → moat_kv_cal-0.1.4.dist-info}/METADATA +3 -2
- moat_kv_cal-0.1.4.dist-info/RECORD +11 -0
- {moat_kv_cal-0.1.2.dist-info → moat_kv_cal-0.1.4.dist-info}/WHEEL +1 -1
- moat_kv_cal-0.1.4.dist-info/licenses/LICENSE +3 -0
- moat_kv_cal-0.1.2.dist-info/RECORD +0 -10
- {moat_kv_cal-0.1.2.dist-info → moat_kv_cal-0.1.4.dist-info}/licenses/LICENSE.txt +0 -0
- {moat_kv_cal-0.1.2.dist-info → moat_kv_cal-0.1.4.dist-info}/top_level.txt +0 -0
moat/kv/cal/_main.py
CHANGED
@@ -7,7 +7,7 @@ from moat.util import P, Path
|
|
7
7
|
from moat.kv.data import data_get
|
8
8
|
from .model import CalRoot
|
9
9
|
from .util import find_next_alarm
|
10
|
-
from datetime import datetime,
|
10
|
+
from datetime import datetime, timedelta, UTC
|
11
11
|
import pytz
|
12
12
|
|
13
13
|
import anyio
|
@@ -17,7 +17,7 @@ import logging
|
|
17
17
|
|
18
18
|
logger = logging.getLogger(__name__)
|
19
19
|
|
20
|
-
utc =
|
20
|
+
utc = UTC
|
21
21
|
now = partial(datetime.now, utc)
|
22
22
|
|
23
23
|
|
@@ -82,7 +82,7 @@ async def run_(obj):
|
|
82
82
|
if ev is None:
|
83
83
|
logger.warning("NO EVT")
|
84
84
|
continue
|
85
|
-
if
|
85
|
+
if ev_t <= t_now:
|
86
86
|
if t_al != ev_t:
|
87
87
|
# set alarm message
|
88
88
|
logger.warning("ALARM %s %s", v.summary.value, ev_t)
|
@@ -114,7 +114,7 @@ async def list_(obj):
|
|
114
114
|
elif len(p) == 1:
|
115
115
|
return Path("%02x" % p[0])
|
116
116
|
else:
|
117
|
-
return Path("
|
117
|
+
return Path(f"{p[0]:02x}.{p[1]:12x}") + p[2:]
|
118
118
|
|
119
119
|
if obj.meta:
|
120
120
|
|
moat/kv/cal/util.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
-
from datetime import datetime, timedelta,
|
3
|
+
from datetime import datetime, timedelta, date, time, UTC
|
4
4
|
from dateutil.rrule import rrulestr
|
5
5
|
from vobject.icalendar import VAlarm, VEvent
|
6
6
|
|
@@ -9,7 +9,7 @@ import logging
|
|
9
9
|
logger = logging.getLogger(__name__)
|
10
10
|
|
11
11
|
|
12
|
-
async def find_next_alarm(calendar, future=10, now=None, zone=
|
12
|
+
async def find_next_alarm(calendar, future=10, now=None, zone=UTC) -> Tuple(
|
13
13
|
VAlarm,
|
14
14
|
datetime,
|
15
15
|
):
|
@@ -31,7 +31,7 @@ async def find_next_alarm(calendar, future=10, now=None, zone=timezone.utc) -> T
|
|
31
31
|
)
|
32
32
|
|
33
33
|
if now is None:
|
34
|
-
now = datetime.now(
|
34
|
+
now = datetime.now(UTC)
|
35
35
|
ev = None
|
36
36
|
ev_v = None
|
37
37
|
ev_t = None
|
@@ -91,8 +91,10 @@ async def find_next_alarm(calendar, future=10, now=None, zone=timezone.utc) -> T
|
|
91
91
|
return ev, ev_v, ev_t
|
92
92
|
|
93
93
|
|
94
|
-
def next_start(v, now):
|
94
|
+
def next_start(v, now, zone=UTC):
|
95
95
|
st = v.dtstart.value
|
96
|
+
if isinstance(st,date):
|
97
|
+
st=datetime.combine(st,time(0,0,0)).astimezone(zone)
|
96
98
|
try:
|
97
99
|
rule = rrulestr(v.rrule.value, dtstart=st)
|
98
100
|
except AttributeError:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: moat-kv-cal
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.4
|
4
4
|
Summary: Calendar management for MoaT-KV
|
5
5
|
Author-email: Matthias Urlichs <matthias@urlichs.de>
|
6
6
|
Project-URL: homepage, https://m-o-a-t.org
|
@@ -13,8 +13,9 @@ Classifier: Topic :: Database
|
|
13
13
|
Classifier: Topic :: Home Automation
|
14
14
|
Requires-Python: >=3.8
|
15
15
|
Description-Content-Type: text/x-rst
|
16
|
+
License-File: LICENSE
|
16
17
|
License-File: LICENSE.txt
|
17
|
-
Requires-Dist: moat-kv~=0.70.
|
18
|
+
Requires-Dist: moat-kv~=0.70.24
|
18
19
|
Requires-Dist: moat-util~=0.56.4
|
19
20
|
Requires-Dist: aiocaldav
|
20
21
|
Dynamic: license-file
|
@@ -0,0 +1,11 @@
|
|
1
|
+
moat/kv/cal/__init__.py,sha256=ZBoFcXbv35djD599Vo_PKTqDjvQXYYXTcPUs5RcQZrs,101
|
2
|
+
moat/kv/cal/_cfg.yaml,sha256=UrczyUBlF7NIPt26pUu0CFdM67xC5TcPmSoVrg79tyQ,31
|
3
|
+
moat/kv/cal/_main.py,sha256=DJ2cgFK0ObC9C1sVUyMcroivtI_1mR4aDNPvYJ1eqCs,8341
|
4
|
+
moat/kv/cal/model.py,sha256=-n0yMEYImoHVDuNWibFJ4-LIpYsx3SmCo6hmAc8rsZU,2355
|
5
|
+
moat/kv/cal/util.py,sha256=GI7KoSZeRDDtEMcjp_kvPP7Hd6phLHZPft4oNMzcRfI,3521
|
6
|
+
moat_kv_cal-0.1.4.dist-info/licenses/LICENSE,sha256=ZSyHhIjRRWNh4Iw_hgf9e6WYkqFBA9Fczk_5PIW1zIs,185
|
7
|
+
moat_kv_cal-0.1.4.dist-info/licenses/LICENSE.txt,sha256=L5vKJLVOg5t0CEEPpW9-O_0vzbP0PEjEF06tLvnIDuk,541
|
8
|
+
moat_kv_cal-0.1.4.dist-info/METADATA,sha256=hNeKvkVJ7CJC8yV5A6JMG6p0cHvkjn4NQNn-fTf23Kw,951
|
9
|
+
moat_kv_cal-0.1.4.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
10
|
+
moat_kv_cal-0.1.4.dist-info/top_level.txt,sha256=pcs9fl5w5AB5GVi4SvBqIVmFrkRwQkVw_dEvW0Q0cSA,5
|
11
|
+
moat_kv_cal-0.1.4.dist-info/RECORD,,
|
@@ -1,10 +0,0 @@
|
|
1
|
-
moat/kv/cal/__init__.py,sha256=ZBoFcXbv35djD599Vo_PKTqDjvQXYYXTcPUs5RcQZrs,101
|
2
|
-
moat/kv/cal/_cfg.yaml,sha256=UrczyUBlF7NIPt26pUu0CFdM67xC5TcPmSoVrg79tyQ,31
|
3
|
-
moat/kv/cal/_main.py,sha256=VN_Dn3Oz25HZIWYBZQvXb_P3Yh2rtHSADUBCLoudL0k,8356
|
4
|
-
moat/kv/cal/model.py,sha256=-n0yMEYImoHVDuNWibFJ4-LIpYsx3SmCo6hmAc8rsZU,2355
|
5
|
-
moat/kv/cal/util.py,sha256=zPuj6zlAug2Q6GS8K0_Zd1k6A_Ci3hK4SkRg8yQ4QFg,3445
|
6
|
-
moat_kv_cal-0.1.2.dist-info/licenses/LICENSE.txt,sha256=L5vKJLVOg5t0CEEPpW9-O_0vzbP0PEjEF06tLvnIDuk,541
|
7
|
-
moat_kv_cal-0.1.2.dist-info/METADATA,sha256=6w2eC98kQbfUEut6cBSWtxy0I2zTLckpX6RZc1N767Q,929
|
8
|
-
moat_kv_cal-0.1.2.dist-info/WHEEL,sha256=xcaH6rP_nCxh1LBIPM7Q0uOnzSGjsIye-Q44j_zbzw8,104
|
9
|
-
moat_kv_cal-0.1.2.dist-info/top_level.txt,sha256=pcs9fl5w5AB5GVi4SvBqIVmFrkRwQkVw_dEvW0Q0cSA,5
|
10
|
-
moat_kv_cal-0.1.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|