Skip to content

Day 55-57 results in Type Error for __init__ #53

Closed
@salro

Description

@salro

Hi.

When I execute program.py for the Day 55-57 example I run into the following Type Error:

File "C:\Users\salro\PycharmProjects\100daysofcode-with-python-course\venv\lib\site-packages\uplink\hooks.py", line 103, in handle_response
response = hook.handle_response(consumer, response)
File "C:\Users\salro\PycharmProjects\100daysofcode-with-python-course\venv\lib\site-packages\uplink\hooks.py", line 20, in wrapper
return hook(*args, **kwargs)
File "C:\Users\salro\PycharmProjects\100daysofcode-with-python-course\venv\lib\site-packages\uplink\returns.py", line 39, in call
return self._strategy(*args, **kwargs)
TypeError: init() takes 1 positional argument but 2 were given

I tried multiple angles I am familiar with but nothing has worked so far.

Activity

bbelderbos

bbelderbos commented on Jan 20, 2021

@bbelderbos
Collaborator

@salro I cannot reproduce this error, what version of Python are you using and can you post a pip freeze here?

@mikeckennedy I do hit another issue upon writing a post:

write_post has this line:

    print("Created new post successfully: {}".format(resp.json().get('id')))
    print()

But the response json has 3 items:

(Pdb) resp.json()
[{'id': 'c7081102-e2c9-41ec-8b79-adc1f3469d91', 'published': '2017-02-14', 'view_count': 1231, 'content': "So maybe you've heard about Requests...", 'title': 'Easy Breezy Python HTTP Clients'}, {'id': '82160025-e50d-4993-aef7-dc423677ab05', 'published': '2017-02-08', 'view_count': 10, 'content': "Python's standard urllib2 module provides most of the HTTP capabilities you need, but the API is thoroughly broken. It was built for a different time - and a different web. It requires an enormous amount of work (even method overrides) to perform the simplest of tasks.\n\nThings shouldn't be this way. Not in Python.", 'title': 'Introducing Requests for Python'}, {'id': '0b52ded1-29e4-4368-a41f-5c244cb9f469', 'published': '2017-02-01', 'view_count': 100, 'content': 'Enjoy productive Python, Django, and Web development with PyCharm, an intelligent Python IDE offering unique coding experience...', 'title': 'PyCharm, the Best IDE for Python'}]
(Pdb) len(resp.json())
3

So it fails with:

    print("Created new post successfully: {}".format(resp.json().get('id')))
AttributeError: 'list' object has no attribute 'get'

I can patch it but waiting for @salro's response on the other issue ...

self-assigned this
on Jan 20, 2021
salro

salro commented on Jan 20, 2021

@salro
Author

Hi @bbelderbos .

I am working on Python 3.9 and here is the pip freeze:

certifi==2020.12.5
chardet==4.0.0
idna==3.1
requests==2.25.1
six==1.15.0
uplink==0.9.3
uritemplate==3.0.1
urllib3==1.26.2

Edit: Also tried it on Python 3.6 with the same error.

Thanks for your help.

bbelderbos

bbelderbos commented on Jan 20, 2021

@bbelderbos
Collaborator

@salro yeah with uplink==0.9.3 I am hitting the same issue. Try uplink==0.4.0 which is actually the "pinned" version in the requirements.txt file, then it should work (apart from the new issue on write which I will PR ...)

bbelderbos

bbelderbos commented on Jan 20, 2021

@bbelderbos
Collaborator

Actually I am a bit confused @mikeckennedy, is the blog_client.py complete?

resp = svc.create_new_entry(title, content, view_count) gives me a <Response [200]> which basically retrieves the 3 articles:

1. [1,231 views] Easy Breezy Python HTTP Clients
2. [10 views] Introducing Requests for Python
3. [100 views] PyCharm, the Best IDE for Python

(full JSON output from pdb pasted above)

Could you please check? Thanks

salro

salro commented on Jan 20, 2021

@salro
Author

@bbelderbos I missed the correct version number for uplink. Thanks for pointing it out and I will use the correct one now.

added a commit that references this issue on Feb 7, 2021
mikeckennedy

mikeckennedy commented on Jul 15, 2021

@mikeckennedy
Member

Hi all. I believe this was a bug in 0.9.3 of uplink. We are now at 0.9.4 and it seems to work again as you would expect. Sorry for the trouble. Incoming update in 3, 2, 1, ...

added a commit that references this issue on Feb 1, 2025

Fixes talkpython#53 for day 55-57 results in Type Error for __init__ …

1071bcd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @bbelderbos@mikeckennedy@salro

      Issue actions

        Day 55-57 results in Type Error for __init__ · Issue #53 · talkpython/100daysofcode-with-python-course