Python-LDAP Size limit exceeded - python

I see there is a way for me page the results in python and I found the following example code:
https://bitbucket.org/jaraco/python-ldap/src/f208b6338a28/Demo/paged_search_ext_s.py
When I copy this code and try to modify it to what I need it to do when running the code I get a "TypeError: init() got an unexpected keyword argument 'cookie'"
I even reverted the code back to its default and get the same error. If someone could point me in the correct direction it would be much appreciated.
Thanks

Update your python-ldap module:
pip install python-ldap --upgrade
That class changed from this commit and mentioned:
new class API in ldap.controls, not backwards-compatible!

The problem is on this line:
req_ctrl = SimplePagedResultsControl(True,size=self.page_size,cookie='')
Find where that SimplePagedResultsControl class is defined and examine the parameter list for its constructor to get the correct constructor parameter list.
EDIT:
Looks like the constructor signature has been changed. Either upgrade as Omid Raha recommends or try the old method signature below if you are unable to upgrade for some reason.
paged_results_control = SimplePagedResultsControl(ldap.LDAP_CONTROL_PAGE_OID, True, (self.page_size, ''))

Related

stat() got an unexpected keyword argument 'follow_symlinks'

Web search found links to bugs, I don't write complicated code on Python, just want to confirm I understand syntax:
https://docs.python.org/3/library/pathlib.html
Path.stat(*, follow_symlinks=True)ΒΆ
But when I write Path(filepath).stat(follow_symlinks=False) I'm getting "stat() got an unexpected keyword argument 'follow_symlinks'" error. lstat() in place of stat(follow_symlinks=False) does job done.
Python 3.8.5. TIA
You're reading it correctly. You just missed the footnote. From the page you linked
Changed in version 3.10: The follow_symlinks parameter was added.
So if you want to use that keyword argument, you need Python 3.10 or newer. Otherwise, as you've already figured out, just use lstat.

GRPC Error: Parameter to MergeFrom() must be instance of same class

I have seen all previous questions about this, but nothing seems to be working on my end. I am trying to run a test that uses a protobuf generated file, called 'resource_pb2'. I am using Python 3.8 with grpc 1.33.2 and protobuf version 3.14.
When using a class from this protobuf generated file, my test fails with the following error:
Parameter to MergeFrom() must be instance of same class: expected RecognitionResource got RecognitionResource
I've checked the type and id's of all the "recognition resource" classes being called in that particular test, and I get the following:
<class 'resource_pb2.RecognitionResource'> 2069160783760
<class 'resource_pb2.RecognitionResource'> 2069160783760
<class 'resource_pb2.RecognitionResource'> 2069160783760
They are clearly all being called from the same source, so why is this issue occuring?
I had a similar issue and the reason was that I had made a mistake when passing parameters to the function.
The problem was solved when I realized about my bug and I invoked the function in the right way, with all required parameters properly set.
Hope it helps.

GTK Python gtk.TextBuffer(table=None) constructor error

I'm porting a Python GTK application from python2 to python3, using version 3.5.2. As part of this, I'm switching to updated GTK API calls. I need to call the gtk.TextBuffer constructor, described [here][1]. Following that documentation, I wrote:
tb = gtk.TextBuffer(table=text_tag_table)
This gives the following error:
*** TypeError: gobject `GtkTextBuffer' doesn't support property 'table'
I tried removing the table= part of the call:
gtk.TextBuffer(table=text_tag_table)
This gives:
*** TypeError: GObject.__init__() takes exactly 0 arguments (1 given)
I can call the constructor without arguments, e.g., tb = gtk.TextBuffer(). I tried setting the tag table manually, like this:
tb.set_property("tag-table", text_tag_table)
This gives a warning:
__main__:1: Warning: g_object_set_property: construct property "tag-table" for object 'GtkTextBuffer' can't be set after construction
It seems like the original constructor with the table= arg should work. Can anyone help me figure out why it throws a TypeError? I did confirm using pydb that text_tag_table is an object of the correct type:
(Pdb) p text_tag_table
<Gtk.TextTagTable object at 0x7fb723d6b288 (GtkTextTagTable at 0x2b2e8e0)>
Thanks very much in advance!
The fix for this was to use the new method:
tb = gtk.TextBuffer.new(table=text_tag_table)
I'm a bit surprised that this works, but it seems fine!

In python, "request.args.get" returns what type of variable?

Please bear with me as I am a beginner in python. I'm using a framework to change values of my drone's parameters. One of the command I would like to use is vehicle.parameters['INJECT_TO_GPS']=100. When I use
vehicle.parameters['GPS_TO_INJECT']=100
It works well and changes it to 100. Now I want to include this in a function (I'm using flask to get the value of a from a web page), so If I use:
def change_value():
a = request.args.get('a', 0)
vehicle.parameters['INJECT_TO_GPS']=a
It does not work, printing me:
error: required argument is not a float
I also tried:
vehicle.parameters['INJECT_TO_GPS']=float(a)
But in this, it complains that it has to be a string...
What is wrong with it ? thanks a lot in advance
To know the type You can use inbuilt function type or isinstance to test that it belongs to that class:
print(type(a))
print(isinstance(a , class_or_type_you_want_check))

Cannot set pdr_use_farkas option in Z3py

When I try to set the fixedpoint engine to PDR, and I try to set the pdr_use_farkas option, I am getting an unknown_parameter error.
In particular, I am using the following options on the fixedpoint object:
fp.set(engine='1',pdr_use_farkas=True,unbound_compressor=False,compile_with_widening=True)
This causes the error:
z3.types.Z3Exception: "unknown parameter ':pdr-use-farkas'"
Using set_option doesn't help either. I tried
set_option(dl_engine='1')
set_option(dl_pdr_use_farkas=True)
and I'm getting "unknown option".
Where am I making the mistake?
I'm using Z3 4.3.1 64bit.
The parameter names have changed between versions as newer versions include a name-space mechanism for parameter names. The Python API has a method for listing parameter descriptions: For example:
fp = Fixedpoint()
print fp.param_descrs()
prints the set of available parameters (permalink: rise4fun.com/Z3Py/r32)

Categories