code: def get_object_directory(self, obj):
          
          if not hasattr(obj, '__module__'):
              return None
  
          module = sys.modules[obj.__module__]
  
          if not hasattr(module, '__file__'):
              # TODO: add a unit test for this case.
              return None
  
          path = module.__file__
  
          return os.path.dirname(path)
docs: Return the directory containing an object's defining class.
  
          Returns None if there is no such directory, for example if the
          class was defined in an interactive Python session, or in a
          doctest that appears in a text file (rather than a Python file).