For some reason, when using `claim_search`
with `--claim_id`, the arguments dictionary will also
contain `claim_ids` with an empty list, even if we didn't specify it.
```
lbrynet claim search --claim_id=8945573bcfcb7f8276187dfbb93545eac4ebf71a
```
Using both `claim_id` and `claim_ids` will raise a `ValueError`
exception so the daemon won't return a valid result
even if the claim ID is in fact valid.
So if `claim_id` exists, we need to discard `claim_ids`
if it is empty, before proceeding with the rest of the code.
On the other hand, if `claim_ids` is used, and `claim_id` is absent,
there will be no problem as `claim_id` won't be added to the dictionary.
```
lbrynet claim search --claim_ids=8945573bcfcb7f8276187dfbb93545eac4ebf71a
```
If the error is not handled, the running daemon will continuously
print the following error message:
```
Traceback (most recent call last):
File "lbry/extras/daemon/exchange_rate_manager.py", line 77, in get_rate
File "lbry/extras/daemon/exchange_rate_manager.py", line 189, in get_rate_from_response
KeyError: 0
```
This started happening when the UPBit exchange decided to delist
the LBC coin.
Normally `json_response` should be a dictionary, not a list,
so `json_response[0]` causes an error.
By checking for the `'error'` key, we can raise the proper exception.
Once this is done, the message will be a warning, not a traceback.
```
WARNING lbry.extras.daemon.exchange_rate_manager:92:
Failed to get exchange rate from UPbit: result not found
```
Remove the first space in the block of code as it is not necessary.
This
```
$ python --version
```
Becomes this
```
$ python --version
```
Also break the big block of code into individual blocks.
Because of issue #2769 at the moment the `lbrynet` daemon
will only work correctly with Python 3.7.
The `deadsnakes` personal package archive (PPA) provides
Python 3.7 for Ubuntu distributions that no longer have it
in their official repositories like 18.04 and 20.04.
If Python 3.8+ is used, the daemon will start but the RPC server
may not accept messages, returning the following:
```
Could not connect to daemon. Are you sure it's running?
```