#!/usr/bin/env python
"""The setup script."""

# TODO: Rewrite to newer pyproject.toml or setup.cfg

import setuptools

with open("README.md", "r") as fh:
    long_description = fh.read()

setuptools.setup(
    name="knows",
    version="1.0.0",
    author="Łukasz Szeremeta",
    author_email="l.szeremeta.dev+knows@gmail.com",
    install_requires=["networkx>=3.0.0", "Faker>=19.0.0"],
    extras_require={"draw": ["matplotlib>=3.7.0"]},
    tests_require=["pytest>=7.0.0"],
    license="MIT License",
    description="Property graph benchmark that creates graphs with specified node and edge numbers, supporting multiple output formats and visualization",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://github.com/lszeremeta/knows",
    project_urls={
        "Bug Tracker": "https://github.com/lszeremeta/knows/issues",
        "Source Code": "https://github.com/lszeremeta/knows",
    },
    packages=setuptools.find_packages(),
    classifiers=[
        "Development Status :: 5 - Production/Stable",
        "Environment :: Console",
        "Intended Audience :: Education",
        "Intended Audience :: Developers",
        "Intended Audience :: Information Technology",
        "Intended Audience :: Science/Research",
        "License :: OSI Approved :: MIT License",
        "Natural Language :: English",
        "Operating System :: MacOS",
        "Operating System :: OS Independent",
        "Operating System :: POSIX :: Linux",
        "Programming Language :: Python",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3 :: Only",
        "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",
        "Topic :: System :: Benchmark",
        "Topic :: Database",
        "Topic :: File Formats",
        "Topic :: Internet",
        "Topic :: Multimedia :: Graphics :: Presentation",
        "Topic :: Multimedia :: Graphics :: Viewers",
        "Topic :: Scientific/Engineering",
        "Topic :: Scientific/Engineering :: Information Analysis",
        "Topic :: Scientific/Engineering :: Mathematics",
        "Topic :: Utilities",
        "Typing :: Typed",
    ],
    keywords=[
        "knows",
        "benchmark",
        "yarspg",
        "graphs",
        "mathematics",
        "CLI",
        "GraphML",
        "YARS-PG",
        "property graph",
        "graph",
        "graph database",
        "graph data",
        "Neo4j",
        "NetworkX",
        "Faker",
        "graph analysis",
        "benchmarking",
        "graph visualization",
        "data science",
        "graph algorithms",
        "network analysis",
        "graph tool",
        "data analytics",
        "educational tool",
        "research tool",
        "graph generation",
        "python graph",
        "docker graph tool",
        "command line interface",
        "CLI tool",
        "json",
        "svg",
        "data visualization",
    ],
    python_requires=">=3.8",
    entry_points={
        "console_scripts": [
            "knows=knows.__main__:main",
        ]
    },
)
