@@ -753,6 +753,30 @@ def __init__(
753
753
def _load_env_vars (self ) -> Mapping [str , str | None ]:
754
754
return self ._read_env_files ()
755
755
756
+ @staticmethod
757
+ def _static_read_env_file (
758
+ file_path : Path ,
759
+ * ,
760
+ encoding : str | None = None ,
761
+ case_sensitive : bool = False ,
762
+ ignore_empty : bool = False ,
763
+ parse_none_str : str | None = None ,
764
+ ) -> Mapping [str , str | None ]:
765
+ file_vars : dict [str , str | None ] = dotenv_values (file_path , encoding = encoding or 'utf8' )
766
+ return parse_env_vars (file_vars , case_sensitive , ignore_empty , parse_none_str )
767
+
768
+ def _read_env_file (
769
+ self ,
770
+ file_path : Path ,
771
+ ) -> Mapping [str , str | None ]:
772
+ return self ._static_read_env_file (
773
+ file_path ,
774
+ encoding = self .env_file_encoding ,
775
+ case_sensitive = self .case_sensitive ,
776
+ ignore_empty = self .env_ignore_empty ,
777
+ parse_none_str = self .env_parse_none_str ,
778
+ )
779
+
756
780
def _read_env_files (self ) -> Mapping [str , str | None ]:
757
781
env_files = self .env_file
758
782
if env_files is None :
@@ -765,15 +789,7 @@ def _read_env_files(self) -> Mapping[str, str | None]:
765
789
for env_file in env_files :
766
790
env_path = Path (env_file ).expanduser ()
767
791
if env_path .is_file ():
768
- dotenv_vars .update (
769
- read_env_file (
770
- env_path ,
771
- encoding = self .env_file_encoding ,
772
- case_sensitive = self .case_sensitive ,
773
- ignore_empty = self .env_ignore_empty ,
774
- parse_none_str = self .env_parse_none_str ,
775
- )
776
- )
792
+ dotenv_vars .update (self ._read_env_file (env_path ))
777
793
778
794
return dotenv_vars
779
795
@@ -1708,8 +1724,17 @@ def read_env_file(
1708
1724
ignore_empty : bool = False ,
1709
1725
parse_none_str : str | None = None ,
1710
1726
) -> Mapping [str , str | None ]:
1711
- file_vars : dict [str , str | None ] = dotenv_values (file_path , encoding = encoding or 'utf8' )
1712
- return parse_env_vars (file_vars , case_sensitive , ignore_empty , parse_none_str )
1727
+ warnings .warn (
1728
+ 'read_env_file will be removed in the next version, use DotEnvSettingsSource._static_read_env_file if you must' ,
1729
+ DeprecationWarning ,
1730
+ )
1731
+ return DotEnvSettingsSource ._static_read_env_file (
1732
+ file_path ,
1733
+ encoding = encoding ,
1734
+ case_sensitive = case_sensitive ,
1735
+ ignore_empty = ignore_empty ,
1736
+ parse_none_str = parse_none_str ,
1737
+ )
1713
1738
1714
1739
1715
1740
def _annotation_is_complex (annotation : type [Any ] | None , metadata : list [Any ]) -> bool :
0 commit comments