@@ -38,13 +38,10 @@ class KeyRange(object):
3838 """
3939 def __init__ (self , start_open = None , start_closed = None ,
4040 end_open = None , end_closed = None ):
41- if not any ([start_open , start_closed , end_open , end_closed ]):
42- raise ValueError ("Must specify at least a start or end row." )
43-
44- if start_open and start_closed :
41+ if start_open is not None and start_closed is not None :
4542 raise ValueError ("Specify one of 'start_open' / 'start_closed'." )
4643
47- if end_open and end_closed :
44+ if end_open is not None and end_closed is not None :
4845 raise ValueError ("Specify one of 'end_open' / 'end_closed'." )
4946
5047 self .start_open = start_open
@@ -60,17 +57,19 @@ def to_pb(self):
6057 """
6158 kwargs = {}
6259
63- if self .start_open :
60+ if self .start_open is not None :
6461 kwargs ['start_open' ] = _make_list_value_pb (self .start_open )
65-
66- if self .start_closed :
62+ elif self .start_closed is not None :
6763 kwargs ['start_closed' ] = _make_list_value_pb (self .start_closed )
64+ else :
65+ kwargs ['start_closed' ] = _make_list_value_pb ([])
6866
69- if self .end_open :
67+ if self .end_open is not None :
7068 kwargs ['end_open' ] = _make_list_value_pb (self .end_open )
71-
72- if self .end_closed :
69+ elif self .end_closed is not None :
7370 kwargs ['end_closed' ] = _make_list_value_pb (self .end_closed )
71+ else :
72+ kwargs ['end_closed' ] = _make_list_value_pb ([])
7473
7574 return KeyRangePB (** kwargs )
7675
0 commit comments