53b38ea15c
Refactor/split investment and client * refactor: clean up tests * Renamed tests/qcqa to tests/qa_qc for consistency * comment out faulty test - see docstring note at top * split to client/investment * add __init__.py to investment and client to avoid mypy confusion * fix imports * update imports for consistency across investment module * move back to one config * try changing import to relative * add init.py to src * try relative import * try one more sys.path.append * fix path for client main * fix imports in file_processing * make prompts common * move keywords out to `src` * move smart_chunking_funcs to `src` * fix mypy error * start moving to explicit imports * remove old keywords and fix imports for keywords and prompts * change all imports to full paths * fix unit tests * add readme for new way of running things * isort after all that import work * remove unused sys.path.append from some tests Approved-by: Katon Minhas
50 lines
1.2 KiB
Markdown
50 lines
1.2 KiB
Markdown
# Field Extraction
|
|
|
|
## Running the Code
|
|
|
|
This project uses Python's module system for imports. To run the code properly:
|
|
|
|
1. **DO NOT** run files directly like this:
|
|
```bash
|
|
python src/client/main.py # ❌ This won't work
|
|
```
|
|
|
|
2. **INSTEAD**, use Python's module flag (`-m`) from the project root:
|
|
```bash
|
|
python -m src.client.main # ✅ This is correct
|
|
```
|
|
|
|
## Why?
|
|
The code uses absolute imports (e.g., `from src.utils import llm_utils`) to maintain a clear and consistent package structure. Running with `python -m` ensures Python can properly resolve these imports.
|
|
|
|
## Development
|
|
- All imports should use the `src.` prefix (e.g., `from src.utils import llm_utils`)
|
|
- Always run code from the project root directory using the `-m` flag
|
|
- Tests are configured to handle these imports automatically via pytest settings in pyproject.toml
|
|
|
|
## Configuration
|
|
The project uses poetry for dependency management and pytest for testing. Key configurations in pyproject.toml:
|
|
|
|
```toml
|
|
[tool.pytest.ini_options]
|
|
pythonpath=["."]
|
|
testpaths = [
|
|
"tests"
|
|
]
|
|
```
|
|
|
|
## Dependencies
|
|
To install dependencies:
|
|
```bash
|
|
poetry install
|
|
```
|
|
|
|
To run tests:
|
|
```bash
|
|
poetry run pytest
|
|
```
|
|
|
|
To run type checking:
|
|
```bash
|
|
poetry run mypy .
|
|
``` |