Comments (6)
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.
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.
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.
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.
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.
@kensington I would accept a pull request that attached a major version to the cache filename.
from howdoi.
Related Issues (20)
- pickle.UnpicklingError: the STRING opcode argument must be quoted HOT 4
- Add flag to enable paging / choose pager HOT 3
- Is the tracking parameter t=hj in the duckduckgo URL intentional? HOT 7
- Function `_format_url_to_filename` only used in tests HOT 2
- Error in command `howdoi print in python` HOT 3
- Add checks when it comes to something like `range` HOT 2
- Not installable in python3.5 HOT 3
- Change pull request template "Pull request Type" to checklist HOT 2
- Add page cache to .gitignore HOT 1
- fresh install, stuck at 1.1.9 HOT 4
- Fetch Bing- Chat-GPT HOT 2
- Add method to detect symbols like +, /, etc. in the queries HOT 7
- ERROR: Sorry, couldn't find any help with that topic (use --explain to learn why) HOT 8
- GPT Implementation?
- 403 forbiddeb HOT 2
- Questions about Copilot + Open Source Software Hierarchy
- Coloured output not visible in light terminal window
- Add bash / zsh / fish shell completions
- Add extension to Open VSX registry HOT 1
- Crashes in Python 3.8 (and prior) due to usage of list[str] type annotation by terminaltables3 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from howdoi.