[tool.poetry] name = "jarvis" version = "2.5.4" description = "JARVIS admin bot" authors = ["Zevaryx "] [tool.poetry.dependencies] python = ">=3.11,<4" opencv-python = "^4.9.0.80" Pillow = "^10.3.0" psutil = "^5.9.8" ulid-py = "^1.1.0" jarvis-core = { git = "https://git.zevs.me/stark-industries/jarvis/jarvis-core.git", rev = "main" } # Mine aiohttp = ">=3.9.0b0" pastypy = "^1.0.3.post1" # Mine dateparser = "^1.2.0" aiofile = "^3.8.8" rich = "^13.7.1" jurigged = "^0.5.7" # Contributed ansitoimg = "^2024.2" nest-asyncio = "^1.6.0" thefuzz = { extras = [ "speedup", ], git = "https://github.com/zevaryx/thefuzz.git", rev = "master" } # Forked beautifulsoup4 = "^4.12.3" calculator = { git = "https://github.com/zevaryx/calculator.git" } # Mine redis = "^5.0.4" interactions-py = ">=5.13,<6" statipy = { git = "https://github.com/zevaryx/statipy", rev = "main" } beanie = "^1.25.0" pydantic = ">=2.7.1,<3" orjson = "^3.10.1" croniter = "^2.0.5" erapi = { git = "https://git.zevs.me/zevaryx-technologies/erapi.git" } pydantic-settings = "^2.2.1" [tool.poetry.group.dev.dependencies] pre-commit = "^3.7.0" pandas = "^2.2.2" black = "^24.4.2" [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