pyproject.toml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. [build-system]
  2. requires = ["setuptools>=61.0", "wheel"]
  3. build-backend = "setuptools.build_meta"
  4. [project]
  5. name = "skill-seekers"
  6. version = "2.1.1"
  7. description = "Convert documentation websites, GitHub repositories, and PDFs into Claude AI skills"
  8. readme = "README.md"
  9. requires-python = ">=3.10"
  10. license = {text = "MIT"}
  11. authors = [
  12. {name = "Yusuf Karaaslan"}
  13. ]
  14. keywords = [
  15. "claude",
  16. "ai",
  17. "documentation",
  18. "scraping",
  19. "skills",
  20. "llm",
  21. "mcp",
  22. "automation"
  23. ]
  24. classifiers = [
  25. "Development Status :: 4 - Beta",
  26. "Intended Audience :: Developers",
  27. "License :: OSI Approved :: MIT License",
  28. "Operating System :: OS Independent",
  29. "Programming Language :: Python :: 3",
  30. "Programming Language :: Python :: 3.10",
  31. "Programming Language :: Python :: 3.11",
  32. "Programming Language :: Python :: 3.12",
  33. "Programming Language :: Python :: 3.13",
  34. "Topic :: Software Development :: Documentation",
  35. "Topic :: Software Development :: Libraries :: Python Modules",
  36. "Topic :: Text Processing :: Markup :: Markdown",
  37. ]
  38. # Core dependencies
  39. dependencies = [
  40. "requests>=2.32.5",
  41. "beautifulsoup4>=4.14.2",
  42. "PyGithub>=2.5.0",
  43. "mcp>=1.18.0",
  44. "httpx>=0.28.1",
  45. "httpx-sse>=0.4.3",
  46. "PyMuPDF>=1.24.14",
  47. "Pillow>=11.0.0",
  48. "pytesseract>=0.3.13",
  49. "pydantic>=2.12.3",
  50. "pydantic-settings>=2.11.0",
  51. "python-dotenv>=1.1.1",
  52. "jsonschema>=4.25.1",
  53. "click>=8.3.0",
  54. "Pygments>=2.19.2",
  55. ]
  56. [project.optional-dependencies]
  57. # Development dependencies
  58. dev = [
  59. "pytest>=8.4.2",
  60. "pytest-cov>=7.0.0",
  61. "coverage>=7.11.0",
  62. ]
  63. # MCP server dependencies (included by default, but optional)
  64. mcp = [
  65. "mcp>=1.18.0",
  66. "httpx>=0.28.1",
  67. "httpx-sse>=0.4.3",
  68. "uvicorn>=0.38.0",
  69. "starlette>=0.48.0",
  70. "sse-starlette>=3.0.2",
  71. ]
  72. # All optional dependencies combined
  73. all = [
  74. "pytest>=8.4.2",
  75. "pytest-cov>=7.0.0",
  76. "coverage>=7.11.0",
  77. "mcp>=1.18.0",
  78. "httpx>=0.28.1",
  79. "httpx-sse>=0.4.3",
  80. "uvicorn>=0.38.0",
  81. "starlette>=0.48.0",
  82. "sse-starlette>=3.0.2",
  83. ]
  84. [project.urls]
  85. Homepage = "https://github.com/yusufkaraaslan/Skill_Seekers"
  86. Repository = "https://github.com/yusufkaraaslan/Skill_Seekers"
  87. "Bug Tracker" = "https://github.com/yusufkaraaslan/Skill_Seekers/issues"
  88. Documentation = "https://github.com/yusufkaraaslan/Skill_Seekers#readme"
  89. [project.scripts]
  90. # Main unified CLI
  91. skill-seekers = "skill_seekers.cli.main:main"
  92. # Individual tool entry points
  93. skill-seekers-scrape = "skill_seekers.cli.doc_scraper:main"
  94. skill-seekers-github = "skill_seekers.cli.github_scraper:main"
  95. skill-seekers-pdf = "skill_seekers.cli.pdf_scraper:main"
  96. skill-seekers-unified = "skill_seekers.cli.unified_scraper:main"
  97. skill-seekers-enhance = "skill_seekers.cli.enhance_skill_local:main"
  98. skill-seekers-package = "skill_seekers.cli.package_skill:main"
  99. skill-seekers-upload = "skill_seekers.cli.upload_skill:main"
  100. skill-seekers-estimate = "skill_seekers.cli.estimate_pages:main"
  101. [tool.setuptools]
  102. packages = ["skill_seekers", "skill_seekers.cli", "skill_seekers.mcp", "skill_seekers.mcp.tools"]
  103. [tool.setuptools.package-dir]
  104. "" = "src"
  105. [tool.setuptools.package-data]
  106. skill_seekers = ["py.typed"]
  107. [tool.pytest.ini_options]
  108. testpaths = ["tests"]
  109. python_files = ["test_*.py"]
  110. python_classes = ["Test*"]
  111. python_functions = ["test_*"]
  112. addopts = "-v --tb=short --strict-markers"
  113. [tool.coverage.run]
  114. source = ["src/skill_seekers"]
  115. omit = ["*/tests/*", "*/__pycache__/*", "*/venv/*"]
  116. [tool.coverage.report]
  117. exclude_lines = [
  118. "pragma: no cover",
  119. "def __repr__",
  120. "raise AssertionError",
  121. "raise NotImplementedError",
  122. "if __name__ == .__main__.:",
  123. "if TYPE_CHECKING:",
  124. "@abstractmethod",
  125. ]
  126. [tool.uv]
  127. dev-dependencies = [
  128. "pytest>=8.4.2",
  129. "pytest-cov>=7.0.0",
  130. "coverage>=7.11.0",
  131. ]
  132. [tool.uv.sources]
  133. # Use PyPI for all dependencies