def build_pre_approval_payment_params(self, **kwargs):
        params = kwargs or {}

        params['reference'] = self.reference
        params['preApprovalCode'] = self.code

        for i, item in enumerate(self.items, 1):
            params['itemId%s' % i] = item.get('id')
            params['itemDescription%s' % i] = item.get('description')
            params['itemAmount%s' % i] = item.get('amount')
            params['itemQuantity%s' % i] = item.get('quantity')
            params['itemWeight%s' % i] = item.get('weight')
            params['itemShippingCost%s' % i] = item.get('shipping_cost')

        self.data.update(params)
        self.clean_none_params()
In general, we should be able to get a spec
dataset/ETHPy150Open rochacbruno/python-pagseguro/pagseguro/__init__.py/PagSeguro.build_pre_approval_payment_params--crossover with--dataset/ETHPy150Open kuri65536/python-for-android/python-modules/zope/zope/interface/tests/test_declarations.py/test_getting_spec_for_proxied_builtin_class