[metadata]
name = pytest-salt-factories
description = Pytest Salt Plugin
long_description = file: README.rst
long_description_content_type = text/x-rst
author = Pedro Algarvio
author_email = pedro@algarvio.me
url = https://github.com/saltstack/pytest-salt-factories
project_urls =
    Source=https://github.com/saltstack/pytest-salt-factories
    Tracker=https://github.com/saltstack/pytest-salt-factories/issues
    Documentation=https://pytest-salt-factories.readthedocs.io
license = Apache Software License 2.0
classifiers =
    Programming Language :: Python
    Programming Language :: Cython
    Programming Language :: Python :: 3
    Programming Language :: Python :: 3 :: Only
    Programming Language :: Python :: 3.7
    Programming Language :: Python :: 3.8
    Programming Language :: Python :: 3.9
    Programming Language :: Python :: 3.10
    Programming Language :: Python :: 3.11
    Development Status :: 5 - Production/Stable
    Intended Audience :: Developers
    License :: OSI Approved :: Apache Software License
platforms = unix, linux, osx, cygwin, win32

[options]
zip_safe = False
include_package_data = True
package_dir =
    =src
packages = find:
python_requires = >= 3.7
setup_requires =
  setuptools>=50.3.2
  setuptools_scm[toml]>=3.4
  setuptools-declarative-requirements

[options.packages.find]
where = src
exclude =
  tests*

[options.extras_require]
docker=
  docker>=4.0.0
salt=
  salt>=3005

[requirements-files]
install_requires = requirements/base.txt
extras_require =
  docs = requirements/docs.txt
  lint = requirements/lint.txt
  tests = requirements/tests.txt
  changelog = requirements/changelog.txt

[options.entry_points]
console_scripts =
  salt-factories = saltfactories.__main__:main
pytest11=
  salt-factories = saltfactories.plugins
  salt-factories-factories = saltfactories.plugins.factories
  salt-factories-markers = saltfactories.plugins.markers
  salt-factories-sysinfo = saltfactories.plugins.sysinfo
  salt-factories-event-listener = saltfactories.plugins.event_listener
  salt-factories-log-server = saltfactories.plugins.log_server
  salt-factories-loader-mock = saltfactories.plugins.loader
salt.loader =
  engines_dirs      = saltfactories.utils.saltext:get_engines_dirs
  log_handlers_dirs =  saltfactories.utils.saltext:get_log_handlers_dirs

[bdist_wheel]
universal = false

[sdist]
owner = root
group = root

[flake8]
max-line-length = 120
exclude =
  # No need to traverse our git directory
  .git,
  # Nox virtualenvs are also not important
  .nox,
  # There's no value in checking cache directories
  __pycache__,
  # Don't check the auto generated version file
  src/pytestskipmarkers/version.py,
  # Package build stuff
  build,
  dist,
  # The conf file is mostly autogenerated, ignore it
  docs/conf.py,
  # Also ignore setup.py, it's mostly a shim
  setup.py,
  # Ignore our custom pre-commit hooks
  .pre-commit-hooks

per-file-ignores =
  # F401 imported but unused
  __init__.py: F401
  # D100 Missing docstring in public module
  # D103 Missing docstring in public function
  noxfile.py: D100,D102,D103,D107,D212,E501
  # F401 'socket.*' imported but unused
  # F403 'from socket import *' used; unable to detect undefined names
  src/pytestskipmarkers/utils/socket.py: F401,F403
  # D100 Missing docstring in public module
  # D101 Missing docstring in public class
  # D102 Missing docstring in public method
  # D103 Missing docstring in public function
  # D205 1 blank line required between summary line and description
  # D415 First line should end with a period, question mark, or exclamation poin
  tests/*.py: D100,D101,D102,D103,D205,D415
  # D100 Missing docstring in public module
  # D101 Missing docstring in public class
  # D102 Missing docstring in public method
  # D103 Missing docstring in public function
  # D105 Missing docstring in magic method
  # D415 First line should end with a period, question mark, or exclamation poin
  examples/*.py: D100,D101,D102,D103,D105,D415
  # D100 Missing docstring in public module
  src/saltfactories/utils/coverage/sitecustomize.py: D100
  # D100
  # F401 'pytestshellutils.utils.ports.*' imported but unused
  # F403 'from pytestshellutils.utils.ports import *' used; unable to detect undefined names
  src/saltfactories/utils/ports.py: D100,F401,F403
  # D100
  # F401 'pytestshellutils.utils.processes.*' imported but unused
  # F403 'from pytestshellutils.utils.processes import *' used; unable to detect undefined names
  src/saltfactories/utils/processes.py: D100,F401,F403

ignore =
  # D104 Missing docstring in public package
  D104,
  # D107 Missing docstring in __init__ - Class docstrings will cover __init__ docstrings
  D107,
  # D212 Multi-line docstring summary should start at the first line
  D212,
  # D200 One-line docstring should fit on one line with quotes
  D200,
  # W503 line break before binary operator
  W503

# Additional builtins
builtins =
  # __salt__ dunder
  __salt__
  # __opts__ dictionary
  __opts__
  # The system encoding that Salt injects into the globals
  __salt_system_encoding__

# flake8-docstrings config
docstring-convention = google


[mypy]
python_version = 3.7
mypy_path = src
ignore_missing_imports = True
no_implicit_optional = True
show_error_codes = True
strict_equality = True
warn_redundant_casts = True
warn_return_any = True
warn_unused_configs = True
warn_unused_ignores = True
disallow_any_generics = True
check_untyped_defs = True
no_implicit_reexport = True
