[build-system] requires = ["setuptools>=61.0", "wheel"] build-backend = "setuptools.build_meta" [project] name = "jyotishganit" version = "0.1.3" authors = [ {name = "NorthTara Research", email = "sid@northtara.ai"}, ] description = "High precision Vedic astrology calculations in Python" readme = "README.md" license = "MIT" requires-python = ">=3.10" classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Scientific/Engineering :: Astronomy", "Topic :: Software Development :: Libraries :: Python Modules", ] keywords = ["astrology", "vedic", "jyotisha", "astronomy", "calculations", "birth-chart"] dependencies = [ "skyfield>=1.45", "pandas>=1.3.0", "numpy>=1.20.0", ] [project.optional-dependencies] dev = [ "pytest>=7.0", "pytest-cov>=4.0", "pytest-mock>=3.10", "pre-commit>=4.0", "ruff>=0.8", "mypy>=1.0", "build>=0.9", "twine>=4.0", ] [project.urls] Homepage = "https://github.com/northtara/jyotishganit" Documentation = "https://github.com/northtara/jyotishganit#readme" Repository = "https://github.com/northtara/jyotishganit" "Bug Reports" = "https://github.com/northtara/jyotishganit/issues" Changelog = "https://github.com/northtara/jyotishganit/blob/main/CHANGELOG.md" [tool.setuptools.packages.find] where = ["."] include = ["jyotishganit*"] exclude = ["tests*", "docs*"] [tool.pytest.ini_options] testpaths = ["tests"] python_files = ["test_*.py", "*_test.py"] addopts = "--cov=jyotishganit --cov-report=html --cov-report=term-missing" [tool.ruff] target-version = "py310" line-length = 88 [tool.ruff.lint] select = [ "E", "W", "F", "I", "UP", "S", "B", "C4", "SIM", ] ignore = ["S101", "E501"] # E501: line length; formatter handles most. [tool.ruff.lint.isort] known-first-party = ["jyotishganit"] [tool.mypy] python_version = "3.10" warn_return_any = false warn_unused_configs = true disallow_untyped_defs = false check_untyped_defs = true disallow_any_generics = false no_implicit_optional = true strict_optional = true [[tool.mypy.overrides]] module = ["skyfield.*", "pandas.*"] ignore_missing_imports = true # Incremental: fix type errors in follow-ups. These modules use untyped dict constants. [[tool.mypy.overrides]] module = ["jyotishganit.core.astronomical", "jyotishganit.components.strengths", "jyotishganit.components.ashtakavarga"] disable_error_code = ["attr-defined", "index", "no-any-return", "return-value", "union-attr", "operator", "arg-type", "dict-item", "call-overload"]