class_docstr: Base class for a context manager which allows changing of time zones.
  
  Subclasses may define a guard variable to either block or or allow time
  zone changes by redefining ``_guard_var_name`` and ``_guard_allows_change``.
  The default is that the guard variable must be affirmatively set.
  
  Subclasses must define ``get_current_tz`` and ``set_current_tz``.
class_docstr_tok: ["Base","class","for","a","context","manager","which","allows","changing","of","time","zones",".","Subclasses","may","define","a","guard","variable","to","either","block","or","or","allow","time","zone","changes","by","redefining","``","_guard_var_name","``","and","``","_guard_allows_change","``",".","The","default","is","that","the","guard","variable","must","be","affirmatively","set",".","Subclasses","must","define","``","get_current_tz","``","and","``","set_current_tz","``","."]
docstr: Generate instructions on how to allow tz changes 
code: def tz_change_disallowed_message(cls):
      """Generate instructions on how to allow tz changes"""
      msg = (
          "Changing time zone not allowed. Set {envar} to {gval} "
          "if you would like to allow this behavior"
      )
  
      return msg.format(
          envar=cls._guard_var_name, gval=cls._guard_allows_change
      )
  
imports: from __future__ import unicode_literals
  import os
  import time
  import subprocess
  import warnings
  import tempfile
  import pickle
  import pytest
label_desc: Use image node_id 3 for calling the TZContextBase obj's underlying member method code with example usage: obj.tz_change_disallowed_message(cls) and returns: msg