URI: 
       tsetup.py - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
       tsetup.py (3416B)
       ---
            1 #!/usr/bin/env python3
            2 
            3 # python setup.py sdist --format=zip,gztar
            4 
            5 import os
            6 import sys
            7 import platform
            8 import importlib.util
            9 import argparse
           10 import subprocess
           11 
           12 from setuptools import setup, find_packages
           13 from setuptools.command.install import install
           14 
           15 MIN_PYTHON_VERSION = "3.6.1"
           16 _min_python_version_tuple = tuple(map(int, (MIN_PYTHON_VERSION.split("."))))
           17 
           18 
           19 if sys.version_info[:3] < _min_python_version_tuple:
           20     sys.exit("Error: Electrum requires Python version >= %s..." % MIN_PYTHON_VERSION)
           21 
           22 with open('contrib/requirements/requirements.txt') as f:
           23     requirements = f.read().splitlines()
           24 
           25 with open('contrib/requirements/requirements-hw.txt') as f:
           26     requirements_hw = f.read().splitlines()
           27 
           28 # load version.py; needlessly complicated alternative to "imp.load_source":
           29 version_spec = importlib.util.spec_from_file_location('version', 'electrum/version.py')
           30 version_module = version = importlib.util.module_from_spec(version_spec)
           31 version_spec.loader.exec_module(version_module)
           32 
           33 data_files = []
           34 
           35 if platform.system() in ['Linux', 'FreeBSD', 'DragonFly']:
           36     parser = argparse.ArgumentParser()
           37     parser.add_argument('--root=', dest='root_path', metavar='dir', default='/')
           38     opts, _ = parser.parse_known_args(sys.argv[1:])
           39     usr_share = os.path.join(sys.prefix, "share")
           40     icons_dirname = 'pixmaps'
           41     if not os.access(opts.root_path + usr_share, os.W_OK) and \
           42        not os.access(opts.root_path, os.W_OK):
           43         icons_dirname = 'icons'
           44         if 'XDG_DATA_HOME' in os.environ.keys():
           45             usr_share = os.environ['XDG_DATA_HOME']
           46         else:
           47             usr_share = os.path.expanduser('~/.local/share')
           48     data_files += [
           49         (os.path.join(usr_share, 'applications/'), ['electrum.desktop']),
           50         (os.path.join(usr_share, icons_dirname), ['electrum/gui/icons/electrum.png']),
           51     ]
           52 
           53 extras_require = {
           54     'hardware': requirements_hw,
           55     'gui': ['pyqt5'],
           56     'crypto': ['cryptography>=2.6'],
           57     'tests': ['pycryptodomex>=3.7', 'cryptography>=2.6', 'pyaes>=0.1a1'],
           58 }
           59 # 'full' extra that tries to grab everything an enduser would need (except for libsecp256k1...)
           60 extras_require['full'] = [pkg for sublist in
           61                           (extras_require['hardware'], extras_require['gui'], extras_require['crypto'])
           62                           for pkg in sublist]
           63 # legacy. keep 'fast' extra working
           64 extras_require['fast'] = extras_require['crypto']
           65 
           66 
           67 setup(
           68     name="Electrum",
           69     version=version.ELECTRUM_VERSION,
           70     python_requires='>={}'.format(MIN_PYTHON_VERSION),
           71     install_requires=requirements,
           72     extras_require=extras_require,
           73     packages=[
           74         'electrum',
           75         'electrum.gui',
           76         'electrum.gui.qt',
           77         'electrum.plugins',
           78     ] + [('electrum.plugins.'+pkg) for pkg in find_packages('electrum/plugins')],
           79     package_dir={
           80         'electrum': 'electrum'
           81     },
           82     package_data={
           83         '': ['*.txt', '*.json', '*.ttf', '*.otf', '*.csv'],
           84         'electrum': [
           85             'wordlist/*.txt',
           86             'locale/*/LC_MESSAGES/electrum.mo',
           87             'lnwire/*.csv',
           88         ],
           89         'electrum.gui': [
           90             'icons/*',
           91         ],
           92     },
           93     scripts=['electrum/electrum'],
           94     data_files=data_files,
           95     description="Lightweight Bitcoin Wallet",
           96     author="Thomas Voegtlin",
           97     author_email="thomasv@electrum.org",
           98     license="MIT Licence",
           99     url="https://electrum.org",
          100     long_description="""Lightweight Bitcoin Wallet""",
          101 )