Skip to content
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

copy interval error #5

Closed
ozzzp opened this issue Aug 9, 2016 · 5 comments
Closed

copy interval error #5

ozzzp opened this issue Aug 9, 2016 · 5 comments
Assignees

Comments

@ozzzp
Copy link

ozzzp commented Aug 9, 2016

I need to copy/deepcopy a interval with the module copy, but it's always error:

k = interval([-3, -2], [0, 1])
A=copy.copy(k)
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.py", line 96, in copy
return _reconstruct(x, rv, 0)
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.py", line 329, in _reconstruct
y = callable(*args)
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy_reg.py", line 93, in newobj
return cls.new(cls, *args)
File "/usr/local/lib/python2.7/site-packages/interval/init.py", line 101, in new
return cls.union(process(x) for x in args)
File "/usr/local/lib/python2.7/site-packages/interval/init.py", line 181, in union
return cls._canonical(c for i in intervals for c in i)
File "/usr/local/lib/python2.7/site-packages/interval/init.py", line 158, in _canonical
components = [c for c in components if c.inf <= c.sup]
File "/usr/local/lib/python2.7/site-packages/interval/init.py", line 181, in
return cls._canonical(c for i in intervals for c in i)
File "/usr/local/lib/python2.7/site-packages/interval/init.py", line 101, in
return cls.union(process(x) for x in args)
File "/usr/local/lib/python2.7/site-packages/interval/init.py", line 100, in process
raise cls.ComponentError("Invalid interval component: " + repr(x))
ComponentError: Invalid interval component: ((-3.0, -2.0), (0.0, 1.0))

for deepcopy:

k = interval([-3, -2], [0, 1])
A=copy.copy(k)
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.py", line 96, in copy
return _reconstruct(x, rv, 0)
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.py", line 329, in _reconstruct
y = callable(*args)
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy_reg.py", line 93, in newobj
return cls.new(cls, _args)
File "/usr/local/lib/python2.7/site-packages/interval/init.py", line 101, in new
return cls.union(process(x) for x in args)
File "/usr/local/lib/python2.7/site-packages/interval/init.py", line 181, in union
return cls._canonical(c for i in intervals for c in i)
File "/usr/local/lib/python2.7/site-packages/interval/init.py", line 158, in _canonical
components = [c for c in components if c.inf <= c.sup]
File "/usr/local/lib/python2.7/site-packages/interval/init.py", line 181, in
return cls._canonical(c for i in intervals for c in i)
File "/usr/local/lib/python2.7/site-packages/interval/init.py", line 101, in
return cls.union(process(x) for x in args)
File "/usr/local/lib/python2.7/site-packages/interval/init.py", line 100, in process
raise cls.ComponentError("Invalid interval component: " + repr(x))
ComponentError: Invalid interval component: ((-3.0, -2.0), (0.0, 1.0))
k = interval([-3, -2], [0, 1])
A=copy.deepcopy(k)
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.py", line 190, in deepcopy
y = _reconstruct(x, rv, 1, memo)
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.py", line 328, in _reconstruct
args = deepcopy(args, memo)
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.py", line 163, in deepcopy
y = copier(x, memo)
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.py", line 237, in _deepcopy_tuple
y.append(deepcopy(a, memo))
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.py", line 163, in deepcopy
y = copier(x, memo)
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.py", line 237, in _deepcopy_tuple
y.append(deepcopy(a, memo))
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.py", line 190, in deepcopy
y = _reconstruct(x, rv, 1, memo)
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.py", line 329, in _reconstruct
y = callable(_args)
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy_reg.py", line 93, in newobj
return cls.new(cls, *args)
TypeError: new() takes exactly 3 arguments (2 given)

also it cannot be copied by module pickle. Any ideas?

@taschini taschini self-assigned this Aug 9, 2016
@taschini
Copy link
Owner

taschini commented Aug 9, 2016

I'll have a look.

@taschini
Copy link
Owner

I just released version 1.1.1 that fixes this issues. Now pickling, shallow copy and deep copy all work.

@ozzzp
Copy link
Author

ozzzp commented Aug 10, 2016

Interesting, the cause is just lack of the getnewargs method which I've never met before.
Learning!

@taschini
Copy link
Owner

Can you confirm that it is now working for you?

@ozzzp
Copy link
Author

ozzzp commented Aug 10, 2016

Yes, I have tested. Now it works

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants