Files
doczyai-pipelines/fieldExtraction/README.md
T
Alex Galarce 53b38ea15c Merged in refactor/split-investment-and-client (pull request #347)
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
2025-01-08 21:59:47 +00:00

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 .
```