content: [build-system]
  requires = ["setuptools>=61.0", "wheel"]
  build-backend = "setuptools.build_meta"
  
  [project]
  name = "docstrange"
  version = "1.1.5"
  description = "Extract and Convert PDF, Word, PowerPoint, Excel, images, URLs into multiple formats (Markdown, JSON, CSV, HTML) with intelligent content extraction and advanced OCR."
  readme = "README.md"
  license = {text = "MIT"}
  authors = [
      {name = "Nanonets", email = "team@nanonets.com"}
  ]
  classifiers = [
      "Development Status :: 4 - Beta",
      "Intended Audience :: Developers",
      "License :: OSI Approved :: MIT License",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3.8",
      "Programming Language :: Python :: 3.9",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Programming Language :: Python :: 3.13",
      "Topic :: Scientific/Engineering :: Artificial Intelligence",
      "Topic :: Software Development :: Libraries :: Python Modules",
      "Topic :: Text Processing :: Markup",
      "Topic :: Multimedia :: Graphics :: Graphics Conversion",
  ]
  keywords = ["llm", "document-processing", "document-conversion", "markdown", "pdf", "image-processing", "intelligent-document-processing", "document-understanding", "ocr", "rag", "ai-training-data", "unstructured-alternative", "docling-alternative", "marker-alternative", "markitdown-alternative", "mineru-alternative", "paddleocr-alternative", "tesseract-alternative", "document-to-markdown", "pdf-to-markdown", "local-document-processing", "offline-document-extractor", "structured-data-extraction", "table-extraction", "layout-detection", "llm-ready-data", "document-ai", "text-extraction", "html-to-markdown", "excel-to-markdown", "powerpoint-to-markdown", "word-to-markdown", "batch-document-processing", "docstrange"]
  requires-python = ">=3.8"
  dependencies = [
      "Pillow>=9.0.0",
      "pdf2image>=1.17.0",
      "markdownify>=0.11.6",
      "requests>=2.25.0",
      "beautifulsoup4>=4.9.0",
      "lxml>=4.6.0",
      "python-docx>=0.8.11",
      "python-pptx>=0.6.21",
      "pypandoc>=1.11",
      "openpyxl>=3.0.0",
      "pandas>=1.3.0",
      "numpy>=1.21.0,<2.0.0",
      "PyMuPDF>=1.23.0",
      "docling-ibm-models>=0.1.0",
      "easyocr>=1.7.0",
      "huggingface_hub>=0.23.0",
      "tqdm>=4.64.0",
      "Flask>=2.0.0",
      # MCP and related dependencies only for Python 3.10+
      "mcp>=1.0.0; python_version>='3.10'",
      "tiktoken>=0.5.0; python_version>='3.10'",
      # Conservative versions for Python 3.8 to avoid build issues
      "transformers>=4.20.0,<4.50.0; python_version<='3.8'",
      "tokenizers>=0.13.0,<0.20.0; python_version<='3.8'",
      "setuptools>=65.0.0; python_version<='3.8'",
      "wheel>=0.37.0; python_version<='3.8'",
      # Latest compatible versions for Python 3.9+
      "transformers>=4.20.0; python_version>='3.9'",
      "tokenizers>=0.13.0; python_version>='3.9'",
  ]
  
  [project.optional-dependencies]
  dev = [
      "pytest>=6.0.0",
      "pytest-cov>=2.10.0",
      "black>=21.0.0",
      "flake8>=3.8.0",
      "mypy>=0.800",
  ]
  local-llm = [
      "ollama>=0.5.0",
  ]
  web = [
      "Flask>=2.0.0",
  ]
  
  [project.scripts]
  docstrange = "docstrange.cli:main"
  docstrange-web = "docstrange.web_app:run_web_app"
  
  [project.urls]
  Homepage = "https://github.com/nanonets/docstrange"
  Repository = "https://github.com/nanonets/docstrange"
  Documentation = "https://github.com/nanonets/docstrange#readme"
  Issues = "https://github.com/nanonets/docstrange/issues"
  
  [tool.setuptools.packages.find]
  where = ["."]
  include = ["docstrange*"]
  exclude = ["mcp_server_module*", "tests*", "examples*"]
  
  [tool.setuptools.package-data]
  docstrange = ["**/*"]
  
  [tool.black]
  line-length = 88
  target-version = ['py38', 'py39', 'py310', 'py311', 'py312']
  
  [tool.isort]
  profile = "black"
  line_length = 88
  
  [tool.mypy]
  python_version = "3.8"
  warn_return_any = true
  warn_unused_configs = true
  disallow_untyped_defs = true