Skip to content

Commit 5513eb6

Browse files
feat(api): add back env var auth (#49)
1 parent 624e4cd commit 5513eb6

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ project_return_schema = client.projects.create(
3939
print(project_return_schema.id)
4040
```
4141

42+
While you can provide an `api_key` keyword argument,
43+
we recommend using [python-dotenv](https://pypi.org/project/python-dotenv/)
44+
to add `CODEX_API_KEY="My API Key"` to your `.env` file
45+
so that your API Key is not stored in source control.
46+
4247
## Async usage
4348

4449
Simply import `AsyncCodex` instead of `Codex` and use `await` with each API call:

src/codex/_client.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,18 @@ def __init__(
9595
# part of our public interface in the future.
9696
_strict_response_validation: bool = False,
9797
) -> None:
98-
"""Construct a new synchronous Codex client instance."""
98+
"""Construct a new synchronous Codex client instance.
99+
100+
This automatically infers the following arguments from their corresponding environment variables if they are not provided:
101+
- `api_key` from `CODEX_API_KEY`
102+
- `access_key` from `CODEX_ACCESS_KEY`
103+
"""
104+
if api_key is None:
105+
api_key = os.environ.get("CODEX_API_KEY")
99106
self.api_key = api_key
100107

108+
if access_key is None:
109+
access_key = os.environ.get("CODEX_ACCESS_KEY")
101110
self.access_key = access_key
102111

103112
self._environment = environment
@@ -325,9 +334,18 @@ def __init__(
325334
# part of our public interface in the future.
326335
_strict_response_validation: bool = False,
327336
) -> None:
328-
"""Construct a new async Codex client instance."""
337+
"""Construct a new async Codex client instance.
338+
339+
This automatically infers the following arguments from their corresponding environment variables if they are not provided:
340+
- `api_key` from `CODEX_API_KEY`
341+
- `access_key` from `CODEX_ACCESS_KEY`
342+
"""
343+
if api_key is None:
344+
api_key = os.environ.get("CODEX_API_KEY")
329345
self.api_key = api_key
330346

347+
if access_key is None:
348+
access_key = os.environ.get("CODEX_ACCESS_KEY")
331349
self.access_key = access_key
332350

333351
self._environment = environment

0 commit comments

Comments
 (0)