Move from setuputils and setup.py to hatch and pyproject.toml

This commit is contained in:
Jan Petykiewicz 2022-08-18 22:59:50 -07:00 committed by jan
parent a713967911
commit 5b5cbe94d3
7 changed files with 63 additions and 92 deletions

View File

@ -1,2 +0,0 @@
include README.md
include LICENSE.md

1
masque/LICENSE.md Symbolic link
View File

@ -0,0 +1 @@
../LICENSE.md

1
masque/README.md Symbolic link
View File

@ -0,0 +1 @@
../README.md

View File

@ -1,4 +0,0 @@
""" VERSION defintion. THIS FILE IS MANUALLY PARSED BY setup.py and REQUIRES A SPECIFIC FORMAT """
__version__ = '''
2.7
'''.strip()

View File

@ -39,5 +39,5 @@ from .library import Library, DeviceLibrary
__author__ = 'Jan Petykiewicz' __author__ = 'Jan Petykiewicz'
from .VERSION import __version__ __version__ = '2.7'
version = __version__ # legacy version = __version__ # legacy

60
pyproject.toml Normal file
View File

@ -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"]

View File

@ -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',
],
)