[build-system]
requires = ["setuptools>=68.2,<80", "wheel"]

{% if news_folder_exists %}
[tool.towncrier]
directory = "news/"
{% if changes_extension == 'rst' %}
filename = "CHANGES.rst"
title_format = "{version} ({project_date})"
underlines = ["-", ""]
{% endif %}
{% if changes_extension == 'md' %}
filename = "CHANGES.md"
start_string = "<!-- towncrier release notes start -->\n"
title_format = "## {version} ({project_date})"
template = "news/.changelog_template.jinja"
underlines = ["", "", ""]
{% endif %}
{% if towncrier_issue_format %}
issue_format = "%(towncrier_issue_format)s"
{% endif %}

[[tool.towncrier.type]]
directory = "breaking"
name = "Breaking changes:"
showcontent = true

[[tool.towncrier.type]]
directory = "feature"
name = "New features:"
showcontent = true

[[tool.towncrier.type]]
directory = "bugfix"
name = "Bug fixes:"
showcontent = true

[[tool.towncrier.type]]
directory = "internal"
name = "Internal:"
showcontent = true

[[tool.towncrier.type]]
directory = "documentation"
name = "Documentation:"
showcontent = true

[[tool.towncrier.type]]
directory = "tests"
name = "Tests:"
showcontent = true
%(towncrier_extra_lines)s
{% endif %}
##
# Add extra configuration options in .meta.toml:
#  [pyproject]
#  towncrier_extra_lines = """
#  extra_configuration
#  """
##

[tool.isort]
profile = "plone"
%(isort_extra_lines)s
##
# Add extra configuration options in .meta.toml:
#  [pyproject]
#  isort_extra_lines = """
#  extra_configuration
#  """
##

[tool.black]
target-version = ["py38"]
%(black_extra_lines)s
##
# Add extra configuration options in .meta.toml:
#  [pyproject]
#  black_extra_lines = """
#  extra_configuration
#  """
##

[tool.codespell]
ignore-words-list = "discreet,assertin,thet,%(codespell_ignores)s"
skip = "*.po,%(codespell_skip)s"
##
# Add extra configuration options in .meta.toml:
#  [pyproject]
#  codespell_ignores = "foo,bar"
#  codespell_skip = "*.po,*.map,package-lock.json"
##

[tool.dependencychecker]
Zope = [
  # Zope own provided namespaces
  'App', 'OFS', 'Products.Five', 'Products.OFSP', 'Products.PageTemplates',
  'Products.SiteAccess', 'Shared', 'Testing', 'ZPublisher', 'ZTUtils',
  'Zope2', 'webdav', 'zmi',
  # ExtensionClass own provided namespaces
  'ExtensionClass', 'ComputedAttribute', 'MethodObject',
  # Zope dependencies
  'AccessControl', 'Acquisition', 'AuthEncoding', 'beautifulsoup4', 'BTrees',
  'cffi', 'Chameleon', 'DateTime', 'DocumentTemplate',
  'MultiMapping', 'multipart', 'PasteDeploy', 'Persistence', 'persistent',
  'pycparser', 'python-gettext', 'pytz', 'RestrictedPython', 'roman',
  'soupsieve', 'transaction', 'waitress', 'WebOb', 'WebTest', 'WSGIProxy2',
  'z3c.pt', 'zc.lockfile', 'ZConfig', 'zExceptions', 'ZODB', 'zodbpickle',
  'zope.annotation', 'zope.browser', 'zope.browsermenu', 'zope.browserpage',
  'zope.browserresource', 'zope.cachedescriptors', 'zope.component',
  'zope.configuration', 'zope.container', 'zope.contentprovider',
  'zope.contenttype', 'zope.datetime', 'zope.deferredimport',
  'zope.deprecation', 'zope.dottedname', 'zope.event', 'zope.exceptions',
  'zope.filerepresentation', 'zope.globalrequest', 'zope.hookable',
  'zope.i18n', 'zope.i18nmessageid', 'zope.interface', 'zope.lifecycleevent',
  'zope.location', 'zope.pagetemplate', 'zope.processlifetime', 'zope.proxy',
  'zope.ptresource', 'zope.publisher', 'zope.schema', 'zope.security',
  'zope.sequencesort', 'zope.site', 'zope.size', 'zope.structuredtext',
  'zope.tal', 'zope.tales', 'zope.testbrowser', 'zope.testing',
  'zope.traversing', 'zope.viewlet'
]
'Products.CMFCore' = [
  'docutils', 'five.localsitemanager', 'Missing', 'Products.BTreeFolder2',
  'Products.GenericSetup', 'Products.MailHost', 'Products.PythonScripts',
  'Products.StandardCacheManagers', 'Products.ZCatalog', 'Record',
  'zope.sendmail', 'Zope'
]
'plone.base' = [
  'plone.batching', 'plone.registry', 'plone.schema','plone.z3cform',
  'Products.CMFCore', 'Products.CMFDynamicViewFTI',
]
python-dateutil = ['dateutil']
pytest-plone = ['pytest', 'zope.pytestlayer', 'plone.testing', 'plone.app.testing']
{% if dependencies_ignores %}
ignore-packages = %(dependencies_ignores)s
{% endif %}
{% for line in dependencies_mappings %}
%(line)s
{% endfor %}

##
# Add extra configuration options in .meta.toml:
#  [pyproject]
#  dependencies_ignores = "['zestreleaser.towncrier']"
#  dependencies_mappings = [
#    "gitpython = ['git']",
#    "pygithub = ['github']",
#  ]
##

[tool.check-manifest]
ignore = [
    ".editorconfig",
    ".flake8",
    ".meta.toml",
    ".pre-commit-config.yaml",
    "dependabot.yml",
    "mx.ini",
    "tox.ini",
%(check_manifest_ignores)s
]
%(check_manifest_extra_lines)s
##
# Add extra configuration options in .meta.toml:
#  [pyproject]
#  check_manifest_ignores = """
#      "*.map.js",
#      "*.pyc",
#  """
#  check_manifest_extra_lines = """
#  ignore-bad-ideas = [
#      "some/test/file/PKG-INFO",
#  ]
#  """
##

%(extra_lines)s
##
# Add extra configuration options in .meta.toml:
#  [pyproject]
#  extra_lines = """
#  _your own configuration lines_
#  """
##
