]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Removes old version added and change notes
authorFederico Caselli <cfederico87@gmail.com>
Sun, 16 Mar 2025 20:51:00 +0000 (21:51 +0100)
committerFederico Caselli <cfederico87@gmail.com>
Sun, 16 Mar 2025 21:32:10 +0000 (22:32 +0100)
Removes documentation notes for changes and addition prior to 1.3
included.

Change-Id: Ibabb5222ccafa0c27c8ec40e31b149707d9c8aa3

70 files changed:
doc/build/core/constraints.rst
doc/build/core/defaults.rst
doc/build/core/pooling.rst
doc/build/dialects/oracle.rst
doc/build/dialects/postgresql.rst
doc/build/errors.rst
doc/build/faq/connections.rst
doc/build/orm/extensions/associationproxy.rst
doc/build/orm/extensions/baked.rst
doc/build/orm/join_conditions.rst
doc/build/orm/nonstandard_mappings.rst
doc/build/orm/persistence_techniques.rst
lib/sqlalchemy/dialects/mssql/base.py
lib/sqlalchemy/dialects/mssql/pyodbc.py
lib/sqlalchemy/dialects/mysql/base.py
lib/sqlalchemy/dialects/mysql/dml.py
lib/sqlalchemy/dialects/mysql/enumerated.py
lib/sqlalchemy/dialects/oracle/base.py
lib/sqlalchemy/dialects/oracle/cx_oracle.py
lib/sqlalchemy/dialects/oracle/oracledb.py
lib/sqlalchemy/dialects/postgresql/array.py
lib/sqlalchemy/dialects/postgresql/base.py
lib/sqlalchemy/dialects/postgresql/ext.py
lib/sqlalchemy/dialects/postgresql/psycopg2.py
lib/sqlalchemy/dialects/postgresql/types.py
lib/sqlalchemy/dialects/sqlite/base.py
lib/sqlalchemy/dialects/sqlite/json.py
lib/sqlalchemy/dialects/sqlite/pysqlite.py
lib/sqlalchemy/engine/base.py
lib/sqlalchemy/engine/create.py
lib/sqlalchemy/engine/default.py
lib/sqlalchemy/engine/events.py
lib/sqlalchemy/engine/interfaces.py
lib/sqlalchemy/engine/reflection.py
lib/sqlalchemy/event/attr.py
lib/sqlalchemy/exc.py
lib/sqlalchemy/ext/associationproxy.py
lib/sqlalchemy/ext/asyncio/engine.py
lib/sqlalchemy/ext/automap.py
lib/sqlalchemy/ext/baked.py
lib/sqlalchemy/ext/declarative/extensions.py
lib/sqlalchemy/ext/hybrid.py
lib/sqlalchemy/orm/_orm_constructors.py
lib/sqlalchemy/orm/attributes.py
lib/sqlalchemy/orm/base.py
lib/sqlalchemy/orm/events.py
lib/sqlalchemy/orm/instrumentation.py
lib/sqlalchemy/orm/mapper.py
lib/sqlalchemy/orm/properties.py
lib/sqlalchemy/orm/query.py
lib/sqlalchemy/orm/scoping.py
lib/sqlalchemy/orm/session.py
lib/sqlalchemy/orm/state.py
lib/sqlalchemy/orm/strategy_options.py
lib/sqlalchemy/orm/util.py
lib/sqlalchemy/pool/base.py
lib/sqlalchemy/pool/impl.py
lib/sqlalchemy/sql/_elements_constructors.py
lib/sqlalchemy/sql/_selectable_constructors.py
lib/sqlalchemy/sql/base.py
lib/sqlalchemy/sql/compiler.py
lib/sqlalchemy/sql/ddl.py
lib/sqlalchemy/sql/dml.py
lib/sqlalchemy/sql/elements.py
lib/sqlalchemy/sql/functions.py
lib/sqlalchemy/sql/operators.py
lib/sqlalchemy/sql/schema.py
lib/sqlalchemy/sql/selectable.py
lib/sqlalchemy/sql/sqltypes.py
lib/sqlalchemy/sql/type_api.py

index c63ad858e2c4d17d3d0d257d2e10ff828d9900b8..7927b1fbe6911bc21d0e1ce1374fce7188725c51 100644 (file)
@@ -645,11 +645,6 @@ name as follows::
 
     `The Importance of Naming Constraints <https://alembic.sqlalchemy.org/en/latest/naming.html>`_ - in the Alembic documentation.
 
-
-.. versionadded:: 1.3.0 added multi-column naming tokens such as ``%(column_0_N_name)s``.
-   Generated names that go beyond the character limit for the target database will be
-   deterministically truncated.
-
 .. _naming_check_constraints:
 
 Naming CHECK Constraints
index 586f0531438dc87cb5c65b376807de4f4a8136fc..70dfed9641f6bf6d3b9366a8c6e275dbe363fc66 100644 (file)
@@ -171,14 +171,6 @@ multi-valued INSERT construct, the subset of parameters that corresponds to
 the individual VALUES clause is isolated from the full parameter dictionary
 and returned alone.
 
-.. versionadded:: 1.2
-
-    Added :meth:`.DefaultExecutionContext.get_current_parameters` method,
-    which improves upon the still-present
-    :attr:`.DefaultExecutionContext.current_parameters` attribute
-    by offering the service of organizing multiple VALUES clauses
-    into individual parameter dictionaries.
-
 .. _defaults_client_invoked_sql:
 
 Client-Invoked SQL Expressions
@@ -634,8 +626,6 @@ including the default schema, if any.
 Computed Columns (GENERATED ALWAYS AS)
 --------------------------------------
 
-.. versionadded:: 1.3.11
-
 The :class:`.Computed` construct allows a :class:`_schema.Column` to be declared in
 DDL as a "GENERATED ALWAYS AS" column, that is, one which has a value that is
 computed by the database server.    The construct accepts a SQL expression
index 1a4865ba2b93b0abb140ba52290ab29e19cdd04d..21ce165fe332d6066e1fcd8608b40f6ff0f8a98d 100644 (file)
@@ -566,8 +566,6 @@ handled by the connection pool and replaced with a new connection.
 
 Note that the flag only applies to :class:`.QueuePool` use.
 
-.. versionadded:: 1.3
-
 .. seealso::
 
     :ref:`pool_disconnects`
index b3d44858ced703749d2da27ca470c77a5087aafb..757cc03ed205dbb092fed4d794ba421ebc3c8d01 100644 (file)
@@ -33,9 +33,6 @@ originate from :mod:`sqlalchemy.types` or from the local dialect::
         VARCHAR2,
     )
 
-.. versionadded:: 1.2.19 Added :class:`_types.NCHAR` to the list of datatypes
-   exported by the Oracle dialect.
-
 Types which are specific to Oracle Database, or have Oracle-specific
 construction arguments, are as follows:
 
index 2d377e3623ea05d6917e60a314d3fec20e9c5ff3..cbd357db7a890ff2d3f4b1cf399869e294f5f524 100644 (file)
@@ -69,9 +69,6 @@ The combination of ENUM and ARRAY is not directly supported by backend
 DBAPIs at this time.   Prior to SQLAlchemy 1.3.17, a special workaround
 was needed in order to allow this combination to work, described below.
 
-.. versionchanged:: 1.3.17 The combination of ENUM and ARRAY is now directly
-   handled by SQLAlchemy's implementation without any workarounds needed.
-
 .. sourcecode:: python
 
     from sqlalchemy import TypeDecorator
@@ -120,10 +117,6 @@ Similar to using ENUM, prior to SQLAlchemy 1.3.17, for an ARRAY of JSON/JSONB
 we need to render the appropriate CAST.   Current psycopg2 drivers accommodate
 the result set correctly without any special steps.
 
-.. versionchanged:: 1.3.17 The combination of JSON/JSONB and ARRAY is now
-   directly handled by SQLAlchemy's implementation without any workarounds
-   needed.
-
 .. sourcecode:: python
 
     class CastingArray(ARRAY):
index e3ba5cce8f16be7df67fe29ed5c0953cc30a9203..e3f6cb90322af811e8c654521151c06ce6461d13 100644 (file)
@@ -1142,11 +1142,6 @@ Overall, "delete-orphan" cascade is usually applied
 on the "one" side of a one-to-many relationship so that it deletes objects
 in the "many" side, and not the other way around.
 
-.. versionchanged:: 1.3.18  The text of the "delete-orphan" error message
-   when used on a many-to-one or many-to-many relationship has been updated
-   to be more descriptive.
-
-
 .. seealso::
 
     :ref:`unitofwork_cascades`
index 1f3bf1ba1401d82a9a84feb0456a81680576e9fc..0622b27944952ab17ec444c1882f0d02d9f1b2c3 100644 (file)
@@ -342,7 +342,7 @@ reconnect operation:
     ping: 1
     ...
 
-.. versionadded: 1.4  the above recipe makes use of 1.4-specific behaviors and will
+.. versionadded:: 1.4  the above recipe makes use of 1.4-specific behaviors and will
    not work as given on previous SQLAlchemy versions.
 
 The above recipe is tested for SQLAlchemy 1.4.
index 36c8ef227773118d648d6b80a57a7f923dbcaff0..d7c715c0b2973272b31fdb03587976c4b71e14c4 100644 (file)
@@ -619,19 +619,11 @@ convenient for generating WHERE criteria quickly, SQL results should be
 inspected and "unrolled" into explicit JOIN criteria for best use, especially
 when chaining association proxies together.
 
-
-.. versionchanged:: 1.3 Association proxy features distinct querying modes
-   based on the type of target.   See :ref:`change_4351`.
-
-
-
 .. _cascade_scalar_deletes:
 
 Cascading Scalar Deletes
 ------------------------
 
-.. versionadded:: 1.3
-
 Given a mapping as::
 
     from __future__ import annotations
index b495f42a422d6b3df25b1fefa41bd4667b0c5689..8e718ec98ca6dde0a433b4ab88349664d166df28 100644 (file)
@@ -403,8 +403,6 @@ of the baked query::
     # the "query" argument, pass that.
     my_q += lambda q: q.filter(my_subq.to_query(q).exists())
 
-.. versionadded:: 1.3
-
 .. _baked_with_before_compile:
 
 Using the before_compile event
@@ -433,12 +431,6 @@ The above strategy is appropriate for an event that will modify a
 given :class:`_query.Query` in exactly the same way every time, not dependent
 on specific parameters or external state that changes.
 
