Procházet zdrojové kódy

make python-dotenv optional (#4222)

* python-dotenv is optional

* add type ignore
Thomas Brandého před 7 měsíci
rodič
revize
0bf778e270
3 změnil soubory, kde provedl 10 přidání a 20 odebrání
  1. 1 15
      poetry.lock
  2. 0 1
      pyproject.toml
  3. 9 4
      reflex/config.py

+ 1 - 15
poetry.lock

@@ -1977,20 +1977,6 @@ files = [
 [package.dependencies]
 six = ">=1.5"
 
-[[package]]
-name = "python-dotenv"
-version = "1.0.1"
-description = "Read key-value pairs from a .env file and set them as environment variables"
-optional = false
-python-versions = ">=3.8"
-files = [
-    {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"},
-    {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"},
-]
-
-[package.extras]
-cli = ["click (>=5.0)"]
-
 [[package]]
 name = "python-engineio"
 version = "4.10.1"
@@ -3047,4 +3033,4 @@ type = ["pytest-mypy"]
 [metadata]
 lock-version = "2.0"
 python-versions = "^3.9"
-content-hash = "c5da15520cef58124f6699007c81158036840469d4f9972592d72bd456c45e7e"
+content-hash = "8090ccaeca173bd8612e17a0b8d157d7492618e49450abd1c8373e2976349db0"

+ 0 - 1
pyproject.toml

@@ -33,7 +33,6 @@ jinja2 = ">=3.1.2,<4.0"
 psutil = ">=5.9.4,<7.0"
 pydantic = ">=1.10.2,<3.0"
 python-multipart = ">=0.0.5,<0.1"
-python-dotenv = ">=1.0.1"
 python-socketio = ">=5.7.0,<6.0"
 redis = ">=4.3.5,<6.0"
 rich = ">=13.0.0,<14.0"

+ 9 - 4
reflex/config.py

@@ -491,10 +491,15 @@ class Config(Base):
         from reflex.utils.exceptions import EnvVarValueError
 
         if self.env_file:
-            from dotenv import load_dotenv
-
-            # load env file if exists
-            load_dotenv(self.env_file, override=True)
+            try:
+                from dotenv import load_dotenv  # type: ignore
+
+                # load env file if exists
+                load_dotenv(self.env_file, override=True)
+            except ImportError:
+                console.error(
+                    """The `python-dotenv` package is required to load environment variables from a file. Run `pip install "python-dotenv>=1.0.1"`."""
+                )
 
         updated_values = {}
         # Iterate over the fields.