# Django 5.2 documentation

# Source code for django.contrib.postgres.expressions

    from django.contrib.postgres.fields import ArrayField
    from django.db.models import Subquery
    from django.utils.functional import cached_property

    class ArraySubquery(Subquery):
        template = "ARRAY(%(subquery)s)"

        def __init__(self, queryset, **kwargs):
            super().__init__(queryset, **kwargs)

        @cached_property
        def output_field(self):
            return ArrayField(self.query.output_field)