from setuptools import setup, find_packages
from os import path

here = path.abspath(path.dirname(__file__))

# Get the long description from the README file
with open(path.join(here, 'README.rst'), encoding='utf-8') as f:
    long_description = f.read()

setup(
    name='skywater-pdk',
    version='0.0.0',
    description='Python library for working with files found in the SkyWater PDK',
    long_description=long_description,
    long_description_content_type='text/x-rst',
    url='https://github.com/google/skywater-pdk',
    author='SkyWater PDK Authors',
    author_email='skywater-pdk-dev@googlegroups.com',
    classifiers=[
        'Development Status :: 3 - Alpha',
        'Intended Audience :: Developers',
        'Topic :: Software Development :: Build Tools',
        'License :: OSI Approved :: Apache Software License',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
        'Programming Language :: Python :: 3.8',
        'Programming Language :: Python :: 3 :: Only',
    ],

    keywords='asic eda development verilog pdk',
    packages=find_packages(where='.'),
    python_requires='>=3.6, <4',

    extras_require={
        'dev': ['check-manifest'],
        'test': ['coverage'],
    },

    entry_points={
        'console_scripts': [
            'sample=sample:main',
        ],
    },

    project_urls={
        'Bug Reports': 'https://github.com/google/skywater-pdk/issues',
        'Source': 'https://github.com/google/skywater-pdk/',
    },
)
