[project] name = "generative-ai-for-beginners" version = "1.0.0" description = "A comprehensive 21-lesson curriculum teaching everything you need to know to start building Generative AI applications" readme = "README.md" license = {text = "MIT"} requires-python = ">=3.10" authors = [ {name = "Jim Bennett", email = "jim.bennett@microsoft.com"} ] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Education", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Scientific/Engineering :: Artificial Intelligence", ] dependencies = [ "openai>=1.0.0", "python-dotenv>=1.0.0", "requests>=2.31.0", "azure-ai-inference>=1.0.0b1", "tiktoken>=0.5.0", ] [project.optional-dependencies] dev = [ "black>=24.0.0", "isort>=5.13.0", "mypy>=1.8.0", "ruff>=0.2.0", "pytest>=8.0.0", "pytest-cov>=4.1.0", ] [build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [tool.black] line-length = 100 target-version = ['py310', 'py311', 'py312'] include = '\.pyi?$' exclude = ''' /( \.eggs | \.git | \.hg | \.mypy_cache | \.tox | \.venv | _build | buck-out | build | dist | node_modules )/ ''' [tool.isort] profile = "black" line_length = 100 skip_gitignore = true known_first_party = ["generative_ai"] [tool.mypy] python_version = "3.10" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = false disallow_incomplete_defs = false check_untyped_defs = true ignore_missing_imports = true exclude = [ "node_modules", "venv", ".venv", "build", "dist", ] [tool.ruff] line-length = 100 target-version = "py310" [tool.ruff.lint] select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # Pyflakes "I", # isort "B", # flake8-bugbear "C4", # flake8-comprehensions "UP", # pyupgrade "S", # flake8-bandit (security) ] ignore = [ "E501", # line too long (handled by black) "S101", # use of assert (common in educational code) ] [tool.ruff.lint.per-file-ignores] "**/tests/**/*.py" = ["S101"] [tool.pytest.ini_options] testpaths = ["tests"] python_files = ["test_*.py", "*_test.py"] addopts = "-v --tb=short"