]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
fix typos (#13038)
authorFardin Alizadeh <138363668+fardyn@users.noreply.github.com>
Thu, 18 Dec 2025 20:18:42 +0000 (23:48 +0330)
committerFederico Caselli <cfederico87@gmail.com>
Thu, 18 Dec 2025 20:23:37 +0000 (21:23 +0100)
* fix typos

* fix typos

---------

Co-authored-by: fardyn <fa.alizadeh@pm.me>
(cherry picked from commit fb408b8e9d2e4ca7ac446c3d8dbd42c66b69b5a3)

Change-Id: I29c3229aa475b51b6a7055dd5d149283ef1a08a8

51 files changed:
doc/build/changelog/changelog_09.rst
doc/build/changelog/changelog_14.rst
doc/build/changelog/changelog_20.rst
doc/build/changelog/migration_20.rst
doc/build/orm/basic_relationships.rst
doc/build/orm/declarative_tables.rst
doc/build/texinputs/sphinx.sty
lib/sqlalchemy/connectors/asyncio.py
lib/sqlalchemy/dialects/oracle/oracledb.py
lib/sqlalchemy/dialects/oracle/vector.py
lib/sqlalchemy/dialects/postgresql/asyncpg.py
lib/sqlalchemy/dialects/postgresql/base.py
lib/sqlalchemy/dialects/sqlite/base.py
lib/sqlalchemy/engine/cursor.py
lib/sqlalchemy/ext/associationproxy.py
lib/sqlalchemy/ext/asyncio/base.py
lib/sqlalchemy/ext/horizontal_shard.py
lib/sqlalchemy/ext/hybrid.py
lib/sqlalchemy/orm/bulk_persistence.py
lib/sqlalchemy/orm/decl_api.py
lib/sqlalchemy/orm/descriptor_props.py
lib/sqlalchemy/orm/interfaces.py
lib/sqlalchemy/orm/mapper.py
lib/sqlalchemy/orm/session.py
lib/sqlalchemy/orm/state_changes.py
lib/sqlalchemy/pool/base.py
lib/sqlalchemy/sql/compiler.py
lib/sqlalchemy/sql/dml.py
lib/sqlalchemy/sql/elements.py
lib/sqlalchemy/sql/schema.py
lib/sqlalchemy/sql/sqltypes.py
lib/sqlalchemy/sql/visitors.py
lib/sqlalchemy/testing/plugin/plugin_base.py
test/aaa_profiling/test_threading.py
test/dialect/oracle/test_types.py
test/dialect/postgresql/test_dialect.py
test/dialect/postgresql/test_query.py
test/ext/test_associationproxy.py
test/orm/declarative/test_abs_import_only.py
test/orm/declarative/test_tm_future_annotations.py
test/orm/inheritance/test_concrete.py
test/orm/test_attributes.py
test/orm/test_default_strategies.py
test/orm/test_mapper.py
test/sql/test_compiler.py
test/sql/test_cte.py
test/sql/test_external_traversal.py
test/sql/test_insert.py
test/sql/test_insert_exec.py
test/typing/plain_files/sql/core_ddl.py
tools/toxnox.py

index d00e043326e8d4899b2891f73f564ab515f5d018..992188a69d740bea4bd54baae3d7407eb3a427e8 100644 (file)
@@ -76,7 +76,7 @@
         Fixed bug where when using extended attribute instrumentation system,
         the correct exception would not be raised when :func:`.class_mapper`
         were called with an invalid input that also happened to not
-        be weak referencable, such as an integer.
+        be weak referenceable, such as an integer.
 
     .. change::
         :tags: bug, tests, pypy
index 1c41c586c47c91abbd01b80d056fc8251d68f9c5..f868565c3b3dd5b967775cac287f9b3841882a01 100644 (file)
@@ -6690,7 +6690,7 @@ This document details individual issue-level changes made throughout
         :tickets: 5735
 
         Improved the unit of work topological sorting system such that the
-        toplogical sort is now deterministic based on the sorting of the input set,
+        topological sort is now deterministic based on the sorting of the input set,
         which itself is now sorted at the level of mappers, so that the same inputs
         of affected mappers should produce the same output every time, among
         mappers / tables that don't have any dependency on each other. This further
@@ -7945,7 +7945,7 @@ This document details individual issue-level changes made throughout
         The bulk update and delete methods :meth:`.Query.update` and
         :meth:`.Query.delete`, as well as their 2.0-style counterparts, now make
         use of RETURNING when the "fetch" strategy is used in order to fetch the
-        list of affected primary key identites, rather than emitting a separate
+        list of affected primary key identities, rather than emitting a separate
         SELECT, when the backend in use supports RETURNING.  Additionally, the
         "fetch" strategy will in ordinary cases not expire the attributes that have
         been updated, and will instead apply the updated values directly in the
index 6bc4c1b12130edff8e326feb3274e14b00d98d16..a091b0e7439947a4b44e5f5b9c375d4b1405d84e 100644 (file)
         :tags: bug, postgresql
         :tickets: 12728
 
-        Re-raise catched ``CancelledError`` in the terminate method of the
+        Re-raise caught ``CancelledError`` in the terminate method of the
         asyncpg dialect to avoid possible hangs of the code execution.
 
 
         into a SQL expression in a boolean context, for programs where future
         annotations mode was not enabled.  This case is now handled explicitly and
         a new error message has also been tailored for this case.  In addition, as
-        there are at least half a dozen distinct error scenarios for intepretation
+        there are at least half a dozen distinct error scenarios for interpretation
         of the :class:`.Mapped` construct, these scenarios have all been unified
         under a new subclass of :class:`.ArgumentError` called
         :class:`.MappedAnnotationError`, to provide some continuity between these
         ``connection.transaction()`` call sent to asyncpg sends ``None`` for
         ``isolation_level`` if not otherwise set in the SQLAlchemy dialect/wrapper,
         thereby allowing asyncpg to make use of the server level setting for
-        ``isolation_level`` in the absense of a client-level setting. Previously,
+        ``isolation_level`` in the absence of a client-level setting. Previously,
         this behavior of asyncpg was blocked by a hardcoded ``read_committed``.
 
     .. change::
         versioned table needs to default to the most recent version number in the
         history table on INSERT, to suit the use case of a table where rows are
         deleted, and can then be replaced by new rows that re-use the same primary
-        key identity.  This fix adds an additonal SELECT query per INSERT in the
+        key identity.  This fix adds an additional SELECT query per INSERT in the
         main table, which may be inefficient; for cases where primary keys are not
         re-used, the default function may be omitted.  Patch courtesy  Philipp H.
         v. Loewenfeld.
 
         Fixed internal typing issues to establish compatibility with mypy 1.11.0.
         Note that this does not include issues which have arisen with the
-        deprecated mypy plugin used by SQLAlchemy 1.4-style code; see the addiional
+        deprecated mypy plugin used by SQLAlchemy 1.4-style code; see the additional
         change note for this plugin indicating revised compatibility.
 
 .. changelog::
         :tickets: 11306
 
         Fixed issue in cursor handling which affected handling of duplicate
-        :class:`_sql.Column` or similar objcts in the columns clause of
-        :func:`_sql.select`, both in combination with arbitary :func:`_sql.text()`
+        :class:`_sql.Column` or similar objects in the columns clause of
+        :func:`_sql.select`, both in combination with arbitrary :func:`_sql.text()`
         clauses in the SELECT list, as well as when attempting to retrieve
         :meth:`_engine.Result.mappings` for the object, which would lead to an
         internal error.
 
         Fixed issue in :ref:`engine_insertmanyvalues` feature where using a primary
         key column with an "inline execute" default generator such as an explicit
-        :class:`.Sequence` with an explcit schema name, while at the same time
+        :class:`.Sequence` with an explicit schema name, while at the same time
         using the
         :paramref:`_engine.Connection.execution_options.schema_translate_map`
         feature would fail to render the sequence or the parameters properly,
         "Can't match sentinel values in result set to parameter sets".  Rather than
         attempt to further explain and document this implementation detail of the
         "insertmanyvalues" feature including a public version of the new
-        method, the approach is intead revised to no longer need this extra
+        method, the approach is instead revised to no longer need this extra
         conversion step, and the logic that does the comparison now works on the
         pre-converted bound parameter value compared to the post-result-processed
         value, which should always be of a matching datatype.  In the unusual case
 
         Fixed regression from version 2.0.28 caused by the fix for :ticket:`11085`
         where the newer method of adjusting post-cache bound parameter values would
-        interefere with the implementation for the :func:`_orm.subqueryload` loader
+        interfere with the implementation for the :func:`_orm.subqueryload` loader
         option, which has some more legacy patterns in use internally, when
         the additional loader criteria feature were used with this loader option.
 
         parameter for new style bulk ORM inserts, allowing ``render_nulls=True`` as
         an execution option.   This allows for bulk ORM inserts with a mixture of
         ``None`` values in the parameter dictionaries to use a single batch of rows
-        for a given set of dicationary keys, rather than breaking up into batches
+        for a given set of dictionary keys, rather than breaking up into batches
         that omit the NULL columns from each INSERT.
 
         .. seealso::
         However, mariadb-connector does not support invoking ``cursor.rowcount``
         after the cursor itself is closed, raising an error instead.  Generic test
         support has been added to ensure all backends support the allowing
-        :attr:`.Result.rowcount` to succceed (that is, returning an integer
+        :attr:`.Result.rowcount` to succeed (that is, returning an integer
         value with -1 for "not available") after the result is closed.
 
 
         :class:`.Update` and :class:`.Delete` to not interfere with the target
         "from" object passed to the statement, such as when passing an ORM-mapped
         :class:`_orm.aliased` construct that should be maintained within a phrase
-        like "UPDATE FROM".  Cases like ORM session synchonize using "SELECT"
+        like "UPDATE FROM".  Cases like ORM session synchronize using "SELECT"
         statements such as with MySQL/ MariaDB will still have issues with
         UPDATE/DELETE of this form so it's best to disable synchonize_session when
         using DML statements of this type.
         Fixed regression caused by improvements to PostgreSQL URL parsing in
         :ticket:`10004` where "host" query string arguments that had colons in
         them, to support various third party proxy servers and/or dialects, would
-        not parse correctly as these were evaluted as ``host:port`` combinations.
+        not parse correctly as these were evaluated as ``host:port`` combinations.
         Parsing has been updated to consider a colon as indicating a ``host:port``
         value only if the hostname contains only alphanumeric characters with dots
         or dashes only (e.g. no slashes), followed by exactly one colon followed by
         Fixed issue where the :paramref:`.ColumnOperators.like.escape` and similar
         parameters did not allow an empty string as an argument that would be
         passed through as the "escape" character; this is a supported syntax by
-        PostgreSQL.  Pull requset courtesy Martin Caslavsky.
+        PostgreSQL.  Pull request courtesy Martin Caslavsky.
 
     .. change::
         :tags: bug, orm
         :tickets: 9869
 
-        Improved the argument chacking on the
+        Improved the argument checking on the
         :paramref:`_orm.registry.map_imperatively.local_table` parameter of the
         :meth:`_orm.registry.map_imperatively` method, ensuring only a
         :class:`.Table` or other :class:`.FromClause` is passed, and not an
         :paramref:`_orm.Mapper.primary_key` parameter to be specified within
         ``__mapper_args__`` when using :func:`_orm.mapped_column`. Despite this
         usage being directly in the 2.0 documentation, the :class:`_orm.Mapper` was
-        not accepting the :func:`_orm.mapped_column` construct in this context. Ths
+        not accepting the :func:`_orm.mapped_column` construct in this context. This
         feature was already working for the :paramref:`_orm.Mapper.version_id_col`
         and :paramref:`_orm.Mapper.polymorphic_on` parameters.
 
         Improved the typing for :class:`.sessionmaker` and
         :class:`.async_sessionmaker`, so that the default type of their return value
         will be :class:`.Session` or :class:`.AsyncSession`, without the need to
-        type this explicitly. Previously, Mypy would not automaticaly infer these
+        type this explicitly. Previously, Mypy would not automatically infer these
         return types from its generic base.
 
         As part of this change, arguments for :class:`.Session`,
         :tickets: 8718
 
         Fixed issue in new dataclass mapping feature where a column declared on the
-        decalrative base / abstract base / mixin would leak into the constructor
+        declarative base / abstract base / mixin would leak into the constructor
         for an inheriting subclass under some circumstances.
 
     .. change::
         being mentioned in other parts of the query. If other elements of the
         :class:`_sql.Select` also generate FROM clauses, such as the columns clause
         or WHERE clause, these will render after the clauses delivered by
-        :meth:`_sql.Select.select_from` assuming they were not explictly passed to
+        :meth:`_sql.Select.select_from` assuming they were not explicitly passed to
         :meth:`_sql.Select.select_from` also. This improvement is useful in those
         cases where a particular database generates a desirable query plan based on
         a particular ordering of FROM clauses and allows full control over the
         visible in messaging as well as typing, have been changed to more succinct
         names which also match the name of their constructing function (with
         different casing), in all cases maintaining aliases to the old names for
-        the forseeable future:
+        the foreseeable future:
 
         * :class:`_orm.RelationshipProperty` becomes an alias for the primary name
           :class:`_orm.Relationship`, which is constructed as always from the
index 523eb638101f1511a971c8275d997b711ce7a5cf..414291797a563327f59e99a72a8949f4214a4724 100644 (file)
@@ -2192,7 +2192,7 @@ Therefore the best strategy for migrating from "dynamic" is to **wait until
 the application is fully running on 2.0**, then migrate directly from
 :class:`.AppenderQuery`, which is the collection type used by the "dynamic"
 strategy, to :class:`.WriteOnlyCollection`, which is the collection type
-used by hte "write_only" strategy.
+used by the "write_only" strategy.
 
 Some techniques are available to use ``lazy="dynamic"`` under 1.4 in a more
 "2.0" style however. There are two ways to achieve 2.0 style querying that's in
index 97ab85d7cbfd26e27cbca78462d3db34b13b8b87..a0a541fb982583f086baf7f57f08f948872bb888 100644 (file)
@@ -804,10 +804,10 @@ and ``Child.parent_associations -> Association.parent``::
         )
         extra_data: Mapped[Optional[str]]
 
-        # association between Assocation -> Child
+        # association between Association -> Child
         child: Mapped["Child"] = relationship(back_populates="parent_associations")
 
-        # association between Assocation -> Parent
+        # association between Association -> Parent
         parent: Mapped["Parent"] = relationship(back_populates="child_associations")
 
 
index 3a06e31fb535407ae7db28a38e9dc010a0c09ce0..100889fe583bd39b0751ea21a402581362cb3f7f 100644 (file)
@@ -681,7 +681,7 @@ first on the Microsoft SQL Server backend, illustrating the ``NVARCHAR`` datatyp
       PRIMARY KEY (id)
     )
 