-.. versionadded:: 1.3.11  - added the "bake_ok" flag to the
-   :meth:`.QueryEvents.before_compile` event and disallowed caching via
-   the "baked" extension from occurring for event handlers that
-   return  a new :class:`_query.Query` object if this flag is not set.
-
-
 Disabling Baked Queries Session-wide
 ------------------------------------
 
@@ -456,8 +448,6 @@ which is seeing issues potentially due to cache key conflicts from user-defined
 baked queries or other baked query issues can turn the behavior off, in
 order to identify or eliminate baked queries as the cause of an issue.
 
-.. versionadded:: 1.2
-
 Lazy Loading Integration
 ------------------------
 
index 1a26d94a8b7f3e6aa43b75640a509da31bbd3e36..ef0575d66190822099ee229fa7ffb3187ac4f4b9 100644 (file)
@@ -360,8 +360,6 @@ Above, the :meth:`.FunctionElement.as_comparison` indicates that the
 ``Point.geom`` expressions. The :func:`.foreign` annotation additionally notes
 which column takes on the "foreign key" role in this particular relationship.
 
-.. versionadded:: 1.3 Added :meth:`.FunctionElement.as_comparison`.
-
 .. _relationship_overlapping_foreignkeys:
 
 Overlapping Foreign Keys
index d71343e99fd7c84f9134c5faae1a388128c1d596..10142cfcfbf2b29252f91d973e6fe794de5e763f 100644 (file)
@@ -86,10 +86,6 @@ may be used::
 
     stmt = select(AddressUser).group_by(*AddressUser.id.expressions)
 
-.. versionadded:: 1.3.17 Added the
-   :attr:`.ColumnProperty.Comparator.expressions` accessor.
-
-
 .. note::
 
     A mapping against multiple tables as illustrated above supports
index a877fcd0e0e85ef2a570c4addac97decf517e37f..14a1ac9935dd7b89d0e08fa178fcbeca4c22e068 100644 (file)
@@ -67,12 +67,6 @@ On PostgreSQL, the above :class:`.Session` will emit the following INSERT:
     ((SELECT coalesce(max(foo.foopk) + %(max_1)s, %(coalesce_2)s) AS coalesce_1
     FROM foo), %(bar)s) RETURNING foo.foopk
 
-.. versionadded:: 1.3
-    SQL expressions can now be passed to a primary key column during an ORM
-    flush; if the database supports RETURNING, or if pysqlite is in use, the
-    ORM will be able to retrieve the server-generated value as the value
-    of the primary key attribute.
-
 .. _session_sql_expressions:
 
 Using SQL Expressions with Sessions
index a2b9d37dadd0ec7f98caf59c112b5b161c73fa50..a7e1a1649122b2c3ee379c4318718f478158147e 100644 (file)
@@ -168,13 +168,6 @@ The CREATE TABLE for the above :class:`_schema.Table` object would be:
    addition to ``start`` and ``increment``. These are not supported by
    SQL Server and will be ignored when generating the CREATE TABLE ddl.
 
-.. versionchanged:: 1.3.19  The :class:`_schema.Identity` object is
-   now used to affect the
-   ``IDENTITY`` generator for a :class:`_schema.Column` under  SQL Server.
-   Previously, the :class:`.Sequence` object was used.  As SQL Server now
-   supports real sequences as a separate construct, :class:`.Sequence` will be
-   functional in the normal way starting from SQLAlchemy version 1.4.
-
 
 Using IDENTITY with Non-Integer numeric types
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -717,10 +710,6 @@ or embedded dots, use two sets of brackets::
         schema="[MyDataBase.Period].[MyOwner.Dot]",
     )
 
-.. versionchanged:: 1.2 the SQL Server dialect now treats brackets as
-   identifier delimiters splitting the schema into separate database
-   and owner tokens, to allow dots within either name itself.
-
 .. _legacy_schema_rendering:
 
 Legacy Schema Mode
@@ -880,8 +869,6 @@ names::
 
 would render the index as ``CREATE INDEX my_index ON table (x) WHERE x > 10``.
 
-.. versionadded:: 1.3.4
-
 Index ordering
 ^^^^^^^^^^^^^^
 
@@ -1407,8 +1394,6 @@ class TIMESTAMP(sqltypes._Binary):
     TIMESTAMP type, which is not supported by SQL Server.  It
     is a read-only datatype that does not support INSERT of values.
 
-    .. versionadded:: 1.2
-
     .. seealso::
 
         :class:`_mssql.ROWVERSION`
@@ -1426,8 +1411,6 @@ class TIMESTAMP(sqltypes._Binary):
         :param convert_int: if True, binary integer values will
          be converted to integers on read.
 
-        .. versionadded:: 1.2
-
         """
         self.convert_int = convert_int
 
@@ -1461,8 +1444,6 @@ class ROWVERSION(TIMESTAMP):
 
     This is a read-only datatype that does not support INSERT of values.
 
-    .. versionadded:: 1.2
-
     .. seealso::
 
         :class:`_mssql.TIMESTAMP`
@@ -1624,7 +1605,7 @@ class UNIQUEIDENTIFIER(sqltypes.Uuid[sqltypes._UUID_RETURN]):
          as Python uuid objects, converting to/from string via the
          DBAPI.
 
-         .. versionchanged: 2.0 Added direct "uuid" support to the
+         .. versionchanged:: 2.0 Added direct "uuid" support to the
             :class:`_mssql.UNIQUEIDENTIFIER` datatype; uuid interpretation
             defaults to ``True``.
 
index cbf0adbfe08b3ff44702089bcd7d4eb944d3bb83..17fc0bb2831ded6cb95cd4b9955ebfc15cfa99bd 100644 (file)
@@ -325,8 +325,6 @@ Server dialect supports this parameter by passing the
    feature would cause ``fast_executemany`` to not be used in most cases
    even if specified.
 
-.. versionadded:: 1.3
-
 .. seealso::
 
     `fast executemany <https://github.com/mkleehammer/pyodbc/wiki/Features-beyond-the-DB-API#fast_executemany>`_
index fd60d7ba65c7072cc5115496c2fa63e64e46e6af..a99b6952f244e6a78680a3b8a08d6f2129c270ca 100644 (file)
@@ -672,9 +672,6 @@ this context is unambiguous:
     {printsql}INSERT INTO my_table (id, data) VALUES (%s, %s)
     ON DUPLICATE KEY UPDATE data = %s, updated_at = CURRENT_TIMESTAMP
 
-.. versionchanged:: 1.3 support for parameter-ordered UPDATE clause within
-   MySQL ON DUPLICATE KEY UPDATE
-
 .. warning::
 
     The :meth:`_mysql.Insert.on_duplicate_key_update`
@@ -709,10 +706,6 @@ table:
 When rendered, the "inserted" namespace will produce the expression
 ``VALUES(<columnname>)``.
 
-.. versionadded:: 1.2 Added support for MySQL ON DUPLICATE KEY UPDATE clause
-
-
-
 rowcount Support
 ----------------
 
@@ -817,9 +810,6 @@ is available using the keyword argument ``mysql_with_parser``::
         mariadb_with_parser="ngram",
     )
 
-.. versionadded:: 1.3
-
-
 .. _mysql_foreign_keys:
 
 MySQL / MariaDB Foreign Keys
index 61476af0229e7be1ed4f930e18767bfad6c93f6c..43fb2e672ff8a927c09e3df5f7c2bc4d30b4360d 100644 (file)
@@ -110,8 +110,6 @@ class Insert(StandardInsert):
     The :class:`~.mysql.Insert` object is created using the
     :func:`sqlalchemy.dialects.mysql.insert` function.
 
-    .. versionadded:: 1.2
-
     """
 
     stringify_dialect = "mysql"
@@ -198,13 +196,6 @@ class Insert(StandardInsert):
                 ]
             )
 
-         .. versionchanged:: 1.3 parameters can be specified as a dictionary
-            or list of 2-tuples; the latter form provides for parameter
-            ordering.
-
-
-        .. versionadded:: 1.2
-
         .. seealso::
 
             :ref:`mysql_insert_on_duplicate_key_update`
index 6745cae55e7594ceb37d30d2c53028b5d32a8ac4..f0917f07fa3382424198c65312f4ab0ff06ece8c 100644 (file)
@@ -35,9 +35,6 @@ class ENUM(sqltypes.NativeForEmulated, sqltypes.Enum, _StringType):
           quotes when generating the schema.  This object may also be a
           PEP-435-compliant enumerated type.
 
-          .. versionadded: 1.1 added support for PEP-435-compliant enumerated
-             types.
-
         :param strict: This flag has no effect.
 
          .. versionchanged:: The MySQL ENUM type as well as the base Enum
index 3d3ff9d5170b3d7d5ae319ac47c71a5b0d83d5e8..69af577d560be1abafe520a3f7adb0eb185ae0c7 100644 (file)
@@ -146,17 +146,6 @@ Valid values for ``isolation_level`` include:
    warning is emitted for this initial first-connect condition as it is
    expected to be a common restriction on Oracle databases.
 
-.. versionadded:: 1.3.16 added support for AUTOCOMMIT to the cx_Oracle dialect
-   as well as the notion of a default isolation level
-
-.. versionadded:: 1.3.21 Added support for SERIALIZABLE as well as live
-   reading of the isolation level.
-
-.. versionchanged:: 1.3.22 In the event that the default isolation
-   level cannot be read due to permissions on the v$transaction view as
-   is common in Oracle installations, the default isolation level is hardcoded
-   to "READ COMMITTED" which was the behavior prior to 1.3.21.
-
 .. seealso::
 
     :ref:`dbapi_autocommit`
@@ -553,9 +542,6 @@ Raw information regarding these constraints can be acquired using
 :meth:`_reflection.Inspector.get_check_constraints`, and
 :meth:`_reflection.Inspector.get_indexes`.
 
-.. versionchanged:: 1.2 The Oracle Database dialect can now reflect UNIQUE and
-   CHECK constraints.
-
 When using reflection at the :class:`_schema.Table` level, the
 :class:`_schema.Table`
 will also include these constraints.
index a0ebea44028978ee7327da721b968c53062b004e..b5328f342710d305d2e31a85ef3d66dd68dcbc62 100644 (file)
@@ -117,12 +117,6 @@ symbol::
         "oracle+cx_oracle://user:pass@dsn?encoding=UTF-8&nencoding=UTF-8&mode=SYSDBA&events=true"
     )
 
