-
Notifications
You must be signed in to change notification settings - Fork 372
/
setup.py
executable file
·87 lines (76 loc) · 2.61 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
84
85
86
87
#!/usr/bin/env python
# Set both `setup_requires` and `install_requires` with our
# dependencies, since we need to compile Hy files during setup. And
# put this as the first statement in the file so it's easy to parse
# out without executing the file.
requires = [
"funcparserlib ~= 1.0",
]
import os
import fastentrypoints # Monkey-patches setuptools.
from setuptools import find_packages, setup
from setuptools.command.install import install
os.chdir(os.path.split(os.path.abspath(__file__))[0])
PKG = "hy"
long_description = """Hy is a Lisp dialect that's embedded in Python.
Since Hy transforms its Lisp code into Python abstract syntax tree (AST)
objects, you have the whole beautiful world of Python at your fingertips,
in Lisp form."""
class install(install):
def run(self):
super().run()
import py_compile
import hy # for compile hooks
for path in set(self.get_outputs()):
if path.endswith(".hy"):
py_compile.compile(
path,
invalidation_mode=py_compile.PycInvalidationMode.CHECKED_HASH,
)
setup(
name=PKG,
version='0.0.0',
setup_requires=["wheel"] + requires,
install_requires=requires,
python_requires=">= 3.9, < 3.14",
entry_points={
"console_scripts": [
"hy = hy.cmdline:hy_main",
"hyc = hy.cmdline:hyc_main",
"hy2py = hy.cmdline:hy2py_main"
]
},
packages=find_packages(exclude=["tests*"]),
package_data={
"": ["*.hy"],
},
author="Paul Tagliamonte",
author_email="[email protected]",
long_description=long_description,
description="A Lisp dialect embedded in Python",
license="Expat",
url="http://hylang.org/",
platforms=["any"],
classifiers=[
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: DFSG approved",
"License :: OSI Approved :: MIT License", # Really "Expat". Ugh.
"Operating System :: OS Independent",
"Programming Language :: Hy",
"Programming Language :: Lisp",
"Programming Language :: Python",
"Programming Language :: Python :: Implementation :: PyPy",
"Environment :: WebAssembly :: Emscripten",
"Topic :: Software Development :: Code Generators",
"Topic :: Software Development :: Compilers",
"Topic :: Software Development :: Libraries",
],
project_urls={
"Documentation": "http://hylang.org/hy/doc",
"Source": "https://github.com/hylang/hy",
},
cmdclass={
"install": install,
},
)