from setuptools import setup, find_packages
import os

# Read the contents of your README file
this_directory = os.path.abspath(os.path.dirname(__file__))
with open(os.path.join(this_directory, 'README.md'), encoding='utf-8') as f:
    long_description = f.read()

# Read requirements
with open(os.path.join(this_directory, 'requirements.txt'), encoding='utf-8') as f:
    requirements = [line.strip() for line in f if line.strip() and not line.startswith('#')]

setup(
    name='core-registration',
    version='1.0.0',
    author='CORE Team',
    author_email='',
    description='CORE - A Cell-Level Coarse-to-Fine Image Registration Engine for Multi-stain Image Alignment',
    long_description=long_description,
    long_description_content_type='text/markdown',
    url='https://github.com/eshasadia/CORE',
    packages=find_packages(exclude=['tests', 'notebooks', 'docs']),
    classifiers=[
        'Development Status :: 4 - Beta',
        'Intended Audience :: Science/Research',
        'Intended Audience :: Healthcare Industry',
        'Topic :: Scientific/Engineering :: Image Processing',
        'Topic :: Scientific/Engineering :: Medical Science Apps.',
        'License :: OSI Approved :: MIT License',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.9',
        'Programming Language :: Python :: 3.10',
        'Programming Language :: Python :: 3.11',
        'Operating System :: OS Independent',
    ],
    python_requires='>=3.9',
    install_requires=requirements,
    extras_require={
        'dev': [
            'pytest>=7.0.0',
            'pytest-cov>=3.0.0',
            'black>=22.0.0',
            'isort>=5.10.0',
            'flake8>=4.0.0',
            'mypy>=0.950',
        ],
        'docs': [
            'sphinx>=4.5.0',
            'sphinx-rtd-theme>=1.0.0',
            'myst-parser>=0.17.0',
        ],
    },
    include_package_data=True,
    package_data={
        'accelerated_features': ['weights/*.pt'],
    },
    entry_points={
        'console_scripts': [
            'core-register=core.cli:main',
        ],
    },
    keywords=[
        'image registration',
        'whole slide image',
        'digital pathology',
        'multi-stain',
        'histopathology',
        'deep learning',
        'computer vision',
    ],
    project_urls={
        'Bug Reports': 'https://github.com/eshasadia/CORE/issues',
        'Source': 'https://github.com/eshasadia/CORE',
        'Documentation': 'https://core-registration.readthedocs.io/',
    },
)
