Transform Function Decorators¶
Transform function decorators, provided by the pyterrier_alpha.transform
module, allow you to
write more concise and expressive code when defining Transformers by removing boilerplate.
Right now, the only supported decorator is the by_query()
decorator.
API Documentation¶
- pyterrier_alpha.transform.by_query(*, add_ranks=True, batch_size=None, verbose=None)[source]¶
Decorates a function to transform a DataFrame query-by-query. Arguments match those in pt.apply closely.
- Return type:
Union
[Callable
[[Callable
[[DataFrame
],DataFrame
]],Callable
[[DataFrame
],DataFrame
]],Callable
[[Callable
[[Iterable
[Dict
]],Iterable
[Dict
]]],Callable
[[Iterable
[Dict
]],Iterable
[Dict
]]]]- Parameters:
verbose (bool) – Whether to print progress bar. Default is to inspect the passed transformer for a verbose member variable that is True.
add_ranks (bool) – Whether to add ranks
batch_size (int) – whether to apply fn on batches of rows or all that are received.
Example:
class MyTransformer(pt.Transformer): @pta.transform.by_query() def transform(self, inp: pd.DataFrame) -> pd.DataFrame: # inp only contains a single query at a time.
It can also decorate
transform_iter
, which is identifed by the function nameExample:
class MyIterTransformer(pt.Transformer): @pta.transform.by_query(add_ranks=False) def transform_iter(self, inp: Iterable[Dict]) -> Iterable[Dict]: # inp only contains a single query at a time.
Changed in version 0.12.0: added support for
transform_iter
Changed in version 0.12.3: supports verbose kwarg
Changed in version 0.12.4: inspect the passed transformer for a verbose variable