Initialize the plugin. This creates a data object which holds a
        BudgetDataPackage parser which operates based on a specification
        which is either provided in the config via:
        ``ckan.budgets.specification`` or the included version.

def configure(self, config):
        """
        Initialize the plugin. This creates a data object which holds a
        BudgetDataPackage parser which operates based on a specification
        which is either provided in the config via:
        ``ckan.budgets.specification`` or the included version.
        """

        specification = config.get(
            'ckan.budgets.specification',
            os.path.join(os.path.dirname(__file__),
                         'data', 'bdp', 'schema.json'))
        self.data = BudgetDataPackage(specification)

        countries_json = config.get(
            'ckan.budgets.countries',
            os.path.join(os.path.dirname(__file__),
                         'data', 'countries.json'))
        with open(countries_json) as country_list:
            self.countries = json.load(country_list)

        country = config.get('ckan.budgets.default.country', None)
        if country is not None:
            self.default_country = country.upper()
            if self.default_country not in self.countries:
                raise ValueError('Uknown country code "{code}"'.format(
                    code=country))
        else:
            self.default_currency = None

        currencies_json = config.get(
            'ckan.budget.currencies',
            os.path.join(os.path.dirname(__file__),
                         'data', 'currencies.json'))
        with open(currencies_json) as currency_list:
            self.currencies = json.load(currency_list)

        currency = config.get('ckan.budgets.default.currency', None)
        if currency is not None:
            self.default_currency = currency.upper()
            if self.default_currency not in self.currencies:
                raise ValueError('Unknown currency code "{code}"'.format(
                    code=currency))
        else:
            self.default_currency = None

        statuses_json = config.get(
            'ckan.budget.statuses',
            os.path.join(os.path.dirname(__file__),
                         'data', 'bdp', 'statuses.json'))
        with open(statuses_json) as statuses_list:
            self.statuses = json.load(statuses_list)