@@ -1225,7 +1225,8 @@ def _parse_date_for_filtering(date_input):
12251225 except Exception as e :
12261226 print (f"Error: { str (e )} " )
12271227 return pd .DataFrame ()
1228-
1228+
1229+
12291230# Helpers functions
12301231
12311232def _python_date_to_google_date (py_date ):
@@ -1253,35 +1254,30 @@ def _build_strike_filter(strike) -> "filter.DoubleFilter":
12531254
12541255 Examples
12551256 --------
1256- _build_strike_filter(100.0) # exact: lower == upper == 100.0
1257- _build_strike_filter((80.0, 120.0)) # range [80, 120]
1258- _build_strike_filter((None, 120.0)) # open lower bound, upper == 120
1259- _build_strike_filter((80.0, None)) # lower == 80, open upper bound
1257+ _build_strike_filter(100.0) # exact
1258+ _build_strike_filter((80.0, 120.0)) # range [80, 120)
1259+ _build_strike_filter((None, 120.0)) # open lower bound, less_than 120
1260+ _build_strike_filter((80.0, None)) # greater_or_equal_than 80, open upper bound
12601261 """
12611262 if isinstance (strike , (int , float )):
1262- # Exact match: set both bounds to the same value
1263- return filter .DoubleFilter (
1264- lower_bound = wrappers_pb2 .DoubleValue (value = float (strike )),
1265- upper_bound = wrappers_pb2 .DoubleValue (value = float (strike )),
1266- )
1263+ return filter .DoubleFilter (exact = float (strike ))
12671264
12681265 if isinstance (strike , tuple ) and len (strike ) == 2 :
12691266 lo , hi = strike
1270- kwargs = {}
1267+ range_kwargs = {}
12711268 if lo is not None :
1272- kwargs [ "lower_bound " ] = wrappers_pb2 .DoubleValue (value = float (lo ))
1269+ range_kwargs [ "greater_or_equal_than " ] = wrappers_pb2 .DoubleValue (value = float (lo ))
12731270 if hi is not None :
1274- kwargs [ "upper_bound " ] = wrappers_pb2 .DoubleValue (value = float (hi ))
1275- if not kwargs :
1271+ range_kwargs [ "less_than " ] = wrappers_pb2 .DoubleValue (value = float (hi ))
1272+ if not range_kwargs :
12761273 raise ValueError ("strike_interval tuple must have at least one non-None bound." )
1277- return filter .DoubleFilter (** kwargs )
1274+ return filter .DoubleFilter (range = filter . DoubleFilterRange ( ** range_kwargs ) )
12781275
12791276 raise TypeError (
12801277 "strike_interval must be a float (exact) or a (min, max) tuple "
12811278 f"with at least one non-None bound. Got: { strike !r} "
12821279 )
12831280
1284-
12851281def _build_maturity_filter (maturity ) -> "filter.DateFilter" :
12861282 """
12871283 Build a DateFilter proto from a Python value.
@@ -1294,30 +1290,32 @@ def _build_maturity_filter(maturity) -> "filter.DateFilter":
12941290 _build_maturity_filter((None, "2025-12-31")) # open lower bound
12951291 _build_maturity_filter(("2025-03-01", None)) # open upper bound
12961292 """
1297-
1293+
12981294 # Exact match
1299- if isinstance (maturity , (datetime . date , str )):
1295+ if isinstance (maturity , (date , str )):
13001296 proto_d = _parse_date_input (maturity )
1301- return filter .DateFilter (start_date = proto_d , end_date = proto_d )
1297+ return filter .DateFilter (exact = proto_d )
13021298
13031299 # Range
13041300 if isinstance (maturity , tuple ) and len (maturity ) == 2 :
13051301 start , end = maturity
1306- kwargs = {}
1302+ range_kwargs = {}
13071303 if start is not None :
1308- kwargs [ "start_date " ] = _parse_date_input (start )
1304+ range_kwargs [ "greater_or_equal_than " ] = _parse_date_input (start )
13091305 if end is not None :
1310- kwargs [ "end_date " ] = _parse_date_input (end )
1311- if not kwargs :
1306+ range_kwargs [ "less_than " ] = _parse_date_input (end )
1307+ if not range_kwargs :
13121308 raise ValueError ("maturity_date tuple must have at least one non-None bound." )
1313- return filter .DateFilter (** kwargs )
1309+ return filter .DateFilter (range = filter . DateFilterRange ( ** range_kwargs ) )
13141310
13151311 raise TypeError (
13161312 "maturity_date must be a date/str (exact) or a (start, end) tuple "
13171313 f"with at least one non-None bound. Got: { maturity !r} "
13181314 )
13191315
13201316
1317+
1318+
13211319def _proto_enum_parse (proto_enum_cls , prefix , value ):
13221320 """
13231321 Convert a user-supplied string or int to a proto enum int value.
@@ -1389,5 +1387,3 @@ def _format_option_type(int_value) -> str:
13891387
13901388def _format_strike_type (int_value ) -> str :
13911389 return _proto_enum_name (StrikeType .StrikeType , "STRIKE_TYPE_" , int_value )
1392-
1393-
0 commit comments