a method to retrieve the os appropriate path to user app data

        # https://www.chromium.org/user-experience/user-data-directory

        :param org_name: string with name of product/service creator
        :param prod_name: string with name of product/service
        :return: string with path to app data

def app_data(self, org_name, prod_name):

        ''' a method to retrieve the os appropriate path to user app data

        # https://www.chromium.org/user-experience/user-data-directory

        :param org_name: string with name of product/service creator
        :param prod_name: string with name of product/service
        :return: string with path to app data
        '''

        __name__ = '%s.app_data' % self.__class__.__name__

    # validate inputs
        org_name = self.fields.validate(org_name, '.org_name')
        prod_name = self.fields.validate(prod_name, '.prod_name')

    # construct empty fields
        data_path = ''

    # construct path from os
        if self.os.sysname == 'Windows':
            from re import compile
            xp_pattern = compile('^C:\\Documents and Settings')
            app_data = ''
            if os.environ.get('APPDATA'):
                app_data = os.environ.get('APPDATA')
            if xp_pattern.findall(app_data):
                data_path = '%s\\Local Settings\\Application Data\\%s\\%s' % (self.home, org_name, prod_name)
            else:
                data_path = '%s\\AppData\\Local\\%s\\%s' % (self.home, org_name, prod_name)

        elif self.os.sysname == 'Darwin':
            data_path = '%s/Library/Application Support/%s/%s/' % (self.home, org_name, prod_name)

        elif self.os.sysname in ('Linux', 'FreeBSD', 'Solaris'):
            org_format = org_name.replace(' ','-').lower()
            prod_format = prod_name.replace(' ', '-').lower()
            data_path = '%s/.config/%s-%s/' % (self.home, org_format, prod_format)

        return data_path