-.. versionchanged:: 1.3 the cx_Oracle dialect now accepts all argument names
-   within the URL string itself, to be passed to the cx_Oracle DBAPI.   As
-   was the case earlier but not correctly documented, the
-   :paramref:`_sa.create_engine.connect_args` parameter also accepts all
-   cx_Oracle DBAPI connect arguments.
-
 To pass arguments directly to ``.connect()`` without using the query
 string, use the :paramref:`_sa.create_engine.connect_args` dictionary.
 Any cx_Oracle parameter value and/or constant may be passed, such as::
@@ -323,12 +317,6 @@ set, the two options are to use the :class:`_types.NCHAR` and
 the SQLAlchemy dialect to use NCHAR/NCLOB for the :class:`.Unicode` /
 :class:`.UnicodeText` datatypes instead of VARCHAR/CLOB.
 
-.. versionchanged:: 1.3 The :class:`.Unicode` and :class:`.UnicodeText`
-   datatypes now correspond to the ``VARCHAR2`` and ``CLOB`` Oracle Database
-   datatypes unless the ``use_nchar_for_unicode=True`` is passed to the dialect
-   when :func:`_sa.create_engine` is called.
-
-
 .. _cx_oracle_unicode_encoding_errors:
 
 Encoding Errors
@@ -343,9 +331,6 @@ is passed both via cx_Oracle's ``encodingErrors`` parameter consumed by
 ``Cursor.var()``, as well as SQLAlchemy's own decoding function, as the
 cx_Oracle dialect makes use of both under different circumstances.
 
-.. versionadded:: 1.3.11
-
-
 .. _cx_oracle_setinputsizes:
 
 Fine grained control over cx_Oracle data binding performance with setinputsizes
@@ -372,9 +357,6 @@ be used both for runtime visibility (e.g. logging) of the setinputsizes step as
 well as to fully control how ``setinputsizes()`` is used on a per-statement
 basis.
 
-.. versionadded:: 1.2.9 Added :meth:`.DialectEvents.setinputsizes`
-
-
 Example 1 - logging all setinputsizes calls
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
@@ -484,10 +466,6 @@ The ``coerce_to_decimal`` flag only impacts the results of plain string
 SQL statements that are not otherwise associated with a :class:`.Numeric`
 SQLAlchemy type (or a subclass of such).
 
-.. versionchanged:: 1.2  The numeric handling system for cx_Oracle has been
-   reworked to take advantage of newer cx_Oracle features as well
-   as better integration of outputtypehandlers.
-
 """  # noqa
 from __future__ import annotations
 
index 8105608837f752274ae22de030f9032856af9e61..d4fb99befa50570488d59d8c3905c08043718f22 100644 (file)
@@ -416,12 +416,6 @@ set, the two options are to use the :class:`_types.NCHAR` and
 the SQLAlchemy dialect to use NCHAR/NCLOB for the :class:`.Unicode` /
 :class:`.UnicodeText` datatypes instead of VARCHAR/CLOB.
 
-.. versionchanged:: 1.3 The :class:`.Unicode` and :class:`.UnicodeText`
-   datatypes now correspond to the ``VARCHAR2`` and ``CLOB`` Oracle Database
-   datatypes unless the ``use_nchar_for_unicode=True`` is passed to the dialect
-   when :func:`_sa.create_engine` is called.
-
-
 .. _oracledb_unicode_encoding_errors:
 
 Encoding Errors
@@ -436,9 +430,6 @@ is passed both via python-oracledb's ``encodingErrors`` parameter consumed by
 ``Cursor.var()``, as well as SQLAlchemy's own decoding function, as the
 python-oracledb dialect makes use of both under different circumstances.
 
-.. versionadded:: 1.3.11
-
-
 .. _oracledb_setinputsizes:
 
 Fine grained control over python-oracledb data binding with setinputsizes
@@ -465,9 +456,6 @@ be used both for runtime visibility (e.g. logging) of the setinputsizes step as
 well as to fully control how ``setinputsizes()`` is used on a per-statement
 basis.
 
-.. versionadded:: 1.2.9 Added :meth:`.DialectEvents.setinputsizes`
-
-
 Example 1 - logging all setinputsizes calls
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
@@ -585,10 +573,6 @@ The ``coerce_to_decimal`` flag only impacts the results of plain string
 SQL statements that are not otherwise associated with a :class:`.Numeric`
 SQLAlchemy type (or a subclass of such).
 
-.. versionchanged:: 1.2 The numeric handling system for the oracle dialects has
-   been reworked to take advantage of newer driver features as well as better
-   integration of outputtypehandlers.
-
 .. versionadded:: 2.0.0 added support for the python-oracledb driver.
 
 """  # noqa
index 7708769cb5380dde321e1f8948d2da48d2aeff09..0f31b9f327782687ba92a09c0e4b410e8a9a6061 100644 (file)
@@ -94,8 +94,6 @@ class array(expression.ExpressionClauseList[_T]):
             ARRAY[q, x]
         ] AS anon_1
 
-    .. versionadded:: 1.3.6 added support for multidimensional array literals
-
     .. seealso::
 
         :class:`_postgresql.ARRAY`
index 1f00127bfa63e2ca16751b5aeb2eea2c81271680..6516ebd127854aece33bdfec380755ab4576f331 100644 (file)
@@ -1042,10 +1042,6 @@ Operator classes are also supported by the
 :paramref:`_postgresql.ExcludeConstraint.ops` parameter. See that parameter for
 details.
 
-.. versionadded:: 1.3.21 added support for operator classes with
-   :class:`_postgresql.ExcludeConstraint`.
-
-
 Index Types
 ^^^^^^^^^^^
 
@@ -1186,8 +1182,6 @@ dialect in conjunction with the :class:`_schema.Table` construct:
         postgresql_partition_by="LIST (part_column)",
     )
 
-  .. versionadded:: 1.2.6
-
 *
   ``TABLESPACE``::
 
index 94466ae0a1396e3e6f93a7d0c86cc4a59442481f..37dab86dd8879611ccd987f2bf9c07594b1041a7 100644 (file)
@@ -58,8 +58,6 @@ class aggregate_order_by(expression.ColumnElement):
 
         SELECT string_agg(a, ',' ORDER BY a) FROM table;
 
-    .. versionchanged:: 1.2.13 - the ORDER BY argument may be multiple terms
-
     .. seealso::
 
         :class:`_functions.array_agg`
@@ -210,8 +208,6 @@ class ExcludeConstraint(ColumnCollectionConstraint):
           :ref:`postgresql_ops <postgresql_operator_classes>`
           parameter specified to the :class:`_schema.Index` construct.
 
-          .. versionadded:: 1.3.21
-
           .. seealso::
 
             :ref:`postgresql_operator_classes` - general description of how
index eeb7604f796da1037f4acff17cc33314b9c2b111..b8d7205d2b9bf828d5bf0b4aa6f2f62cd1c59df5 100644 (file)
@@ -171,9 +171,6 @@ For example, to indicate two hosts using the ``primary`` strategy::
    is repaired, previously ports were not correctly interpreted in this context.
    libpq comma-separated format is also now supported.
 
-.. versionadded:: 1.3.20 Support for multiple hosts in PostgreSQL connection
-   string.
-
 .. seealso::
 
     `libpq connection strings <https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING>`_ - please refer
@@ -198,8 +195,6 @@ initial scheme::
 In the above form, a blank "dsn" string is passed to the ``psycopg2.connect()``
 function which in turn represents an empty DSN passed to libpq.
 
-.. versionadded:: 1.3.2 support for parameter-less connections with psycopg2.
-
 .. seealso::
 
     `Environment Variables\
index 1aed2bf4724077288c0df99abe464ed429c839f3..ff5e967ef6fb3d27106af8371a0b2e93afed3359 100644 (file)
@@ -130,8 +130,6 @@ class MONEY(sqltypes.TypeEngine[str]):
             def column_expression(self, column: Any):
                 return cast(column, Numeric())
 
-    .. versionadded:: 1.2
-
     """  # noqa: E501
 
     __visit_name__ = "MONEY"
@@ -164,11 +162,7 @@ class TSQUERY(sqltypes.TypeEngine[str]):
 
 
 class REGCLASS(sqltypes.TypeEngine[str]):
-    """Provide the PostgreSQL REGCLASS type.
-
-    .. versionadded:: 1.2.7
-
-    """
+    """Provide the PostgreSQL REGCLASS type."""
 
     __visit_name__ = "REGCLASS"
 
@@ -229,8 +223,6 @@ class INTERVAL(type_api.NativeForEmulated, sqltypes._AbstractInterval):
          to be limited, such as ``"YEAR"``, ``"MONTH"``, ``"DAY TO HOUR"``,
          etc.
 
-         .. versionadded:: 1.2
-
         """
         self.precision = precision
         self.fields = fields
index 7b8e42a2854ba23484fb88a4b80bc18656b511a9..ffd7921eb7e30f5f1bb36869abf0daaa16cf933d 100644 (file)
@@ -205,10 +205,6 @@ available, which will alter the pysqlite connection using the ``.isolation_level
 attribute on the DBAPI connection and set it to None for the duration
 of the setting.
 
-.. versionadded:: 1.3.16 added support for SQLite AUTOCOMMIT isolation level
-   when using the pysqlite / sqlite3 SQLite driver.
-
-
 The other axis along which SQLite's transactional locking is impacted is
 via the nature of the ``BEGIN`` statement used.   The three varieties
 are "deferred", "immediate", and "exclusive", as described at
@@ -379,9 +375,6 @@ indicated from a :class:`_schema.Column` object.
     `ON CONFLICT <https://www.sqlite.org/lang_conflict.html>`_ - in the SQLite
     documentation
 
-.. versionadded:: 1.3
-
-
 The ``sqlite_on_conflict`` parameters accept a  string argument which is just
 the resolution name to be chosen, which on SQLite can be one of ROLLBACK,
 ABORT, FAIL, IGNORE, and REPLACE.   For example, to add a UNIQUE constraint
index 02f4ea4c90f14bc5f6b56b8e3b544ce16c1bd7ba..d0110abc77fa8d4152e949f560747e7da3ed6aa8 100644 (file)
@@ -33,9 +33,6 @@ class JSON(sqltypes.JSON):
     always JSON string values.
 
 
