Determine this is the right repository
Summary of the issue
Context
We're on google-cloud-bigtable 2.38.0 using BigtableDataClient (the data client). We wanted to use the new value_bitmask_filter row filter (added to the RowFilter proto in 2.38) as part of a ConditionalRowFilter chain for a server-side bloom-filter prefilter.
Expected Behavior:
google.cloud.bigtable.data.row_filters exposes a ValueBitmaskFilter class that subclasses the data-client RowFilter ABC, so it composes into RowFilterChain / ConditionalRowFilter alongside the other data-client filters — matching the ValueBitmaskFilter that already exists in the legacy google.cloud.bigtable.row_filters module.
Actual Behavior:
google.cloud.bigtable.data.row_filters has no ValueBitmaskFilter. The legacy module's wrapper can't be used because it subclasses a different RowFilter base (to_pb() vs the data client's _to_dict()/_to_pb()), so it doesn't compose into data-client filter chains. We worked around it with a local RowFilter subclass overriding _to_dict() to return {"value_bitmask_filter": data_v2_pb2.ValueBitmask(mask=...)}, which works fine — but it'd be nice to have parity in the data-client module.
API client name and version
google-cloud-bigtable 2.38
Reproduction steps: code
n/a
Reproduction steps: supporting files
No response
Reproduction steps: actual results
No response
Reproduction steps: expected results
No response
OS & version + platform
No response
Python environment
python 3.14
Python dependencies
No response
Additional context
No response
Determine this is the right repository
Summary of the issue
Context
We're on google-cloud-bigtable 2.38.0 using
BigtableDataClient(the data client). We wanted to use the newvalue_bitmask_filterrow filter (added to theRowFilterproto in 2.38) as part of aConditionalRowFilterchain for a server-side bloom-filter prefilter.Expected Behavior:
google.cloud.bigtable.data.row_filtersexposes aValueBitmaskFilterclass that subclasses the data-clientRowFilterABC, so it composes intoRowFilterChain/ConditionalRowFilteralongside the other data-client filters — matching theValueBitmaskFilterthat already exists in the legacygoogle.cloud.bigtable.row_filtersmodule.Actual Behavior:
google.cloud.bigtable.data.row_filtershas noValueBitmaskFilter. The legacy module's wrapper can't be used because it subclasses a differentRowFilterbase (to_pb()vs the data client's_to_dict()/_to_pb()), so it doesn't compose into data-client filter chains. We worked around it with a localRowFiltersubclass overriding_to_dict()to return{"value_bitmask_filter": data_v2_pb2.ValueBitmask(mask=...)}, which works fine — but it'd be nice to have parity in the data-client module.API client name and version
google-cloud-bigtable 2.38
Reproduction steps: code
n/a
Reproduction steps: supporting files
No response
Reproduction steps: actual results
No response
Reproduction steps: expected results
No response
OS & version + platform
No response
Python environment
python 3.14
Python dependencies
No response
Additional context
No response