| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
The deepeval adapter imports deepeval at module scope (src/.../third_party/deepeval/adapter.py:6), but deepeval was absent from the dev dependency group. ci.yml runs 'uv sync --dev', so the deepeval unit tests could not be collected, exiting pytest with code 2 and cancelling the whole matrix. Both are pinned with an upper bound so major versions cannot drift in. The deepeval extra's >=2.0.0 floor was also unsatisfiable: the adapter imports deepeval.test_case.conversational_test_case.Turn, which does not exist before 3.0.8, and deepeval <3.5.0 pins rich <14, conflicting with strands-agents-evals (rich >=14). Corrected to >=3.5.0.
|
Claude Security Review: no high-confidence findings. (run) |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Problem
ci.yml unit tests have been failing on main since 9b7d38e (#568), on all four Python versions:
src/bedrock_agentcore/evaluation/custom_code_based_evaluators/third_party/deepeval/adapter.py:6 imports deepeval at module scope:
But deepeval was not in the dev dependency group, and ci.yml installs via uv sync --dev. So the tests could not even be collected — pytest exits 2, and fail-fast cancels the whole matrix.
The autoevals sibling adapter imports nothing at module scope (only inside functions), which is why only the deepeval tests error. That asymmetry is the underlying issue.
Change
Add both to the dev group, pinned with an upper bound so a new major version cannot drift in:
Also corrects an unsatisfiable floor in the deepeval extra since ConversationalTurn was introduced in v3
Testing
Follow-up worth considering
deepeval is declared optional in pyproject.toml, yet importing the adapter module hard-requires it. Making the deepeval adapter lazy-import like the autoevals one would mean an optional extra can't break collection again. Happy to file separately.
Separate from #608, which fixes the integration-test workflow.