Commit ffc5459
authored
refactor: replace YAML config loading with pydantic-settings for env var support (#6)
* refactor: implement Pydantic-based configuration management
- Create `config.py` with Pydantic models for structured settings validation
- Replace manual YAML parsing and dotenv loading with `BaseSettings`
- Update `api_url` in `braintest.yaml` to the staging internal endpoint
- Integrate `load_config` helper across `main.py`, `evaltest`, `loadtest`, and `functional_test`
- Add `pydantic-settings[yaml]` to project dependencies
The configuration logic is centralized and typed using Pydantic, replacing
fragmented YAML loading across the codebase. This ensures schema validation,
supports environment variable overrides with nested delimiters, and updates the
target Braintrust API URL for the staging environment.
* chore: remove python-dotenv dependency
- Remove `python-dotenv` from `pyproject.toml`
- Delete `load_dotenv` import in `mock_conversation_task.py`
- Remove `load_dotenv()` call from main execution block
Redundant dependency and logic removed as environment variables are
expected to be managed externally or by the runtime environment.
* refactor(config): update braintrust api endpoint
- Replace internal staging URL with official production API URL in `braintest.yaml`
* docs: update README installation and configuration guide
- Correct typo from "virutal" to "virtual"
- Update environment variable instructions to be platform agnostic
- Add Configuration section describing Pydantic settings behavior
- Include table and examples for environment variable overrides
Standardize environment variable documentation and introduce guidance on nested configuration overrides while fixing typographical errors.
* docs: update environment variable setup instructions in README
- Replace manual environment variable export step with .env file creation
- Add reference to example.env for configuration template
Updates the setup documentation to recommend using a .env file instead of manual exports for easier environment configuration management.
* build: add python-dotenv dependency and initialize in scripts
- Add `python-dotenv` to `pyproject.toml` dependencies
- Import and call `load_dotenv()` in `evaltest/run.py`
- Import and call `load_dotenv()` in `functional_test/run.py`
- Import and call `load_dotenv()` in `loadtest/mock_conversation_task.py`
- Import and call `load_dotenv()` in `loadtest/run.py`
Enable automatic loading of environment variables from .env files across all test suites and scripts. This ensures that sensitive configurations and API keys are consistently available in local and CI environments without manual exports.
* refactor: centralize configuration loading logic
- Remove redundant `load_config` definitions from task files
- Import `load_config` from shared `config` module
- Remove unused `yaml` import in load test tasks
Shared configuration logic reduces code duplication and ensures consistent
loading of the braintest.yaml file across different mock task modules.1 parent 8183d93 commit ffc5459
10 files changed
Lines changed: 256 additions & 54 deletions
File tree
- evaltest
- functional_test
- loadtest
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
53 | 72 | | |
54 | 73 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | 5 | | |
7 | 6 | | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
10 | 11 | | |
11 | 12 | | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | 13 | | |
22 | 14 | | |
23 | 15 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
9 | 8 | | |
10 | 9 | | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
905 | 905 | | |
906 | 906 | | |
907 | 907 | | |
908 | | - | |
909 | | - | |
910 | | - | |
911 | | - | |
912 | | - | |
913 | | - | |
914 | | - | |
915 | | - | |
916 | | - | |
917 | 908 | | |
918 | 909 | | |
919 | 910 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
5 | 4 | | |
6 | 5 | | |
7 | 6 | | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | 65 | | |
72 | 66 | | |
73 | 67 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | 13 | | |
21 | 14 | | |
22 | 15 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | 5 | | |
7 | 6 | | |
8 | 7 | | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | 19 | | |
26 | 20 | | |
27 | 21 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
7 | 6 | | |
8 | 7 | | |
9 | 8 | | |
10 | 9 | | |
11 | 10 | | |
12 | 11 | | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
| 12 | + | |
18 | 13 | | |
19 | 14 | | |
20 | 15 | | |
| |||
252 | 247 | | |
253 | 248 | | |
254 | 249 | | |
255 | | - | |
256 | | - | |
257 | | - | |
258 | 250 | | |
259 | 251 | | |
260 | 252 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
12 | 13 | | |
13 | 14 | | |
14 | 15 | | |
0 commit comments