jarvis-bot/pyproject.toml
2024-03-17 00:11:11 -06:00

152 lines
4.1 KiB
TOML

[tool.poetry]
name = "jarvis"
version = "2.5.4"
description = "JARVIS admin bot"
authors = ["Zevaryx <zevaryx@gmail.com>"]
[tool.poetry.dependencies]
python = ">=3.11,<4"
PyYAML = "^6.0"
GitPython = "^3.1.26"
opencv-python = "^4.5.5"
Pillow = "^9.0.0"
psutil = "^5.9.0"
python-gitlab = "^3.1.1"
ulid-py = "^1.1.0"
tweepy = "^4.5.0"
jarvis-core = { git = "https://git.zevaryx.com/stark-industries/jarvis/jarvis-core.git", rev = "main" } # Mine
aiohttp = ">=3.9.0b0"
pastypy = "^1.0.3.post1" # Mine
dateparser = "^1.1.1"
aiofile = "^3.8.1"
asyncpraw = "^7.5.0"
rich = "^12.3.0"
jurigged = "^0.5.3" # Contributed
ansitoimg = "^2022.1"
nest-asyncio = "^1.5.5"
thefuzz = { extras = [
"speedup",
], git = "https://github.com/zevaryx/thefuzz.git", rev = "master" } # Forked
beautifulsoup4 = "^4.11.1"
calculator = { git = "https://git.zevaryx.com/zevaryx/calculator.git" } # Mine
redis = "^4.4.0"
interactions-py = ">=5.3,<6"
statipy = { git = "https://github.com/zevaryx/statipy", rev = "main" }
beanie = "^1.17.0"
pydantic = ">=2.3.0,<3"
orjson = "^3.8.8"
croniter = "^1.4.1"
erapi = { git = "https://git.zevaryx.com/zevaryx-technologies/erapi.git" }
pydantic-settings = "^2.2.1"
[tool.poetry.group.dev.dependencies]
pre-commit = "^3.6.2"
pandas = "^1.5.3"
black = "^23.1.0"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.pytest.ini_options]
minversion = "8.0"
testpaths = ["tests"]
addopts = "--cov=spamback --cov-report term --cov-report xml:coverage.xml"
[tool.black]
line-length = 120
[tool.isort]
profile = "black"
skip = ["__init__.py"]
[tool.mypy]
ignore_missing_imports = true
[tool.pyright]
useLibraryCodeForTypes = true
reportMissingImports = false
[tool.ruff]
line-length = 120
target-version = "py312"
output-format = "full"
[tool.ruff.lint]
task-tags = ["TODO", "FIXME", "XXX", "HACK", "REVIEW", "NOTE"]
select = ["E", "F", "B", "Q", "RUF", "D", "ANN", "RET", "C"]
ignore-init-module-imports = true
ignore = [
"Q0",
"E501",
# These default to arguing with Black. We might configure some of them eventually
"ANN1",
# These insist that we have Type Annotations for self and cls.
"D105",
"D107",
# Missing Docstrings in magic method and __init__
"D401",
# First line should be in imperative mood; try rephrasing
"D400",
"D415",
# First line should end with a period
"D106",
# Missing docstring in public nested class. This doesn't work well with Metadata classes.
"D417",
# Missing argument in the docstring
"D406",
# Section name should end with a newline
"D407",
# Missing dashed underline after section
"D212",
# Multi-line docstring summary should start at the first line
"D404",
# First word of the docstring should not be This
"D203",
# 1 blank line required before class docstring
# Everything below this line is something we care about, but don't currently meet
"ANN001",
# Missing type annotation for function argument 'token'
"ANN002",
# Missing type annotation for *args
"ANN003",
# Missing type annotation for **kwargs
"ANN401",
# Dynamically typed expressions (typing.Any) are disallowed
# "B009",
# Do not call getattr with a constant attribute value, it is not any safer than normal property access.
"B010",
# Do not call setattr with a constant attribute value, it is not any safer than normal property access.
"D100",
# Missing docstring in public module
"D101",
# ... class
"D102",
# ... method
"D103",
# ... function
"D104",
# ... package
"E712",
# Ignore == True because of Beanie
# Plugins we don't currently include: flake8-return
"RET503",
# missing explicit return at the end of function ableto return non-None value.
"RET504",
# unecessary variable assignement before return statement.
]
[tool.ruff.lint.flake8-quotes]
docstring-quotes = "double"
[tool.ruff.lint.flake8-annotations]
mypy-init-return = true
suppress-dummy-args = true
suppress-none-returning = true
[tool.ruff.lint.flake8-errmsg]
max-string-length = 20
[tool.ruff.lint.mccabe]
max-complexity = 13