#758·jinja

deepcopy(jinja2.Template(...)) raises an exception

Author: OddBlokeCreated Aug 21, 2017Updated Aug 9, 2026
Labelsbug

MCVE

python
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

pytb
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