deepcopy(jinja2.Template(...)) raises an exception
Author: OddBlokeCreated Aug 21, 2017Updated Aug 9, 2026
Labelsbug
MCVE
from copy import deepcopy
from jinja2 import Template
deepcopy(Template(''))Expected Behavior
A deep copy of the Template object is returned.
Actual Behavior
A TypeError is raised.
Full Traceback
Traceback (most recent call last):
File "copy_example.py", line 5, in <module>
deepcopy(Template(''))
File "/home/daniel/.virtualenvs/jinja/lib/python3.6/copy.py", line 180, in deepcopy
y = _reconstruct(x, memo, *rv)
File "/home/daniel/.virtualenvs/jinja/lib/python3.6/copy.py", line 274, in _reconstruct
y = func(*args)
File "/home/daniel/.virtualenvs/jinja/lib/python3.6/copyreg.py", line 88, in __newobj__
return cls.__new__(cls, *args)
TypeError: __new__() missing 1 required positional argument: 'source'Your Environment
- Python version: Python 3.6.2
- Jinja version: 2.9.6 and git master
Source: pallets/jinja