Skip to content

Commit 2d7c6b4

Browse files
authored
Allow non-required fields to be None (#71)
* Allow non-required fields to be None * Update pybotvac/account.py Make `status` and `launched_from` more permissive
1 parent 34b5941 commit 2d7c6b4

File tree

1 file changed

+28
-28
lines changed

1 file changed

+28
-28
lines changed

pybotvac/account.py

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -29,52 +29,52 @@
2929
Required("serial"): str,
3030
"prefix": Any(str, None),
3131
Required("name"): str,
32-
"model": str,
32+
"model": Any(str, None),
3333
Required("secret_key"): str,
3434
"purchased_at": Any(str, None),
3535
"linked_at": Any(str, None),
3636
Required("traits"): list,
3737
# Everything below this line is not documented, but still present
38-
"firmware": str,
39-
"timezone": str,
38+
"firmware": Any(str, None),
39+
"timezone": Any(str, None),
4040
Required("nucleo_url"): Url,
41-
"mac_address": str,
42-
"created_at": str,
41+
"mac_address": Any(str, None),
42+
"created_at": Any(str, None),
4343
},
4444
extra=ALLOW_EXTRA,
4545
)
4646
MAP_SCHEMA = Schema(
4747
{
48-
"version": int,
48+
"version": Any(int, None),
4949
Required("id"): str,
5050
Required("url"): Url,
51-
"url_valid_for_seconds": int,
52-
Optional("run_id"): str, # documented, but not present
53-
"status": Any("complete", "incomplete", "canceled"),
54-
"launched_from": Any("robot", "schedule", "app"),
51+
"url_valid_for_seconds": Any(int, None),
52+
Optional("run_id"): str, # documented, but not present
53+
"status": Any(str, None),
54+
"launched_from": Any(str, None),
5555
"error": Any(str, None),
56-
"category": int,
57-
"mode": int,
58-
"modifier": int,
59-
"start_at": str,
60-
"end_at": str,
56+
"category": Any(int, None),
57+
"mode": Any(int, None),
58+
"modifier": Any(int, None),
59+
"start_at": Any(str, None),
60+
"end_at": Any(str, None),
6161
"end_orientation_relative_degrees": All(int, Range(min=0, max=360)),
6262
"run_charge_at_start": All(int, Range(min=0, max=100)),
6363
"run_charge_at_end": All(int, Range(min=0, max=100)),
64-
"suspended_cleaning_charging_count": int,
65-
"time_in_suspended_cleaning": int,
66-
"time_in_error": int,
67-
"time_in_pause": int,
68-
"cleaned_area": float,
69-
"base_count": int,
70-
"is_docked": bool,
71-
"delocalized": bool,
64+
"suspended_cleaning_charging_count": Any(int, None),
65+
"time_in_suspended_cleaning": Any(int, None),
66+
"time_in_error": Any(int, None),
67+
"time_in_pause": Any(int, None),
68+
"cleaned_area": Any(float, None),
69+
"base_count": Any(int, None),
70+
"is_docked": Any(bool, None),
71+
"delocalized": Any(bool, None),
7272
# Everything below this line is not documented, but still present
73-
"generated_at": str,
73+
"generated_at": Any(str, None),
7474
"persistent_map_id": Any(str, None),
7575
"cleaned_with_persistent_map_id": Any(str, None),
76-
"valid_as_persistent_map": bool,
77-
"navigation_mode": int,
76+
"valid_as_persistent_map": Any(bool, None),
77+
"navigation_mode": Any(int, None),
7878
},
7979
extra=ALLOW_EXTRA,
8080
)
@@ -87,8 +87,8 @@
8787
Required("id"): str,
8888
Required("name"): str,
8989
Required("url"): Url,
90-
"raw_floor_map_url": Url,
91-
"url_valid_for_seconds": int,
90+
"raw_floor_map_url": Any(Url, None),
91+
"url_valid_for_seconds": Any(int, None),
9292
},
9393
extra=ALLOW_EXTRA,
9494
)

0 commit comments

Comments
 (0)