def get_variant_properties(self):
        from lfs.caching.utils import get_cache_group_id
        pid = self.get_parent().pk
        properties_version = get_cache_group_id('global-properties-version')
        group_id = '%s-%s' % (properties_version, get_cache_group_id('properties-%s' % pid))
        cache_key = "%s-variant-properties-%s-%s" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, group_id, self.id)

        properties = cache.get(cache_key)
        if properties:
            return properties

        properties = []

        for ppv in self.property_values.filter(type=PROPERTY_VALUE_TYPE_VARIANT).order_by("property_group__name", "property__position"):
            if ppv.property.is_select_field:
                try:
                    po = PropertyOption.objects.get(pk=int(float(ppv.value)))
                except PropertyOption.DoesNotExist:
                    continue
                else:
                    value = po.name
            else:
                value = ppv.value
            properties.append({
                "name": ppv.property.name,
                "title": ppv.property.title,
                "value": value,
                "unit": ppv.property.unit,
                "property_group": ppv.property_group,
                "property_group_id": ppv.property_group_id if ppv.property_group else 0
            })

        cache.set(cache_key, properties)

        return properties
Tests partial aliases with correct requires.
dataset/ETHPy150Open diefenbach/django-lfs/lfs/catalog/models.py/Product.get_variant_properties--crossover with--dataset/ETHPy150Open google/closure-linter/closure_linter/closurizednamespacesinfo_test.py/ClosurizedNamespacesInfoTest.testScope_partialAliasRequiresBoth