crandas.placeholders¶
- class crandas.placeholders.Any(value, *, label=None, session=None, **kwargs)¶
Bases:
object
Any
placeholderWhen used as an argument to a VDL query command that is authorized, indicates that the authorization applies to any possible value. For example, filtering with
==32
means that only filtering for equality to the specific value32
is authorized; filtering with==Any(32)
means that filtering with any value instead of the concrete value32
is authorized.The
Any
placeholder does not tie the data type, e.g., when using an integer placeholderAny(1)
in script recording, this also authorizes the use of a fixed-point value 2.0 when playing the script. However, theAny
placeholder only allows to insert values, and not more complex expressions, e.g., when using the placeholderAny(1)
in script recording, this does not authorized the use e.g. a column referencecdf["col1"]
.When the same placeholder object (or different placeholder objects that have the same label) is used multiple times in a script, the placeholder has to have the same value. This does not apply outside of the context of a script, or when the placeholder is defined in a stepless context. For example:
cd.script.record() p1 = cd.placeholders.Any(1) cdf = cdf.filter(cdf["x"] == p1) p2 = cd.placeholders.Any(2) with cd.script.stepless(): p3 = cd.placeholders.Any(3) # Allows to do .isin(xx, yy, zz), where xx has to be the same as in the # previous filter; yy has to be the same for the different calls to # .isin; and zz can be arbitrary cdf = cdf.filter(cdf["z"].isin([p1, p2, p3]))