Coder Social home page Coder Social logo

Comments (6)

gleitz avatar gleitz commented on September 26, 2024

Thanks for the report. It sounds like this is an issue with requests-cache. We're currently using version 0.3.0. If you get a chance would you mind upgrading to the latest (0.4.1) and seeing if you still see the issue?

A quick fix is to clear the cache when switching between versions with howdoi -C or disabling the cache by setting the environment variable HOWDOI_DISABLE_CACHE.

from howdoi.

kensington avatar kensington commented on September 26, 2024

In 0.4.0, the issue persists. With 0.4.1, it doesn't work at all:

Traceback (most recent call last):
File "/usr/bin/howdoi-python2.7", line 9, in
load_entry_point('howdoi==1.1.4', 'console_scripts', 'howdoi')()
File "/usr/lib64/python2.7/site-packages/howdoi/howdoi.py", line 217, in command_line_runner
print(howdoi(args).encode('utf-8', 'ignore'))
File "/usr/lib64/python2.7/site-packages/howdoi/howdoi.py", line 176, in howdoi
return get_instructions(args) or 'Sorry, couldn't find any help with that topic\n'
File "/usr/lib64/python2.7/site-packages/howdoi/howdoi.py", line 143, in get_instructions
links = get_links(args['query'])
File "/usr/lib64/python2.7/site-packages/howdoi/howdoi.py", line 68, in get_links
result = get_result(url)
File "/usr/lib64/python2.7/site-packages/howdoi/howdoi.py", line 59, in get_result
return requests.get(url, headers={'User-Agent': random.choice(USER_AGENTS)}, proxies=get_proxies()).text
File "/usr/lib64/python2.7/site-packages/requests/api.py", line 55, in get
return request('get', url, *_kwargs)
File "/usr/lib64/python2.7/site-packages/requests/api.py", line 44, in request
return session.request(method=method, url=url, *_kwargs)
File "/usr/lib64/python2.7/site-packages/requests_cache/core.py", line 111, in request
hooks, stream, verify, cert)
File "/usr/lib64/python2.7/site-packages/requests/sessions.py", line 335, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib64/python2.7/site-packages/requests_cache/core.py", line 91, in send
return send_request_and_cache_response()
File "/usr/lib64/python2.7/site-packages/requests_cache/core.py", line 85, in send_request_and_cache_response
self.cache.save_response(cache_key, response)
File "/usr/lib64/python2.7/site-packages/requests_cache/backends/base.py", line 40, in save_response
self.responses[key] = self.reduce_response(response), datetime.utcnow()
File "/usr/lib64/python2.7/site-packages/requests_cache/backends/storage/dbdict.py", line 168, in setitem
sqlite.Binary(pickle.dumps(item)))
cPickle.UnpickleableError: Cannot pickle <type 'zlib.Decompress'> objects

from howdoi.

gleitz avatar gleitz commented on September 26, 2024

It may be that the requests version needs to be upgraded as well. If that
doesn't work would you mind submitting this bug to the requests project?
On Aug 25, 2013 8:27 AM, "kensington" [email protected] wrote:

In 0.4.0, the issue persists. With 0.4.1, it doesn't work at all:

Traceback (most recent call last):
File "/usr/bin/howdoi-python2.7", line 9, in
load_entry_point('howdoi==1.1.4', 'console_scripts', 'howdoi')()
File "/usr/lib64/python2.7/site-packages/howdoi/howdoi.py", line 217, in
command_line_runner
print(howdoi(args).encode('utf-8', 'ignore'))
File "/usr/lib64/python2.7/site-packages/howdoi/howdoi.py", line 176, in
howdoi
return get_instructions(args) or 'Sorry, couldn't find any help with that
topic\n'
File "/usr/lib64/python2.7/site-packages/howdoi/howdoi.py", line 143, in
get_instructions
links = get_links(args['query'])
File "/usr/lib64/python2.7/site-packages/howdoi/howdoi.py", line 68, in
get_links
result = get_result(url)
File "/usr/lib64/python2.7/site-packages/howdoi/howdoi.py", line 59, in
get_result
return requests.get(url, headers={'User-Agent':
random.choice(USER_AGENTS)}, proxies=get_proxies()).text
File "/usr/lib64/python2.7/site-packages/requests/api.py", line 55, in get
return request('get', url, *_kwargs)
File "/usr/lib64/python2.7/site-packages/requests/api.py", line 44, in
request
return session.request(method=method, url=url, *_kwargs)
File "/usr/lib64/python2.7/site-packages/requests_cache/core.py", line
111, in request
hooks, stream, verify, cert)
File "/usr/lib64/python2.7/site-packages/requests/sessions.py", line 335,
in request
resp = self.send(prep, *send_kwargs)
File "/usr/lib64/python2.7/site-packages/requests_cache/core.py", line 91,
in send
return send_request_and_cache_response()
File "/usr/lib64/python2.7/site-packages/requests_cache/core.py", line 85,
in send_request_and_cache_response
self.cache.save_response(cache_key, response)
File "/usr/lib64/python2.7/site-packages/requests_cache/backends/base.py",
line 40, in save_response
self.responses[key] = self.reduce_response(response), datetime.utcnow()
File
"/usr/lib64/python2.7/site-packages/requests_cache/backends/storage/dbdict.py",
line 168, in *setitem

sqlite.Binary(pickle.dumps(item)))
cPickle.UnpickleableError: Cannot pickle objects


Reply to this email directly or view it on GitHubhttps://github.com//issues/63#issuecomment-23229597
.

from howdoi.

kensington avatar kensington commented on September 26, 2024

requests-cache-0.4.2 has just been released fixing the second issue mentioned, but the original issue still persists. Is that an upstream issue too?

from howdoi.

reclosedev avatar reclosedev commented on September 26, 2024

requests-cache doesn't work when switching Python2 and Python3 with same database, due to unicode/str and pickle incompatibility.

Possible solution is to add major version to database name in client code.

from howdoi.

gleitz avatar gleitz commented on September 26, 2024

@kensington I would accept a pull request that attached a major version to the cache filename.

from howdoi.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.