Skip to content

Conversation

@akshaylive
Copy link
Collaborator

Removing Any* types to make the code maintainable in the long run.

Removing Any* types to make the code maintainable in the long run.
@github-actions github-actions bot added test:uipath-langchain Triggers tests in the uipath-langchain-python repository test:uipath-llamaindex Triggers tests in the uipath-llamaindex-python repository labels Oct 24, 2025

def _is_coded_evaluator(self, evaluators: List[AnyEvaluator]) -> bool:
def _is_coded_evaluator(
self, evaluators: List[BaseEvaluator[Any, Any, Any]]
Copy link
Contributor

@radu-mocanu radu-mocanu Oct 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this method will always categorize evaluators as coded. might break reporting
CC @Chibionos

Base automatically changed from release/revamped-evals to main October 24, 2025 16:13
]

AnyEvaluationItem = Union[EvaluationItem, LegacyEvaluationItem]
AnyEvaluator = Union[LegacyBaseEvaluator[Any], BaseEvaluator[Any, Any, Any]]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Continuing the conversation #685 (comment) here - AnyEvaluator.

What is not clear to me is:

If a new class wants to be backward incompatible (intentionally) then extending NewClass from OldClass would be wrong, right ?

Are we saying that no matter what we would never have backward incompatibility ?

Thoughts @radu-mocanu @cristipufu @akshaylive @Chibionos ?

Copy link
Collaborator Author

@akshaylive akshaylive Oct 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there are two concerns here:

  1. Backwards compatibility of the programmatic interfaces
  2. Backwards compatibility of the schema to represent evaluation sets

We don't care about ##1 right now because of no usage. However, ##2 is needed.

In the programmatic interfaces, we should avoid having to represent Any* = A | B because the entire internals of the library needs to know about both the versions. Instead, we need to transform the legacy schema to the new schema during loading.

We had a conversation regarding this and the conclusion was that the Legacy* will be removed in a few weeks.

Also updated the title of the PR to prevent merge.

@akshaylive akshaylive changed the title refactor(RemoveAny): remove any types [WIP] DO NOT MERGE refactor(RemoveAny): remove any types Oct 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:uipath-langchain Triggers tests in the uipath-langchain-python repository test:uipath-llamaindex Triggers tests in the uipath-llamaindex-python repository

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants