Files
pallectrum/setup.py

87 lines
3.0 KiB
Python
Raw Normal View History

2017-02-05 14:31:17 +03:00
#!/usr/bin/env python3
2011-11-16 13:53:18 +03:00
2011-11-29 10:32:56 +01:00
# python setup.py sdist --format=zip,gztar
2011-11-16 13:53:18 +03:00
2013-11-12 19:33:47 -08:00
import os
import sys
import platform
import importlib.util
import argparse
import subprocess
from setuptools import setup, find_packages
from setuptools.command.install import install
2013-11-12 19:33:47 -08:00
MIN_PYTHON_VERSION = "3.10.0"
_min_python_version_tuple = tuple(map(int, (MIN_PYTHON_VERSION.split("."))))
if sys.version_info[:3] < _min_python_version_tuple:
sys.exit("Error: Electrum requires Python version >= %s..." % MIN_PYTHON_VERSION)
with open('contrib/requirements/requirements.txt') as f:
requirements = f.read().splitlines()
with open('contrib/requirements/requirements-hw.txt') as f:
requirements_hw = f.read().splitlines()
# load version.py; needlessly complicated alternative to "imp.load_source":
version_spec = importlib.util.spec_from_file_location('version', 'electrum/version.py')
version_module = version = importlib.util.module_from_spec(version_spec)
version_spec.loader.exec_module(version_module)
data_files = []
if platform.system() in ['Linux', 'FreeBSD', 'DragonFly']:
# note: we can't use absolute paths here. see #7787
2012-06-10 15:43:10 +02:00
data_files += [
(os.path.join('share', 'applications'), ['electrum.desktop']),
(os.path.join('share', 'pixmaps'), ['electrum/gui/icons/electrum.png']),
(os.path.join('share', 'icons/hicolor/128x128/apps'), ['electrum/gui/icons/electrum.png']),
]
2014-09-13 09:58:11 +02:00
extras_require = {
'hardware': requirements_hw,
2024-09-16 16:02:08 +00:00
'gui': ['pyqt6'],
'crypto': ['cryptography>=2.6'],
'tests': ['pycryptodomex>=3.7', 'cryptography>=2.6', 'pyaes>=0.1a1'],
'qml_gui': [
'pyqt6>=6.7.0,<6.8.0',
'pyqt6-qt6>=6.7.0,<6.8.0',
'pyqt6-sip==13.10.2',
],
}
2020-03-04 19:39:48 +01:00
# 'full' extra that tries to grab everything an enduser would need (except for libsecp256k1...)
extras_require['full'] = [pkg for sublist in
(extras_require['hardware'], extras_require['gui'], extras_require['crypto'])
for pkg in sublist]
2020-03-04 19:39:48 +01:00
# legacy. keep 'fast' extra working
extras_require['fast'] = extras_require['crypto']
2013-11-12 19:33:47 -08:00
setup(
name="Pallectrum",
2013-11-12 19:33:47 -08:00
version=version.ELECTRUM_VERSION,
python_requires='>={}'.format(MIN_PYTHON_VERSION),
install_requires=requirements,
extras_require=extras_require,
packages=(['electrum',]
+ [('electrum.'+pkg) for pkg in
find_packages('electrum', exclude=["tests"])]),
2013-11-12 19:33:47 -08:00
package_dir={
'electrum': 'electrum'
2013-11-12 19:33:47 -08:00
},
# Note: MANIFEST.in lists what gets included in the tar.gz, and the
# package_data kwarg lists what gets put in site-packages when pip installing the tar.gz.
# By specifying include_package_data=True, MANIFEST.in becomes responsible for both.
include_package_data=True,
scripts=['electrum/electrum'],
2013-11-12 19:33:47 -08:00
data_files=data_files,
description="Lightweight Palladium Wallet",
author="Pallectrum Project",
author_email="",
2016-02-23 11:36:42 +01:00
license="MIT Licence",
url="https://github.com/palladium-coin/pallectrum",
long_description="""Lightweight Palladium Wallet""",
2012-05-10 14:38:49 +02:00
)