pyproject.toml 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. [build-system]
  2. requires = ["setuptools>=61.2"]
  3. build-backend = "setuptools.build_meta"
  4. [project]
  5. name = "dulwich"
  6. description = "Python Git Library"
  7. readme = "README.rst"
  8. authors = [{name = "Jelmer Vernooij", email = "jelmer@jelmer.uk"}]
  9. license = {text = "Apachev2 or later or GPLv2"}
  10. keywords = ["vcs", "git"]
  11. classifiers = [
  12. "Development Status :: 4 - Beta",
  13. "License :: OSI Approved :: Apache Software License",
  14. "Programming Language :: Python :: 3.9",
  15. "Programming Language :: Python :: 3.10",
  16. "Programming Language :: Python :: 3.11",
  17. "Programming Language :: Python :: 3.12",
  18. "Programming Language :: Python :: 3.13",
  19. "Programming Language :: Python :: Implementation :: CPython",
  20. "Programming Language :: Python :: Implementation :: PyPy",
  21. "Operating System :: POSIX",
  22. "Operating System :: Microsoft :: Windows",
  23. "Topic :: Software Development :: Version Control",
  24. ]
  25. requires-python = ">=3.9"
  26. dependencies = [
  27. "urllib3>=1.25",
  28. ]
  29. dynamic = ["version"]
  30. [project.urls]
  31. Homepage = "https://www.dulwich.io/"
  32. Repository = "https://www.dulwich.io/code/"
  33. GitHub = "https://github.com/dulwich/dulwich"
  34. "Bug Tracker" = "https://github.com/dulwich/dulwich/issues"
  35. [project.optional-dependencies]
  36. fastimport = ["fastimport"]
  37. https = ["urllib3>=1.24.1"]
  38. pgp = ["gpg"]
  39. paramiko = ["paramiko"]
  40. dev = [
  41. "ruff==0.8.1",
  42. "mypy==1.13.0"
  43. ]
  44. [project.scripts]
  45. dulwich = "dulwich.cli:main"
  46. [tool.mypy]
  47. ignore_missing_imports = true
  48. [tool.setuptools]
  49. packages = [
  50. "dulwich",
  51. "dulwich.cloud",
  52. "dulwich.contrib",
  53. "dulwich.tests",
  54. ]
  55. include-package-data = true
  56. zip-safe = false
  57. script-files = [
  58. "bin/dul-receive-pack",
  59. "bin/dul-upload-pack",
  60. ]
  61. license-files = ["COPYING"]
  62. [tool.setuptools.dynamic]
  63. version = {attr = "dulwich.__version__"}
  64. [tool.ruff.lint]
  65. select = [
  66. "ANN",
  67. "D",
  68. "E",
  69. "F",
  70. "I",
  71. "PIE",
  72. "UP",
  73. "RSE",
  74. "RUF",
  75. ]
  76. ignore = [
  77. "ANN001",
  78. "ANN002",
  79. "ANN003",
  80. "ANN201",
  81. "ANN202",
  82. "ANN204",
  83. "ANN205",
  84. "ANN206",
  85. "D100",
  86. "D101",
  87. "D102",
  88. "D103",
  89. "D104",
  90. "D105",
  91. "D107",
  92. "D204",
  93. "D205",
  94. "D417",
  95. "E501", # line too long
  96. ]
  97. [tool.ruff.lint.pydocstyle]
  98. convention = "google"
  99. [tool.cibuildwheel]
  100. environment = {PATH="$HOME/.cargo/bin:$PATH"}
  101. before-build = "pip install -U setuptools-rust && curl https://sh.rustup.rs -sSf | sh -s -- --profile=minimal -y && rustup show"
  102. [tool.cibuildwheel.linux]
  103. skip = "*-musllinux_*"
  104. archs = ["auto", "aarch64"]
  105. [tool.cibuildwheel.macos]
  106. archs = ["auto", "universal2", "x86_64", "arm64"]
  107. before-all = "rustup target add x86_64-apple-darwin aarch64-apple-darwin"
  108. skip = """\
  109. cp39-macosx_x86_64 cp39-macosx_universal2 \
  110. cp310-macosx_x86_64 cp310-macosx_universal2 \
  111. cp311-macosx_x86_64 cp311-macosx_universal2 \
  112. cp312-macosx_x86_64 cp312-macosx_universal2 \
  113. cp313-macosx_x86_64 cp313-macosx_universal2 \
  114. """