oak - An Agentic ToolThis is the core library for our agentic tool. It is structured to be modular and scalable, with a clear separation of concerns, and is designed to be installed and used by other services, such as our LangChain agents.Project Structureoak/
├── src/
│ └── oak/ # Main Python package
│ ├── __init__.py # Makes `oak` a Python package
│ ├── celery_app.py # Celery application instance for task management
│ ├── config.py # Configuration manager loaded from .env
│ ├── data/ # Data models and structures
│ │ ├── __init__.py
│ │ └── modules/ # Domain-specific data modules
│ │ ├── __init__.py
│ │ ├── analytics/
│ │ ├── current_events/
│ │ ├── market_data/
│ │ └── stocks/
│ ├── prompts/ # Agent prompts and templates
│ │ └── __init__.py
│ ├── services/ # Core business logic and data fetchers
│ │ ├── __init__.py
│ │ └── data_fetcher/
│ │ ├── __init__.py
│ │ ├── database_service.py
│ │ └── exceptions.py
│ ├── tasks/ # Celery task definitions
│ │ ├── __init__.py
│ │ └── task_manager.py
│ └── utils/ # Utility functions and helpers
│ └── __init__.py
├── pyproject.toml # Project and dependency management
├── docker-compose.yml # Docker services configuration
└── .env.example # Example file for environment variables
ConfigurationFor security, sensitive data is stored in a .env file, which is loaded by the config.py module. This setup keeps credentials out of your codebase and makes it easy to manage different environments (development, testing, production).Key Componentsoak/src/oak/config.pyThis module defines a Config class that reads environment variables and provides them to the application. It ensures that required variables are present, and it allows for type casting, such as converting a string to a boolean or integer..env and .env.exampleThe .env file holds your actual secret credentials. It should be added to your .gitignore to prevent it from being committed to version control. The .env.example file is a template that shows other developers what environment variables your application expects.oak/src/oak/services/data_fetcher/database_service.pyThis module uses the new config.py file to get its database connection string, further centralizing the application's configuration.Setup and UsagePrerequisitesDocker and Docker Compose installed.InstallationInstall Poetry:If you don't have Poetry, install it following the official instructions.Clone the Repository:git clone <your-repo-url>
cd <your-repo-name>
Create and Fill .env file:Create a .env file in the root directory and copy the contents from .env.example. Fill in your specific credentials.Install Dependencies:From the oak/ directory, run:poetry install
Running the SystemThe docker-compose.yml file has been updated to use Redis and Celery.docker-compose up --build
This will start:The PostgreSQL database.A Redis service to act as a message broker.A Celery worker that listens for and executes tasks.The main application container, which will soon house your orchestrator.Running TestsTo run the unit tests, you will need Docker and Docker Compose installed. From the oak/ directory, simply run:poetry run pytest
Raw data
{
"_id": null,
"home_page": "https://github.com/pumulo/oak-agent-core",
"name": "oak-agent-core",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0.0,>=3.13.7",
"maintainer_email": null,
"keywords": "agentic, finance, rag, embeddings, ai",
"author": "Pumulo Sikaneta",
"author_email": "pumulo@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/22/54/d8e82b6fc821d444ab1d4a155f3e4069100a321891271653532801948932/oak_agent_core-0.1.9.tar.gz",
"platform": null,
"description": "oak - An Agentic ToolThis is the core library for our agentic tool. It is structured to be modular and scalable, with a clear separation of concerns, and is designed to be installed and used by other services, such as our LangChain agents.Project Structureoak/\n\u251c\u2500\u2500 src/\n\u2502 \u2514\u2500\u2500 oak/ # Main Python package\n\u2502 \u251c\u2500\u2500 __init__.py # Makes `oak` a Python package\n\u2502 \u251c\u2500\u2500 celery_app.py # Celery application instance for task management\n\u2502 \u251c\u2500\u2500 config.py # Configuration manager loaded from .env\n\u2502 \u251c\u2500\u2500 data/ # Data models and structures\n\u2502 \u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u2502 \u2514\u2500\u2500 modules/ # Domain-specific data modules\n\u2502 \u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u2502 \u251c\u2500\u2500 analytics/\n\u2502 \u2502 \u251c\u2500\u2500 current_events/\n\u2502 \u2502 \u251c\u2500\u2500 market_data/\n\u2502 \u2502 \u2514\u2500\u2500 stocks/\n\u2502 \u251c\u2500\u2500 prompts/ # Agent prompts and templates\n\u2502 \u2502 \u2514\u2500\u2500 __init__.py\n\u2502 \u251c\u2500\u2500 services/ # Core business logic and data fetchers\n\u2502 \u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u2502 \u2514\u2500\u2500 data_fetcher/\n\u2502 \u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u2502 \u251c\u2500\u2500 database_service.py\n\u2502 \u2502 \u2514\u2500\u2500 exceptions.py\n\u2502 \u251c\u2500\u2500 tasks/ # Celery task definitions\n\u2502 \u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u2502 \u2514\u2500\u2500 task_manager.py\n\u2502 \u2514\u2500\u2500 utils/ # Utility functions and helpers\n\u2502 \u2514\u2500\u2500 __init__.py\n\u251c\u2500\u2500 pyproject.toml # Project and dependency management\n\u251c\u2500\u2500 docker-compose.yml # Docker services configuration\n\u2514\u2500\u2500 .env.example # Example file for environment variables\nConfigurationFor security, sensitive data is stored in a .env file, which is loaded by the config.py module. This setup keeps credentials out of your codebase and makes it easy to manage different environments (development, testing, production).Key Componentsoak/src/oak/config.pyThis module defines a Config class that reads environment variables and provides them to the application. It ensures that required variables are present, and it allows for type casting, such as converting a string to a boolean or integer..env and .env.exampleThe .env file holds your actual secret credentials. It should be added to your .gitignore to prevent it from being committed to version control. The .env.example file is a template that shows other developers what environment variables your application expects.oak/src/oak/services/data_fetcher/database_service.pyThis module uses the new config.py file to get its database connection string, further centralizing the application's configuration.Setup and UsagePrerequisitesDocker and Docker Compose installed.InstallationInstall Poetry:If you don't have Poetry, install it following the official instructions.Clone the Repository:git clone <your-repo-url>\ncd <your-repo-name>\nCreate and Fill .env file:Create a .env file in the root directory and copy the contents from .env.example. Fill in your specific credentials.Install Dependencies:From the oak/ directory, run:poetry install\nRunning the SystemThe docker-compose.yml file has been updated to use Redis and Celery.docker-compose up --build\nThis will start:The PostgreSQL database.A Redis service to act as a message broker.A Celery worker that listens for and executes tasks.The main application container, which will soon house your orchestrator.Running TestsTo run the unit tests, you will need Docker and Docker Compose installed. From the oak/ directory, simply run:poetry run pytest",
"bugtrack_url": null,
"license": "MIT",
"summary": "A shared Python library for an agentic tool with a modular architecture, including a RAG service and financial data models.",
"version": "0.1.9",
"project_urls": {
"Documentation": "https://oak-agent-core.readthedocs.io",
"Homepage": "https://github.com/pumulo/oak-agent-core",
"Repository": "https://github.com/pumulo/oak-agent-core"
},
"split_keywords": [
"agentic",
" finance",
" rag",
" embeddings",
" ai"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "d40844f7adceca04f8f0a047d15f873b280e9752069010a2158572894abec1de",
"md5": "d6d592f9aaf00c07c77e2842c96ea612",
"sha256": "4ac9b3af24aaf503fbf938fb9f7ee2c64d5ac76766ec63d6434c3310fa42b62c"
},
"downloads": -1,
"filename": "oak_agent_core-0.1.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d6d592f9aaf00c07c77e2842c96ea612",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0.0,>=3.13.7",
"size": 31471,
"upload_time": "2025-09-17T13:39:08",
"upload_time_iso_8601": "2025-09-17T13:39:08.881059Z",
"url": "https://files.pythonhosted.org/packages/d4/08/44f7adceca04f8f0a047d15f873b280e9752069010a2158572894abec1de/oak_agent_core-0.1.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2254d8e82b6fc821d444ab1d4a155f3e4069100a321891271653532801948932",
"md5": "4576911e9836763992e440a57e527f74",
"sha256": "21bab875593213d723dccd8ac9efcefb45e40a13c1ab0b09df84301f3bc9099b"
},
"downloads": -1,
"filename": "oak_agent_core-0.1.9.tar.gz",
"has_sig": false,
"md5_digest": "4576911e9836763992e440a57e527f74",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0.0,>=3.13.7",
"size": 20007,
"upload_time": "2025-09-17T13:39:09",
"upload_time_iso_8601": "2025-09-17T13:39:09.761142Z",
"url": "https://files.pythonhosted.org/packages/22/54/d8e82b6fc821d444ab1d4a155f3e4069100a321891271653532801948932/oak_agent_core-0.1.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-17 13:39:09",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pumulo",
"github_project": "oak-agent-core",
"github_not_found": true,
"lcname": "oak-agent-core"
}