diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 58cdabe..dfbb0ab 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -30,7 +30,7 @@ jobs: uses: actions/cache@v2 with: path: ~/.cache/pip - key: ${{ matrix.tox-env }}-${{ runner.os }} + key: ${{ runner.os }}-pip-${{ hashFiles('**/pyproject.toml') }} - name: Set up environment run: | pip install --upgrade pip wheel setuptools diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..715c79e --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,8 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..c62bbc9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,3 @@ +FROM python:3.10-slim + +CMD python \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index b4edde7..da0f948 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,11 +11,91 @@ readme = "README.md" requires-python = ">=3.10" dynamic = ["version"] dependencies = [ + "aiosqlite", + "asgi-correlation-id", + "bluepyefe", + "efel", + "fastapi", + "langchain", + "langchain-cohere", + "langchain-openai", + "langgraph", + "langgraph-checkpoint-postgres", + "langgraph-checkpoint-sqlite", + "neurom", + "psycopg2-binary", + "pydantic-settings", + "python-dotenv", + "python-keycloak", + "python-multipart", + "sqlalchemy", + "uvicorn", ] +[project.optional-dependencies] +dev = [ + "bandit[toml]", + "mypy", + "pytest", + "pytest-asyncio", + "pytest-cov", + "pytest-httpx", + "responses", + "ruff", + "types-requests", + ] + +[project.scripts] +neuroagent-api = "neuroagent.scripts.neuroagent_api:main" + [tool.setuptools.dynamic] version = {attr = "neuroagent.__version__"} [tool.setuptools.packages.find] where = ["src"] -namespaces = false \ No newline at end of file +namespaces = false + +[tool.bandit] +exclude_dirs = ["tests"] + +[tool.black] +line-length = 88 +preview = true + +[tool.ruff] +line-length = 88 +target-version = "py310" + +[tool.ruff.lint] +select = ["E4", "E7", "E9", "F", "I", "D"] + +[tool.ruff.lint.pydocstyle] +convention = "numpy" + +[tool.ruff.lint.per-file-ignores] +"tests/*" = ["D"] + +[tool.mypy] +mypy_path = "src" +python_version = "3.10" +ignore_missing_imports = true +no_implicit_optional = true +check_untyped_defs = true +strict_equality = true +warn_redundant_casts = true +warn_unused_ignores = true +show_error_codes = true +disallow_any_generics = true +disallow_incomplete_defs = true +disallow_untyped_defs = true +plugins = [ + "pydantic.mypy", "sqlalchemy.ext.mypy.plugin" +] + +[tool.pytest.ini_options] +minversion = "6.0" +testpaths = [ + "tests", +] + +addopts = "--cov=src/ --cov=tests/ -v --cov-report=term-missing --durations=20 --no-cov-on-fail" diff --git a/src/neuroagent/__init__.py b/src/neuroagent/__init__.py index 3aa0d7b..3ea7d87 100644 --- a/src/neuroagent/__init__.py +++ b/src/neuroagent/__init__.py @@ -1 +1,3 @@ -__version__ = "0.0.0" \ No newline at end of file +"""Neuroagent package.""" + +__version__ = "0.0.0" diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..f53f6a0 --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1 @@ +"""Neuroagent tests.""" diff --git a/tests/test_dummy.py b/tests/test_dummy.py new file mode 100644 index 0000000..f450c55 --- /dev/null +++ b/tests/test_dummy.py @@ -0,0 +1,5 @@ +"""Dummy test""" + + +def test_dummy(): + assert True