Something went wrong. Try again.
AppleScript grammar for tree-sitter
applescript tree-sitter-grammar tree-sitter
Something went wrong. Try again.
tree-sitter-applescript setup.py
2.4 kB · 78 lines
Python
at main
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879from os import pathfrom sysconfig import get_config_var
from setuptools import Extension, find_packages, setupfrom setuptools.command.build import buildfrom setuptools.command.build_ext import build_extfrom setuptools.command.egg_info import egg_infofrom wheel.bdist_wheel import bdist_wheel
class Build(build): def run(self): if path.isdir("queries"): dest = path.join(self.build_lib, "tree_sitter_applescript", "queries") self.copy_tree("queries", dest) super().run()
class BuildExt(build_ext): def build_extension(self, ext: Extension): if self.compiler.compiler_type != "msvc": ext.extra_compile_args = ["-std=c11", "-fvisibility=hidden"] else: ext.extra_compile_args = ["/std:c11", "/utf-8"] if path.exists("src/scanner.c"): ext.sources.append("src/scanner.c") if ext.py_limited_api: ext.define_macros.append(("Py_LIMITED_API", "0x030A0000")) super().build_extension(ext)
class BdistWheel(bdist_wheel): def get_tag(self): python, abi, platform = super().get_tag() if python.startswith("cp") and not get_config_var("Py_GIL_DISABLED"): python, abi = "cp310", "abi3" return python, abi, platform
class EggInfo(egg_info): def find_sources(self): super().find_sources() self.filelist.recursive_include("queries", "*.scm") self.filelist.include("src/tree_sitter/*.h") self.filelist.include("src/*.c")
setup( packages=find_packages("bindings/python"), package_dir={"": "bindings/python"}, package_data={ "tree_sitter_applescript": ["*.pyi", "py.typed"], "tree_sitter_applescript.queries": ["*.scm"], }, ext_package="tree_sitter_applescript", ext_modules=[ Extension( name="_binding", sources=[ "bindings/python/tree_sitter_applescript/binding.c", "src/parser.c", ], define_macros=[ ("PY_SSIZE_T_CLEAN", None), ("TREE_SITTER_HIDE_SYMBOLS", None), ], include_dirs=["src"], py_limited_api=not get_config_var("Py_GIL_DISABLED"), ) ], cmdclass={ "build": Build, "build_ext": BuildExt, "bdist_wheel": BdistWheel, "egg_info": EggInfo, }, zip_safe=False)