diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5432a89a..6cd5e249 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -12,7 +12,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: "3.11" @@ -46,7 +46,7 @@ jobs: - name: Set up python ${{ matrix.python-version }} id: checkout-python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} @@ -101,7 +101,7 @@ jobs: uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.11" diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 9992ed7a..56cafc3b 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: "3.11" diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 18c51121..2e0654c2 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -16,7 +16,7 @@ jobs: - name: Check out repository uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: "3.11" @@ -40,7 +40,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: "3.11" diff --git a/polyfactory/factories/base.py b/polyfactory/factories/base.py index 4b831a15..242b73cd 100644 --- a/polyfactory/factories/base.py +++ b/polyfactory/factories/base.py @@ -515,7 +515,7 @@ def create_factory( ) @classmethod - def get_constrained_field_value(cls, annotation: Any, field_meta: FieldMeta) -> Any: # noqa: C901, PLR0911 + def get_constrained_field_value(cls, annotation: Any, field_meta: FieldMeta) -> Any: # noqa: C901, PLR0911, PLR0912 try: constraints = cast("Constraints", field_meta.constraints) if is_safe_subclass(annotation, float): @@ -564,8 +564,11 @@ def get_constrained_field_value(cls, annotation: Any, field_meta: FieldMeta) -> pattern=constraints.get("pattern"), ) - with suppress(ValueError): + try: collection_type = get_collection_type(annotation) + except ValueError: + collection_type = None + if collection_type is not None: if collection_type == dict: return handle_constrained_mapping( factory=cls, @@ -573,7 +576,6 @@ def get_constrained_field_value(cls, annotation: Any, field_meta: FieldMeta) -> min_items=constraints.get("min_length"), max_items=constraints.get("max_length"), ) - return handle_constrained_collection( collection_type=collection_type, # type: ignore[type-var] factory=cls,