def dump(self):
        from pypicloud import __version__
        data = {}
        data['allow_register'] = self.allow_register()
        data['version'] = __version__

        groups = self.groups()
        users = self.user_data()
        for user in users:
            user['password'] = self._get_password_hash(user['username'])

        data['groups'] = {}
        packages = {
            'users': defaultdict(dict),
            'groups': defaultdict(dict),
        }
        for group in groups:
            data['groups'][group] = self.group_members(group)
            perms = self.group_package_permissions(group)
            for perm in perms:
                package = perm['package']
                packages['groups'][package][group] = perm['permissions']

        for user in users:
            username = user['username']
            perms = self.user_package_permissions(username)
            for perm in perms:
                package = perm['package']
                packages['users'][package][username] = perm['permissions']

        # Convert the defaultdict to a dict for easy serialization
        packages['users'] = dict(packages['users'])
        packages['groups'] = dict(packages['groups'])
        data['users'] = users
        data['packages'] = packages
        return data
Dump all of the access control data to a universal format
dataset/ETHPy150Open mathcamp/pypicloud/pypicloud/access/base.py/IAccessBackend.dump