Skip to content

Commit

Permalink
Improve stubs for contrib.postgres.operations. (#1071)
Browse files Browse the repository at this point in the history
* Improve stubs for contrib.postgres.operations.

This adds a bunch of missing operations in contrib.postgres.operations.

Documentation: https://docs.djangoproject.com/en/4.0/ref/contrib/postgres/operations/#managing-collations-using-migrations
Source code: https://github.com/django/django/blob/2fac0a18081dcc77fc860c801e5d727dc90435b3/django/contrib/postgres/operations.py

Signed-off-by: Zixuan James Li <[email protected]>

* Add migration_name_fragment to Operation.

Signed-off-by: Zixuan James Li <[email protected]>

* Remove redefinition of methods in subclasses.

Signed-off-by: Zixuan James Li <[email protected]>
  • Loading branch information
PIG208 authored Jul 24, 2022
1 parent 20f0702 commit 56f9300
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 0 deletions.
35 changes: 35 additions & 0 deletions django-stubs/contrib/postgres/operations.pyi
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
from typing import Dict, Literal, Tuple

from django.db.backends.base.schema import BaseDatabaseSchemaEditor
from django.db.migrations import AddConstraint, AddIndex, RemoveIndex
from django.db.migrations.operations.base import Operation

class CreateExtension(Operation):
reversible: bool = ...
name: str = ...
def __init__(self, name: str) -> None: ...
def extension_exists(self, schema_editor: BaseDatabaseSchemaEditor, extension: str) -> bool: ...

class BloomExtension(CreateExtension):
def __init__(self) -> None: ...

class BtreeGinExtension(CreateExtension):
def __init__(self) -> None: ...
Expand All @@ -25,3 +33,30 @@ class TrigramExtension(CreateExtension):

class UnaccentExtension(CreateExtension):
def __init__(self) -> None: ...

class NotInTransactionMixin:
def _ensure_not_in_transaction(self, schema_editor: BaseDatabaseSchemaEditor) -> None: ...

class AddIndexConcurrently(NotInTransactionMixin, AddIndex):
atomic: Literal[False] = ...

class RemoveIndexConcurrently(NotInTransactionMixin, RemoveIndex):
atomic: Literal[False] = ...

class CollationOperation(Operation):
name: str
locale: str
provider: str
deterministic: bool
def __init__(self, name: str, locale: str, *, provider: str = ..., deterministic: bool = ...) -> None: ...
def create_collation(self, schema_editor: BaseDatabaseSchemaEditor) -> None: ...
def remove_collation(self, schema_editor: BaseDatabaseSchemaEditor) -> None: ...

class CreateCollation(CollationOperation): ...
class RemoveCollation(CollationOperation): ...
class AddConstraintNotValid(AddConstraint): ...

class ValidateConstraint(Operation):
model_name: str
name: str
def __init__(self, model_name: str, name: str) -> None: ...
2 changes: 2 additions & 0 deletions django-stubs/db/migrations/operations/base.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,5 @@ class Operation:
def references_field(self, model_name: str, name: str, app_label: str) -> bool: ...
def allow_migrate_model(self, connection_alias: Union[BaseDatabaseWrapper, str], model: Type[Model]) -> bool: ...
def reduce(self, operation: Operation, app_label: str) -> Union[bool, List[Operation]]: ...
@property
def migration_name_fragment(self) -> str: ...

0 comments on commit 56f9300

Please sign in to comment.