File tree Expand file tree Collapse file tree 2 files changed +63
-11
lines changed Expand file tree Collapse file tree 2 files changed +63
-11
lines changed Original file line number Diff line number Diff line change 1
1
# -*- coding: utf-8 -*-
2
2
3
+ from .utils import clean_dict
3
4
4
- class AdvancedConstraint (object ):
5
5
6
- max_cargo_volume = None
7
- max_capacity = None
8
- members_count = 10
9
- available_time_windows = []
10
- tags = []
11
- route4me_members_id = []
12
- depot_address = []
13
- location_sequence_pattern = []
6
+ class AdvancedConstraint (object ):
14
7
15
8
def __init__ (self ):
16
- pass
9
+ self .max_cargo_weight = None
10
+ self .max_cargo_volume = None
11
+ self .max_capacity = None
12
+ self .members_count = 10
13
+ self .vehicles_id = []
14
+ self .available_time_windows = []
15
+ self .tags = []
16
+ self .route4me_members_id = []
17
+ self .depot_address = {
18
+ "alias" : None ,
19
+ "address" : None ,
20
+ "lat" : None ,
21
+ "lng" : None ,
22
+ }
23
+ self .location_sequence_pattern = [
24
+ "" ,
25
+ {
26
+ "alias" : None ,
27
+ "address" : None ,
28
+ "lat" : None ,
29
+ "lng" : None ,
30
+ }
31
+ ]
32
+ self .location_sequence_pattern = [
33
+ "" ,
34
+ {
35
+ "alias" : None ,
36
+ "address" : None ,
37
+ "lat" : None ,
38
+ "lng" : None ,
39
+ }
40
+ ]
41
+ self .group = None
17
42
18
43
def to_dict (self ):
19
- return self .__dict__
44
+ return clean_dict ( self .__dict__ )
Original file line number Diff line number Diff line change @@ -26,3 +26,30 @@ def json2obj(data):
26
26
:return: object
27
27
"""
28
28
return json .loads (data , object_hook = _json_object_hook )
29
+
30
+
31
+ def clean_dict (data ):
32
+ """
33
+ Clean dictionary values
34
+ :param data: input dictionary
35
+ :return: cleaned dictionary
36
+ """
37
+ if isinstance (data , list ):
38
+ cleaned_list = []
39
+ for i in data :
40
+ cleaned_item = clean_dict (i )
41
+ # Append non-None items
42
+ if cleaned_item not in [None , "" ]:
43
+ cleaned_list .append (cleaned_item )
44
+ return cleaned_list if cleaned_list else None
45
+ elif isinstance (data , dict ):
46
+ cleaned_dict = {}
47
+ for k , v in data .items ():
48
+ cleaned_v = clean_dict (v )
49
+ # Append non-None key-value pairs
50
+ if cleaned_v not in [None , "" ]:
51
+ cleaned_dict [k ] = cleaned_v
52
+ return cleaned_dict if cleaned_dict else None
53
+ else :
54
+ # For non-container type, return as is
55
+ return data
You can’t perform that action at this time.
0 commit comments