Skip to content

Commit 75e2316

Browse files
committed
feat: add support for loading dot-env files
1 parent c28f650 commit 75e2316

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ description = "With CocoIndex, users declare the transformation, CocoIndex creat
99
authors = [{ name = "CocoIndex", email = "cocoindex.io@gmail.com" }]
1010
readme = "README.md"
1111
requires-python = ">=3.11"
12-
dependencies = ["sentence-transformers>=3.3.1", "click>=8.1.8", "rich>=14.0.0"]
12+
dependencies = ["sentence-transformers>=3.3.1", "click>=8.1.8", "rich>=14.0.0", "python-dotenv>=1.1.0"]
1313
license = "Apache-2.0"
1414
urls = { Homepage = "https://cocoindex.io/" }
1515

python/cocoindex/cli.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import atexit
77
import types
88

9+
from dotenv import load_dotenv
910
from rich.console import Console
1011
from rich.table import Table
1112

@@ -107,10 +108,25 @@ def _load_user_app(app_target: str) -> types.ModuleType:
107108

108109
@click.group()
109110
@click.version_option(package_name="cocoindex", message="%(prog)s version %(version)s")
110-
def cli():
111+
@click.option(
112+
"--env-file",
113+
type=click.Path(exists=True, file_okay=True, dir_okay=False, readable=True, resolve_path=True),
114+
help="Path to a .env file to load environment variables from. "
115+
"If not provided, attempts to load '.env' from the current directory.",
116+
default=None,
117+
show_default=False
118+
)
119+
def cli(env_file: str | None):
111120
"""
112121
CLI for Cocoindex.
113122
"""
123+
loaded_env_path = None
124+
dotenv_path = env_file or os.path.join(os.getcwd(), ".env")
125+
126+
if load_dotenv(dotenv_path=dotenv_path, override=True):
127+
loaded_env_path = os.path.abspath(dotenv_path)
128+
click.echo(f"Loaded environment variables from: {loaded_env_path}", err=True)
129+
114130
try:
115131
settings = setting.Settings.from_env()
116132
lib.init(settings)

0 commit comments

Comments
 (0)