-On MySQL, we get a VARCHAR column with an explcit length (required by
+On MySQL, we get a VARCHAR column with an explicit length (required by
 MySQL):
 
 .. sourcecode:: pycon+sql
index 3782b69fabf006d496eeb9660dd2764c9cb5a4a1..5d1b8f4a0b4c77551c28a0368c67556b98461e45 100644 (file)
@@ -42,7 +42,7 @@
 % size more like a typical published manual.
 %\renewcommand{\paperheight}{9in}
 %\renewcommand{\paperwidth}{8.5in}   % typical squarish manual
-%\renewcommand{\paperwidth}{7in}     % O'Reilly ``Programmming Python''
+%\renewcommand{\paperwidth}{7in}     % O'Reilly ``Programming Python''
 
 % For graphicx, check if we are compiling under latex or pdflatex.
 \ifx\pdftexversion\undefined
index 335ddd221ea6909e140eb0d362d2f2a16ad29d86..bd6e80a820c703f8a707a713a7d8de1d9f83b9c4 100644 (file)
@@ -270,7 +270,7 @@ class AsyncAdapt_dbapi_cursor:
             )
 
     def setinputsizes(self, *inputsizes: Any) -> None:
-        # NOTE: this is overrridden in aioodbc due to
+        # NOTE: this is overridden in aioodbc due to
         # see https://github.com/aio-libs/aioodbc/issues/451
         # right now
 
