@@ -30,7 +30,9 @@ class LogicNode(BaseWorkflowNode):
3030 """Logic node. One or more instances possible. One input, two outputs (if/else)."""
3131
3232 label : str = Field (
33- default = "Logic" , description = "Display name for the logic node"
33+ default = "Logic" ,
34+ description = "Display name for the logic node" ,
35+ max_length = 50 ,
3436 )
3537 filters : List [Dict [str , Any ]] = Field (
3638 default_factory = lambda : [],
@@ -199,7 +201,7 @@ def remove_filter(self, filter_field: FilterField) -> "LogicNode":
199201
200202 Args:
201203 filter_field: FilterField enum value specifying which filter type to remove
202- (e.g., FilterField.CreatedBy , FilterField.Sample, FilterField.LabelingTime)
204+ (e.g., FilterField.LabeledBy , FilterField.Sample, FilterField.LabelingTime)
203205
204206 Returns:
205207 LogicNode: Self for method chaining
@@ -209,7 +211,7 @@ def remove_filter(self, filter_field: FilterField) -> "LogicNode":
209211 >>>
210212 >>> # Type-safe enum approach (required)
211213 >>> logic.remove_filter(FilterField.Sample)
212- >>> logic.remove_filter(FilterField.CreatedBy)
214+ >>> logic.remove_filter(FilterField.LabeledBy) # Consistent with labeled_by() function
213215 >>> logic.remove_filter(FilterField.LabelingTime)
214216 >>> logic.remove_filter(FilterField.Metadata)
215217 """
@@ -371,7 +373,7 @@ def get_filters(self) -> "ProjectWorkflowFilter":
371373 >>> logic = workflow.get_node_by_id("some-logic-node-id")
372374 >>> user_filters = logic.get_filters()
373375 >>> # Add a new filter
374- >>> user_filters.append(created_by (["new-user-id"]))
376+ >>> user_filters.append(labeled_by (["new-user-id"]))
375377 >>> # Apply the updated filters back to the node
376378 >>> logic.set_filters(user_filters)
377379 """
@@ -393,25 +395,25 @@ def add_filter(self, filter_rule: Dict[str, Any]) -> "LogicNode":
393395
394396 Args:
395397 filter_rule: Filter rule from filter functions
396- (e.g., created_by (["user_id"]), labeling_time.greater_than(300))
398+ (e.g., labeled_by (["user_id"]), labeling_time.greater_than(300))
397399
398400 Returns:
399401 LogicNode: Self for method chaining
400402
401403 Example:
402- >>> from labelbox.schema.workflow.project_filter import created_by , labeling_time, metadata, condition
404+ >>> from labelbox.schema.workflow.project_filter import labeled_by , labeling_time, metadata, condition
403405 >>>
404- >>> logic.add_filter(created_by (["user-123"]))
406+ >>> logic.add_filter(labeled_by (["user-123"]))
405407 >>> logic.add_filter(labeling_time.greater_than(300))
406408 >>> logic.add_filter(metadata([condition.contains("tag", "test")]))
407- >>> # Adding another created_by filter will replace the previous one
408- >>> logic.add_filter(created_by (["user-456"])) # Replaces previous created_by filter
409+ >>> # Adding another labeled_by filter will replace the previous one
410+ >>> logic.add_filter(labeled_by (["user-456"])) # Replaces previous labeled_by filter
409411 """
410412 # Validate that this looks like filter function output
411413 if not self ._is_filter_function_output (filter_rule ):
412414 raise ValueError (
413415 "add_filter() only accepts output from filter functions. "
414- "Use functions like created_by (), labeling_time.greater_than(), etc."
416+ "Use functions like labeled_by (), labeling_time.greater_than(), etc."
415417 )
416418
417419 # Get the field name from the filter rule to check for existing filters
@@ -455,7 +457,7 @@ def _is_filter_function_output(self, filter_rule: Dict[str, Any]) -> bool:
455457
456458 # Map backend field names to FilterField enum values
457459 backend_to_field = {
458- "CreatedBy" : FilterField .CreatedBy ,
460+ "CreatedBy" : FilterField .LabeledBy , # Backend CreatedBy maps to user-facing LabeledBy
459461 "Annotation" : FilterField .Annotation ,
460462 "LabeledAt" : FilterField .LabeledAt ,
461463 "Sample" : FilterField .Sample ,
0 commit comments