pyproject.toml 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. # Poetry pyproject.toml: https://python-poetry.org/docs/pyproject/
  2. [build-system]
  3. requires = ["poetry_core>=1.0.0"]
  4. build-backend = "poetry.core.masonry.api"
  5. [tool.poetry]
  6. name = "tlc"
  7. version = "0.9.0"
  8. description = "Transfer List Compiler (TLC) is a Python-based CLI for efficiently handling transfer lists."
  9. authors = ["Arm Ltd <tf-a@lists.trustedfirmware.org>"]
  10. license = "BSD-3"
  11. repository = "https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/"
  12. homepage = "https://trustedfirmware-a.readthedocs.io/en/latest/index.html"
  13. # Keywords description https://python-poetry.org/docs/pyproject/#keywords
  14. keywords = [] #! Update me
  15. # Pypi classifiers: https://pypi.org/classifiers/
  16. classifiers = [
  17. "Development Status :: 3 - Alpha",
  18. "Intended Audience :: Developers",
  19. "Operating System :: OS Independent",
  20. "Topic :: Software Development :: Libraries :: Python Modules",
  21. "License :: OSI Approved :: BSD License",
  22. "Programming Language :: Python :: 3",
  23. "Programming Language :: Python :: 3.8",
  24. "Programming Language :: Python :: 3.9",
  25. ]
  26. [tool.poetry.scripts]
  27. # Entry points for the package https://python-poetry.org/docs/pyproject/#scripts
  28. "tlc" = "tlc.__main__:cli"
  29. [tool.poetry.dependencies]
  30. python = "^3.8"
  31. typer = {extras = ["all"], version = "^0.4.0"}
  32. rich = "^10.14.0"
  33. click = "^8.1.7"
  34. pyyaml = "^6.0.1"
  35. tox = "^4.18.0"
  36. jinja2 = "^3.1.4"
  37. [tool.poetry.group.dev]
  38. optional = true
  39. [tool.poetry.group.dev.dependencies]
  40. bandit = "^1.7.1"
  41. tox = "^4.18.0"
  42. darglint = "^1.8.1"
  43. black = "^24.4.2"
  44. isort = {extras = ["colors"], version = "^5.10.1"}
  45. mypy = "^0.910"
  46. mypy-extensions = "^0.4.3"
  47. pre-commit = "^2.15.0"
  48. pydocstyle = "^6.1.1"
  49. pylint = "^2.11.1"
  50. pytest = "^8.0.0"
  51. pyupgrade = "^2.29.1"
  52. safety = "^2.2.0"
  53. coverage = "^6.1.2"
  54. coverage-badge = "^1.1.0"
  55. pytest-html = "^4.1.1"
  56. pytest-cov = "5.0.0"
  57. [tool.black]
  58. # https://github.com/psf/black
  59. target-version = ["py38"]
  60. line-length = 88
  61. color = true
  62. exclude = '''
  63. /(
  64. \.git
  65. | \.hg
  66. | \.mypy_cache
  67. | \.tox
  68. | \.venv
  69. | _build
  70. | buck-out
  71. | build
  72. | dist
  73. | env
  74. | venv
  75. )/
  76. '''
  77. [tool.isort]
  78. # https://github.com/timothycrosley/isort/
  79. py_version = 38
  80. line_length = 88
  81. known_typing = ["typing", "types", "typing_extensions", "mypy", "mypy_extensions"]
  82. sections = ["FUTURE", "TYPING", "STDLIB", "THIRDPARTY", "FIRSTPARTY", "LOCALFOLDER"]
  83. include_trailing_comma = true
  84. profile = "black"
  85. multi_line_output = 3
  86. indent = 4
  87. color_output = true
  88. [tool.mypy]
  89. # https://mypy.readthedocs.io/en/latest/config_file.html#using-a-pyproject-toml-file
  90. python_version = 3.8
  91. pretty = true
  92. show_traceback = true
  93. color_output = true
  94. allow_redefinition = false
  95. check_untyped_defs = true
  96. disallow_any_generics = true
  97. disallow_incomplete_defs = true
  98. ignore_missing_imports = true
  99. implicit_reexport = false
  100. no_implicit_optional = true
  101. show_column_numbers = true
  102. show_error_codes = true
  103. show_error_context = true
  104. strict_equality = true
  105. strict_optional = true
  106. warn_no_return = true
  107. warn_redundant_casts = true
  108. warn_return_any = true
  109. warn_unreachable = true
  110. warn_unused_configs = true
  111. warn_unused_ignores = true
  112. [tool.pytest.ini_options]
  113. # https://docs.pytest.org/en/6.2.x/customize.html#pyproject-toml
  114. # Directories that are not visited by pytest collector:
  115. norecursedirs =["hooks", "*.egg", ".eggs", "dist", "build", "docs", ".tox", ".git", "__pycache__"]
  116. doctest_optionflags = ["NUMBER", "NORMALIZE_WHITESPACE", "IGNORE_EXCEPTION_DETAIL"]
  117. # Extra options:
  118. addopts = [
  119. "--strict-markers",
  120. "--tb=short",
  121. "--doctest-modules",
  122. "--doctest-continue-on-failure",
  123. ]
  124. [tool.coverage.run]
  125. source = ["tests"]
  126. branch = true
  127. [tool.coverage.paths]
  128. source = ["tlc"]
  129. [tool.coverage.report]
  130. fail_under = 50
  131. show_missing = true