index 1412a2a520e85d4f398c79b77a2ed5a5be740654..79cfe86d488ddcb764b55a9cdc699f73e9baff0f 100644 (file)
@@ -112,7 +112,7 @@ python-oracledb documentation `Oracle Net Services Connection Strings
 For example to use an `Easy Connect string
 <https://download.oracle.com/ocomdocs/global/Oracle-Net-Easy-Connect-Plus.pdf>`_
 with a timeout to prevent connection establishment from hanging if the network
-transport to the database cannot be establishd in 30 seconds, and also setting
+transport to the database cannot be established in 30 seconds, and also setting
 a keep-alive time of 60 seconds to stop idle network connections from being
 terminated by a firewall::
 
index 5646b029b6236d7790ee4e5da38000a2dd713c35..62d7f509c3fa6f67cf98b1c2c2c9cc6443d25a69 100644 (file)
@@ -132,13 +132,13 @@ class VectorIndexConfig:
     :param distance: Enum value from :class:`.VectorDistanceType`
      specifies the metric for calculating distance between VECTORS.
 
-    :param accuracy: interger. Should be in the range 0 to 100
+    :param accuracy: integer. Should be in the range 0 to 100
      Specifies the accuracy of the nearest neighbor search during
      query execution.
 
     :param parallel: integer. Specifies degree of parallelism.
 
