Skip to content

Commit 8057dec

Browse files
authored
Update database expressions for Django 5.1 (#2563)
From django/django@f030236: * `django.db.models.expressions.BaseExpression.constraint_validation_compatible` added * `django.db.models.expressions.BaseExpression.get_expression_for_validation` added From django/django@6364b6e: * `django.db.models.functions.text.ConcatPair.pipes_concat_sql` added From django/django@10b31ee: * `django.contrib.gis.db.models.functions.FromWKB.__init__` added * `django.contrib.gis.db.models.functions.FromWKB.as_oracle` added * `django.contrib.gis.db.models.functions.FromWKB.output_field` removed * `FromWKT` now inherits from `FromWKB`
1 parent 0f589ff commit 8057dec

File tree

4 files changed

+11
-18
lines changed

4 files changed

+11
-18
lines changed

django-stubs/contrib/gis/db/models/functions.pyi

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ from django.contrib.gis.db.models.sql.conversion import AreaField, DistanceField
55
from django.db.backends.base.base import BaseDatabaseWrapper
66
from django.db.models import BinaryField, BooleanField, FloatField, Func, IntegerField, TextField
77
from django.db.models import Transform as StandardTransform
8+
from django.db.models.expressions import BaseExpression
89
from django.db.models.sql.compiler import SQLCompiler, _AsSqlType
910
from django.utils.functional import cached_property
1011

@@ -105,12 +106,11 @@ class ForcePolygonCW(GeomOutputGeoFunc):
105106
arity: int
106107

107108
class FromWKB(GeoFunc):
108-
output_field: ClassVar[GeometryField]
109109
arity: int
110+
def __init__(self, expression: BaseExpression, srid: int = 0, **extra: Any) -> None: ...
111+
def as_oracle(self, compiler: SQLCompiler, connection: BaseDatabaseWrapper, **extra_context: Any) -> _AsSqlType: ...
110112

111-
class FromWKT(GeoFunc):
112-
output_field: ClassVar[GeometryField]
113-
arity: int
113+
class FromWKT(FromWKB): ...
114114

115115
class GeoHash(GeoFunc):
116116
output_field: ClassVar[TextField]

django-stubs/db/models/expressions.pyi

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,12 @@ class BaseExpression:
6363
filterable: bool
6464
window_compatible: bool
6565
allowed_default: bool
66+
constraint_validation_compatible: bool
6667
def __init__(self, output_field: Field | None = None) -> None: ...
6768
def get_db_converters(self, connection: BaseDatabaseWrapper) -> list[Callable]: ...
6869
def get_source_expressions(self) -> list[Any]: ...
6970
def set_source_expressions(self, exprs: Sequence[Combinable | Expression]) -> None: ...
71+
def as_sql(self, compiler: SQLCompiler, connection: BaseDatabaseWrapper) -> _AsSqlType: ...
7072
@cached_property
7173
def contains_aggregate(self) -> bool: ...
7274
@cached_property
@@ -113,7 +115,7 @@ class BaseExpression:
113115
def reverse_ordering(self) -> BaseExpression: ...
114116
def flatten(self) -> Iterator[BaseExpression]: ...
115117
def select_format(self, compiler: SQLCompiler, sql: str, params: _ParamsT) -> _AsSqlType: ...
116-
def as_sql(self, compiler: SQLCompiler, connection: BaseDatabaseWrapper) -> _AsSqlType: ...
118+
def get_expression_for_validation(self) -> BaseExpression: ...
117119

118120
class Expression(_Deconstructible, BaseExpression, Combinable): ...
119121

django-stubs/db/models/functions/text.pyi

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ class Chr(Transform):
2424

2525
class ConcatPair(Func):
2626
def coalesce(self) -> ConcatPair: ...
27-
def as_sqlite(self, compiler: SQLCompiler, connection: BaseDatabaseWrapper, **extra_context: Any) -> _AsSqlType: ...
27+
def pipes_concat_sql(
28+
self, compiler: SQLCompiler, connection: BaseDatabaseWrapper, **extra_context: Any
29+
) -> _AsSqlType: ...
30+
as_sqlite = pipes_concat_sql
2831
def as_mysql(self, compiler: SQLCompiler, connection: BaseDatabaseWrapper, **extra_context: Any) -> _AsSqlType: ...
2932

3033
class Concat(Func):

scripts/stubtest/allowlist_todo_django51.txt

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,6 @@ django.contrib.contenttypes.fields.GenericForeignKey.get_attname_column
77
django.contrib.contenttypes.models.ContentType.get_object_for_this_type
88
django.contrib.gis.db.backends.mysql.operations.MySQLOperations.collect
99
django.contrib.gis.db.models.ForeignObjectRel.accessor_name
10-
django.contrib.gis.db.models.OrderBy.constraint_validation_compatible
11-
django.contrib.gis.db.models.functions.FromWKB.__init__
12-
django.contrib.gis.db.models.functions.FromWKB.as_oracle
13-
django.contrib.gis.db.models.functions.FromWKB.output_field
14-
django.contrib.gis.db.models.functions.FromWKT.output_field
1510
django.contrib.gis.forms.ModelChoiceField.validate_no_null_characters
1611
django.contrib.gis.forms.RadioSelect.__slotnames__
1712
django.contrib.gis.gdal.geometries.LineString.m
@@ -44,7 +39,6 @@ django.contrib.postgres.aggregates.general.JSONBAgg.__init__
4439
django.contrib.postgres.fields.CIText
4540
django.contrib.postgres.fields.citext.CIText
4641
django.contrib.postgres.indexes.BTreeIndex.__init__
47-
django.contrib.postgres.indexes.OpClass.constraint_validation_compatible
4842
django.core.signing.Signer.__init__
4943
django.db.backends.base.operations.BaseDatabaseOperations.bulk_insert_sql
5044
django.db.backends.base.operations.BaseDatabaseOperations.force_group_by
@@ -66,14 +60,8 @@ django.db.backends.sqlite3.operations.DatabaseOperations.force_group_by
6660
django.db.migrations.autodetector.MigrationAutodetector.generate_altered_index_together
6761
django.db.migrations.autodetector.OperationDependency
6862
django.db.models.ForeignObjectRel.accessor_name
69-
django.db.models.OrderBy.constraint_validation_compatible
70-
django.db.models.expressions.BaseExpression.constraint_validation_compatible
71-
django.db.models.expressions.BaseExpression.get_expression_for_validation
72-
django.db.models.expressions.OrderBy.constraint_validation_compatible
7363
django.db.models.fields.related.ForeignObjectRel.accessor_name
7464
django.db.models.fields.reverse_related.ForeignObjectRel.accessor_name
75-
django.db.models.functions.ConcatPair.pipes_concat_sql
76-
django.db.models.functions.text.ConcatPair.pipes_concat_sql
7765
django.db.models.lookups.In.get_refs
7866
django.forms.ModelChoiceField.validate_no_null_characters
7967
django.forms.RadioSelect.__slotnames__

0 commit comments

Comments
 (0)