[build-system]
requires = ["setuptools>=45", "wheel", "setuptools_scm[toml]>=6.2"]
build-backend = "setuptools.build_meta"

[project]
name = "novalang"
version = "2.0.0"
description = "Universal Programming Language with Complete Database Support (70+ Database Types)"
authors = [
    {name = "Martin Maboya", email = "martinmaboya@gmail.com"},
]
license = {text = "MIT"}
readme = "README.md"
requires-python = ">=3.8"
classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Intended Audience :: Developers",
    "Topic :: Software Development :: Interpreters",
    "Topic :: Software Development :: Compilers",
    "Topic :: Database",
    "Topic :: Database :: Database Engines/Servers",
    "Topic :: Scientific/Engineering :: Artificial Intelligence",
    "Topic :: Software Development :: Libraries :: Application Frameworks",
    "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",
    "Operating System :: OS Independent",
]
keywords = [
    "programming-language", "database", "sql", "nosql", "mysql", "postgresql", 
    "mongodb", "redis", "elasticsearch", "neo4j", "cassandra", "influxdb", 
    "oracle", "sqlserver", "artificial-intelligence", "machine-learning", 
    "blockchain", "cloud-native", "microservices", "enterprise", 
    "universal-database", "orm", "jpa", "hibernate", "vector-database", 
    "graph-database", "time-series", "search-engine", "compiler", "interpreter"
]
dependencies = [
    "dataclasses;python_version<'3.7'",
]

[project.optional-dependencies]
dev = [
    "pytest>=6.0",
    "black>=21.0", 
    "flake8>=3.8",
    "mypy>=0.800",
]
database = [
    "psycopg2-binary>=2.8.0",
    "pymongo>=4.0.0",
    "redis>=4.0.0",
    "elasticsearch>=8.0.0",
    "neo4j>=5.0.0",
    "cassandra-driver>=3.25.0",
    "influxdb-client>=1.30.0",
]
all = [
    "pytest>=6.0",
    "black>=21.0",
    "flake8>=3.8", 
    "mypy>=0.800",
    "psycopg2-binary>=2.8.0",
    "pymongo>=4.0.0",
    "redis>=4.0.0",
    "elasticsearch>=8.0.0",
    "neo4j>=5.0.0",
    "cassandra-driver>=3.25.0",
    "influxdb-client>=1.30.0",
]

[project.scripts]
nova = "nova_cli:main"
nova-cli = "nova_cli:main"
novalang = "main:main"

[project.urls]
Homepage = "https://github.com/martinmaboya/novalang"
Documentation = "https://novalang.readthedocs.io/"
Repository = "https://github.com/martinmaboya/novalang"
"Bug Reports" = "https://github.com/martinmaboya/novalang/issues"
Changelog = "https://github.com/martinmaboya/novalang/blob/master/CHANGELOG.md"

[tool.setuptools.packages.find]
include = ["novalang*"]
exclude = ["tests*"]

[tool.setuptools.package-data]
novalang = ["templates/*.nova", "examples/*.nova", "docs/*.md"]
