[project] name = "resume_maker_ai_agent" version = "0.0.1" description = "This app will modify the resume as per the job description." readme = "README.md" authors = [{ name = "Deepak Pant", email = "deepak.93p@gmail.com" }] requires-python = ">=3.10,<=3.13" dependencies = [ "crewai[tools]>=0.86.0,<1.0.0", "streamlit >=1.41.1", # "python-docx >=1.1.2", "pypdf (>=5.1.0,<6.0.0)", "pysqlite3-binary >=0.5.4", ] [project.urls] repository = "https://github.com/DeepakPant93/resume-maker-ai-agent" documentation = "https://DeepakPant93.github.io/resume-maker-ai-agent/" [project.optional-dependencies] dev = [ "deptry==0.16.2", "mypy==1.5.1", "pre-commit==3.4.0", "tox==4.11.1", "ipykernel==6.25.0", "black==23.9.0", "build==1.2.2", "bump-my-version==0.28.2", "codespell==2.2.5", "wheel==0.41.0", "twine==4.0.0", "bandit==1.8.0", "pylint==3.0.0", "pydocstyle==6.3.0", ] docs = [ "mkdocs==1.5.0", "sphinx==7.2.0", "mkdocs-git-revision-date-plugin==0.3.2", "mkdocs-git-revision-date-localized-plugin==1.3.0", "mkdocs-jupyter>=0.25.1", "mkdocs-pdf-export-plugin==0.5.10", "mkdocs-material>=9.1.3", "mkdocstrings-crystal==0.3.7", "pygments==2.16.0", "pymdown-extensions==10.0", "nbconvert==7.16.5", "nbformat==5.9.0", "livereload==2.6.3", "watchdog==3.0.0", "mkdocstrings[python]==0.27.0", "mkdocs-minify-plugin==0.8.0", ] [project.scripts] resume_maker_ai_agent = "resume_maker_ai_agent.__main__:main" [build-system] requires = ["poetry-core>=2.0.0"] build-backend = "poetry.core.masonry.api" [tool.mypy] files = ["resume_maker_ai_agent"] disallow_untyped_defs = true disallow_any_unimported = true no_implicit_optional = true check_untyped_defs = true warn_return_any = true warn_unused_ignores = true show_error_codes = true pretty = true show_traceback = true ignore_missing_imports = true exclude = ['.venv/', 'venv/', '.env/', 'env/'] [[tool.mypy.overrides]] module = [ "joblib.*", "yaml.*", "ensure.*", "fastapi_health.*", "crewai.*", "crewai_tools.*", "bs4.*", "streamlit.*", "sql_connection.*", "connections.*", "resume_maker_ai_agent.crew", ] ignore_missing_imports = true ignore_errors = true # disable_error_code = ["import-untyped", "import-not-found", "redundant-cast"] [tool.pytest.ini_options] testpaths = ["tests"] norecursedirs = "legacy_tests" python_files = ["test_*.py"] python_classes = ["Test*"] python_functions = ["test_*"] filterwarnings = [ "ignore:.*general_plain_validator_function.*:DeprecationWarning", "ignore:.*with_info_plain_validator_function.*:DeprecationWarning", ] [tool.ruff] target-version = "py39" line-length = 120 fix = true select = [ # flake8-2020 "YTT", # flake8-bandit "S", # flake8-bugbear "B", # flake8-builtins "A", # flake8-comprehensions "C4", # flake8-debugger "T10", # flake8-simplify "SIM", # isort "I", # mccabe "C90", # pycodestyle "E", "W", # pyflakes "F", # pygrep-hooks "PGH", # pyupgrade "UP", # ruff "RUF", # tryceratops "TRY", ] ignore = [ # LineTooLong "E501", # DoNotAssignLambda "E731", # Possible binding to all interfaces - Require for Docker container "S104", ] [tool.ruff.format] preview = true [tool.coverage.report] skip_empty = true [tool.coverage.run] branch = true source = ["resume_maker_ai_agent"] # parallel = true # concurrency = ["thread"] omit = [ "**/__init__.py", # Exclude all init files "resume_maker_ai_agent/crew.py", # Exclude crew.py file "resume_maker_ai_agent/config/*", # Exclude all files in config folder "resume_maker_ai_agent/models/*", # Exclude all files in model folder ] [tool.ruff.per-file-ignores] "tests/*" = ["S101"] [tool.bumpversion] current_version = "0.0.1" commit = true tag = true [[tool.bumpversion.files]] glob = "pyproject.toml" search = 'version = "{current_version}"' replace = 'version = "{new_version}"' [tool.deptry] exclude = [ "research", "artifacts", "notebooks", "tests", "docs", ".venv", "venv", "__pycache__", ".ruff_cache", ".pytest_cache", ".mypy_cache", ".coverage", ".git", "build", "dist", ".github", "site", "config", ] ignore = ["DEP003"] [tool.pydocstyle] select = ["D101", "D102"] [tool.isort] profile = "black" known_third_party = ["requests", "bs4", "pydantic", "crewai_tools"] default_section = "THIRDPARTY" force_sort_within_sections = true line_length = 120