-    :param hnsw_neighbors: interger. Should be in the range 0 to
+    :param hnsw_neighbors: integer. Should be in the range 0 to
      2048. Specifies the number of nearest neighbors considered
      during the search. The attribute :attr:`.VectorIndexConfig.hnsw_neighbors`
      is HNSW index specific.
@@ -269,7 +269,7 @@ class VECTOR(types.TypeEngine):
         """
 
         if dim is not None and not isinstance(dim, int):
-            raise TypeError("dim must be an interger")
+            raise TypeError("dim must be an integer")
         if storage_format is not None and not isinstance(
             storage_format, VectorStorageFormat
         ):
index 5702f2bc1c8b4b42d7c29bc5d0a5551c1632659f..b3f144284891a937fbcc1c27e731c84d1db24669 100644 (file)
@@ -819,7 +819,7 @@ class AsyncAdapt_asyncpg_connection(AsyncAdapt_terminate, AdaptedConnection):
 
     async def _async_ping(self):
         if self._transaction is None and self.isolation_level != "autocommit":
-            # create a tranasction explicitly to support pgbouncer
+            # create a transaction explicitly to support pgbouncer
             # transaction mode.   See #10226
             tr = self._connection.transaction()
             await tr.start()
index 7170c9392d8339687d2acc8b0aa5d76524b0f858..2b0686e9bb5dca2870a9f756ad51c65cb46ff507 100644 (file)
@@ -3028,8 +3028,8 @@ class PGInspector(reflection.Inspector):
             * nullable - Indicates if this domain can be ``NULL``.
             * default - The default value of the domain or ``None`` if the
               domain has no default.
-            * constraints - A list of dict wit the constraint defined by this
-              domain. Each element constaints two keys: ``name`` of the
+            * constraints - A list of dict with the constraint defined by this
+              domain. Each element contains two keys: ``name`` of the
               constraint and ``check`` with the constraint text.
 
         :param schema: schema name.  If None, the default schema
@@ -4287,7 +4287,7 @@ class PGDialect(default.DefaultDialect):
                 # a sequential scan of pg_attribute.
                 # The condition in the con_sq subquery is not actually needed
                 # in pg15, but it may be needed in older versions. Keeping it
-                # does not seems to have any inpact in any case.
+                # does not seems to have any impact in any case.
                 con_sq.c.conrelid.in_(bindparam("oids"))
             )
             .subquery("attr")
@@ -4964,7 +4964,7 @@ class PGDialect(default.DefaultDialect):
         default = ReflectionDefaults.unique_constraints
         for table_name, cols, con_name, comment, options in result:
             # ensure a list is created for each table. leave it empty if
-            # the table has no unique cosntraint
+            # the table has no unique constraint
             if con_name is None:
                 uniques[(schema, table_name)] = default()
                 continue
index dc13ed45ad9942776352e5a7eeb2dd6a7d641e0f..bda8b323eaf077f01f1cfca92964f475264c80f0 100644 (file)
@@ -194,7 +194,7 @@ The implications of legacy transaction mode include:
   of the transaction will not rollback elements that were part of a released
   savepoint.
 
-Legacy transaction mode first existed in order to faciliate working around
+Legacy transaction mode first existed in order to facilitate working around
 SQLite's file locks.  Because SQLite relies upon whole-file locks, it is easy to
 get "database is locked" errors, particularly when newer features like "write
 ahead logging" are disabled.   This is a key reason why ``sqlite3``'s legacy
index 26d8750bf073f03329622d479fa3161033c59775..b00fa02235ec3345e05a0de9a3948984d27711d5 100644 (file)
@@ -328,7 +328,7 @@ class CursorResultMetaData(ResultMetaData):
         keymap_by_position = self._keymap_by_result_column_idx
 
         if keymap_by_position is None:
-            # first retrival from cache, this map will not be set up yet,
+            # first retrieval from cache, this map will not be set up yet,
             # initialize lazily
             keymap_by_position = self._keymap_by_result_column_idx = {
                 metadata_entry[MD_RESULT_MAP_INDEX]: metadata_entry
index d72cfc3eddf622ae73c4bd9a52b490bc9f3d3bbe..61c98a6eb5d555bd1a3cb9d2467a6e51ae4b3004 100644 (file)
@@ -163,7 +163,7 @@ def association_proxy(
       the proxied value to ``None`` should **create** the source object
       if it does not exist, using the creator.  Only applies to scalar
       attributes.  This is mutually exclusive
-      vs. the :paramref:`.assocation_proxy.cascade_scalar_deletes`.
+      vs. the :paramref:`.association_proxy.cascade_scalar_deletes`.
 
       .. versionadded:: 2.0.18
 
@@ -672,7 +672,7 @@ class AssociationProxyInstance(SQLORMOperations[_T]):
         except Exception as err:
             raise exc.InvalidRequestError(
                 f"Association proxy received an unexpected error when "
-                f"trying to retreive attribute "
+                f"trying to retrieve attribute "
                 f'"{target_class.__name__}.{parent.value_attr}" from '
                 f'class "{target_class.__name__}": {err}'
             ) from err
index 72a617f4e227784884609eb0b03e7e9657a6714f..ca2a7cddacf7c99f31b22aa83b65a41316beb960 100644 (file)
@@ -193,7 +193,7 @@ class GeneratorStartableContext(StartableContext[_T_co]):
                 # (see PEP 479 for sync generators; async generators also
                 # have this behavior). But do this only if the exception
                 # wrapped
-                # by the RuntimeError is actully Stop(Async)Iteration (see
+                # by the RuntimeError is actually Stop(Async)Iteration (see
                 # issue29692).
                 if (
                     isinstance(value, (StopIteration, StopAsyncIteration))
index 3ea3304eb308940b6077f5bc802a5bad197076fa..a7f964fe82c0306613cb1b7c6f6f87ecac18a249 100644 (file)
@@ -16,7 +16,7 @@ the source distribution.
 .. deepalchemy:: The horizontal sharding extension is an advanced feature,
    involving a complex statement -> database interaction as well as
    use of semi-public APIs for non-trivial cases.   Simpler approaches to
-   refering to multiple database "shards", most commonly using a distinct
+   referring to multiple database "shards", most commonly using a distinct
    :class:`_orm.Session` per "shard", should always be considered first
    before using this more complex and less-production-tested system.
 
index 5dbd4fcd62952cf302a693dc2664038acadf272a..210901703c8c754ef54041f888d44d87f82d16c5 100644 (file)
@@ -465,7 +465,7 @@ in-Python getter/setter methods can treat ``accounts`` as a Python
 list available on ``self``.
 
 .. tip:: The ``User.balance`` getter in the above example accesses the
-   ``self.acccounts`` collection, which will normally be loaded via the
+   ``self.accounts`` collection, which will normally be loaded via the
    :func:`.selectinload` loader strategy configured on the ``User.balance``
    :func:`_orm.relationship`. The default loader strategy when not otherwise
    stated on :func:`_orm.relationship` is :func:`.lazyload`, which emits SQL on
index 86ea53b9f7bc9ba900b696d9020604b9d6dc1ae3..dc972a08e3bedad13eeb3223db1ecddec8f7b7a4 100644 (file)
@@ -1107,7 +1107,7 @@ class BulkUDCompileState(ORMDMLState):
         # call can_use_returning() before invoking the statement and get
         # answer?, why does this go through the whole execute phase using an
         # event?  Answer: because we are integrating with extensions such
-        # as the horizontal sharding extention that "multiplexes" an individual
+        # as the horizontal sharding extension that "multiplexes" an individual
         # statement run through multiple engines, and it uses
         # do_orm_execute() to do that.
 
index 1c1d93ba5191499febbcfab6a3f8cfbc4cbc855a..eaef35977d23b98fcfb04ee7f0aac6cac003810b 100644 (file)
@@ -249,7 +249,7 @@ class _declared_attr_common:
         cascading: bool = False,
         quiet: bool = False,
     ):
-        # suppport
+        # support
         # @declared_attr
         # @classmethod
         # def foo(cls) -> Mapped[thing]:
@@ -686,7 +686,7 @@ class DeclarativeBase(
     :param metadata: optional :class:`_schema.MetaData` collection.
      If a :class:`_orm.registry` is constructed automatically, this
      :class:`_schema.MetaData` collection will be used to construct it.
-     Otherwise, the local :class:`_schema.MetaData` collection will supercede
+     Otherwise, the local :class:`_schema.MetaData` collection will supersede
      that used by an existing :class:`_orm.registry` passed using the
      :paramref:`_orm.DeclarativeBase.registry` parameter.
     :param type_annotation_map: optional type annotation map that will be
index 43c4aa362bb721b12f6d78bd04c18d3c53dfdbbd..1c003cb4d12e6b433c9e90cda31b353722b3712b 100644 (file)
@@ -1001,7 +1001,7 @@ class SynonymProperty(DescriptorProperty[_T]):
             if isinstance(attr, attributes.QueryableAttribute):
                 return attr.comparator
             elif isinstance(attr, SQLORMOperations):
-                # assocaition proxy comes here
+                # association proxy comes here
                 return attr
 
             raise sa_exc.InvalidRequestError(
index dfcd13058d9d2413ba49ee9895fa3621dfa2acd3..2194f3efe6b3416ba82e8a90a8bbc7fc061b0e59 100644 (file)
@@ -175,7 +175,7 @@ class _IntrospectsAnnotations:
         extracted_mapped_annotation: Optional[_AnnotationScanType],
         is_dataclass_field: bool,
     ) -> None:
-        """Perform class-specific initializaton at early declarative scanning
+        """Perform class-specific initialization at early declarative scanning
         time.
 
         .. versionadded:: 2.0
index 64aeaa474cb6a654b0274fbcd8d2af3ea5b0f434..fb1c58dba60894a824b966b26a452da6e9d73b2c 100644 (file)
@@ -4377,7 +4377,7 @@ def validates(
      :func:`.validates` usage where only one validator should emit per
      attribute operation.
 
-     .. versionchanged:: 2.0.16 This paramter inadvertently defaulted to
+     .. versionchanged:: 2.0.16 This parameter inadvertently defaulted to
         ``False`` for releases 2.0.0 through 2.0.15.  Its correct default
         of ``True`` is restored in 2.0.16.
 
index f1456753b0e8841ca544ed10a0981ee36039d802..b9859cd5e01240f08b299ae79fda28f76a3de9f0 100644 (file)
@@ -834,7 +834,7 @@ class SessionTransactionOrigin(Enum):
     """transaction were started by calling :meth:`_orm.Session.begin`"""
 
     BEGIN_NESTED = 2
-    """tranaction were started by :meth:`_orm.Session.begin_nested`"""
+    """transaction were started by :meth:`_orm.Session.begin_nested`"""
 
     SUBTRANSACTION = 3
     """transaction is an internal "subtransaction" """
index a79874e1c7a0341c21340fb6eb5e5fbb0cf2dbf2..46a94bf079d37fc0b5f2fc15ff12253303803758 100644 (file)
@@ -80,7 +80,7 @@ class _StateChange:
          indicate state should not change at the end of the method.
 
         """
