core-lightning/contrib/pyln-spec/setup.py

54 lines
1.4 KiB
Python
Raw Normal View History

from setuptools import setup
import io
import os
base = os.path.dirname(__file__)
with io.open(os.path.join(base, 'requirements.txt'), encoding='utf-8') as f:
requirements = [r for r in f.read().split('\n') if len(r)]
def bolt_meta(bolt_num):
ctx = {}
pkg_dir = os.path.join(base, 'pyln', 'spec', 'bolt{}'.format(bolt_num))
files = ['gen_version.py', 'gen_csv_version.py', 'text.py']
for f in files:
f = os.path.join(pkg_dir, f)
with open(f, 'r') as fd:
exec(fd.read(), ctx)
__version__ = '{__base_version__}.{__csv_version__}.{__post_version__}'.format(**ctx)
return {
'description': ctx['desc'],
'version': __version__,
}
def bolt_num():
"""Look into the pyln/spec/ directory to see which subpackages we provide.
"""
dirlist = os.listdir(os.path.join('pyln', 'spec'))
assert(len(dirlist) == 1) # Should only be the boltX directory
b = dirlist[0]
assert(b[:4] == 'bolt')
return int(b[4])
boltnum = bolt_num()
meta = bolt_meta(boltnum)
setup(
**meta,
name='pyln-bolt{}'.format(boltnum),
url='http://github.com/ElementsProject/lightning',
author='Rusty Russell',
author_email='rusty@rustcorp.com.au',
license='MIT',
packages=['pyln.spec.bolt{}'.format(boltnum)],
package_data={'pyln.proto.message': ['py.typed']},
scripts=[],
zip_safe=True,
install_requires=requirements
)