content: [tool.poetry]
  name = "openandroidinstaller"
  version = "0.5.5-beta"
  description = "Install lineage OS in a nice and easy way."
  authors = ["Tobias Sterbak <hello@openandroidinstaller.org>"]
  license = "GPLv3"
  readme = "README.md"
  homepage = "https://openandroidinstaller.org"
  include = ["openandroidinstaller/bin/*", "openandroidinstaller/bin/*/*"]
  
  [tool.poetry.dependencies]
  python = ">=3.11,<=3.12.3"
  click = "^8.1.3"
  flet = "^0.26.0"
  pyinstaller = "^5.3"
  Pillow = "^10.0.1"
  PyYAML = "^6.0"
  loguru = "^0.6.0"
  requests = ">=2.31.0"
  regex = "^2022.9.13"
  schema = "^0.7.5"
  py7zr = "^0.20.0"
  typing-extensions = "^4.7.1"
  requirements-parser = "^0.11.0"
  flet-desktop-light = "^0.26.0"
  certifi = "^2025.6.15"
  
  [tool.poetry.group.dev.dependencies]
  black = ">=24.3.0"
  ruff = "^0.9.6"
  isort = "^5.10.1"
  pre-commit = "^3.6.0"
  pytest = "^7.1.3"
  pytest-cov = "^4.0.0"
  pytest-mock = "^3.10.0"
  bandit = "^1.7.4"
  pytest-subprocess = "^1.5.0"
  mypy = "^1.0.0"
  
  [tool.poetry.requires-plugins]
  poetry-plugin-export = ">=1.8"
  
  [build-system]
  requires = ["poetry-core>=1.0.0"]
  build-backend = "poetry.core.masonry.api"
  
  [tool.ruff]
  # Exclude a variety of commonly ignored directories.
  exclude = [
      ".bzr",
      ".direnv",
      ".eggs",
      ".git",
      ".git-rewrite",
      ".hg",
      ".ipynb_checkpoints",
      ".mypy_cache",
      ".nox",
      ".pants.d",
      ".pyenv",
      ".pytest_cache",
      ".pytype",
      ".ruff_cache",
      ".svn",
      ".tox",
      ".venv",
      ".vscode",
      "__pypackages__",
      "_build",
      "buck-out",
      "build",
      "dist",
      "node_modules",
      "site-packages",
      "venv",
      "scripts/lineageos-*", # exclude the experimental lineageos scripts
  ]
  
  # Same as Black.
  line-length = 88
  indent-width = 4
  # Never enforce `E501`. line length
  #exclude = ["E501"]
  
  # Assume Python 3.8
  target-version = "py38"
  
  [tool.ruff.lint]
  # Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`)  codes by default.
  # Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or
  # McCabe complexity (`C901`) by default.
  select = ["E4", "E7", "E9", "F"]
  ignore = []
  
  # Allow fix for all enabled rules (when `--fix`) is provided.
  fixable = ["ALL"]
  unfixable = []
  
  # Allow unused variables when underscore-prefixed.
  dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
  
  [tool.ruff.format]
  # Like Black, use double quotes for strings.
  quote-style = "double"
  
  # Like Black, indent with spaces, rather than tabs.
  indent-style = "space"
  
  # Like Black, respect magic trailing commas.
  skip-magic-trailing-comma = false
  
  # Like Black, automatically detect the appropriate line ending.
  line-ending = "auto"
  
  # Enable auto-formatting of code examples in docstrings. Markdown,
  # reStructuredText code/literal blocks and doctests are all supported.
  #
  # This is currently disabled by default, but it is planned for this
  # to be opt-out in the future.
  docstring-code-format = false
  
  # Set the line length limit used when formatting code snippets in
  # docstrings.
  #
  # This only has an effect when the `docstring-code-format` setting is
  # enabled.
  docstring-code-line-length = "dynamic"
  