From 3ff66768ca9f10f600a3059a7b60574d44d34037 Mon Sep 17 00:00:00 2001 From: Steven Loria Date: Wed, 22 Jan 2025 21:45:11 -0500 Subject: [PATCH] Remove required argument from parser methods --- CHANGELOG.md | 2 ++ src/environs/__init__.py | 3 --- src/environs/types.py | 3 +-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c21ccd8..a702fbc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ Changes: - _Backwards-incompatible_: `recurse`, `verbose`, `override`, and `return_path` parameters to `Env.read_env` are now keyword-only. +- _Backwards-incompatible_: The `required` argument to parser methods + is removed. Call a parser method without a default value to make it required. ## 14.1.0 (2025-01-10) diff --git a/src/environs/__init__.py b/src/environs/__init__.py index 72efa95..021ee47 100644 --- a/src/environs/__init__.py +++ b/src/environs/__init__.py @@ -80,7 +80,6 @@ def method( | typing.Iterable[typing.Callable[[typing.Any], typing.Any]] | None ) = None, - required: bool = False, # Additional kwargs are passed to Field constructor **kwargs, ) -> _T | None: @@ -98,7 +97,6 @@ def method( ): field = field_or_factory( validate=validate, - required=required, load_default=load_default, **kwargs, ) @@ -107,7 +105,6 @@ def method( field = typing.cast(FieldFactory, field_or_factory)( subcast=parsed_subcast, validate=validate, - required=required, load_default=load_default, ) parsed_key, value, proxied_key = self._get_from_environ(name, default=Ellipsis) diff --git a/src/environs/types.py b/src/environs/types.py index 9a4fd46..297702c 100644 --- a/src/environs/types.py +++ b/src/environs/types.py @@ -34,13 +34,12 @@ class BaseMethodKwargs(typing.TypedDict, total=False): - # Subset of relevant marshmallow.Field kwargs shared by all parser methods + # Relevant marshmallow.Field kwargs shared by all parser methods validate: ( typing.Callable[[typing.Any], typing.Any] | typing.Iterable[typing.Callable[[typing.Any], typing.Any]] | None ) - required: bool class FieldMethod(typing.Generic[T]):