22
33from tasks import *
44
5+
6+ def check_exist (filename ):
7+ import os
8+ return os .path .exists (filename )
9+
10+ def check_is_gpkg (filename ):
11+ import geopandas
12+ try :
13+ geopandas .read_file (filename , driver = 'GPKG' )
14+ except :
15+ return False
16+ return True
17+
18+ def check_layer (pkg , layer ):
19+ out = layer in pkg
20+ return out
21+
22+ def check_gpkg_layers (filename , layers = []):
23+ pkg = load_gpkg (filename )
24+ for layer in layers :
25+ out += check_layer (pkg , layer )
26+ return out
27+
28+ def check_layer_columns (gdf , columns ):
29+ out = []
30+ for column in columns :
31+ out += column in gdf
32+ return out
33+
34+ def check_layers_columns (filename , layers = {}):
35+ pkg = load_gpkg (filename )
36+ gdf = pkg [layer ]
37+ for layer , columns in layers .items ():
38+ out += check_layer_columns (gdf , columns )
39+ return out
40+
41+ def check_column_content (gdf , column , rules ):
42+ for rule in rules :
43+ out += gdf [column ].apply (rule )
44+ return out
45+
46+ def check_columns_content (filename , layer , columns = {}):
47+ pkg = load_gpkg (filename )
48+ gdf = pkg [layer ]
49+ for column , rules in columns .items ():
50+ out += check_column_content (gdf , column , rules )
51+ return out
52+
553class Validator (object ):
654 tasks = None
755
@@ -18,7 +66,12 @@ def __init__(self, config, log_path):
1866
1967 self .config = config
2068
21- tasks = [TaskVector , TaskVectorTables ]
69+ # tasks = [TaskVector, TaskVectorTables]
70+ tasks = [check_exist (filename ),
71+ check_is_gpkg (filename ),
72+ check_gpkg_layers (filename ),
73+ check_layers_columns (filename ),
74+ check_columns_content (filename )]
2275 self .tasks = self .set_tasks (tasks )
2376
2477 def set_tasks (self , tasks ):
0 commit comments