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
invoke.tasks.call raises "RuntimeError: maximum recursion depth exceeded while calling a Python object" #257
Comments
Do you have a full traceback handy? I'm not using this combo of feature+interpreter myself, but AFAIK it ought to work fine (i.e. your use of mixed object references & |
I hope this helps:
|
Yup, that does help (obviously, once it enters final recursion, the rest doesn't, but the top part is pretty critical :D). Something to do with how we deepcopy or perform attribute access. Gives me some starting points when I take a look. Thanks! |
I wrote a test that triggers the problem in this commit. For explaination: In the test I use the Hope that helps a little bit.
|
Having __getattr__ without __deepcopy__ causes infinite recursion in Python 3 when you deepcopy that object. A test is also updated to cause the error fixed in this commit. Fixes pyinvoke#257 Signed-off-by: Máté Farkas <mate.farkas@balabit.com>
Rolling into #300, which just got merged |
Tested our task that triggers the problem originally and it works as expected. Thanks a lot! |
We have a Cookiecutter template for our Django projects and I decided to replace the Makefile with invoke. Everything works very well, invoke is more flexible than the previous solution. Thanks for the great software!
Unfortunately the tasks package I created works only with Python 2. Python 3 raises a "RuntimeError: maximum recursion depth exceeded while calling a Python object". I was able to track down the cause. It's
invoke.tasks.call
being used to build a list of pre-targets. The task wrapped withinvoke.tasks.call
works stand alone. Maybe my solution to build the pre-tasks list is not correct?The text was updated successfully, but these errors were encountered: