9e57a5961554a8c550868127f0a10d72327da4b8
Previously if a task running in the main_taskgroup raised, main_taskgroup might have never finished as fx.run (another task running in main_taskgroup) could not be cancelled (it was swallowing the CancelledError). Need to be careful with catching all Exceptions or BaseExceptions, as that might result in a coroutine not being cancellable. Note that from python 3.8 onwards, CancelledError will inherit from BaseException instead of Exception, so catching all Exceptions is somewhat less horrible but this will only really matter if we raise the min py version to 3.8... Really, all "except BaseException" lines are suspect and at least should be considered for replacement with "except Exception". ----- regarding fx.run not being cancellable before, and relevant lines, see:6197cfbb3b/electrum/network.py (L1171)0decdffce2/aiorpcx/curio.py (L242)0decdffce2/aiorpcx/curio.py (L199)0decdffce2/aiorpcx/curio.py (L208)0decdffce2/aiorpcx/curio.py (L218)0decdffce2/aiorpcx/curio.py (L221)6197cfbb3b/electrum/daemon.py (L194)6197cfbb3b/electrum/daemon.py (L203)6197cfbb3b/electrum/exchange_rate.py (L507)6197cfbb3b/electrum/exchange_rate.py (L79)
Electrum - Lightweight Bitcoin client
=====================================
::
Licence: MIT Licence
Author: Thomas Voegtlin
Language: Python (>= 3.6)
Homepage: https://electrum.org/
.. image:: https://travis-ci.org/spesmilo/electrum.svg?branch=master
:target: https://travis-ci.org/spesmilo/electrum
:alt: Build Status
.. image:: https://coveralls.io/repos/github/spesmilo/electrum/badge.svg?branch=master
:target: https://coveralls.io/github/spesmilo/electrum?branch=master
:alt: Test coverage statistics
.. image:: https://d322cqt584bo4o.cloudfront.net/electrum/localized.svg
:target: https://crowdin.com/project/electrum
:alt: Help translate Electrum online
Getting started
===============
Electrum is a pure python application. If you want to use the
Qt interface, install the Qt dependencies::
sudo apt-get install python3-pyqt5
If you downloaded the official package (tar.gz), you can run
Electrum from its root directory without installing it on your
system; all the python dependencies are included in the 'packages'
directory. To run Electrum from its root directory, just do::
./run_electrum
You can also install Electrum on your system, by running this command::
sudo apt-get install python3-setuptools
python3 -m pip install .[fast]
This will download and install the Python dependencies used by
Electrum instead of using the 'packages' directory.
The 'fast' extra contains some optional dependencies that we think
are often useful but they are not strictly needed.
If you cloned the git repository, you need to compile extra files
before you can run Electrum. Read the next section, "Development
Version".
Development version
===================
Check out the code from GitHub::
git clone git://github.com/spesmilo/electrum.git
cd electrum
Run install (this should install dependencies)::
python3 -m pip install .[fast]
Compile the protobuf description file::
sudo apt-get install protobuf-compiler
protoc --proto_path=electrum --python_out=electrum electrum/paymentrequest.proto
Create translations (optional)::
sudo apt-get install python-requests gettext
./contrib/pull_locale
Creating Binaries
=================
Linux (tarball)
---------------
See :code:`contrib/build-linux/README.md`.
Linux (AppImage)
----------------
See :code:`contrib/build-linux/appimage/README.md`.
Mac OS X / macOS
----------------
See :code:`contrib/osx/README.md`.
Windows
-------
See :code:`contrib/build-wine/README.md`.
Android
-------
See :code:`electrum/gui/kivy/Readme.md`.
Description
Languages
Python
89.1%
QML
8.4%
Shell
2%
Dockerfile
0.2%
Java
0.2%
Other
0.1%