content: [build-system]
  requires = ["poetry-core"]
  build-backend = "poetry.core.masonry.api"
  
  [tool.black]
  line-length = 120
  include = '\.pyi?$'
  exclude = '''
  /(
      \.git
    | \.hg
    | \.mypy_cache
    | \.tox
    | \.venv
    | _build
    | buck-out
    | build
    | dist
  )/
  '''
  
  [tool.poetry]
  name = "myjwt"
  version = "2.0.0"
  description = ""
  authors = ["mBouamama <matthieubouamama@gmail.com>"]
  readme = "README.md"
  packages = [{include = "myjwt"}]
  
  [tool.poetry.dependencies]
  python = "^3.10.0"
  click = "^8.1.7"
  colorama = "^0.4.6"
  cryptography = "^42.0.8"
  exrex = "^0.11.0"
  pyopenssl = "^24.1.0"
  pyperclip = "^1.9.0"
  questionary = "^2.0.1"
  requests = "^2.32.3"
  
  [tool.poetry.group.dev.dependencies]
  coverage = "^7.5.4"
  pytest = "^8.2.2"
  pytest-mock = "^3.14.0"
  requests-mock = "^1.12.1"
  tox-poetry-installer = {extras = ["poetry"], version = "^0.10.3"}
  [tool.poetry.group.lint.dependencies]
  docstr-coverage = "^2.3.2"
  ruff = "^0.5.1"
  mypy = "^1.10.1"
  types-openssl-python = "^0.1.3"
  types-pyopenssl = "^24.1.0.20240425"
  types-cryptography = "^3.3.23.2"
  
  
  [tool.mypy]
  ignore_missing_imports = true
  warn_return_any = true
  warn_unreachable = true
  warn_unused_configs = true
  follow_imports = "normal"
  show_column_numbers = true
  strict_optional = true
  warn_redundant_casts = true
  pretty = false
  strict = true
  warn_unused_ignores = true
  check_untyped_defs = true
  disallow_untyped_calls = true
  disallow_untyped_defs = true
  disallow_untyped_decorators = false
  strict_equality = true
  exclude = "^(migrations|ignore)/"
  [tool.pydantic-mypy]
  init_forbid_extra = true
  init_typed = true
  warn_required_dynamic_aliases = true
  [tool.ruff]
  line-length = 120
  indent-width = 4
  
  [tool.ruff.lint]
  extend-select = ["I"]
  select = [
      "E",  # pycodestyle errors
      "W",  # pycodestyle warnings
      "F",  # pyflakes
      "I",  # isort
      "C",  # flake8-comprehensions
      "B",  # flake8-bugbear
      "UP",  # pyupgrade
      "ARG",
  ]
  ignore = [
      "E501",  # line too long, handled by black
      "B008",  # do not perform function calls in argument defaults
      "B006",  # do not perform function calls in argument defaults
      "C901", # function is too complex disabled for now
  ]
  
  [tool.ruff.format]
  quote-style = "double"
  indent-style = "space"
  skip-magic-trailing-comma = false
  line-ending = "auto"
  
  [tool.ruff.lint.isort]
  section-order = ["future", "standard-library", "third-party", "first-party", "local-folder"]
  relative-imports-order = "furthest-to-closest"
  known-third-party = ["fastapi", "pydantic", "starlette", "redis"]
  
  [tool.ruff.lint.pyupgrade]
  # Preserve types, even if a file imports `from __future__ import annotations`.
  keep-runtime-typing = true