-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TypeError: '<' not supported between instances of 'Cell' and 'Cell' #5
Comments
That is interesting. I just tried to run that code in python3.7 (as it seems your machine is using it) and everything works great. I have made test case for it, but I have no idea where to look, as I have no access to windows computer. Would you mind to take a closer look? |
Yes, I have found the solution by modifying the Cell class in So I have also modified the Cell class: class Cell(object):
def __init__(self, x, y, h, polygon):
self.h = h
self.y = y
self.x = x
self.d = _point_to_polygon_distance(x, y, polygon)
self.max = self.d + self.h * sqrt(2)
def __lt__(self, other):
return self.max < other.max Now it is working but I did not understand his explanation. Can you please explain the reason? |
It seems that in some cases (where values are same) queue is trying to sort elements. and to perform sorting in needs to compare two elements which has higher/lower elements. Therefore it performs by declaring Thanks a lot for checking it and providing a solution. I will add it to the code-base and create new package version soon :) |
version 0.6 released. feel free to update :)) |
ok...got it! thanks for the explanation! |
Hi,
when I provide input like the following,
coordinates = [[[100, 0], [101, 0], [110, 10], [100, 1], [100, 0]]]
Then it's ok and I am getting the output,
Centroid: [101.25, 1.25]
But if I just change the second coordinate,
coordinates = [[[100, 0], [105, 0], [110, 10], [100, 1], [100, 0]]]
then I get the following error:
Traceback (most recent call last): File "curve2poly.py", line 75, in <module> centroid = polylabel(x) File "C:\Users\mahmad\vision\lib\site-packages\polylabel\__init__.py", line 138, in polylabel _, __, cell = cell_queue.get() File "C:\Program Files\Python37\lib\queue.py", line 180, in get item = self._get() File "C:\Program Files\Python37\lib\queue.py", line 236, in _get return heappop(self.queue) TypeError: '<' not supported between instances of 'Cell' and 'Cell'
I am not getting what kind of input
polylabel()
takes? It should work with any shape and size of polygons, right?Update: It is working fine in ubuntu but not in windows.
The text was updated successfully, but these errors were encountered: