how to get all keys in a redis(codis version) in python - redis

I want to get all keys in redis?
this is a codis version
so, there is no scan() or scan_iter() or keys()...
I know there is a function
SLOTSSCAN
but how to use it in python?
not redis-cli

i made it!!!
use SLOTSSCAN
in python, just use send_command('SLOTSSCAN', slot, cursor)
then the response is what i want

Related

Module dependencies: is it possible to set a mininum version?

Is it possible to add a minimum version to a module listed in the depend section of a META6.json file?
It uses the same syntax as the Version class. You can use, for instance, v1.0+, or, in META6.json, simply "1.0+"
To declare a dependency on Foo of version 1 or higher one would do the same as if one was asking zef to install Foo:ver<1.0+>:
zef install "Foo:ver<1.0+>"
"depends" : [
"Foo:ver<1.0+>"
]
Long form identities use version literals for api and ver attributes, and strings for any other (such as auth, file, name, etc). So to describe such a dependency you should write it the same way you would if you were useing it using the literal form :foo<...> ala use Test:ver<6.d+>. This is opposed to :foo(...) form which can run anything, e.g. use Test:ver(do { say 42; v6.d+ }), which would allow arbitrary code execution by just searching for dependencies and thus is not a valid way to describe something in a META6.json

How to store data from Google Ngram API?

I need to store the data presented in the graphs on the Google Ngram website. For example, I want to store the occurences of "it's" as a percentage from 1800-2008, as presented in the following link: https://books.google.com/ngrams/graph?content=it%27s&year_start=1800&year_end=2008&corpus=0&smoothing=3&share=&direct_url=t1%3B%2Cit%27s%3B%2Cc0.
The data I want is the data you're able to scroll over on the graph. How can I extract this for about 140 different terms (e.g. "it's", "they're", "she's", etc.)?
econpy wrote a nice little module in Python that you can use through a command-line interface.
For your "it's" example, you would need to type this command in a terminal / windows console:
python getngrams.py it's -startYear=1800 -endYear=2008 -corpus=eng_2009 -smoothing=3
This will automatically save the query result in a CSV file named after your query parameters.
econpy's package, in #HugoMailhot's answer, no longer works (2021) and seems not maintained.
Here's a updated version, with some improvements for easier integration into Python code:
https://gitlab.com/cpbl/google-ngrams
You can call this from the command line (as in econpy's) to create a CSV file, e.g.
getngrams.py it's -startYear=1800 -endYear=2008 -corpus=eng_2009 -smoothing=3
or call it from python to get (and plot) data directly in python, e.g.:
from getngrams import ngrams
df = ngrams('bells and whistles -startYear=1900 -endYear=2018 -smoothing=2')
df.plot()
The xkcd functionality is still there too.
(Issues / bug fix pull requests /etc welcome there)

Making sqlite3 inserts using python variable

so I have a sqlite3 table with the following schema:
('number','name','prename','id','number_a','location_num','team')
Im wondering how to be able to fill some of those with content of a python variable.Number,id,number_a and team dont have to be filled.So basically, I have 3 python variable
thename='franco'
theprename='john'
thelocation_num=2
So I want to be able to insert at the right place the content of the python variable.I tried this so far:
cur.execute("INSERT INTO mytable('number','name','prename','id','number_a','location_num','team') VALUES('','?','?','','','?','')",(thename,),(theprename,),(thelocation_num,))
However it doesnt work.I dont know how to do that.
thank you
You can use
cur.execute("""INSERT INTO mytable
('number','name','prename','id','number_a','location_num','team')
VALUES('',?,?,'','',?,'')""",
(thename, theprename, thelocation_num))
If autocommit is not enabled, you also need to call connection.commit() in order to write the changes to disk.

Change bcrypt cost with Laravel Auth/Hash

Is there any way to use Laravel's Auth and Hash, but change the bcrypt cost?
The default is defined here http://laravel.com/api/source-class-Illuminate.Hashing.BcryptHasher.html
Take a look at the make method.
You can pass an options array as the second parameter, where you can define the cost value.
Hash::make('stringtobehashed', array('cost' => 20));
I know this thread is very old, but just for quick reference,
If you're using Laravel 4.0 and up, change cost to rounds. You can look at the code here.
EDIT:
Alternatively and as of Laravel 4.2, you can set the rounds once and for all, in some ServiceProvider's boot method (probably in the AppServiceProvider), using:
Hash::setRounds(12);

How do I get only the query string in a Rails route?

I am using a route like this
match "/v1/:method" => "v1#index"
My intention here is capture the name of the api method and then send the request to that method inside the controller.
def index
self.send params[:method], params
end
I figured this would send the other parameters as an argument to the method, but it didn't work. So my question is how can I pass the non-method parameters in a query string?
#query_parameters does exactly what you want:
request.query_parameters
It's also the most efficient solution since it doesn't construct a new hash, like the other ones do.
Stolen from the work of a colleague. I find this a slightly more robust solution, since it will work even if there are changes to the path parameters:
params.except(*request.path_parameters.keys)
I sort of solved this problem by doing this:
params.except("method","action","controller")