diff --git a/chatchat-server/pyproject.toml b/chatchat-server/pyproject.toml index ce63615f..82cd1fa9 100644 --- a/chatchat-server/pyproject.toml +++ b/chatchat-server/pyproject.toml @@ -79,6 +79,12 @@ optional = true ruff = "^0.1.5" +[tool.poetry.group.codespell] +optional = true + +[tool.poetry.group.codespell.dependencies] +codespell = "^2.2.0" + [tool.poetry.group.dev] optional = true @@ -222,4 +228,14 @@ markers = [ "scheduled: mark tests to run in scheduled testing", "compile: mark placeholder test used to compile integration tests without running them" ] -asyncio_mode = "auto" \ No newline at end of file +asyncio_mode = "auto" + + +[tool.codespell] +skip = '.git,*.pdf,*.svg,*.pdf,*.yaml,*.ipynb,poetry.lock,*.min.js,*.css,package-lock.json,example_data,_dist,examples,*.trig,*.json,*.md,*.html,*.txt,*.csv' +# Ignore latin etc +ignore-regex = '.*(Stati Uniti|Tense=Pres).*' +# whats is a typo but used frequently in queries so kept as is +# aapply - async apply +# unsecure - typo but part of API, decided to not bother for now +ignore-words-list = 'momento,collison,ned,foor,reworkd,parth,whats,aapply,mysogyny,unsecure,damon,crate,aadd,symbl,precesses,accademia,nin' diff --git a/model-providers/Makefile b/model-providers/Makefile new file mode 100644 index 00000000..2c913f03 --- /dev/null +++ b/model-providers/Makefile @@ -0,0 +1,85 @@ +.PHONY: all format lint test tests test_watch integration_tests docker_tests help extended_tests + +# Default target executed when no arguments are given to make. +all: help + +###################### +# TESTING AND COVERAGE +###################### + +# Define a variable for the test file path. +TEST_FILE ?= tests/unit_tests/ + +# Run unit tests and generate a coverage report. +coverage: + poetry run pytest --cov \ + --cov-config=.coveragerc \ + --cov-report xml \ + --cov-report term-missing:skip-covered \ + $(TEST_FILE) + +test tests: + poetry run pytest --disable-socket --allow-unix-socket $(TEST_FILE) + +extended_tests: + poetry run pytest --disable-socket --allow-unix-socket --only-extended tests/unit_tests + +test_watch: + poetry run ptw --snapshot-update --now . -- -x --disable-socket --allow-unix-socket tests/unit_tests + +test_watch_extended: + poetry run ptw --snapshot-update --now . -- -x --disable-socket --allow-unix-socket --only-extended tests/unit_tests + +integration_tests: + poetry run pytest tests/integration_tests + +scheduled_tests: + poetry run pytest -m scheduled tests/integration_tests + + +###################### +# LINTING AND FORMATTING +###################### + +# Define a variable for Python and notebook files. +PYTHON_FILES=. +MYPY_CACHE=.mypy_cache +lint format: PYTHON_FILES=. +lint_diff format_diff: PYTHON_FILES=$(shell git diff --relative=libs/langchain --name-only --diff-filter=d master | grep -E '\.py$$|\.ipynb$$') +lint_package: PYTHON_FILES=model_providers +lint_tests: PYTHON_FILES=tests +lint_tests: MYPY_CACHE=.mypy_cache_test + +lint lint_diff lint_package lint_tests: + ./scripts/check_pydantic.sh . + ./scripts/lint_imports.sh + poetry run ruff . + [ "$(PYTHON_FILES)" = "" ] || poetry run ruff format $(PYTHON_FILES) --diff + [ "$(PYTHON_FILES)" = "" ] || poetry run ruff --select I $(PYTHON_FILES) + [ "$(PYTHON_FILES)" = "" ] || mkdir -p $(MYPY_CACHE) && poetry run mypy $(PYTHON_FILES) --cache-dir $(MYPY_CACHE) + +format format_diff: + [ "$(PYTHON_FILES)" = "" ] || poetry run ruff format $(PYTHON_FILES) + [ "$(PYTHON_FILES)" = "" ] || poetry run ruff --select I --fix $(PYTHON_FILES) + +spell_check: + poetry run codespell --toml pyproject.toml + +spell_fix: + poetry run codespell --toml pyproject.toml -w + +###################### +# HELP +###################### + +help: + @echo '-- LINTING --' + @echo 'format - run code formatters' + @echo 'lint - run linters' + @echo 'spell_check - run codespell on the project' + @echo 'spell_fix - run codespell on the project and fix the errors' + @echo '-- TESTS --' + @echo 'coverage - run unit tests and generate coverage report' + @echo 'test - run unit tests' + @echo 'tests - run unit tests (alias for "make test")' + @echo 'test TEST_FILE= - run all tests in file' diff --git a/model-providers/pyproject.toml b/model-providers/pyproject.toml index 2ab88d8e..b9dde461 100644 --- a/model-providers/pyproject.toml +++ b/model-providers/pyproject.toml @@ -46,6 +46,12 @@ optional = true ruff = "^0.1.5" +[tool.poetry.group.codespell] +optional = true + +[tool.poetry.group.codespell.dependencies] +codespell = "^2.2.0" + [tool.poetry.group.dev] optional = true @@ -188,4 +194,15 @@ markers = [ "scheduled: mark tests to run in scheduled testing", "compile: mark placeholder test used to compile integration tests without running them" ] -asyncio_mode = "auto" \ No newline at end of file +asyncio_mode = "auto" + + + +[tool.codespell] +skip = '.git,*.pdf,*.svg,*.pdf,*.yaml,*.ipynb,poetry.lock,*.min.js,*.css,package-lock.json,example_data,_dist,examples,*.trig,*.json,*.md,*.html,*.txt,*.csv' +# Ignore latin etc +ignore-regex = '.*(Stati Uniti|Tense=Pres).*' +# whats is a typo but used frequently in queries so kept as is +# aapply - async apply +# unsecure - typo but part of API, decided to not bother for now +ignore-words-list = 'momento,collison,ned,foor,reworkd,parth,whats,aapply,mysogyny,unsecure,damon,crate,aadd,symbl,precesses,accademia,nin'