-        assert prerequisite_states, "no prequisite states sent"
+        assert prerequisite_states, "no prerequisite states sent"
         has_prerequisite_states = (
             prerequisite_states is not _StateChangeStates.ANY
         )
index ed4d7c115ab657f8a83da40c04fcd321cee0151f..9ea1e1e64b2f446c9367a6e180f0f11a6a977fae 100644 (file)
@@ -599,7 +599,7 @@ class ConnectionPoolEntry(ManagesConnection):
     connection on behalf of a :class:`_pool.Pool` instance.
 
     The :class:`.ConnectionPoolEntry` object represents the long term
-    maintainance of a particular connection for a pool, including expiring or
+    maintenance of a particular connection for a pool, including expiring or
     invalidating that connection to have it replaced with a new one, which will
     continue to be maintained by that same :class:`.ConnectionPoolEntry`
     instance. Compared to :class:`.PoolProxiedConnection`, which is the
index 43adf225951fd7b03706678a5713ad87fd5d5442..f061683ae5597e618a835f82366afadd5f763bc2 100644 (file)
@@ -4644,7 +4644,7 @@ class SQLCompiler(Compiled):
                 )
             elif (
                 # general class of expressions that don't have a SQL-column
-                # addressible name.  includes scalar selects, bind parameters,
+                # addressable name.  includes scalar selects, bind parameters,
                 # SQL functions, others
                 not isinstance(column, elements.NamedColumn)
                 # deeper check that indicates there's no natural "name" to
@@ -5936,7 +5936,7 @@ class SQLCompiler(Compiled):
                 self.implicit_returning or insert_stmt._returning
             ) and insert_stmt._sort_by_parameter_order:
                 raise exc.CompileError(
-                    "RETURNING cannot be determinstically sorted when "
+                    "RETURNING cannot be deterministically sorted when "
                     "using an INSERT which includes multi-row values()."
                 )
             crud_params_single = crud_params_struct.single_params
