simplify setup.py using package_data

This commit is contained in:
ThomasV 2015-02-18 17:13:41 +01:00
parent 619ee02df8
commit b5ac7f2a7c
16 changed files with 22 additions and 109 deletions

View File

@ -76,7 +76,8 @@ def theme_dirs_from_prefix(prefix):
def load_theme_paths():
theme_paths = {}
theme_paths.update(theme_dirs_from_prefix(util.data_dir()))
theme_dir = os.path.join(os.path.dirname(__file__), 'themes')
theme_paths.update(theme_dirs_from_prefix(theme_dir))
return theme_paths

View File

@ -18,11 +18,7 @@
import gettext, os
if os.path.exists('./locale'):
LOCALE_DIR = './locale'
else:
LOCALE_DIR = '/usr/share/locale'
LOCALE_DIR = os.path.join(os.path.dirname(__file__), 'locale')
language = gettext.translation('electrum', LOCALE_DIR, fallback = True)

View File

@ -26,7 +26,6 @@ import string
import ecdsa
import pbkdf2
import util
from util import print_error
from bitcoin import is_old_seed, is_new_seed
import version
@ -104,7 +103,7 @@ class Mnemonic(object):
lang = i18n.language.info().get('language', 'en')
print_error('language', lang)
filename = filenames.get(lang[0:2], 'english.txt')
path = os.path.join(util.data_dir(), 'wordlist', filename)
path = os.path.join(os.path.dirname(__file__), 'wordlist', filename)
s = open(path,'r').read().strip()
s = unicodedata.normalize('NFKD', s.decode('utf8'))
lines = s.split('\n')

119
setup.py
View File

@ -10,57 +10,21 @@ import imp
version = imp.load_source('version', 'lib/version.py')
util = imp.load_source('util', 'lib/util.py')
if sys.version_info[:3] < (2, 7, 0):
sys.exit("Error: Electrum requires Python version >= 2.7.0...")
if (len(sys.argv) > 1) and (sys.argv[1] == "install"):
# or (platform.system() != 'Windows' and platform.system() != 'Darwin'):
print "Including all files"
data_files = []
usr_share = util.usr_share_dir()
if not os.access(usr_share, os.W_OK):
try:
os.mkdir(usr_share)
except:
sys.exit("Error: cannot write to %s.\nIf you do not have root permissions, you may install Electrum in a virtualenv.\nAlso, please note that you can run Electrum without installing it on your system."%usr_share)
data_files = []
if platform.system() == 'Linux':
usr_share = os.path.join(sys.prefix, "share")
data_files += [
(os.path.join(usr_share, 'applications/'), ['electrum.desktop']),
(os.path.join(usr_share, 'app-install', 'icons/'), ['icons/electrum.png'])
]
if not os.path.exists('locale'):
os.mkdir('locale')
for lang in os.listdir('locale'):
if os.path.exists('locale/%s/LC_MESSAGES/electrum.mo' % lang):
data_files.append((os.path.join(usr_share, 'locale/%s/LC_MESSAGES' % lang), ['locale/%s/LC_MESSAGES/electrum.mo' % lang]))
appdata_dir = os.path.join(usr_share, "electrum")
data_files += [
(appdata_dir, ["data/README"]),
(os.path.join(appdata_dir, "cleanlook"), [
"data/cleanlook/name.cfg",
"data/cleanlook/style.css"
]),
(os.path.join(appdata_dir, "sahara"), [
"data/sahara/name.cfg",
"data/sahara/style.css"
]),
(os.path.join(appdata_dir, "dark"), [
"data/dark/name.cfg",
"data/dark/style.css"
])
]
for lang in os.listdir('data/wordlist'):
data_files.append((os.path.join(appdata_dir, 'wordlist'), ['data/wordlist/%s' % lang]))
else:
data_files = []
setup(
name="Electrum",
version=version.ELECTRUM_VERSION,
@ -82,70 +46,23 @@ setup(
'electrum_gui': 'gui',
'electrum_plugins': 'plugins',
},
packages=['electrum','electrum_gui','electrum_gui.qt','electrum_plugins'],
package_data={
'electrum': [
'wordlist/*.txt',
'locale/*/LC_MESSAGES/electrum.mo',
],
'electrum_gui': [
"qt/themes/cleanlook/name.cfg",
"qt/themes/cleanlook/style.css",
"qt/themes/sahara/name.cfg",
"qt/themes/sahara/style.css",
"qt/themes/dark/name.cfg",
"qt/themes/dark/style.css",
]
},
scripts=['electrum'],
data_files=data_files,
py_modules=[
'electrum.account',
'electrum.bitcoin',
'electrum.blockchain',
'electrum.bmp',
'electrum.commands',
'electrum.daemon',
'electrum.i18n',
'electrum.interface',
'electrum.mnemonic',
'electrum.msqr',
'electrum.network',
'electrum.network_proxy',
'electrum.old_mnemonic',
'electrum.paymentrequest',
'electrum.paymentrequest_pb2',
'electrum.plugins',
'electrum.qrscanner',
'electrum.simple_config',
'electrum.synchronizer',
'electrum.transaction',
'electrum.util',
'electrum.verifier',
'electrum.version',
'electrum.wallet',
'electrum.x509',
'electrum_gui.gtk',
'electrum_gui.qt.__init__',
'electrum_gui.qt.amountedit',
'electrum_gui.qt.console',
'electrum_gui.qt.history_widget',
'electrum_gui.qt.icons_rc',
'electrum_gui.qt.installwizard',
'electrum_gui.qt.lite_window',
'electrum_gui.qt.main_window',
'electrum_gui.qt.network_dialog',
'electrum_gui.qt.password_dialog',
'electrum_gui.qt.paytoedit',
'electrum_gui.qt.qrcodewidget',
'electrum_gui.qt.qrtextedit',
'electrum_gui.qt.qrwindow',
'electrum_gui.qt.receiving_widget',
'electrum_gui.qt.seed_dialog',
'electrum_gui.qt.transaction_dialog',
'electrum_gui.qt.util',
'electrum_gui.qt.version_getter',
'electrum_gui.stdio',
'electrum_gui.text',
'electrum_plugins.audio_modem',
'electrum_plugins.btchipwallet',
'electrum_plugins.coinbase_buyback',
'electrum_plugins.cosigner_pool',
'electrum_plugins.exchange_rate',
'electrum_plugins.greenaddress_instant',
'electrum_plugins.labels',
'electrum_plugins.openalias',
'electrum_plugins.plot',
'electrum_plugins.trezor',
'electrum_plugins.trustedcoin',
'electrum_plugins.virtualkeyboard',
],
description="Lightweight Bitcoin Wallet",
author="Thomas Voegtlin",
author_email="thomasv@electrum.org",