Metadata-Version: 2.4
Name: fred-core
Version: 1.3.3
Summary: Core shared utilities for Fred backends (config, storage, security, and runtime helpers).
Author-email: Thales <noreply@thalesgroup.com>
License: Apache-2.0
Project-URL: Homepage, https://fredk8.dev
Project-URL: Repository, https://github.com/ThalesGroup/fred
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Operating System :: OS Independent
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: fastapi==0.116.1
Requires-Dist: prometheus-client>=0.20.5
Requires-Dist: pyjwt<3.0.0,>=2.10.1
Requires-Dist: psycopg[binary]>=3.1.0
Requires-Dist: opensearch-py==2.8.0
Requires-Dist: pandas<3.0.0,>=2.2.2
Requires-Dist: pydantic<3.0.0,>=2.5.2
Requires-Dist: python-dotenv<2.0.0,>=1.0.1
Requires-Dist: sqlalchemy>=2.0.42
Requires-Dist: sqlparse>=0.5.3
Requires-Dist: httpx>=0.28.1
Requires-Dist: langchain-core>=1.2.12
Requires-Dist: langchain-google-genai>=4.2.1
Requires-Dist: langchain-ollama>=1.0.1
Requires-Dist: langchain-mistralai>=1.1.2
Requires-Dist: langchain-google-vertexai>=3.2.2
Requires-Dist: langchain-openai>=1.1.11
Requires-Dist: azure-identity>=1.25.0
Requires-Dist: authzed>=1.22.1
Requires-Dist: openfga-sdk>=0.9.9
Requires-Dist: python-keycloak>=5.8.1
Requires-Dist: minio>=7.2.20
Requires-Dist: temporalio>=1.14.1
Requires-Dist: uv>=0.9.15
Requires-Dist: asyncpg>=0.31.0
Requires-Dist: aiosqlite>=0.22.1
Provides-Extra: migration
Requires-Dist: alembic>=1.18.4; extra == "migration"
Provides-Extra: dev
Requires-Dist: alembic>=1.18.4; extra == "dev"
Requires-Dist: bandit>=1.8.6; extra == "dev"
Requires-Dist: basedpyright==1.31.0; extra == "dev"
Requires-Dist: detect-secrets>=1.5.0; extra == "dev"
Requires-Dist: pytest>=8.4.2; extra == "dev"
Requires-Dist: pytest-asyncio>=1.2.0; extra == "dev"
Requires-Dist: pytest-cov>=6.2.1; extra == "dev"
Requires-Dist: ruff>=0.12.5; extra == "dev"

# Fred Core

`fred-core` is the shared utility layer for Fred backends. It centralizes the
foundational building blocks that must stay consistent across services.

What it provides
----------------
- Configuration helpers used by multiple backends.
- Storage and session primitives.
- Security and access-control utilities (ReBAC helpers, Keycloak helpers).
- Common runtime helpers (logging, KPI, scheduling utilities).

What it is not
-------------
- A full runtime or service on its own.
- A public SDK for agent authoring (that is `fred-sdk`).

Install
-------
```bash
pip install fred-core
```

Usage (example)
---------------
Fred backends import shared helpers from `fred_core` to keep configuration and
behavior aligned:

```python
import logging

from fred_core.common.config_files import ConfigFiles

logger = logging.getLogger("fred")
config_files = ConfigFiles(logger=logger)
env_path = config_files.load_environment()
yaml_path = config_files.resolve_config_file_path()
```

Notes
-----
`fred-core` is designed for internal Fred services and adapters. If you are
building agents or workflows, you likely want `fred-sdk` instead. In most
cases, end users should not install `fred-core` directly because it is pulled
in transitively by `fred-sdk`.
