kennedyoliveira/alfred-rates

Conversion not working

Closed this issue · 5 comments

When trying to convert I get the message "Error in workflow 'com.razor.rates'".

When calling the script from the command line I get the following result:

$ python rates.py 100 eur usd
18:22:32 workflow.py:1972 DEBUG    Workflow version : 2.3.0
18:22:32 workflow.py:1387 DEBUG    Reading settings from `/Users/main12/Library/Application Support/Alfred 2/Workflow Data/com.razor.rates/settings.json` ...
18:22:32 workflow.py:2233 DEBUG    Update check not due
18:22:32 workflow.py:1511 DEBUG    Data `currency_info` stored in `cpickle` format
18:22:32 workflow.py:1990 ERROR
Traceback (most recent call last):
  File "/Users/main12/Library/Application Support/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.3040938C-5CA2-41E2-8305-DBEF509C873C/workflow/workflow.py", line 1983, in run
    func(self)
  File "rates.py", line 426, in main
    currencies = load_currency_info(wf)
  File "rates.py", line 95, in load_currency_info
    moedas = wf.stored_data(STORED_DATA_CURRENCY_INFO)
  File "/Users/main12/Library/Application Support/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.3040938C-5CA2-41E2-8305-DBEF509C873C/workflow/workflow.py", line 1524, in stored_data
    data = serializer.load(file_obj)
  File "/Users/main12/Library/Application Support/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.3040938C-5CA2-41E2-8305-DBEF509C873C/workflow/workflow.py", line 633, in load
    return cPickle.load(file_obj)
EOFError
18:22:32 workflow.py:2008 DEBUG    Workflow finished in 0.006 seconds.

Hello Guido.

Can you try run rateclear and after try to convert again?

And in which version of OS X and alfred are you running?

OSX 10.10.5, Alfred V2.7.2 (407)

This is the error when running "rateclear":

Starting debug for 'Rates'

[ERROR: alfred.workflow.input.scriptfilter] Code 1: 21:46:48 workflow.py:1972 DEBUG    Workflow version : 2.3.0
21:46:48 workflow.py:1387 DEBUG    Reading settings from `/Users/main12/Library/Application Support/Alfred 2/Workflow Data/com.razor.rates/settings.json` ...
21:46:48 workflow.py:2233 DEBUG    Update check not due
21:46:48 workflow.py:1511 DEBUG    Data `currency_info` stored in `cpickle` format
21:46:48 workflow.py:1990 ERROR    
Traceback (most recent call last):
  File "/Users/main12/Library/Application Support/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.3040938C-5CA2-41E2-8305-DBEF509C873C/workflow/workflow.py", line 1983, in run
    func(self)
  File "rates.py", line 426, in main
    currencies = load_currency_info(wf)
  File "rates.py", line 95, in load_currency_info
    moedas = wf.stored_data(STORED_DATA_CURRENCY_INFO)
  File "/Users/main12/Library/Application Support/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.3040938C-5CA2-41E2-8305-DBEF509C873C/workflow/workflow.py", line 1524, in stored_data
    data = serializer.load(file_obj)
  File "/Users/main12/Library/Application Support/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.3040938C-5CA2-41E2-8305-DBEF509C873C/workflow/workflow.py", line 633, in load
    return cPickle.load(file_obj)
EOFError
21:46:48 workflow.py:2008 DEBUG    Workflow finished in 0.006 seconds.

Then I removed the currency_info.cpickle and rateclear finished without issue.

Then I tried converting again with the following error:

Starting debug for 'Rates'

