def get_product_price_gross(self, request):
        if not self.product.is_configurable_product():
            price = self.product.get_price_gross(request, amount=self.amount)
        else:
            if self.product.active_price_calculation:
                try:
                    price = self.get_calculated_price(request)
                except:
                    price = self.product.get_price_gross(request, amount=self.amount)
            else:
                price = self.product.get_price_gross(request, with_properties=False, amount=self.amount)
                for property in self.properties.all():
                    if property.property.is_select_field:
                        try:
                            option = PropertyOption.objects.get(pk=int(float(property.value)))
                        except (PropertyOption.DoesNotExist, AttributeError, ValueError):
                            pass
                        else:
                            try:
                                option_price = float(option.price)
                            except (TypeError, ValueError):
                                pass
                            else:
                                if not self.product.price_includes_tax(request):
                                    option_price = option_price * ((100 + self.product.get_tax_rate(request)) / 100)
                                price += option_price
        return price
new:return access token as a JsonDict: {"access_token":"your-access-token","expires_in":12345678,"uid":1234}, expires_in is represented using standard unix-epoch-time
dataset/ETHPy150Open diefenbach/django-lfs/lfs/cart/models.py/CartItem.get_product_price_gross--crossover with--dataset/ETHPy150Open michaelliao/sinaweibopy/weibo.py/APIClient._parse_access_token