diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index c28ab72..0000000 --- a/MANIFEST.in +++ /dev/null @@ -1,2 +0,0 @@ -include README.md -include LICENSE.md diff --git a/masque/LICENSE.md b/masque/LICENSE.md new file mode 120000 index 0000000..7eabdb1 --- /dev/null +++ b/masque/LICENSE.md @@ -0,0 +1 @@ +../LICENSE.md \ No newline at end of file diff --git a/masque/README.md b/masque/README.md new file mode 120000 index 0000000..32d46ee --- /dev/null +++ b/masque/README.md @@ -0,0 +1 @@ +../README.md \ No newline at end of file diff --git a/masque/VERSION.py b/masque/VERSION.py deleted file mode 100644 index 6c737da..0000000 --- a/masque/VERSION.py +++ /dev/null @@ -1,4 +0,0 @@ -""" VERSION defintion. THIS FILE IS MANUALLY PARSED BY setup.py and REQUIRES A SPECIFIC FORMAT """ -__version__ = ''' -2.7 -'''.strip() diff --git a/masque/__init__.py b/masque/__init__.py index 611d4d4..7881bdb 100644 --- a/masque/__init__.py +++ b/masque/__init__.py @@ -39,5 +39,5 @@ from .library import Library, DeviceLibrary __author__ = 'Jan Petykiewicz' -from .VERSION import __version__ +__version__ = '2.7' version = __version__ # legacy diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..df3235f --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,60 @@ +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[project] +name = "masque" +description = "Lithography mask library" +readme = "README.md" +license = { file = "LICENSE.md" } +authors = [ + { name="Jan Petykiewicz", email="jan@mpxd.net" }, + ] +homepage = "https://mpxd.net/code/jan/masque" +repository = "https://mpxd.net/code/jan/masque" +keywords = [ + "layout", + "CAD", + "EDA", + "mask", + "pattern", + "lithography", + "oas", + "gds", + "dxf", + "svg", + "OASIS", + "gdsii", + "gds2", + "stream", + ] +classifiers = [ + "Programming Language :: Python :: 3", + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: Information Technology", + "Intended Audience :: Manufacturing", + "Intended Audience :: Science/Research", + "License :: OSI Approved :: GNU Affero General Public License v3", + "Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)", + "Topic :: Scientific/Engineering :: Visualization", + ] +requires-python = ">=3.8" +dynamic = ["version"] +dependencies = [ + "numpy~=1.21", + "klamath~=1.2", + ] + + +[tool.hatch.version] +path = "masque/__init__.py" + +[project.optional-dependencies] +oasis = ["fatamorgana~=0.11"] +dxf = ["ezdxf"] +svg = ["svgwrite"] +visualize = ["matplotlib"] +text = ["matplotlib", "freetype-py"] +python-gdsii = ["python-gdsii"] + diff --git a/setup.py b/setup.py deleted file mode 100644 index b215f5f..0000000 --- a/setup.py +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/env python3 - -from setuptools import setup, find_packages - - -with open('README.md', 'rt') as f: - long_description = f.read() - -with open('masque/VERSION.py', 'rt') as f: - version = f.readlines()[2].strip() - -setup( - name='masque', - version=version, - description='Lithography mask library', - long_description=long_description, - long_description_content_type='text/markdown', - author='Jan Petykiewicz', - author_email='jan@mpxd.net', - url='https://mpxd.net/code/jan/masque', - packages=find_packages(), - package_data={ - 'masque': [ - 'py.typed', - ], - }, - install_requires=[ - 'numpy>=1.21', - 'klamath>=1.0', - ], - extras_require={ - 'gdsii': ['python-gdsii'], - 'oasis': ['fatamorgana>=0.11'], - 'dxf': ['ezdxf'], - 'svg': ['svgwrite'], - 'visualization': ['matplotlib'], - 'text': ['freetype-py', 'matplotlib'], - }, - classifiers=[ - 'Programming Language :: Python :: 3', - 'Development Status :: 4 - Beta', - 'Intended Audience :: Developers', - 'Intended Audience :: Information Technology', - 'Intended Audience :: Manufacturing', - 'Intended Audience :: Science/Research', - 'License :: OSI Approved :: GNU Affero General Public License v3', - 'Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)', - 'Topic :: Scientific/Engineering :: Visualization', - ], - keywords=[ - 'layout', - 'design', - 'CAD', - 'EDA', - 'electronics', - 'photonics', - 'IC', - 'mask', - 'pattern', - 'drawing', - 'lithography', - 'litho', - 'geometry', - 'geometric', - 'polygon', - 'curve', - 'ellipse', - 'oas', - 'gds', - 'dxf', - 'svg', - 'OASIS', - 'gdsii', - 'gds2', - 'convert', - 'stream', - 'custom', - 'visualize', - 'vector', - 'freeform', - 'manhattan', - 'angle', - ], - ) -