diff --git a/.gitea/workflows/python-package.yml b/.gitea/workflows/python-package.yml new file mode 100644 index 0000000..4ef22ed --- /dev/null +++ b/.gitea/workflows/python-package.yml @@ -0,0 +1,15 @@ +name: Package Python +on: + push: + tags: + - 'v[0-9]+.[0-9]+.[0-9]+' + +jobs: + Package: + uses: jmaa/workflows/.gitea/workflows/python-package.yaml@v6.21 + with: + REGISTRY_DOMAIN: gitfub.space + REGISTRY_ORGANIZATION: jmaa + secrets: + PIPY_REPO_USER: ${{ secrets.PIPY_REPO_USER }} + PIPY_REPO_PASS: ${{ secrets.PIPY_REPO_PASS }} diff --git a/.gitea/workflows/python-test.yml b/.gitea/workflows/python-test.yml new file mode 100644 index 0000000..cf6212f --- /dev/null +++ b/.gitea/workflows/python-test.yml @@ -0,0 +1,6 @@ +name: Test Python +on: [push] + +jobs: + Test: + uses: jmaa/workflows/.gitea/workflows/python-test.yaml@v6.21 diff --git a/README.md b/README.md index 291793c..4a10b9c 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,12 @@ +# Infernal Interpreter & Devious Stack Painter. -# Infernal Interpreter & Devious Stack Painter ################################# +Simple interpreter and stack tracer for the AMD x86-64 ABI. -A very simple interpreter and stack tracer for the AMD x86-64 ABI written in -**Python 2**. Does not support all commands, and will never ever do. +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 diff --git a/setup.py b/setup.py index 09e8f8e..04a9f56 100644 --- a/setup.py +++ b/setup.py @@ -1,3 +1,89 @@ +# WARNING +# +# THIS IS AN AUTOGENERATED FILE. +# +# MANUAL CHANGES CAN AND WILL BE OVERWRITTEN. -# Dummy +import re +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): + + 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 +```""" + +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', +)