[STDERR: alfred.workflow.input.scriptfilter] 21:52:45 workflow.py:1972 DEBUG    Workflow version : 2.4.0
21:52:45 workflow.py:1387 DEBUG    Reading settings from `/Users/main12/Library/Application Support/Alfred 2/Workflow Data/com.razor.rates/settings.json` ...
21:52:45 workflow.py:2233 DEBUG    Update check not due
21:52:45 workflow.py:1511 DEBUG    Data `currency_info` stored in `cpickle` format
21:52:45 workflow.py:1526 DEBUG    Stored data loaded from : /Users/main12/Library/Application Support/Alfred 2/Workflow Data/com.razor.rates/currency_info.cpickle
21:52:45 rates.py:446 DEBUG    Args parsed: Namespace(clear=None, default_currency=None, default_divisor=None, get_default_currency=None, get_default_divisor=None, query=[u'100 '], update=None)
21:52:45 rates.py:447 DEBUG    Args received: [u'100 ']
21:52:45 workflow.py:2163 DEBUG    Set last run version : 2.4.0
21:52:45 workflow.py:2008 DEBUG    Workflow finished in 0.012 seconds.
[ERROR: alfred.workflow.input.scriptfilter] Code 1: 21:52:55 workflow.py:1972 DEBUG    Workflow version : 2.4.0
21:52:55 workflow.py:1387 DEBUG    Reading settings from `/Users/main12/Library/Application Support/Alfred 2/Workflow Data/com.razor.rates/settings.json` ...
21:52:55 workflow.py:2233 DEBUG    Update check not due
21:52:55 workflow.py:1511 DEBUG    Data `currency_info` stored in `cpickle` format
21:52:55 workflow.py:1526 DEBUG    Stored data loaded from : /Users/main12/Library/Application Support/Alfred 2/Workflow Data/com.razor.rates/currency_info.cpickle
21:52:55 rates.py:446 DEBUG    Args parsed: Namespace(clear=None, default_currency=None, default_divisor=None, get_default_currency=None, get_default_divisor=None, query=[u'100 QAR'], update=None)
21:52:55 rates.py:447 DEBUG    Args received: [u'100 QAR']
21:53:01 workflow.py:1990 ERROR    'NoneType' object has no attribute '__getitem__'
Traceback (most recent call last):
  File "/Users/main12/Library/Application Support/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.3040938C-5CA2-41E2-8305-DBEF509C873C/workflow/workflow.py", line 1983, in run
    func(self)
  File "rates.py", line 577, in main
    ret = process_conversion(queries, query, currency_src, currency_dst, val, currencies, wf)
  File "rates.py", line 172, in process_conversion
    rate = search_rate(src, dst, wf)
  File "rates.py", line 138, in search_rate
    rate = wf.cached_data(conv, get_rates_wrapper, max_age=3600)
  File "/Users/main12/Library/Application Support/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.3040938C-5CA2-41E2-8305-DBEF509C873C/workflow/workflow.py", line 1616, in cached_data
    data = data_func()
  File "rates.py", line 135, in get_rates_wrapper
    return get_rates(src, dst)
  File "rates.py", line 65, in get_rates
    rate_resp = rates['query']['results']['rate']
TypeError: 'NoneType' object has no attribute '__getitem__'
21:53:01 workflow.py:2008 DEBUG    Workflow finished in 6.301 seconds.
[ERROR: alfred.workflow.input.scriptfilter] XML Parse Error 'The operation couldn’t be completed. (NSXMLParserErrorDomain error 64.)'. Row (null), Col (null): 'XML declaration allowed only at the start of the document' in XML:
<?xml version="1.0" encoding="utf-8"?>
<items><item valid="no"><title>Error in workflow 'com.razor.rates'</title><subtitle>'NoneType' object has no attribute '__getitem__'</subtitle><icon>/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/AlertStopIcon.icns</icon></item></items><?xml version="1.0" encoding="utf-8"?>
<items><item valid="no"><title>Error in workflow 'com.razor.rates'</title><subtitle>'NoneType' object has no attribute '__getitem__'</subtitle><icon>/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/AlertStopIcon.icns</icon></item></items>
``

@guido4000, i tryed to reproduce your problem, but here it works fine, i made a new version with an dependency updated, try to install the new version, after that do the clear command and try again and post the results please.
The new version of the workflow is 2.4.1

Great. It works. Thank you!

@guido4000 Your welcome!