code: def _set_directories(self):
          '''Initialize variables based on evidence about the directories.'''
          if self._dirs['initial'] == None:
              self._dirs['base'] = discover_base_dir(self._dirs['run'])  
          else:
              self._dirs['base'] = discover_base_dir(self._dirs['initial'])  
          # now, if 'base' is None (no base directory was found) then the only
          # allowed operation is init 
          self._update_dirs_on_base()
          # we might have set the directory variables fine, but the tree
          # might not exist yet. _tree_ready is a flag for that.
          self._tree_ready = verify_dir_structure(self._dirs['base'])
          if self._tree_ready:
              self._read_site_config(f _set_directories(self):
          '''Initialize variables based on evidence about the directories.'''
          if self._dirs['initial'] == None:
              self._dirs['base'] = discover_base_dir(self._dirs['run'])  
          else:
              self._dirs['base'] = discover_base_dir(self._dirs['initial'])  
          # now, if 'base' is None (no base directory was found) then the only
          # allowed operation is init 
          self._update_dirs_on_base()
          # we might have set the directory variables fine, but the tree
          # might not exist yet. _tree_ready is a flag for that.
          self._tree_ready = verify_dir_structure(self._dirs['base'])
          if self._tree_ready:
              self._read_site_config()
docs: Initialize variables based on evidence about the directories.