code: def site_data_dir(appname, appauthor=None, version=None):
      
      if sys.platform.startswith("win"):
          if appauthor is None:
              raise AppDirsError("must specify 'appauthor' on Windows")
          path = os.path.join(_get_win_folder("CSIDL_COMMON_APPDATA"),
                              appauthor, appname)
      elif sys.platform == 'darwin':
          path = os.path.join(
              os.path.expanduser('/Library/Application Support'),
              appname)
      else:
          # XDG default for $XDG_CONFIG_DIRS[0]. Perhaps should actually
          # *use* that envvar, if defined.
          path = "/etc/xdg/"+appname.lower()
      if version:
          path = os.path.join(path, version)
      return path
docs: Return full path to the user-shared data dir for this application.
  
          "appname" is the name of application.
          "appauthor" (only required and used on Windows) is the name of the
              appauthor or distributing body for this application. Typically
              it is the owning company name.
          "version" is an optional version path element to append to the
              path. You might want to use this if you want multiple versions
              of your app to be able to run independently. If used, this
              would typically be "<major>.<minor>".
  
      Typical user data directories are:
          Mac OS X:   /Library/Application Support/<AppName>
          Unix:       /etc/xdg/<appname>
          Win XP:     C:\Documents and Settings\All Users\Application Data\<AppAuthor>\<AppName>
          Vista:      (Fail! "C:\ProgramData" is a hidden *system* directory on Vista.)
          Win 7:      C:\ProgramData\<AppAuthor>\<AppName>   # Hidden, but writeable on Win 7.
  
      For Unix, this is using the $XDG_CONFIG_DIRS[0] default.
  
      WARNING: Do not use this on Windows. See the Vista-Fail note above for why.