1
0
infernal-interpreter/setup.py

90 lines
2.2 KiB
Python
Raw Normal View History

# WARNING
#
# THIS IS AN AUTOGENERATED FILE.
#
# MANUAL CHANGES CAN AND WILL BE OVERWRITTEN.
2024-07-09 23:14:12 +00:00
import re
2024-07-09 23:14:12 +00:00
from setuptools import setup
PACKAGE_NAME = 'infernal_interpreter'
PACKAGE_DESCRIPTION = """
# Infernal Interpreter & Devious Stack Painter.
Simple interpreter and stack tracer for the AMD x86-64 ABI.
Recently updated for Python 3.
Does not support all instructions, and will never ever do.
It produces output in either ascii or LaTeX with tikz format.
Compiling the LaTeX requires both a LaTeX compiler, and packages
`preview` and `standalone`. Options can be viewed by running
`./infernal --help`.
## Tests
Please ignore the `/tests` folder. It is very old, and unsupported,
but kept for archival purposes.
# License
```
"THE BEER-WARE LICENSE" (Revision 42):
<jonjmaa@gmail.com> wrote this program. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you think
this stuff is worth it, you can buy me a beer in return.
Jon Michael Aanes
```"""
2024-07-09 23:19:26 +00:00
PACKAGE_DESCRIPTION_SHORT='Simple interpreter and stack tracer for the AMD x86-64 ABI.'
def parse_version_file(text: str) -> str:
match = re.match(r'^__version__\s*=\s*(["\'])([\d\.]+)\1$', text)
if match is None:
msg = 'Malformed _version.py file!'
raise Exception(msg)
return match.group(2)
with open(PACKAGE_NAME + '/_version.py') as f:
version = parse_version_file(f.read())
def parse_requirements(text: str) -> list[str]:
return text.strip().split('\n')
def read_requirements(path: str) -> list[str]:
with open(path) as f:
return parse_requirements(f.read())
REQUIREMENTS_MAIN = """
"""
REQUIREMENTS_TEST = """
"""
setup(
name=PACKAGE_NAME,
version=version,
description=PACKAGE_DESCRIPTION_SHORT,
long_description=PACKAGE_DESCRIPTION,
long_description_content_type='text/markdown',
author='Jon Michael Aanes',
author_email='jonjmaa@gmail.com',
url='https://gitfub.space/Jmaa/' + PACKAGE_NAME,
packages=[PACKAGE_NAME],
install_requires=parse_requirements(REQUIREMENTS_MAIN),
extras_require={
'test': parse_requirements(REQUIREMENTS_TEST),
},
python_requires='>=3.9',
)