index 51da9fa33b80a2572fcff076b818f7e10bc7bdd8..2075a675c62086fc45ad870ca4fe398911837cd5 100644 (file)
@@ -492,7 +492,7 @@ class UpdateBase(
 
             The :meth:`.UpdateBase.return_defaults` method is used by the ORM
             for its internal work in fetching newly generated primary key
-            and server default values, in particular to provide the underyling
+            and server default values, in particular to provide the underlying
             implementation of the :paramref:`_orm.Mapper.eager_defaults`
             ORM feature as well as to allow RETURNING support with bulk
             ORM inserts.  Its behavior is fairly idiosyncratic
index 9ba190fcabe971d7a219f67c2760d614197a0d9e..d72bde868dd8bb81b8e7da317768e4182ae97fa6 100644 (file)
@@ -1065,7 +1065,7 @@ class SQLCoreOperations(Generic[_T_co], ColumnOperators, TypingOnly):
         def all_(self) -> CollectionAggregate[Any]: ...
 
         # numeric overloads.  These need more tweaking
-        # in particular they all need to have a variant for Optiona[_T]
+        # in particular they all need to have a variant for Optional[_T]
         # because Optional only applies to the data side, not the expression
         # side
 
index f553acbaa9b24c113be99f3cb1f77fcba6b5739a..c057a0dbaacccc69153ef55643ff8eb1e06ab7f0 100644 (file)
@@ -1622,7 +1622,7 @@ class Column(DialectKWArgs, SchemaItem, ColumnClause[_T]):
             ``SERIAL``, MySQL ``AUTO_INCREMENT``, or ``IDENTITY`` on SQL Server
             should also be rendered.  Not every database backend has an
             "implied" default generator available; for example the Oracle Database
-            backends alway needs an explicit construct such as
+            backends always needs an explicit construct such as
             :class:`.Identity` to be included with a :class:`.Column` in order
             for the DDL rendered to include auto-generating constructs to also
             be produced in the database.
index d9cf3c98f908beb07d2bb8ae0b306952e7fe0f96..5b453abbf4a0de5d5b2cd66274b099fb5d9754f1 100644 (file)
@@ -1705,7 +1705,7 @@ class Enum(String, SchemaType, Emulated, TypeEngine[Union[str, enum.Enum]]):
 
     def _object_value_for_elem(self, elem: str) -> Union[str, enum.Enum]:
         try:
-            # Value will not be None beacuse key is not None
+            # Value will not be None because key is not None
             return self._object_lookup[elem]  # type: ignore[return-value]
         except KeyError as err:
             raise LookupError(
index 276428516769d1aea5035500f1e74373b376cd12..a9d85a5db5fd53a95e0667534b280a8eb9073376 100644 (file)
@@ -440,7 +440,7 @@ class HasTraverseInternals:
     which defines all kinds of ways of traversing the elements of an object.
 
     Compared to :class:`.Visitable`, which relies upon an external visitor to
-    define how the object is travered (i.e. the :class:`.SQLCompiler`), the
+    define how the object is traversed (i.e. the :class:`.SQLCompiler`), the
     :class:`.HasTraverseInternals` interface allows classes to define their own
     traversal, that is, what attributes are accessed and in what order.
 
index fb534d5e1a19921666fb92bfd79fc86617b3dcdf..d815f8936e83a493afff82bbf639135347c1c33f 100644 (file)
@@ -110,7 +110,7 @@ def setup_options(make_option):
     make_option(
         "--disable-asyncio",
         action="store_true",
-        help="disable test / fixtures / provisoning running in asyncio",
+        help="disable test / fixtures / provisioning running in asyncio",
     )
     make_option(
         "--backend-only",
index 9aecdfdd4657c412cade23ae1d4498829c6eb53b..b5240b9bb954dec1789f805f5b3703ca68862c52 100644 (file)
@@ -144,7 +144,7 @@ class EngineThreadSafetyTest(_ThreadTest, fixtures.TablesTest):
             table_key = thread_name
             assert table_key in metadata.tables, f"{table_key} does not exist"
             with num_threads_engine.connect() as conn:
-                # Will raise if it cannot connect so erros will be populated
+                # Will raise if it cannot connect so errors will be populated
                 conn.execute(sa.select(metadata.tables[table_key]))
 
         _, errors = self.run_threaded(worker)
index d9ef1122685b38cd1affdbc5da44ab273d2f155a..75e6f2828d689e471ed52b4f4faadfebbae01666 100644 (file)
@@ -1075,7 +1075,7 @@ class TypesTest(fixtures.TestBase):
             Column(
                 "embedding",
                 # can't specify dementions in the free version of oracle
-                # since otherwise it complains that has no spece for the index
+                # since otherwise it complains that has no space for the index
                 VECTOR(),
                 # VECTOR(dim=3, storage_format=VectorStorageFormat.FLOAT32),
             ),
index 109101011fc865f1885583ca04e7713242a11df5..16f29d92f5b0efe7b4368111282188879c480b08 100644 (file)
@@ -156,7 +156,7 @@ class DialectTest(fixtures.TestBase):
         eq_(groups, expected)
 
     def test_range_constructor(self):
-        """test kwonly argments in the range constructor, as we had
+        """test kwonly arguments in the range constructor, as we had
         to do dataclasses backwards compat operations"""
 
         r1 = Range(None, 5)
index 127bf29b122e373a760b1aaeaa5089afe5d2ac24..008b8c0b45803f2d65c408b45e85ee6e3dd21c60 100644 (file)
@@ -169,7 +169,7 @@ class InsertTest(fixtures.TestBase, AssertsExecutionResults):
         PostgreSQL dialect right now.   MSSQL would also use it for a server
         side function that produces monotonic values, but we have no support
         for that outside of sequence next right now, where SQL Server doesn't
-        support invokving the sequence outside of the VALUES tuples.
+        support invoking the sequence outside of the VALUES tuples.
 
         """
 
index 7e2b31a9b5ba6a927f587a6f279c96ee0282a1bc..e178754cb3dfc51d33839b999f0359cf8f55e159 100644 (file)
@@ -3512,7 +3512,7 @@ class ProxyHybridTest(fixtures.DeclarativeMappedTest, AssertsCompiledSQL):
         with expect_raises_message(
             exc.InvalidRequestError,
             "Association proxy received an unexpected error when trying to "
-            'retreive attribute "B.fails_on_class_access" from '
+            'retrieve attribute "B.fails_on_class_access" from '
             r'class "B": .* no len\(\)',
         ):
             a1.fails_on_class_access
index 287240575c8e274145aab9a3eafde579b37bd89e..616f924ad53f086d0d905b344259879a78c6feee 100644 (file)
@@ -52,7 +52,7 @@ class MappedColumnTest(
         "construct", ["Mapped", "WriteOnlyMapped", "DynamicMapped"]
     )
     def test_fully_qualified_writeonly_mapped_name(self, decl_base, construct):
-        """futher variation in issue #10412"""
+        """further variation in issue #10412"""
 
         class Foo(decl_base):
             __tablename__ = "foo"
index 9b0d4f334bc986a63c854cfe0e901487c875a712..462aec89764e52f535e9c23e75fbd068780d657c 100644 (file)
@@ -526,7 +526,7 @@ class RelationshipLHSTest(_RelationshipLHSTest):
     def test_indirect_name_relationship_arg_override(self, decl_base):
         """test #8759
 
-        in this test we assume a case where the type for the Mapped annnotation
+        in this test we assume a case where the type for the Mapped annotation
         a. has to be a different name than the actual class name and
         b. cannot be imported outside of TYPE CHECKING.  user will then put
         the real name inside of relationship().  we have to succeed even though
index 208f8d78873e76bdcba55088e69811e717153920..943aebae923866ae70505d59965e3d21a12e1130 100644 (file)
@@ -1680,7 +1680,7 @@ class AdaptOnNamesTest(
                 # tip: whether or not there is "id_2" and "id_3" here,
                 # or just "id_2", is based on whether or not the two
                 # queries had polymorphic adaption proceed, so that the
-                # two filter criterias are different vs. the same object.  see
+                # two filter criteria are different vs. the same object.  see
                 # mapper._should_select_with_poly_adapter added in #8456.
                 [{"param_1": "a", "id_2": 3, "param_2": "b", "id_3": 3}],
             )
index 4b9d3b2e0255087f747c47dee7591e05660eaa5e..b1830cdc51cc97c311d85fc6d9230147df5fc103 100644 (file)
@@ -312,7 +312,7 @@ class AttributesTest(fixtures.ORMTest):
         o4 = pickle.loads(pk_o3)
 
         # and lastly make sure we still have our data after all that.
-        # identical serialzation is great, *if* it's complete :)
+        # identical serialization is great, *if* it's complete :)
         self.assert_(o4.user_id == 7)
         self.assert_(o4.user_name is None)
         self.assert_(o4.email_address is None)
index 178b03fe6f6f355b5dfde630b4754d822537ac59..079ff775dff740a91b888fd6eb5d3c6b615bb2ec 100644 (file)
@@ -795,7 +795,7 @@ class Issue11292Test(fixtures.DeclarativeMappedTest):
         session = fixture_session()
 
         # here, we want the defaultload() to go away on subsequent loads,
-        # becuase Parent.extension is propagate_to_loaders=False
+        # because Parent.extension is propagate_to_loaders=False
         query = (
             select(Parent)
             .join(Extension)
@@ -835,7 +835,7 @@ class Issue11292Test(fixtures.DeclarativeMappedTest):
         session = fixture_session()
 
         # here, we want the defaultload() to go away on subsequent loads,
-        # becuase Parent.extension is propagate_to_loaders=False
+        # because Parent.extension is propagate_to_loaders=False
         query = select(Parent).options(
             (
                 defaultload(Parent.extension).options(
index d82815813a10f2de92c17f7ce7bee0de7672a3af..d008e60b1dc848f7d16d673b965c90399f3a1c9a 100644 (file)
@@ -1248,7 +1248,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
         """test ultimately from #2316 revised for #8064.
 
         previously column_property() would deannotate the given expression,
-        however this interfered with some compilation sceanrios.
+        however this interfered with some compilation scenarios.
 
 
         """
@@ -2118,7 +2118,7 @@ class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
 
     def test_synonym_nonexistent_attr(self):
         # test [ticket:4767].
-        # synonym points to non-existent attrbute that hasn't been mapped yet.
+        # synonym points to non-existent attribute that hasn't been mapped yet.
         users = self.tables.users
 
         class User:
index 7c43e60db3fe1b550f9b0544c08d35bddb9214e0..0e86565bd9491074ffc87a08d0aa5f2abb266d1d 100644 (file)
@@ -1729,7 +1729,7 @@ class SelectTest(fixtures.TestBase, AssertsCompiledSQL):
     )
     def test_order_by_labels_enabled(self, operator, expected):
         """test positive cases with order_by_labels enabled.  this is
-        multipled out to all the ORDER BY modifier operators
+        multiplied out to all the ORDER BY modifier operators
         (see #11592)
 
 
@@ -3133,13 +3133,13 @@ class SelectTest(fixtures.TestBase, AssertsCompiledSQL):
         )
 
         # this tests that _from_objects
-        # concantenates OK
+        # concatenates OK
         self.assert_compile(
             select(column("x") + over(func.foo())),
             "SELECT x + foo() OVER () AS anon_1",
         )
 
-        # test a reference to a label that in the referecned selectable;
+        # test a reference to a label that in the referenced selectable;
         # this resolves
         expr = (table1.c.myid + 5).label("sum")
         stmt = select(expr).alias()
index 92b83b7fe3517f6e74c91ac3d102a94e0176d00d..d588776b1ab8b0826dd432af0fdbbb6f83720d44 100644 (file)
@@ -505,7 +505,7 @@ class CTETest(fixtures.TestBase, AssertsCompiledSQL):
                 c2 = c2.union(select(2))
         elif clone_type.annotated:
             # this does not seem to trigger the issue that was fixed in
-            # #12364 howver is still a worthy test
+            # #12364 however is still a worthy test
             c2 = c1._annotate({"foo": "bar"})
             if not identical:
                 c2 = c2.union(select(2))
index d044d8b57f064d78fa910da7c8a3bdc2e96d53e0..f91bbf0ee2225dc5be0df02c9bad18d71b6af08c 100644 (file)
@@ -2811,7 +2811,7 @@ class ValuesBaseTest(fixtures.TestBase, AssertsCompiledSQL):
 
     __dialect__ = "default"
 
-    # fixme: consolidate converage from elsewhere here and expand
+    # fixme: consolidate converge from elsewhere here and expand
 
     @classmethod
     def setup_test_class(cls):
index a5cfad5b6945a1db69ccc9dae3b2bc3430b932e4..804436384cf2a43bb7ff931f133c94e28c7b5448 100644 (file)
@@ -123,7 +123,7 @@ class InsertTest(_InsertTestBase, fixtures.TablesTest, AssertsCompiledSQL):
             if sort_by_parameter_order:
                 with expect_raises_message(
                     exc.CompileError,
-                    "RETURNING cannot be determinstically sorted "
+                    "RETURNING cannot be deterministically sorted "
                     "when using an INSERT",
                 ):
                     stmt.compile()
index 1a0eadf4157567e65aabed96ee38b7d2af813970..c6bb51f455b9afa1182acd2f94e77f26bcee9140 100644 (file)
@@ -926,7 +926,7 @@ class InsertManyValuesTest(fixtures.RemovesEvents, fixtures.TablesTest):
 
     @testing.requires.provisioned_upsert
     def test_upsert_w_returning(self, connection):
-        """test cases that will execise SQL similar to that of
+        """test cases that will exercise SQL similar to that of
         test/orm/dml/test_bulk_statements.py
 
         """
index 549375d0af264708aed672c9a1b2c1dd72bebc0f..03d827ea7efd163f18495cf9f44ae92f95a23ffd 100644 (file)
@@ -58,7 +58,7 @@ t4 = Table(
 
 # cols w/ no name or type, used by declarative
 c1: Column[int] = Column(ForeignKey(t3.c.x))
-# more colum args
+# more column args
 Column("name", Integer, index=True)
 Column(None, name="name")
 Column(Integer, name="name", index=True)
index 295627a49c638dbc753c4c155f2a6a3f5b1b155d..2bdcebd301a144ffcc1691edb09c5525f36c23c0 100644 (file)
@@ -2,7 +2,7 @@
 sections for nox tests, which include tags that indicate various combinations
 of those parameters in such a way that it's somewhat similar to how
 we were using the tox project; where individual dash-separated tags could
-be added to add more specificity to the suite configuation, or omitting them
+be added to add more specificity to the suite configuration, or omitting them
 would fall back to defaults.