-    .. versionadded:: 1.3
-
-
     .. _JSON1: https://www.sqlite.org/json1.html
 
     """
index 73a74eb71089ffb41f7099403fdf2f3474cbbbce..a2f8ce0ac2f397a58a7da114166263bf7b65f99d 100644 (file)
@@ -122,8 +122,6 @@ can be bypassed in :func:`_sa.create_engine` through the use of the
 parameter which allows for a custom callable
 that creates a Python sqlite3 driver level connection directly.
 
-.. versionadded:: 1.3.9
-
 .. seealso::
 
     `Uniform Resource Identifiers <https://www.sqlite.org/uri.html>`_ - in
index fbbbb2cff01aaed98a01dba84db3516e2b9127ff..464d2d2ab328be307b8f7b93f6d141a1149a1716 100644 (file)
@@ -537,8 +537,6 @@ class Connection(ConnectionEventsTarget, inspection.Inspectable["Inspector"]):
     def get_execution_options(self) -> _ExecuteOptions:
         """Get the non-SQL options which will take effect during execution.
 
-        .. versionadded:: 1.3
-
         .. seealso::
 
             :meth:`_engine.Connection.execution_options`
@@ -3138,8 +3136,6 @@ class Engine(
     def get_execution_options(self) -> _ExecuteOptions:
         """Get the non-SQL options which will take effect during execution.
 
-        .. versionadded: 1.3
-
         .. seealso::
 
             :meth:`_engine.Engine.execution_options`
index 88690785d7bdfd5e555d3dd50fd658a7c57f0bce..da312ab68384a78e2dc00488fa1c966eee6445cf 100644 (file)
@@ -262,8 +262,6 @@ def create_engine(url: Union[str, _url.URL], **kwargs: Any) -> Engine:
         will not be displayed in INFO logging nor will they be formatted into
         the string representation of :class:`.StatementError` objects.
 
-        .. versionadded:: 1.3.8
-
         .. seealso::
 
             :ref:`dbengine_logging` - further detail on how to configure
@@ -326,17 +324,10 @@ def create_engine(url: Union[str, _url.URL], **kwargs: Any) -> Engine:
         to a Python object.  By default, the Python ``json.loads`` function is
         used.
 
-        .. versionchanged:: 1.3.7  The SQLite dialect renamed this from
-           ``_json_deserializer``.
-
     :param json_serializer: for dialects that support the :class:`_types.JSON`
         datatype, this is a Python callable that will render a given object
         as JSON.   By default, the Python ``json.dumps`` function is used.
 
-        .. versionchanged:: 1.3.7  The SQLite dialect renamed this from
-           ``_json_serializer``.
-
-
     :param label_length=None: optional integer value which limits
         the size of dynamically generated column labels to that many
         characters. If less than 6, labels are generated as
@@ -373,8 +364,6 @@ def create_engine(url: Union[str, _url.URL], **kwargs: Any) -> Engine:
         SQLAlchemy's dialect has not been adjusted, the value may be passed
         here.
 
-        .. versionadded:: 1.3.9
-
         .. seealso::
 
             :paramref:`_sa.create_engine.label_length`
@@ -432,8 +421,6 @@ def create_engine(url: Union[str, _url.URL], **kwargs: Any) -> Engine:
         "pre-ping" feature that tests connections for liveness upon
         each checkout.
 
-        .. versionadded:: 1.2
-
         .. seealso::
 
             :ref:`pool_disconnects_pessimistic`
@@ -483,8 +470,6 @@ def create_engine(url: Union[str, _url.URL], **kwargs: Any) -> Engine:
         use.   When planning for server-side timeouts, ensure that a recycle or
         pre-ping strategy is in use to gracefully   handle stale connections.
 
-          .. versionadded:: 1.3
-
           .. seealso::
 
             :ref:`pool_use_lifo`
@@ -494,8 +479,6 @@ def create_engine(url: Union[str, _url.URL], **kwargs: Any) -> Engine:
     :param plugins: string list of plugin names to load.  See
         :class:`.CreateEnginePlugin` for background.
 
-        .. versionadded:: 1.2.3
-
     :param query_cache_size: size of the cache used to cache the SQL string
      form of queries.  Set to zero to disable caching.
 
index ba59ac297bca9ddb47e3f92d430b6270eb54fc00..3ad4eb87799d966167818a91c3e3842ba6d5016c 100644 (file)
@@ -571,8 +571,6 @@ class DefaultDialect(Dialect):
         If the dialect's class level max_identifier_length should be used,
         can return None.
 
-        .. versionadded:: 1.3.9
-
         """
         return None
 
@@ -587,8 +585,6 @@ class DefaultDialect(Dialect):
         By default, calls the :meth:`_engine.Interfaces.get_isolation_level`
         method, propagating any exceptions raised.
 
-        .. versionadded:: 1.3.22
-
         """
         return self.get_isolation_level(dbapi_conn)
 
@@ -2258,12 +2254,6 @@ class DefaultExecutionContext(ExecutionContext):
          raw parameters of the statement are returned including the
          naming convention used in the case of multi-valued INSERT.
 
-        .. versionadded:: 1.2  added
-           :meth:`.DefaultExecutionContext.get_current_parameters`
-           which provides more functionality over the existing
-           :attr:`.DefaultExecutionContext.current_parameters`
-           attribute.
-
         .. seealso::
 
             :attr:`.DefaultExecutionContext.current_parameters`
index dbaac3789e6f167395639c9158c3f44a1fe7d5b0..fab3cb3040cbff504743d031c0fe6c3d4f0f2e8e 100644 (file)
@@ -253,7 +253,7 @@ class ConnectionEvents(event.Events[ConnectionEventsTarget]):
          the connection, and those passed in to the method itself for
          the 2.0 style of execution.
 
-         .. versionadded: 1.4
+         .. versionadded:: 1.4
 
         .. seealso::
 
@@ -296,7 +296,7 @@ class ConnectionEvents(event.Events[ConnectionEventsTarget]):
          the connection, and those passed in to the method itself for
          the 2.0 style of execution.
 
-         .. versionadded: 1.4
+         .. versionadded:: 1.4
 
         :param result: :class:`_engine.CursorResult` generated by the
          execution.
@@ -957,8 +957,6 @@ class DialectEvents(event.Events[Dialect]):
 
                   :ref:`mssql_pyodbc_setinputsizes`
 
-        .. versionadded:: 1.2.9
-
         .. seealso::
 
             :ref:`cx_oracle_setinputsizes`
index 35c52ae3b942df1a030ee9eb551ca3d625a322dc..6b37862ef2f73ed1f614502f266e671a35aaf12f 100644 (file)
@@ -386,8 +386,6 @@ class ReflectedColumn(TypedDict):
     computed: NotRequired[ReflectedComputed]
     """indicates that this column is computed by the database.
     Only some dialects return this key.
-
-    .. versionadded:: 1.3.16 - added support for computed reflection.
     """
 
     identity: NotRequired[ReflectedIdentity]
@@ -430,8 +428,6 @@ class ReflectedCheckConstraint(ReflectedConstraint):
 
     dialect_options: NotRequired[Dict[str, Any]]
     """Additional dialect-specific options detected for this check constraint
-
-    .. versionadded:: 1.3.8
     """
 
 
@@ -540,8 +536,6 @@ class ReflectedIndex(TypedDict):
     """optional dict mapping column names or expressions to tuple of sort
     keywords, which may include ``asc``, ``desc``, ``nulls_first``,
     ``nulls_last``.
-
-    .. versionadded:: 1.3.5
     """
 
     dialect_options: NotRequired[Dict[str, Any]]
@@ -1750,8 +1744,6 @@ class Dialect(EventTarget):
         :raise: ``NotImplementedError`` for dialects that don't support
          comments.
 
-        .. versionadded:: 1.2
-
         """
 
         raise NotImplementedError()
@@ -2476,8 +2468,6 @@ class Dialect(EventTarget):
         The method defaults to using the :meth:`.Dialect.get_isolation_level`
         method unless overridden by a dialect.
 
-        .. versionadded:: 1.3.22
-
         """
         raise NotImplementedError()
 
@@ -2588,8 +2578,6 @@ class Dialect(EventTarget):
                 except ImportError:
                     pass
 
-        .. versionadded:: 1.3.14
-
         """
 
     @classmethod
@@ -2748,9 +2736,6 @@ class CreateEnginePlugin:
             "mysql+pymysql://scott:tiger@localhost/test", plugins=["myplugin"]
         )
 
-    .. versionadded:: 1.2.3  plugin names can also be specified
-       to :func:`_sa.create_engine` as a list
-
     A plugin may consume plugin-specific arguments from the
     :class:`_engine.URL` object as well as the ``kwargs`` dictionary, which is
     the dictionary of arguments passed to the :func:`_sa.create_engine`
index e284cb4009d1dc9aefc4d3f6edf932d6d7ad309c..9b6835838577e35140604574ea178e938a1f03dc 100644 (file)
@@ -1316,8 +1316,6 @@ class Inspector(inspection.Inspectable["Inspector"]):
 
         :return: a dictionary, with the table comment.
 
-        .. versionadded:: 1.2
-
         .. seealso:: :meth:`Inspector.get_multi_table_comment`
         """
 
index 7e28a00cb92f4f0f5611492c316bff6f8fa23128..0e11df7d4642b6eaf4a7ae8af800f96f1ec1d32d 100644 (file)
@@ -459,8 +459,6 @@ class _CompoundListener(_InstanceLevelDispatch[_ET]):
         If exec_once was already called, then this method will never run
         the callable regardless of whether it raised or not.
 
-        .. versionadded:: 1.3.8
-
         """
         if not self._exec_once:
             self._exec_once_impl(True, *args, **kw)
index c66124d6c8d6c621fa9acdf0852335e4c1aa4b49..4ad1e0227fa1d501e99b9a462ad55fd5724acfba 100644 (file)
@@ -277,8 +277,6 @@ class InvalidatePoolError(DisconnectionError):
     :class:`_exc.DisconnectionError`, allowing three attempts to reconnect
     before giving up.
 
-    .. versionadded:: 1.2
-
     """
 
     invalidate_pool: bool = True
@@ -412,11 +410,7 @@ class NoSuchTableError(InvalidRequestError):
 
 
 class UnreflectableTableError(InvalidRequestError):
-    """Table exists but can't be reflected for some reason.
-
-    .. versionadded:: 1.2
-
-    """
+    """Table exists but can't be reflected for some reason."""
 
 
 class UnboundExecutionError(InvalidRequestError):
