NameError: name 'unicode' is not defined -- bench setup lets-encrypt

If, like me, you are shell scripting your installation and want to automate patching nginx.py you can do what I do:

cd ${HOME}/.bench/bench/config;                   # Got to bench config directory
cp nginx.py nginx_BACKUP.py;                      # Back up your config file

# Set variables
declare PATTERN="isinstance(domain, unicode)";
declare REPLACEMENT="\t\t\t\tif isinstance(domain, str) or isinstance(domain, bytes):";
#
cat nginx.py | grep "isinstance";                 # Get a 'before' view
sed -i "/${PATTERN}/c\\${REPLACEMENT}" nginx.py;  # Do the replacement
cat nginx.py | grep "isinstance";                 # Get an 'after' view

You ought to see the following:

erpnext@mine:~$ cd ${HOME}/.bench/bench/config;
erpnext@mine:~/.bench/bench/config$ cp nginx.py nginx_BACKUP.py;
erpnext@mine:~/.bench/bench/config$ declare PATTERN="isinstance(domain, unicode)";
erpnext@mine:~/.bench/bench/config$ declare REPLACEMENT="                                if isinstance(domain, str) or isinstance(domain, bytes):";
erpnext@mine:~/.bench/bench/config$ cat nginx.py | grep "isinstance";
				    if isinstance(domain, str) or isinstance(domain, unicode):
erpnext@mine:~/.bench/bench/config$ sed -i "/${PATTERN}/c\ ${REPLACEMENT}" nginx.py;
erpnext@mine:~/.bench/bench/config$ cat nginx.py | grep "isinstance";
                    if isinstance(domain, str) or isinstance(domain, bytes):
erpnext@mine:~/.bench/bench/config$ 

btw – Kudos goes to @Vinob_chander_Ramasw for solving the original issue!!