forked from flexcompute/tidy3d
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.py
83 lines (70 loc) · 2.48 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import setuptools
from distutils.util import convert_path
from setuptools.command.install import install
import os
from os.path import expanduser
TIDY3D_DIR = f"{expanduser('~')}/.tidy3d"
PACKAGE_NAME = "tidy3d"
REPO_NAME = "tidy3d"
PIP_NAME = "tidy3d"
version = {}
version_path = convert_path(f"{PACKAGE_NAME}/version.py")
with open(version_path) as version_file:
exec(version_file.read(), version)
print(version["__version__"])
with open("README.md", "r", encoding="utf-8") as fh:
long_description = fh.read()
def read_requirements(req_file: str):
"""Read requirements from a file excluding lines that have ``-r``."""
with open(req_file) as f:
required = f.read().splitlines()
return [req for req in required if "-r" not in req]
basic_required = read_requirements("requirements/basic.txt")
web_required = read_requirements("requirements/web.txt")
jax_required = read_requirements("requirements/jax.txt")
gdstk_required = read_requirements("requirements/gdstk.txt")
gdspy_required = read_requirements("requirements/gdspy.txt")
trimesh_required = read_requirements("requirements/trimesh.txt")
vtk_required = read_requirements("requirements/vtk.txt")
core_required = read_requirements("requirements/core.txt")
core_required += basic_required + web_required
dev_required = read_requirements("requirements/dev.txt")
def create_config_folder():
if not os.path.exists(TIDY3D_DIR):
os.mkdir(TIDY3D_DIR)
create_config_folder()
setuptools.setup(
name=PIP_NAME,
version=version["__version__"],
author="Tyler Hughes",
author_email="[email protected]",
description="A fast FDTD solver",
long_description=long_description,
long_description_content_type="text/markdown",
url=f"https://github.com/flexcompute/{REPO_NAME}",
project_urls={
"Bug Tracker": f"https://github.com/flexcompute/{REPO_NAME}/issues",
},
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
packages=setuptools.find_packages(),
include_package_data=True,
python_requires=">=3.8",
install_requires=core_required,
extras_require={
"dev": dev_required,
"jax": jax_required,
"gdspy": gdspy_required,
"gdstk": gdstk_required,
"trimesh": trimesh_required,
"vtk": vtk_required,
},
entry_points={
"console_scripts": [
"tidy3d = tidy3d.web.cli:tidy3d_cli",
],
},
)