emkornfield commented on a change in pull request #2115:
URL: https://github.com/apache/iceberg/pull/2115#discussion_r788244997
##########
File path: python/iceberg/api/expressions/projections.py
##########
@@ -15,32 +15,81 @@
# specific language governing permissions and limitations
# under the License.
+from typing import TYPE_CHECKING
from .expressions import Expressions, ExpressionVisitors, RewriteNot
from .predicate import BoundPredicate, UnboundPredicate
+if TYPE_CHECKING:
+ from .expression import Expression
+ from .predicate import Predicate
+ from ..partition_spec import PartitionSpec
-def inclusive(spec, case_sensitive=True):
+
+def inclusive(spec: 'PartitionSpec', case_sensitive: bool = True):
+ """
+ Creates an inclusive ProjectionEvaluator for the PartitionSpec, defaulting
+ to case sensitive mode.
+
+ An evaluator is used to project expressions for a table's data rows into
expressions on the
+ table's partition values. The evaluator returned by this function is
inclusive and will build
+ expressions with the following guarantee: if the original expression
matches a row, then the
+ projected expression will match that row's partition.
+
+ Each predicate in the expression is projected using
Transform.project(String, BoundPredicate).
+
+ Parameters
+ ----------
+ spec: PartitionSpec
+ a partition spec
+ case_sensitive: boolean
+ whether the Projection should consider case sensitivity on column names
or not.
+
+ Returns
+ -------
+ InclusiveProjection
+ an inclusive projection evaluator for the partition spec. Inclusive
transform used for each predicate
+ """
return InclusiveProjection(spec, case_sensitive)
-def strict(spec):
+def strict(spec: 'PartitionSpec'):
+ """
+ Creates a strict ProjectionEvaluatorfor the PartitionSpec, defaulting to
case sensitive mode.
Review comment:
```suggestion
Creates a strict ProjectionEvaluator for the PartitionSpec, defaulting
to case sensitive mode.
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]