Coverage for aisdb/database/sqlfcn_callbacks.py: 100%
15 statements
« prev ^ index » next coverage.py v7.3.1, created at 2023-09-30 04:14 +0000
« prev ^ index » next coverage.py v7.3.1, created at 2023-09-30 04:14 +0000
1''' redefinitions of functions in :py:mod:`aisdb.database.sql_query_strings`,
2 combined into lambdas for convenience
3'''
5from datetime import datetime, timedelta
7import numpy as np
9from aisdb.database.sql_query_strings import (
10 has_mmsi,
11 in_bbox,
12 in_mmsi,
13 in_timerange,
14 valid_mmsi,
15)
17dt2monthstr = lambda start, end, **_: np.unique([
18 t.strftime('%Y%m')
19 for t in np.arange(start, end, timedelta(days=1)).astype(datetime)
20]).astype(object)
22in_bbox_time = lambda **kwargs: f'''\
23 {in_bbox(**kwargs)} AND
24 {in_timerange(**kwargs)} '''
25in_bbox_time_validmmsi = lambda **kwargs: f'''\
26 {in_bbox(**kwargs)} AND
27 {in_timerange(**kwargs)} AND
28 {valid_mmsi(**kwargs)} '''
29in_time_bbox = lambda **kwargs: f'''\
30 {in_timerange(**kwargs)} AND
31 {in_bbox(**kwargs)} '''
32in_time_bbox_hasmmsi = lambda **kwargs: f'''\
33 {in_timerange(**kwargs)} AND
34 {in_bbox(**kwargs)} AND
35 {has_mmsi(**kwargs)}'''
36in_time_bbox_inmmsi = lambda **kwargs: f'''\
37 {in_timerange(**kwargs)} AND
38 {in_bbox(**kwargs)} AND
39 {in_mmsi(**kwargs)} '''
40in_time_bbox_validmmsi = lambda **kwargs: f'''\
41 {in_timerange(**kwargs)} AND
42 {in_bbox(**kwargs)} AND
43 {valid_mmsi(**kwargs)} '''
44in_time_mmsi = lambda **kwargs: f'''\
45 {in_timerange(**kwargs)} AND {valid_mmsi(**kwargs)}'''
46in_timerange_hasmmsi = lambda **kwargs: f'''\
47 {in_timerange(**kwargs)} AND {has_mmsi(**kwargs)}'''
48in_timerange_inmmsi = lambda **kwargs: f'''\
49 {in_timerange(**kwargs)} AND
50 {in_mmsi(**kwargs)}'''
51in_timerange_validmmsi = lambda **kwargs: f'''\
52 {in_timerange(**kwargs)} AND
53 {valid_mmsi(**kwargs)}'''
54in_validmmsi_bbox = lambda **kwargs: f'''\
55 {valid_mmsi(**kwargs)} AND
56 {in_bbox(**kwargs)} '''