]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
replace @decorated_property decorator
authorMike Bayer <mike_mp@zzzcomputing.com>
Thu, 12 Jan 2023 17:33:09 +0000 (12:33 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Thu, 12 Jan 2023 17:36:25 +0000 (12:36 -0500)
This decorator is no longer necessary as of Mypy
0.981 [1].

In current mypy versions, we require direct use of
`@property` for return types of these methods to be
recognized

[1] https://github.com/python/mypy/issues/1362

Change-Id: Ibc36083dec854c5f9140a9b621e9bf9d5bb4fb61

lib/sqlalchemy/engine/default.py
lib/sqlalchemy/orm/instrumentation.py
lib/sqlalchemy/pool/base.py
lib/sqlalchemy/sql/elements.py
lib/sqlalchemy/sql/selectable.py
lib/sqlalchemy/util/__init__.py
lib/sqlalchemy/util/deprecations.py

index 4e7922658fc74cba0027fa6d5000793fea04d186..f8126fa30c3471146b30849bbb1b746fdf06ef69 100644 (file)
@@ -357,7 +357,8 @@ class DefaultDialect(Dialect):
         if insertmanyvalues_page_size is not _NoArg.NO_ARG:
             self.insertmanyvalues_page_size = insertmanyvalues_page_size
 
-    @util.deprecated_property(
+    @property
+    @util.deprecated(
         "2.0",
         "full_returning is deprecated, please use insert_returning, "
         "update_returning, delete_returning",
index 9867c1c56aa799cf4e084764410848262c109c9e..4c911f37486cf552a28797a686d3b641bc57cd03 100644 (file)
@@ -129,7 +129,8 @@ class ClassManager(
 
     _bases: List[ClassManager[Any]]
 
-    @util.deprecated_property(
+    @property
+    @util.deprecated(
         "1.4",
         message="The ClassManager.deferred_scalar_loader attribute is now "
         "named expired_attribute_loader",
index 4611d16262c2e4df0458b0f93cf538b06953e9fc..a77f65205079af1fee15d0143bdb8994c5a67325 100644 (file)
@@ -689,7 +689,8 @@ class _ConnectionRecord(ConnectionPoolEntry):
                 self.dbapi_connection
             )
 
-    @util.deprecated_property(
+    @property
+    @util.deprecated(
         "2.0",
         "The _ConnectionRecord.connection attribute is deprecated; "
         "please use 'driver_connection'",
@@ -1234,7 +1235,8 @@ class _ConnectionFairy(PoolProxiedConnection):
             return None
         return self._connection_record.driver_connection
 
-    @util.deprecated_property(
+    @property
+    @util.deprecated(
         "2.0",
         "The _ConnectionFairy.connection attribute is deprecated; "
         "please use 'driver_connection'",
index 5538ca4f3a8b079dad063a5a513aefb85f298a1e..748e9504b3c133daaea22c2c5eca1061f31f0590 100644 (file)
@@ -1712,7 +1712,8 @@ class ColumnElement(
         """
         return self._anon_label(self._proxy_key)
 
-    @util.deprecated_property(
+    @property
+    @util.deprecated(
         "1.4",
         "The :attr:`_expression.ColumnElement.anon_label` attribute is now "
         "private, and the public accessor is deprecated.",
@@ -1720,7 +1721,8 @@ class ColumnElement(
     def anon_label(self) -> str:
         return self._anon_name_label
 
-    @util.deprecated_property(
+    @property
+    @util.deprecated(
         "1.4",
         "The :attr:`_expression.ColumnElement.anon_key_label` attribute is "
         "now private, and the public accessor is deprecated.",
index 1d283e83c226a3a9f5f2329e8338744a594f4b91..54230d58a68b21d18b8a9ea937735c297b37c2b8 100644 (file)
@@ -3413,7 +3413,8 @@ class SelectBase(
         """
         return self.selected_columns.as_readonly()
 
-    @util.deprecated_property(
+    @property
+    @util.deprecated(
         "1.4",
         "The :attr:`_expression.SelectBase.c` and "
         ":attr:`_expression.SelectBase.columns` attributes "
@@ -5531,7 +5532,8 @@ class Select(
 
         return self._compile_state_factory(self, None)._get_display_froms()
 
-    @util.deprecated_property(
+    @property
+    @util.deprecated(
         "1.4.23",
         "The :attr:`_expression.Select.froms` attribute is moved to "
         "the :meth:`_expression.Select.get_final_froms` method.",
index cb69c28a74b4dc83327430254891c45e65b33ab8..d443cf0311846007767c0ccbab2132979e5d3857 100644 (file)
@@ -76,7 +76,6 @@ from .deprecations import became_legacy_20 as became_legacy_20
 from .deprecations import deprecated as deprecated
 from .deprecations import deprecated_cls as deprecated_cls
 from .deprecations import deprecated_params as deprecated_params
-from .deprecations import deprecated_property as deprecated_property
 from .deprecations import moved_20 as moved_20
 from .deprecations import warn_deprecated as warn_deprecated
 from .langhelpers import add_parameter_text as add_parameter_text
index 2322cee605bcbafe4fc5b0f2d8b95c7271fe60a2..097150712a9ea4b5c3e17265fc9949148eeedfad 100644 (file)
@@ -96,54 +96,6 @@ def deprecated_cls(
     return decorate
 
 
-def deprecated_property(
-    version: str,
-    message: Optional[str] = None,
-    add_deprecation_to_docstring: bool = True,
-    warning: Optional[Type[exc.SADeprecationWarning]] = None,
-    enable_warnings: bool = True,
-) -> Callable[[Callable[..., Any]], property]:
-    """the @deprecated decorator with a @property.
-
-    E.g.::
-
-        class Foo:
-            @deprecated_property("1.4", "thing is deprecated")
-            def thing(self):
-                return "thing"
-
-    is equivalent to::
-
-        class Foo:
-            @property
-            @deprecated("1.4", "thing is deprecated")
-            def thing(self):
-                return "thing"
-
-    How come?
-
-    Because::
-
-        mypy: error: Decorated property not supported
-
-    great!   now it is.
-
-    """
-
-    def decorate(fn: Callable[..., Any]) -> property:
-        return property(
-            deprecated(
-                version,
-                message=message,
-                add_deprecation_to_docstring=add_deprecation_to_docstring,
-                warning=warning,
-                enable_warnings=enable_warnings,
-            )(fn)
-        )
-
-    return decorate
-
-
 def deprecated(
     version: str,
     message: Optional[str] = None,