2018-02-02 15:36:29 +00:00
|
|
|
#!/usr/bin/env python3
|
2018-03-26 15:38:49 +00:00
|
|
|
import os.path
|
|
|
|
import shutil
|
|
|
|
import subprocess
|
|
|
|
|
|
|
|
from setuptools import setup, Command
|
|
|
|
from setuptools.command.build_py import build_py
|
2018-05-03 16:47:10 +00:00
|
|
|
from setuptools.command.develop import develop
|
2014-02-03 21:24:54 +00:00
|
|
|
|
2017-06-14 21:06:54 +00:00
|
|
|
install_requires = [
|
2018-02-02 00:22:16 +00:00
|
|
|
'setuptools>=19.0',
|
2017-06-14 21:06:54 +00:00
|
|
|
'ecdsa>=0.9',
|
|
|
|
'mnemonic>=0.17',
|
|
|
|
'requests>=2.4.0',
|
2017-11-04 00:18:19 +00:00
|
|
|
'click>=6.2',
|
|
|
|
'pyblake2>=0.9.3',
|
2018-02-28 17:03:27 +00:00
|
|
|
'rlp>=0.6.0',
|
2018-05-04 13:54:23 +00:00
|
|
|
'libusb1>=1.6.4',
|
2017-06-14 21:06:54 +00:00
|
|
|
]
|
2016-10-03 18:37:48 +00:00
|
|
|
|
2017-12-02 17:48:44 +00:00
|
|
|
from trezorlib import __version__ as VERSION
|
2017-12-02 17:31:34 +00:00
|
|
|
|
2018-03-26 15:38:49 +00:00
|
|
|
|
|
|
|
class PrebuildCommand(Command):
|
|
|
|
description = 'update vendored files (coins.json, protobuf messages)'
|
|
|
|
user_options = []
|
|
|
|
|
|
|
|
TREZOR_COMMON = os.path.join('vendor', 'trezor-common')
|
|
|
|
|
|
|
|
def initialize_options(self):
|
|
|
|
pass
|
|
|
|
|
|
|
|
def finalize_options(self):
|
|
|
|
pass
|
|
|
|
|
|
|
|
def run(self):
|
|
|
|
# check for existence of the submodule directory
|
|
|
|
coins_json = os.path.join(self.TREZOR_COMMON, 'coins.json')
|
|
|
|
if not os.path.exists(coins_json):
|
|
|
|
raise Exception('trezor-common submodule seems to be missing.\n' +
|
|
|
|
'Use "git submodule update --init" to retrieve it.')
|
|
|
|
|
|
|
|
# copy coins.json to the tree
|
|
|
|
shutil.copy(coins_json, 'trezorlib')
|
|
|
|
|
|
|
|
# regenerate messages
|
|
|
|
try:
|
|
|
|
subprocess.check_call(os.path.join(os.getcwd(), 'tools', 'build_protobuf'))
|
|
|
|
except Exception as e:
|
|
|
|
print(e)
|
|
|
|
print("Generating protobuf failed. Maybe you don't have 'protoc', or maybe you are on Windows?")
|
|
|
|
print("Using pre-generated files.")
|
|
|
|
|
|
|
|
|
2018-05-03 16:47:10 +00:00
|
|
|
def _patch_prebuild(cls):
|
|
|
|
"""Patch a setuptools command to depend on `prebuild`"""
|
|
|
|
orig_run = cls.run
|
|
|
|
|
|
|
|
def new_run(self):
|
2018-03-26 15:38:49 +00:00
|
|
|
self.run_command('prebuild')
|
2018-05-03 16:47:10 +00:00
|
|
|
orig_run(self)
|
|
|
|
|
|
|
|
cls.run = new_run
|
|
|
|
|
|
|
|
|
|
|
|
_patch_prebuild(build_py)
|
|
|
|
_patch_prebuild(develop)
|
2018-03-26 15:38:49 +00:00
|
|
|
|
|
|
|
|
2014-02-03 21:24:54 +00:00
|
|
|
setup(
|
2014-07-26 10:22:32 +00:00
|
|
|
name='trezor',
|
2017-12-02 17:31:34 +00:00
|
|
|
version=VERSION,
|
2016-11-27 12:48:45 +00:00
|
|
|
author='TREZOR',
|
|
|
|
author_email='info@trezor.io',
|
|
|
|
description='Python library for communicating with TREZOR Hardware Wallet',
|
2014-07-26 10:22:32 +00:00
|
|
|
url='https://github.com/trezor/python-trezor',
|
2017-12-18 17:55:04 +00:00
|
|
|
packages=[
|
|
|
|
'trezorlib',
|
2018-03-02 15:43:41 +00:00
|
|
|
'trezorlib.transport',
|
2017-12-12 15:40:11 +00:00
|
|
|
'trezorlib.messages',
|
2017-12-18 17:55:04 +00:00
|
|
|
'trezorlib.qt',
|
2017-12-19 09:19:38 +00:00
|
|
|
'trezorlib.tests.device_tests',
|
|
|
|
'trezorlib.tests.unit_tests',
|
2014-07-21 16:53:08 +00:00
|
|
|
],
|
2018-03-26 15:38:49 +00:00
|
|
|
package_data={
|
|
|
|
'trezorlib': ['coins.json'],
|
|
|
|
},
|
2017-06-23 19:31:42 +00:00
|
|
|
scripts=['trezorctl'],
|
2016-10-03 18:37:48 +00:00
|
|
|
install_requires=install_requires,
|
2018-05-04 13:54:23 +00:00
|
|
|
extras_require={
|
|
|
|
'hidapi': ['hidapi>=0.7.99.post20'],
|
|
|
|
},
|
2018-03-05 18:11:16 +00:00
|
|
|
python_requires='>=3.3',
|
2014-02-03 21:24:54 +00:00
|
|
|
include_package_data=True,
|
|
|
|
zip_safe=False,
|
|
|
|
classifiers=[
|
2015-01-30 22:52:14 +00:00
|
|
|
'License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)',
|
2014-02-03 21:24:54 +00:00
|
|
|
'Operating System :: POSIX :: Linux',
|
2014-07-26 10:22:32 +00:00
|
|
|
'Operating System :: Microsoft :: Windows',
|
|
|
|
'Operating System :: MacOS :: MacOS X',
|
2018-03-05 18:11:16 +00:00
|
|
|
'Programming Language :: Python :: 3 :: Only',
|
2014-02-03 21:24:54 +00:00
|
|
|
],
|
2018-03-26 15:38:49 +00:00
|
|
|
cmdclass={
|
|
|
|
'prebuild': PrebuildCommand,
|
|
|
|
},
|
2014-02-03 21:24:54 +00:00
|
|
|
)
|