index c5d85860f201b46790d5dc0d6741ae4d53b6d610..f96018e51e05d3ed1601c2e98603d9f62c6d4a49 100644 (file)
@@ -152,8 +152,6 @@ def association_proxy(
         source, as this object may have other state that is still to be
         kept.
 
-        .. versionadded:: 1.3
-
         .. seealso::
 
             :ref:`cascade_scalar_deletes` - complete usage example
@@ -477,11 +475,6 @@ class AssociationProxy(
          to look at the type of the actual destination object to get the
          complete path.
 
-        .. versionadded:: 1.3 - :class:`.AssociationProxy` no longer stores
-           any state specific to a particular parent class; the state is now
-           stored in per-class :class:`.AssociationProxyInstance` objects.
-
-
         """
         return self._as_instance(class_, obj)
 
@@ -589,8 +582,6 @@ class AssociationProxyInstance(SQLORMOperations[_T]):
         >>> proxy_state.scalar
         False
 
-    .. versionadded:: 1.3
-
     """  # noqa
 
     collection_class: Optional[Type[Any]]
index f8c063a2f4f0665660e82c1d6dc2b26cfc796d76..0595668eb35265dc7d35a0755b8751440dd42d2e 100644 (file)
@@ -1208,8 +1208,6 @@ class AsyncEngine(ProxyComparable[Engine], AsyncConnectable):
             Proxied for the :class:`_engine.Engine` class on
             behalf of the :class:`_asyncio.AsyncEngine` class.
 
-        .. versionadded: 1.3
-
         .. seealso::
 
             :meth:`_engine.Engine.execution_options`
index 169bebfbf3fc82a5c6a8796f233fbb7ba626926e..fff08e922b15fc6111abd641a068edc1fd68ae74 100644 (file)
@@ -229,7 +229,7 @@ the same series of classes as what would be seen in
 :attr:`.AutomapBase.by_module` when explicit ``__module__`` conventions are
 present.
 
-.. versionadded: 2.0
+.. versionadded:: 2.0
 
     Added the :attr:`.AutomapBase.by_module` collection, which stores
     classes within a named hierarchy based on dot-separated module names,
index cd3e087931e843b4fb822a2741f72bade0bc823a..6c6ad0e8ad1726e19815610b00ad28814f62907b 100644 (file)
@@ -39,9 +39,6 @@ class Bakery:
     :meth:`.BakedQuery.bakery`.  It exists as an object
     so that the "cache" can be easily inspected.
 
-    .. versionadded:: 1.2
-
-
     """
 
     __slots__ = "cls", "cache"
@@ -277,10 +274,6 @@ class BakedQuery:
          :class:`.Session` object, that is assumed to be within the context
          of an enclosing :class:`.BakedQuery` callable.
 
-
-         .. versionadded:: 1.3
-
-
         """  # noqa: E501
 
         if isinstance(query_or_session, Session):
@@ -360,10 +353,6 @@ class Result:
            :meth:`_query.Query.execution_options`
            methods should be used.
 
-
-        .. versionadded:: 1.2
-
-
         """
         return self._using_post_criteria([fn])
 
index 3dc6bf698c4a7357ccb057574c6afc9742a0948d..4f8b0aabc44daf32630c2343d062eb570dd23a53 100644 (file)
@@ -80,10 +80,6 @@ class ConcreteBase:
         class Employee(ConcreteBase, Base):
             _concrete_discriminator_name = "_concrete_discriminator"
 
-    .. versionadded:: 1.3.19 Added the ``_concrete_discriminator_name``
-       attribute to :class:`_declarative.ConcreteBase` so that the
-       virtual discriminator column name can be customized.
-
     .. versionchanged:: 1.4.2 The ``_concrete_discriminator_name`` attribute
        need only be placed on the basemost class to take correct effect for
        all subclasses.   An explicit error message is now raised if the
index 6a22fb614d297c6ec81c4d14293c50e8b9d3d3cb..cbf5e591c1b175115d27c1b4337295fde6342881 100644 (file)
@@ -1187,8 +1187,6 @@ class hybrid_property(interfaces.InspectionAttrInfo, ORMDescriptor[_T]):
                 def foobar(cls):
                     return func.subfoobar(self._foobar)
 
-        .. versionadded:: 1.2
-
         .. seealso::
 
             :ref:`hybrid_reuse_subclass`
@@ -1272,11 +1270,7 @@ class hybrid_property(interfaces.InspectionAttrInfo, ORMDescriptor[_T]):
         return hybrid_property._InPlace(self)
 
     def getter(self, fget: _HybridGetterType[_T]) -> hybrid_property[_T]:
-        """Provide a modifying decorator that defines a getter method.
-
-        .. versionadded:: 1.2
-
-        """
+        """Provide a modifying decorator that defines a getter method."""
 
         return self._copy(fget=fget)
 
@@ -1391,8 +1385,6 @@ class hybrid_property(interfaces.InspectionAttrInfo, ORMDescriptor[_T]):
                     fname, lname = value.split(" ", 1)
                     return [(cls.first_name, fname), (cls.last_name, lname)]
 
-        .. versionadded:: 1.2
-
         """
         return self._copy(update_expr=meth)
 
index b2acc93b43c02837531a88b1c771faacc47b5952..63ba5cd79644478b8237bf3e2969b462fc54e08a 100644 (file)
@@ -1795,8 +1795,6 @@ def relationship(
       default, changes in state will be back-populated only if neither
       sides of a relationship is viewonly.
 
-      .. versionadded:: 1.3.17
-
       .. versionchanged:: 1.4 - A relationship that specifies
          :paramref:`_orm.relationship.viewonly` automatically implies
          that :paramref:`_orm.relationship.sync_backref` is ``False``.
@@ -1816,11 +1814,6 @@ def relationship(
          automatically detected; if it is not detected, then the
          optimization is not supported.
 
-         .. versionchanged:: 1.3.11  setting ``omit_join`` to True will now
-            emit a warning as this was not the intended use of this flag.
-
-      .. versionadded:: 1.3
-
     :param init: Specific to :ref:`orm_declarative_native_dataclasses`,
      specifies if the mapped attribute should be part of the ``__init__()``
      method as generated by the dataclass process.
@@ -2209,8 +2202,6 @@ def query_expression(
     :param default_expr: Optional SQL expression object that will be used in
         all cases if not assigned later with :func:`_orm.with_expression`.
 
-    .. versionadded:: 1.2
-
     .. seealso::
 
         :ref:`orm_queryguide_with_expression` - background and usage examples
index 85ef9746fda0e581ce567deed2a1158ebe48c4dc..651ea5cce2f28d0632e122b4b2731e65731b23b1 100644 (file)
@@ -2753,8 +2753,6 @@ def set_attribute(
      is being supplied; the object may be used to track the origin of the
      chain of events.
 
-     .. versionadded:: 1.2.3
-
     """
     state, dict_ = instance_state(instance), instance_dict(instance)
     state.manager[key].impl.set(state, dict_, value, initiator)
@@ -2823,8 +2821,6 @@ def flag_dirty(instance: object) -> None:
     may establish changes on it, which will then be included in the SQL
     emitted.
 
-    .. versionadded:: 1.2
-
     .. seealso::
 
         :func:`.attributes.flag_modified`
index ae0ba1029d14577a1bc25818008ff5ae4d4198b2..14a0eae6f7378d0ad2ce08d9451d0e9f41d1b5f2 100644 (file)
@@ -620,11 +620,7 @@ class InspectionAttr:
     """
 
     _is_internal_proxy = False
-    """True if this object is an internal proxy object.
-
-    .. versionadded:: 1.2.12
-
-    """
+    """True if this object is an internal proxy object."""
 
     is_clause_element = False
     """True if this object is an instance of
index 63e7ff2046405b2698a52208844db75dcab689b0..e478c9ed656b445c6efa98c061018d7b2f656f53 100644 (file)
@@ -245,9 +245,6 @@ class InstanceEvents(event.Events[ClassManager[Any]]):
        object is moved to a new loader context from within one of these
        events if this flag is not set.
 
-       .. versionadded:: 1.3.14
-
-
     """
 
     _target_class_doc = "SomeClass"
@@ -462,15 +459,6 @@ class InstanceEvents(event.Events[ClassManager[Any]]):
                 def on_load(instance, context):
                     instance.some_unloaded_attribute
 
-            .. versionchanged:: 1.3.14 Added
-               :paramref:`.InstanceEvents.restore_load_context`
-               and :paramref:`.SessionEvents.restore_load_context` flags which
-               apply to "on load" events, which will ensure that the loading
-               context for an object is restored when the event hook is
-               complete; a warning is emitted if the load context of the object
-               changes without this flag being set.
-
-
         The :meth:`.InstanceEvents.load` event is also available in a
         class-method decorator format called :func:`_orm.reconstructor`.
 
@@ -989,8 +977,6 @@ class MapperEvents(event.Events[mapperlib.Mapper[Any]]):
         meaningful return value when it is registered with the ``retval=True``
         parameter.
 
-        .. versionadded:: 1.3
-
         e.g.::
 
             from sqlalchemy.orm import EXT_SKIP
@@ -1574,8 +1560,6 @@ class SessionEvents(event.Events[Session]):
        objects will be the instance's :class:`.InstanceState` management
        object, rather than the mapped instance itself.
 
-       .. versionadded:: 1.3.14
-
     :param restore_load_context=False: Applies to the
        :meth:`.SessionEvents.loaded_as_persistent` event.  Restores the loader
        context of the object when the event hook is complete, so that ongoing
@@ -1583,8 +1567,6 @@ class SessionEvents(event.Events[Session]):
        warning is emitted if the object is moved to a new loader context from
        within this event if this flag is not set.
 
-       .. versionadded:: 1.3.14
-
     """
 
     _target_class_doc = "SomeSessionClassOrObject"
@@ -2705,8 +2687,6 @@ class AttributeEvents(event.Events[QueryableAttribute[Any]]):
                 else:
                     return value
 
-        .. versionadded:: 1.2
-
         :param target: the object instance receiving the event.
           If the listener is registered with ``raw=True``, this will
           be the :class:`.InstanceState` object.
@@ -2993,11 +2973,6 @@ class AttributeEvents(event.Events[QueryableAttribute[Any]]):
 
         The old collection received will contain its previous contents.
 
-        .. versionchanged:: 1.2 The collection passed to
-           :meth:`.AttributeEvents.dispose_collection` will now have its
-           contents before the dispose intact; previously, the collection
-           would be empty.
-
         .. seealso::
 
             :class:`.AttributeEvents` - background on listener options such
@@ -3012,8 +2987,6 @@ class AttributeEvents(event.Events[QueryableAttribute[Any]]):
         function is used to trigger a modify event on an attribute without
         any specific value being set.
 
-        .. versionadded:: 1.2
-
         :param target: the object instance receiving the event.
           If the listener is registered with ``raw=True``, this will
           be the :class:`.InstanceState` object.
@@ -3098,11 +3071,6 @@ class QueryEvents(event.Events[Query[Any]]):
         once, and not called for subsequent invocations of a particular query
         that is being cached.
 
-        .. versionadded:: 1.3.11  - added the "bake_ok" flag to the
-           :meth:`.QueryEvents.before_compile` event and disallowed caching via
-           the "baked" extension from occurring for event handlers that
-           return  a new :class:`_query.Query` object if this flag is not set.
-
         .. seealso::
 
             :meth:`.QueryEvents.before_compile_update`
@@ -3156,8 +3124,6 @@ class QueryEvents(event.Events[Query[Any]]):
          dictionary can be modified to alter the VALUES clause of the
          resulting UPDATE statement.
 
-        .. versionadded:: 1.2.17
-
         .. seealso::
 
             :meth:`.QueryEvents.before_compile`
@@ -3197,8 +3163,6 @@ class QueryEvents(event.Events[Query[Any]]):
          the same kind of object as described in
          :paramref:`.QueryEvents.after_bulk_delete.delete_context`.
 
-        .. versionadded:: 1.2.17
-
         .. seealso::
 
             :meth:`.QueryEvents.before_compile`
index 95f25b573bf09354d8274a4a61ac76182a51a376..c95d0a06737e101f6b1b8ff9d921cd7ac7a3e3f9 100644 (file)
@@ -21,13 +21,6 @@ or global basis using the :mod:`sqlalchemy.ext.instrumentation`
 module, which provides the means to build and specify
 alternate instrumentation forms.
 
-.. versionchanged: 0.8
-   The instrumentation extension system was moved out of the
-   ORM and into the external :mod:`sqlalchemy.ext.instrumentation`
-   package.  When that package is imported, it installs
-   itself within sqlalchemy.orm so that its more comprehensive
-   resolution mechanics take effect.
-
 """
 
 
index 6fb46a2bd81c34c1c42fda38d15cada9f03db0ba..d771e5ebab2fd4a1aed9a694911013f5d2cb87a3 100644 (file)
@@ -528,8 +528,6 @@ class Mapper(
             the columns specific to this subclass.  The SELECT uses
             IN to fetch multiple subclasses at once.
 
-         .. versionadded:: 1.2
-
          .. seealso::
 
             :ref:`with_polymorphic_mapper_config`
@@ -3101,9 +3099,6 @@ class Mapper(
         The above process produces an ordering that is deterministic in terms
         of the order in which attributes were assigned to the class.
 
-        .. versionchanged:: 1.3.19 ensured deterministic ordering for
-           :meth:`_orm.Mapper.all_orm_descriptors`.
-
         When dealing with a :class:`.QueryableAttribute`, the
         :attr:`.QueryableAttribute.property` attribute refers to the
         :class:`.MapperProperty` property, which is what you get when
index 2ffa53fb8ef857ad0d2c994623d944bef084a924..f120f0d03ad5f10d19cfbf7688b976229c91d605 100644 (file)
@@ -379,8 +379,6 @@ class ColumnProperty(
         """The full sequence of columns referenced by this
          attribute, adjusted for any aliasing in progress.
 
-        .. versionadded:: 1.3.17
-
         .. seealso::
 
            :ref:`maptojoin` - usage example
@@ -451,8 +449,6 @@ class ColumnProperty(
             """The full sequence of columns referenced by this
             attribute, adjusted for any aliasing in progress.
 
-            .. versionadded:: 1.3.17
-
             """
             if self.adapter:
                 return [
index 00607203c1209e969ad421ca5157cc41cb702a6c..39b25378d2ca20fc3782ec777844cf2a97a5cd0f 100644 (file)
@@ -873,8 +873,6 @@ class Query(
         in its result list, and False if this query returns a tuple of entities
         for each result.
 
-        .. versionadded:: 1.3.11
-
         .. seealso::
 
             :meth:`_query.Query.only_return_tuples`
@@ -1129,12 +1127,6 @@ class Query(
 
             my_object = query.get({"id": 5, "version_id": 10})
 
-         .. versionadded:: 1.3 the :meth:`_query.Query.get`
-            method now optionally
-            accepts a dictionary of attribute names to values in order to
-            indicate a primary key identifier.
-
-
         :return: The object instance, or ``None``.
 
         """  # noqa: E501
@@ -1716,8 +1708,6 @@ class Query(
     def get_execution_options(self) -> _ImmutableExecuteOptions:
         """Get the non-SQL options which will take effect during execution.
 
-        .. versionadded:: 1.3
-
         .. seealso::
 
             :meth:`_query.Query.execution_options`
index 61cd0bd75d6b7846d485d26d2fb7112a5fe0c919..a8cf03c51739451303da496f432a3c3717a3cea5 100644 (file)
@@ -694,7 +694,7 @@ class scoped_session(Generic[_S]):
 
             :meth:`.Session.delete` - main documentation on delete
 
-        .. versionadded: 2.1
+        .. versionadded:: 2.1
 
 
         """  # noqa: E501
@@ -1078,7 +1078,7 @@ class scoped_session(Generic[_S]):
          Contents of this dictionary are passed to the
          :meth:`.Session.get_bind` method.
 
-         .. versionadded: 2.0.0rc1
+         .. versionadded:: 2.0.0rc1
 
         :return: The object instance, or ``None``.
 
@@ -1617,7 +1617,7 @@ class scoped_session(Generic[_S]):
 
             :meth:`.Session.merge` - main documentation on merge
 
-        .. versionadded: 2.1
+        .. versionadded:: 2.1
 
 
         """  # noqa: E501
index e5dd55d12f7bb2b0c529e538608c1926a09e7ab0..b0634c4ee977cc475f12dec0fb7e396524cbc631 100644 (file)
@@ -3560,7 +3560,7 @@ class Session(_SessionClassMethods, EventTarget):
 
             :meth:`.Session.delete` - main documentation on delete
 
-        .. versionadded: 2.1
+        .. versionadded:: 2.1
 
         """
 
@@ -3715,7 +3715,7 @@ class Session(_SessionClassMethods, EventTarget):
          Contents of this dictionary are passed to the
          :meth:`.Session.get_bind` method.
 
-         .. versionadded: 2.0.0rc1
+         .. versionadded:: 2.0.0rc1
 
         :return: The object instance, or ``None``.
 
@@ -4004,7 +4004,7 @@ class Session(_SessionClassMethods, EventTarget):
 
             :meth:`.Session.merge` - main documentation on merge
 
-        .. versionadded: 2.1
+        .. versionadded:: 2.1
 
         """
 
@@ -5240,8 +5240,6 @@ def close_all_sessions() -> None:
     This function is not for general use but may be useful for test suites
     within the teardown scheme.
 
-    .. versionadded:: 1.3
-
     """
 
     for sess in _sessions.values():
index b5ba1615ca9e5199930f1628853d77d9f11b179d..0f879f3d1e38d0049e2451b19093600c784cbb1c 100644 (file)
@@ -269,8 +269,6 @@ class InstanceState(interfaces.InspectionAttrInfo, Generic[_O]):
             :class:`.Session`, use the :attr:`.InstanceState.was_deleted`
             accessor.
 
-        .. versionadded: 1.1
-
         .. seealso::
 
             :ref:`session_object_states`
@@ -337,8 +335,6 @@ class InstanceState(interfaces.InspectionAttrInfo, Generic[_O]):
         """Track the last known value of a particular key after expiration
         operations.
 
-        .. versionadded:: 1.3
-
         """
 
         lkv = self._last_known_values
index 5d21237198384ce4dfe69a1b6cf3e98c4c50f759..04987b16fbde1f4059bfc013bc3f24cd3ac738fe 100644 (file)
@@ -730,8 +730,6 @@ class _AbstractLoad(traversals.GenerativeOnTraversal, LoaderOption):
                 with_expression(SomeClass.x_y_expr, SomeClass.x + SomeClass.y)
             )
 
-        .. versionadded:: 1.2
-
         :param key: Attribute to be populated
 
         :param expr: SQL expression to be applied to the attribute.
@@ -759,8 +757,6 @@ class _AbstractLoad(traversals.GenerativeOnTraversal, LoaderOption):
         key values, and is the per-query analogue to the ``"selectin"``
         setting on the :paramref:`.mapper.polymorphic_load` parameter.
 
-        .. versionadded:: 1.2
-
         .. seealso::
 
             :ref:`polymorphic_selectin`
@@ -1206,8 +1202,6 @@ class Load(_AbstractLoad):
          :class:`_orm.Load` objects) which should be applied to the path
          specified by this :class:`_orm.Load` object.
 
-        .. versionadded:: 1.3.6
-
         .. seealso::
 
             :func:`.defaultload`
index 81233f6554dc68de1e82c10c62cd7392995a147f..4d4ce9b3e8ca0a465af5eedcea81b743696136a5 100644 (file)
@@ -423,9 +423,6 @@ def identity_key(
       :param ident: primary key, may be a scalar or tuple argument.
       :param identity_token: optional identity token
 
-        .. versionadded:: 1.2 added identity_token
-
-
     * ``identity_key(instance=instance)``
 
       This form will produce the identity key for a given instance.  The
@@ -462,8 +459,6 @@ def identity_key(
        (must be given as a keyword arg)
       :param identity_token: optional identity token
 
-        .. versionadded:: 1.2 added identity_token
-
     """  # noqa: E501
     if class_ is not None:
         mapper = class_mapper(class_)
@@ -1998,8 +1993,6 @@ def with_parent(
       Entity in which to consider as the left side.  This defaults to the
       "zero" entity of the :class:`_query.Query` itself.
 
-      .. versionadded:: 1.2
-
     """  # noqa: E501
     prop_t: RelationshipProperty[Any]
 
index 511eca923467cec62d14a79a4499039c2e72e672..3faa3de86412dd6de99259cab6a5b850ac5950bf 100644 (file)
@@ -271,8 +271,6 @@ class Pool(log.Identified, event.EventTarget):
          invalidated.     Requires that a dialect is passed as well to
          interpret the disconnection error.
 
-         .. versionadded:: 1.2
-
         """
         if logging_name:
             self.logging_name = self._orig_logging_name = logging_name
index 44529fb169361d2738e3f6a015bd16a54765432a..1355ca8e1caef9ef134c35115dd874d1852fb362 100644 (file)
@@ -119,8 +119,6 @@ class QueuePool(Pool):
           timeouts, ensure that a recycle or pre-ping strategy is in use to
           gracefully handle stale connections.
 
-          .. versionadded:: 1.3
-
           .. seealso::
 
             :ref:`pool_use_lifo`
index b628fcc9b5244c8b49d07fef0fce247eec4a2a3b..799c87c82ba631d7b2b6a6395b56b6658787c06d 100644 (file)
@@ -358,9 +358,6 @@ def collate(
     The collation expression is also quoted if it is a case sensitive
     identifier, e.g. contains uppercase characters.
 
-    .. versionchanged:: 1.2 quoting is automatically applied to COLLATE
-       expressions if they are case sensitive.
-
     """
     return CollationClause._create_collation_expression(expression, collation)
 
@@ -687,11 +684,6 @@ def bindparam(
       .. note:: The "expanding" feature does not support "executemany"-
          style parameter sets.
 
-      .. versionadded:: 1.2
-
-      .. versionchanged:: 1.3 the "expanding" bound parameter feature now
-         supports empty lists.
-
     :param literal_execute:
       if True, the bound parameter will be rendered in the compile phase
       with a special "POSTCOMPILE" token, and the SQLAlchemy compiler will
@@ -1723,8 +1715,6 @@ def tuple_(
 
         tuple_(table.c.col1, table.c.col2).in_([(1, 2), (5, 12), (10, 19)])
 
-    .. versionchanged:: 1.3.6 Added support for SQLite IN tuples.
-
     .. warning::
 
         The composite IN construct is not supported by all backends, and is
index 08149771b1662bdec46ef67c892d47f1e2c51dc7..f90512b1f7af4c22846dbf65c7dccd60c92082cc 100644 (file)
@@ -564,8 +564,6 @@ def table(name: str, *columns: ColumnClause[Any], **kw: Any) -> TableClause:
 
     :param schema: The schema name for this table.
 
-        .. versionadded:: 1.3.18 :func:`_expression.table` can now
-           accept a ``schema`` argument.
     """
 
     return TableClause(name, *columns, **kw)
index ee4037a2ffca31b59dc31080ca0e42ea3482ac18..11496aea605a002ace7346788b874133768ba990 100644 (file)
@@ -1507,8 +1507,6 @@ class Executable(roles.StatementRole):
     def get_execution_options(self) -> _ExecuteOptions:
         """Get the non-SQL options which will take effect during execution.
 
-        .. versionadded:: 1.3
-
         .. seealso::
 
             :meth:`.Executable.execution_options`
index 32043dd7bb4534c632e1cf7fa66bfc6dae708c89..8eb7282e2d5a29df415d2bcc0cf835c8692b74a7 100644 (file)
@@ -1491,8 +1491,6 @@ class SQLCompiler(Compiled):
         a VALUES expression, the string is assigned here, where it can be
         used for insert batching schemes to rewrite the VALUES expression.
 
-        .. versionadded:: 1.3.8
-
         .. versionchanged:: 2.0 This collection is no longer used by
            SQLAlchemy's built-in dialects, in favor of the currently
            internal ``_insertmanyvalues`` collection that is used only by
@@ -1553,19 +1551,6 @@ class SQLCompiler(Compiled):
         by a ``visit_`` method, as it is not guaranteed to be assigned
         nor guaranteed to correspond to the current statement being compiled.
 
-        .. versionadded:: 1.3.21
-
-            For compatibility with previous versions, use the following
-            recipe::
-
-                statement = getattr(self, "current_executable", False)
-                if statement is False:
-                    statement = self.stack[-1]["selectable"]
-
-            For versions 1.4 and above, ensure only .current_executable
-            is used; the format of "self.stack" may change.
-
-
         """
         try:
             return self.stack[-1]["selectable"]
@@ -7519,8 +7504,6 @@ class IdentifierPreparer:
         such as "INITIALLY", "INITIALLY DEFERRED", etc.   no special characters
         should be present.
 
-        .. versionadded:: 1.3
-
         """
 
         if element is not None and not reg.match(element):
index 4e1973ea02455a5a9b8ffb6245f0570c1ceb9ae6..6d3af4bdc0acae6c9abe0394452996af07c255e0 100644 (file)
@@ -1266,13 +1266,6 @@ def sort_tables(
         collection when cycles are detected so that they may be applied
         to a schema separately.
 
-        .. versionchanged:: 1.3.17 - a warning is emitted when
-           :func:`_schema.sort_tables` cannot perform a proper sort due to
-           cyclical dependencies.  This will be an exception in a future
-           release.  Additionally, the sort will continue to return
-           other tables not involved in the cycle in dependency order
-           which was not the case previously.
-
     :param tables: a sequence of :class:`_schema.Table` objects.
 
     :param skip_fn: optional callable which will be passed a
index 49a43b8eeeee4b9d7872e74237a25efaa547a3c0..589f4f3504d65d7583392cf63d79c12da12d7b42 100644 (file)
@@ -463,7 +463,7 @@ class UpdateBase(
 
             upd = table.update().dialect_options(mysql_limit=10)
 
-        .. versionadded: 1.4 - this method supersedes the dialect options
+        .. versionadded:: 1.4 - this method supersedes the dialect options
            associated with the constructor.
 
 
index 3f28f8357986c21d389cceffaa3c56b47ddb4158..499a642703cf13d6ee1fbbdfccd869abd9d1b759 100644 (file)
@@ -2420,11 +2420,6 @@ class TextClause(
             select id from table where name=:name_1
             UNION ALL select id from table where name=:name_2
 
-        .. versionadded:: 1.3.11  Added support for the
-           :paramref:`.BindParameter.unique` flag to work with
-           :func:`_expression.text`
-           constructs.
-
         """  # noqa: E501
         self._bindparams = new_params = self._bindparams.copy()
 
@@ -5301,10 +5296,6 @@ class quoted_name(util.MemoizedSlots, str):
     backend, passing the name exactly as ``"some_table"`` without converting to
     upper case.
 
-    .. versionchanged:: 1.2 The :class:`.quoted_name` construct is now
-       importable from ``sqlalchemy.sql``, in addition to the previous
-       location of ``sqlalchemy.sql.elements``.
-
     """
 
     __slots__ = "quote", "lower", "upper"
index b905913d376edb9b9a3f9fdb419dd7933b549d13..87a68cfd90b8733cba6c14dd1a4e113c77ded5c8 100644 (file)
@@ -598,8 +598,6 @@ class FunctionElement(Executable, ColumnElement[_T], FromClause, Generative):
         :param right_index: the integer 1-based index of the function argument
          that serves as the "right" side of the expression.
 
-        .. versionadded:: 1.3
-
         .. seealso::
 
             :ref:`relationship_custom_operator_sql_function` -
@@ -1455,12 +1453,6 @@ class GenericFunction(Function[_T]):
 
         connection.scalar(select(func.as_utc()))
 
-    .. versionadded:: 1.3.13  The :class:`.quoted_name` construct is now
-       recognized for quoting when used with the "name" attribute of the
-       object, so that quoting can be forced on or off for the function
-       name.
-
-
     """
 
     coerce_arguments = True
@@ -1980,8 +1972,6 @@ class cube(GenericFunction[_T]):
             func.sum(table.c.value), table.c.col_1, table.c.col_2
         ).group_by(func.cube(table.c.col_1, table.c.col_2))
 
-    .. versionadded:: 1.2
-
     """
 
     _has_args = True
@@ -1998,8 +1988,6 @@ class rollup(GenericFunction[_T]):
             func.sum(table.c.value), table.c.col_1, table.c.col_2
         ).group_by(func.rollup(table.c.col_1, table.c.col_2))
 
-    .. versionadded:: 1.2
-
     """
 
     _has_args = True
@@ -2029,8 +2017,6 @@ class grouping_sets(GenericFunction[_T]):
             )
         )
 
-    .. versionadded:: 1.2
-
     """  # noqa: E501
 
     _has_args = True
@@ -2052,7 +2038,7 @@ class aggregate_strings(GenericFunction[str]):
 
     The return type of this function is :class:`.String`.
 
-    .. versionadded: 2.0.21
+    .. versionadded:: 2.0.21
 
     """
 
index addcf7a7f99d76d4881e00ccd5868a77d8d5e738..f93864478f8abb081de05a78ca0920fa3c55d4e4 100644 (file)
@@ -908,8 +908,6 @@ class ColumnOperators(Operators):
 
             WHERE COL IN (?, ?, ?)
 
-          .. versionadded:: 1.2 added "expanding" bound parameters
-
           If an empty list is passed, a special "empty list" expression,
           which is specific to the database in use, is rendered.  On
           SQLite this would be:
@@ -918,9 +916,6 @@ class ColumnOperators(Operators):
 
             WHERE COL IN (SELECT 1 FROM (SELECT 1) WHERE 1!=1)
 
-          .. versionadded:: 1.3 "expanding" bound parameters now support
-             empty lists
-
         * a :func:`_expression.select` construct, which is usually a
           correlated scalar select::
 
@@ -958,11 +953,6 @@ class ColumnOperators(Operators):
            ``notin_()`` in previous releases.  The previous name remains
            available for backwards compatibility.
 
-        .. versionchanged:: 1.2  The :meth:`.ColumnOperators.in_` and
-           :meth:`.ColumnOperators.not_in` operators
-           now produce a "static" expression for an empty IN sequence
-           by default.
-
         .. seealso::
 
             :meth:`.ColumnOperators.in_`
index a9c21eabc41fcc74d2d20685dd7f186cf6152b86..c9680becbc683130d56bc91c4f636e1b9905e776 100644 (file)
@@ -684,8 +684,6 @@ class Table(
             :class:`_schema.Table` will
             resolve to that table normally.
 
-            .. versionadded:: 1.3
-
             .. seealso::
 
                 :paramref:`.MetaData.reflect.resolve_fks`
@@ -799,10 +797,6 @@ class Table(
         :param comment: Optional string that will render an SQL comment on table
             creation.
 
-            .. versionadded:: 1.2 Added the :paramref:`_schema.Table.comment`
-                parameter
-                to :class:`_schema.Table`.
-
         :param \**kw: Additional keyword arguments not mentioned above are
             dialect specific, and passed in the form ``<dialectname>_<argname>``.
             See the documentation regarding an individual dialect at
@@ -1763,7 +1757,7 @@ class Column(DialectKWArgs, SchemaItem, ColumnClause[_T]):
         :param insert_default: An alias of :paramref:`.Column.default`
             for compatibility with :func:`_orm.mapped_column`.
 
-            .. versionadded: 2.0.31
+            .. versionadded:: 2.0.31
 
         :param doc: optional String that can be used by the ORM or similar
             to document attributes on the Python side.   This attribute does
@@ -2030,10 +2024,6 @@ class Column(DialectKWArgs, SchemaItem, ColumnClause[_T]):
         :param comment: Optional string that will render an SQL comment on
              table creation.
 
-             .. versionadded:: 1.2 Added the
-                :paramref:`_schema.Column.comment`
-                parameter to :class:`_schema.Column`.
-
         :param insert_sentinel: Marks this :class:`_schema.Column` as an
          :term:`insert sentinel` used for optimizing the performance of the
          :term:`insertmanyvalues` feature for tables that don't
@@ -3515,7 +3505,7 @@ class ColumnDefault(DefaultGenerator, ABC):
 class ScalarElementColumnDefault(ColumnDefault):
     """default generator for a fixed scalar Python value
 
-    .. versionadded: 2.0
+    .. versionadded:: 2.0
 
     """
 
@@ -3664,8 +3654,6 @@ class CallableColumnDefault(ColumnDefault):
 class IdentityOptions(DialectKWArgs):
     """Defines options for a named database sequence or an identity column.
 
-    .. versionadded:: 1.3.18
-
     .. seealso::
 
         :class:`.Sequence`
@@ -5585,11 +5573,6 @@ class MetaData(HasSchemaAttr):
               it along with a ``fn(constraint, table)`` callable to the
               naming_convention dictionary.
 
-          .. versionadded:: 1.3.0 - added new ``%(column_0N_name)s``,
-             ``%(column_0_N_name)s``, and related tokens that produce
-             concatenations of names, keys, or labels for all columns referred
-             to by a given constraint.
-
           .. seealso::
 
                 :ref:`constraint_naming_conventions` - for detailed usage
@@ -5721,13 +5704,6 @@ class MetaData(HasSchemaAttr):
             collection when cycles are detected so that they may be applied
             to a schema separately.
 
-            .. versionchanged:: 1.3.17 - a warning is emitted when
-               :attr:`.MetaData.sorted_tables` cannot perform a proper sort
-               due to cyclical dependencies.  This will be an exception in a
-               future release.  Additionally, the sort will continue to return
-               other tables not involved in the cycle in dependency order which
-               was not the case previously.
-
         .. seealso::
 
             :func:`_schema.sort_tables`
@@ -5852,8 +5828,6 @@ class MetaData(HasSchemaAttr):
          operation is
          complete.   Defaults to True.
 
-         .. versionadded:: 1.3.0
-
          .. seealso::
 
             :paramref:`_schema.Table.resolve_fks`
@@ -6034,8 +6008,6 @@ class Computed(FetchedValue, SchemaItem):
 
     See the linked documentation below for complete details.
 
-    .. versionadded:: 1.3.11
-
     .. seealso::
 
         :ref:`computed_ddl`
index 40f9dbe00425f55563c2a47c077238f289c598c1..29cbd00072bcce15bfa21609ee1aed3243027d7c 100644 (file)
@@ -2660,9 +2660,6 @@ class HasCTE(roles.HasCTERole, SelectsRows):
         method may be
         used to establish these.
 
-        .. versionchanged:: 1.3.13 Added support for prefixes.
-           In particular - MATERIALIZED and NOT MATERIALIZED.
-
         :param name: name given to the common table expression.  Like
          :meth:`_expression.FromClause.alias`, the name can be left as
          ``None`` in which case an anonymous symbol will be used at query
@@ -3672,7 +3669,7 @@ class SelectBase(
         :meth:`_expression.SelectBase.subquery`
         method.
 
-        .. versionchanged: 1.4 - the ``.as_scalar()`` method was renamed to
+        .. versionchanged:: 1.4 - the ``.as_scalar()`` method was renamed to
            :meth:`_expression.SelectBase.scalar_subquery`.
 
         .. seealso::
index d7de2b1a1024a7961ab61f3b3194ad8efc595c2b..1b279085aebf79f4bf26292f088fa41afc9a33d8 100644 (file)
@@ -1441,8 +1441,6 @@ class Enum(String, SchemaType, Emulated, TypeEngine[Union[str, enum.Enum]]):
            ``__member__`` attribute. For example
            ``lambda x: [i.value for i in x]``.
 
-           .. versionadded:: 1.2.3
-
         :param sort_key_function: a Python callable which may be used as the
            "key" argument in the Python ``sorted()`` built-in.   The SQLAlchemy
            ORM requires that primary key columns which are mapped must
@@ -1452,8 +1450,6 @@ class Enum(String, SchemaType, Emulated, TypeEngine[Union[str, enum.Enum]]):
            default, the database value of the enumeration is used as the
            sorting function.
 
-           .. versionadded:: 1.3.8
-
         :param omit_aliases: A boolean that when true will remove aliases from
            pep 435 enums. defaults to ``True``.
 
@@ -1951,10 +1947,6 @@ class Boolean(SchemaType, Emulated, TypeEngine[bool]):
     don't support a "native boolean" datatype, an option exists to
     also create a CHECK constraint on the target column
 
-    .. versionchanged:: 1.2 the :class:`.Boolean` datatype now asserts that
-       incoming Python values are already in pure boolean form.
-
-
     """
 
     __visit_name__ = "boolean"
@@ -2288,8 +2280,6 @@ class JSON(Indexable, TypeEngine[Any]):
 
         data_table.c.data["some key"].as_integer()
 
-      .. versionadded:: 1.3.11
-
     Additional operations may be available from the dialect-specific versions
     of :class:`_types.JSON`, such as
     :class:`sqlalchemy.dialects.postgresql.JSON` and
@@ -2325,9 +2315,6 @@ class JSON(Indexable, TypeEngine[Any]):
         # boolean comparison
         data_table.c.data["some_boolean"].as_boolean() == True
 
-    .. versionadded:: 1.3.11 Added type-specific casters for the basic JSON
-       data element types.
-
     .. note::
 
         The data caster functions are new in version 1.3.11, and supersede
@@ -2408,12 +2395,6 @@ class JSON(Indexable, TypeEngine[Any]):
             json_serializer=lambda obj: json.dumps(obj, ensure_ascii=False),
         )
 
-    .. versionchanged:: 1.3.7
-
-        SQLite dialect's ``json_serializer`` and ``json_deserializer``
-        parameters renamed from ``_json_serializer`` and
-        ``_json_deserializer``.
-
     .. seealso::
 
         :class:`sqlalchemy.dialects.postgresql.JSON`
@@ -2637,8 +2618,6 @@ class JSON(Indexable, TypeEngine[Any]):
                     mytable.c.json_column["some_data"].as_boolean() == True
                 )
 
-            .. versionadded:: 1.3.11
-
             """  # noqa: E501
             return self._binary_w_type(Boolean(), "as_boolean")
 
@@ -2654,8 +2633,6 @@ class JSON(Indexable, TypeEngine[Any]):
                     mytable.c.json_column["some_data"].as_string() == "some string"
                 )
 
-            .. versionadded:: 1.3.11
-
             """  # noqa: E501
             return self._binary_w_type(Unicode(), "as_string")
 
@@ -2671,8 +2648,6 @@ class JSON(Indexable, TypeEngine[Any]):
                     mytable.c.json_column["some_data"].as_integer() == 5
                 )
 
-            .. versionadded:: 1.3.11
-
             """  # noqa: E501
             return self._binary_w_type(Integer(), "as_integer")
 
@@ -2688,8 +2663,6 @@ class JSON(Indexable, TypeEngine[Any]):
                     mytable.c.json_column["some_data"].as_float() == 29.75
                 )
 
-            .. versionadded:: 1.3.11
-
             """  # noqa: E501
             return self._binary_w_type(Float(), "as_float")
 
@@ -2728,8 +2701,6 @@ class JSON(Indexable, TypeEngine[Any]):
             Note that comparison of full JSON structures may not be
             supported by all backends.
 
-            .. versionadded:: 1.3.11
-
             """
             return self.expr
 
@@ -3680,7 +3651,7 @@ class Uuid(Emulated, TypeEngine[_UUID_RETURN]):
          as Python uuid objects, converting to/from string via the
          DBAPI.
 
-         .. versionchanged: 2.0 ``as_uuid`` now defaults to ``True``.
+         .. versionchanged:: 2.0 ``as_uuid`` now defaults to ``True``.
 
         :param native_uuid=True: if True, backends that support either the
          ``UUID`` datatype directly, or a UUID-storing value
@@ -3830,7 +3801,7 @@ class UUID(Uuid[_UUID_RETURN], type_api.NativeForEmulated):
          as Python uuid objects, converting to/from string via the
          DBAPI.
 
-         .. versionchanged: 2.0 ``as_uuid`` now defaults to ``True``.
+         .. versionchanged:: 2.0 ``as_uuid`` now defaults to ``True``.
 
         """
         self.as_uuid = as_uuid
index bdc56b46ac479e1f3a2a1df5e875a26077370632..c98b8415dd2bda0f0cfbce61d1520287b05bd989 100644 (file)
@@ -291,8 +291,6 @@ class TypeEngine(Visitable, Generic[_T]):
     The default value of ``None`` indicates that the values stored by
     this type are self-sorting.
 
-    .. versionadded:: 1.3.8
-
     """
 
     should_evaluate_none: bool = False
@@ -1407,8 +1405,6 @@ class Emulated(TypeEngineMixin):
     Current examples of :class:`.Emulated` are:  :class:`.Interval`,
     :class:`.Enum`, :class:`.Boolean`.
 
-    .. versionadded:: 1.2.0b3
-
     """
 
     native: bool
@@ -1466,11 +1462,7 @@ def _is_native_for_emulated(
 
 
 class NativeForEmulated(TypeEngineMixin):
-    """Indicates DB-native types supported by an :class:`.Emulated` type.
-
-    .. versionadded:: 1.2.0b3
-
-    """
+    """Indicates DB-native types supported by an :class:`.Emulated` type."""
 
     @classmethod
     def adapt_native_to_emulated(