Files
PGPy-3_13_patch/setup.py

43 lines
1.1 KiB
Python

import ast
import os.path
from setuptools import setup
def extract_value(v):
if isinstance(v, ast.Str):
return v.s
elif isinstance(v, ast.Num):
return v.n
elif isinstance(v, ast.Call):
for a in v.args:
r = extract_value(a)
if r is not None:
return r
def extract_vars_from_python_ast(a):
res = {}
for e in a.body:
if isinstance(e, ast.Assign) and len(e.targets) == 1:
n = e.targets[0]
if isinstance(n, ast.Name):
res[n.id] = extract_value(e.value)
return res
def extract_vars_from_python_source(p):
with open(p) as f:
t = f.read()
return extract_vars_from_python_ast(ast.parse(t))
this_dir = os.path.dirname(os.path.abspath(__file__))
author_info = extract_vars_from_python_source(os.path.join(this_dir, "pgpy", "_author.py"))
setup(
version=author_info["__version__"],
author=author_info["__author__"],
license=author_info["__license__"],
download_url="https://github.com/SecurityInnovation/PGPy/archive/{pgpy_ver}.tar.gz".format(pgpy_ver=author_info["__version__"]),
)