alembic 1.13.3__py3-none-any.whl → 1.14.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
alembic/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
1
  from . import context
2
2
  from . import op
3
3
 
4
- __version__ = "1.13.3"
4
+ __version__ = "1.14.1"
@@ -277,7 +277,7 @@ class AutogenContext:
277
277
  """Maintains configuration and state that's specific to an
278
278
  autogenerate operation."""
279
279
 
280
- metadata: Optional[MetaData] = None
280
+ metadata: Union[MetaData, Sequence[MetaData], None] = None
281
281
  """The :class:`~sqlalchemy.schema.MetaData` object
282
282
  representing the destination.
283
283
 
@@ -332,7 +332,7 @@ class AutogenContext:
332
332
  def __init__(
333
333
  self,
334
334
  migration_context: MigrationContext,
335
- metadata: Optional[MetaData] = None,
335
+ metadata: Union[MetaData, Sequence[MetaData], None] = None,
336
336
  opts: Optional[Dict[str, Any]] = None,
337
337
  autogenerate: bool = True,
338
338
  ) -> None:
@@ -831,7 +831,10 @@ def _repr_type(
831
831
 
832
832
  mod = type(type_).__module__
833
833
  imports = autogen_context.imports
834
- if mod.startswith("sqlalchemy.dialects"):
834
+
835
+ if not _skip_variants and sqla_compat._type_has_variants(type_):
836
+ return _render_Variant_type(type_, autogen_context)
837
+ elif mod.startswith("sqlalchemy.dialects"):
835
838
  match = re.match(r"sqlalchemy\.dialects\.(\w+)", mod)
836
839
  assert match is not None
837
840
  dname = match.group(1)
@@ -843,8 +846,6 @@ def _repr_type(
843
846
  return "%s.%r" % (dname, type_)
844
847
  elif impl_rt:
845
848
  return impl_rt
846
- elif not _skip_variants and sqla_compat._type_has_variants(type_):
847
- return _render_Variant_type(type_, autogen_context)
848
849
  elif mod.startswith("sqlalchemy."):
849
850
  if "_render_%s_type" % type_.__visit_name__ in globals():
850
851
  fn = globals()["_render_%s_type" % type_.__visit_name__]
alembic/ddl/base.py CHANGED
@@ -175,7 +175,7 @@ class ColumnComment(AlterColumn):
175
175
  self.comment = comment
176
176
 
177
177
 
178
- @compiles(RenameTable) # type: ignore[misc]
178
+ @compiles(RenameTable)
179
179
  def visit_rename_table(
180
180
  element: RenameTable, compiler: DDLCompiler, **kw
181
181
  ) -> str:
@@ -185,7 +185,7 @@ def visit_rename_table(
185
185
  )
186
186
 
187
187
 
188
- @compiles(AddColumn) # type: ignore[misc]
188
+ @compiles(AddColumn)
189
189
  def visit_add_column(element: AddColumn, compiler: DDLCompiler, **kw) -> str:
190
190
  return "%s %s" % (
191
191
  alter_table(compiler, element.table_name, element.schema),
@@ -193,7 +193,7 @@ def visit_add_column(element: AddColumn, compiler: DDLCompiler, **kw) -> str:
193
193
  )
194
194
 
195
195
 
196
- @compiles(DropColumn) # type: ignore[misc]
196
+ @compiles(DropColumn)
197
197
  def visit_drop_column(element: DropColumn, compiler: DDLCompiler, **kw) -> str:
198
198
  return "%s %s" % (
199
199
  alter_table(compiler, element.table_name, element.schema),
@@ -201,7 +201,7 @@ def visit_drop_column(element: DropColumn, compiler: DDLCompiler, **kw) -> str:
201
201
  )
202
202
 
203
203
 
204
- @compiles(ColumnNullable) # type: ignore[misc]
204
+ @compiles(ColumnNullable)
205
205
  def visit_column_nullable(
206
206
  element: ColumnNullable, compiler: DDLCompiler, **kw
207
207
  ) -> str:
@@ -212,7 +212,7 @@ def visit_column_nullable(
212
212
  )
213
213
 
214
214
 
215
- @compiles(ColumnType) # type: ignore[misc]
215
+ @compiles(ColumnType)
216
216
  def visit_column_type(element: ColumnType, compiler: DDLCompiler, **kw) -> str:
217
217
  return "%s %s %s" % (
218
218
  alter_table(compiler, element.table_name, element.schema),
@@ -221,7 +221,7 @@ def visit_column_type(element: ColumnType, compiler: DDLCompiler, **kw) -> str:
221
221
  )
222
222
 
223
223
 
224
- @compiles(ColumnName) # type: ignore[misc]
224
+ @compiles(ColumnName)
225
225
  def visit_column_name(element: ColumnName, compiler: DDLCompiler, **kw) -> str:
226
226
  return "%s RENAME %s TO %s" % (
227
227
  alter_table(compiler, element.table_name, element.schema),
@@ -230,7 +230,7 @@ def visit_column_name(element: ColumnName, compiler: DDLCompiler, **kw) -> str:
230
230
  )
231
231
 
232
232
 
233
- @compiles(ColumnDefault) # type: ignore[misc]
233
+ @compiles(ColumnDefault)
234
234
  def visit_column_default(
235
235
  element: ColumnDefault, compiler: DDLCompiler, **kw
236
236
  ) -> str:
@@ -245,7 +245,7 @@ def visit_column_default(
245
245
  )
246
246
 
247
247
 
248
- @compiles(ComputedColumnDefault) # type: ignore[misc]
248
+ @compiles(ComputedColumnDefault)
249
249
  def visit_computed_column(
250
250
  element: ComputedColumnDefault, compiler: DDLCompiler, **kw
251
251
  ):
@@ -255,7 +255,7 @@ def visit_computed_column(
255
255
  )
256
256
 
257
257
 
258
- @compiles(IdentityColumnDefault) # type: ignore[misc]
258
+ @compiles(IdentityColumnDefault)
259
259
  def visit_identity_column(
260
260
  element: IdentityColumnDefault, compiler: DDLCompiler, **kw
261
261
  ):
alembic/ddl/impl.py CHANGED
@@ -21,7 +21,12 @@ from typing import TYPE_CHECKING
21
21
  from typing import Union
22
22
 
23
23
  from sqlalchemy import cast
24
+ from sqlalchemy import Column
25
+ from sqlalchemy import MetaData
26
+ from sqlalchemy import PrimaryKeyConstraint
24
27
  from sqlalchemy import schema
28
+ from sqlalchemy import String
29
+ from sqlalchemy import Table
25
30
  from sqlalchemy import text
26
31
 
27
32
  from . import _autogen
@@ -43,11 +48,9 @@ if TYPE_CHECKING:
43
48
  from sqlalchemy.sql import Executable
44
49
  from sqlalchemy.sql.elements import ColumnElement
45
50
  from sqlalchemy.sql.elements import quoted_name
46
- from sqlalchemy.sql.schema import Column
47
51
  from sqlalchemy.sql.schema import Constraint
48
52
  from sqlalchemy.sql.schema import ForeignKeyConstraint
49
53
  from sqlalchemy.sql.schema import Index
50
- from sqlalchemy.sql.schema import Table
51
54
  from sqlalchemy.sql.schema import UniqueConstraint
52
55
  from sqlalchemy.sql.selectable import TableClause
53
56
  from sqlalchemy.sql.type_api import TypeEngine
@@ -136,6 +139,40 @@ class DefaultImpl(metaclass=ImplMeta):
136
139
  self.output_buffer.write(text + "\n\n")
137
140
  self.output_buffer.flush()
138
141
 
142
+ def version_table_impl(
143
+ self,
144
+ *,
145
+ version_table: str,
146
+ version_table_schema: Optional[str],
147
+ version_table_pk: bool,
148
+ **kw: Any,
149
+ ) -> Table:
150
+ """Generate a :class:`.Table` object which will be used as the
151
+ structure for the Alembic version table.
152
+
153
+ Third party dialects may override this hook to provide an alternate
154
+ structure for this :class:`.Table`; requirements are only that it
155
+ be named based on the ``version_table`` parameter and contains
156
+ at least a single string-holding column named ``version_num``.
157
+
158
+ .. versionadded:: 1.14
159
+
160
+ """
161
+ vt = Table(
162
+ version_table,
163
+ MetaData(),
164
+ Column("version_num", String(32), nullable=False),
165
+ schema=version_table_schema,
166
+ )
167
+ if version_table_pk:
168
+ vt.append_constraint(
169
+ PrimaryKeyConstraint(
170
+ "version_num", name=f"{version_table}_pkc"
171
+ )
172
+ )
173
+
174
+ return vt
175
+
139
176
  def requires_recreate_in_batch(
140
177
  self, batch_op: BatchOperationsImpl
141
178
  ) -> bool:
alembic/ddl/postgresql.py CHANGED
@@ -16,6 +16,7 @@ from typing import TYPE_CHECKING
16
16
  from typing import Union
17
17
 
18
18
  from sqlalchemy import Column
19
+ from sqlalchemy import Float
19
20
  from sqlalchemy import literal_column
20
21
  from sqlalchemy import Numeric
21
22
  from sqlalchemy import text
@@ -132,7 +133,7 @@ class PostgresqlImpl(DefaultImpl):
132
133
  metadata_default = metadata_column.server_default.arg
133
134
 
134
135
  if isinstance(metadata_default, str):
135
- if not isinstance(inspector_column.type, Numeric):
136
+ if not isinstance(inspector_column.type, (Numeric, Float)):
136
137
  metadata_default = re.sub(r"^'|'$", "", metadata_default)
137
138
  metadata_default = f"'{metadata_default}'"
138
139
 
alembic/ddl/sqlite.py CHANGED
@@ -16,6 +16,8 @@ from sqlalchemy import schema
16
16
  from sqlalchemy import sql
17
17
 
18
18
  from .base import alter_table
19
+ from .base import ColumnName
20
+ from .base import format_column_name
19
21
  from .base import format_table_name
20
22
  from .base import RenameTable
21
23
  from .impl import DefaultImpl
@@ -207,6 +209,15 @@ def visit_rename_table(
207
209
  )
208
210
 
209
211
 
212
+ @compiles(ColumnName, "sqlite")
213
+ def visit_column_name(element: ColumnName, compiler: DDLCompiler, **kw) -> str:
214
+ return "%s RENAME COLUMN %s TO %s" % (
215
+ alter_table(compiler, element.table_name, element.schema),
216
+ format_column_name(compiler, element.column_name),
217
+ format_column_name(compiler, element.newname),
218
+ )
219
+
220
+
210
221
  # @compiles(AddColumn, 'sqlite')
211
222
  # def visit_add_column(element, compiler, **kw):
212
223
  # return "%s %s" % (
@@ -24,10 +24,6 @@ from typing import Union
24
24
 
25
25
  from sqlalchemy import Column
26
26
  from sqlalchemy import literal_column
27
- from sqlalchemy import MetaData
28
- from sqlalchemy import PrimaryKeyConstraint
29
- from sqlalchemy import String
30
- from sqlalchemy import Table
31
27
  from sqlalchemy.engine import Engine
32
28
  from sqlalchemy.engine import url as sqla_url
33
29
  from sqlalchemy.engine.strategies import MockEngineStrategy
@@ -36,6 +32,7 @@ from .. import ddl
36
32
  from .. import util
37
33
  from ..util import sqla_compat
38
34
  from ..util.compat import EncodedIO
35
+ from ..util.sqla_compat import _select
39
36
 
40
37
  if TYPE_CHECKING:
41
38
  from sqlalchemy.engine import Dialect
@@ -190,18 +187,6 @@ class MigrationContext:
190
187
  self.version_table_schema = version_table_schema = opts.get(
191
188
  "version_table_schema", None
192
189
  )
193
- self._version = Table(
194
- version_table,
195
- MetaData(),
196
- Column("version_num", String(32), nullable=False),
197
- schema=version_table_schema,
198
- )
199
- if opts.get("version_table_pk", True):
200
- self._version.append_constraint(
201
- PrimaryKeyConstraint(
202
- "version_num", name="%s_pkc" % version_table
203
- )
204
- )
205
190
 
206
191
  self._start_from_rev: Optional[str] = opts.get("starting_rev")
207
192
  self.impl = ddl.DefaultImpl.get_by_dialect(dialect)(
@@ -212,6 +197,13 @@ class MigrationContext:
212
197
  self.output_buffer,
213
198
  opts,
214
199
  )
200
+
201
+ self._version = self.impl.version_table_impl(
202
+ version_table=version_table,
203
+ version_table_schema=version_table_schema,
204
+ version_table_pk=opts.get("version_table_pk", True),
205
+ )
206
+
215
207
  log.info("Context impl %s.", self.impl.__class__.__name__)
216
208
  if self.as_sql:
217
209
  log.info("Generating static SQL")
@@ -540,7 +532,10 @@ class MigrationContext:
540
532
  return ()
541
533
  assert self.connection is not None
542
534
  return tuple(
543
- row[0] for row in self.connection.execute(self._version.select())
535
+ row[0]
536
+ for row in self.connection.execute(
537
+ _select(self._version.c.version_num)
538
+ )
544
539
  )
545
540
 
546
541
  def _ensure_version_table(self, purge: bool = False) -> None:
@@ -15,7 +15,7 @@ prepend_sys_path = .
15
15
 
16
16
  # timezone to use when rendering the date within the migration file
17
17
  # as well as the filename.
18
- # If specified, requires the python>=3.9 or backports.zoneinfo library.
18
+ # If specified, requires the python>=3.9 or backports.zoneinfo library and tzdata library.
19
19
  # Any required deps can installed by adding `alembic[tz]` to the pip requirements
20
20
  # string value is passed to ZoneInfo()
21
21
  # leave blank for localtime
@@ -48,7 +48,9 @@ prepend_sys_path = .
48
48
  # version_path_separator = ;
49
49
  # version_path_separator = space
50
50
  # version_path_separator = newline
51
- version_path_separator = os # Use os.pathsep. Default configuration used for new projects.
51
+ #
52
+ # Use os.pathsep. Default configuration used for new projects.
53
+ version_path_separator = os
52
54
 
53
55
  # set to 'true' to search source files recursively
54
56
  # in each "version_locations" directory
@@ -90,12 +92,12 @@ keys = console
90
92
  keys = generic
91
93
 
92
94
  [logger_root]
93
- level = WARN
95
+ level = WARNING
94
96
  handlers = console
95
97
  qualname =
96
98
 
97
99
  [logger_sqlalchemy]
98
- level = WARN
100
+ level = WARNING
99
101
  handlers =
100
102
  qualname = sqlalchemy.engine
101
103
 
@@ -17,7 +17,7 @@ prepend_sys_path = .
17
17
 
18
18
  # timezone to use when rendering the date within the migration file
19
19
  # as well as the filename.
20
- # If specified, requires the python>=3.9 or backports.zoneinfo library.
20
+ # If specified, requires the python>=3.9 or backports.zoneinfo library and tzdata library.
21
21
  # Any required deps can installed by adding `alembic[tz]` to the pip requirements
22
22
  # string value is passed to ZoneInfo()
23
23
  # leave blank for localtime
@@ -50,7 +50,9 @@ prepend_sys_path = .
50
50
  # version_path_separator = ;
51
51
  # version_path_separator = space
52
52
  # version_path_separator = newline
53
- version_path_separator = os # Use os.pathsep. Default configuration used for new projects.
53
+ #
54
+ # Use os.pathsep. Default configuration used for new projects.
55
+ version_path_separator = os
54
56
 
55
57
  # set to 'true' to search source files recursively
56
58
  # in each "version_locations" directory
@@ -92,12 +94,12 @@ keys = console
92
94
  keys = generic
93
95
 
94
96
  [logger_root]
95
- level = WARN
97
+ level = WARNING
96
98
  handlers = console
97
99
  qualname =
98
100
 
99
101
  [logger_sqlalchemy]
100
- level = WARN
102
+ level = WARNING
101
103
  handlers =
102
104
  qualname = sqlalchemy.engine
103
105
 
@@ -17,7 +17,7 @@ prepend_sys_path = .
17
17
 
18
18
  # timezone to use when rendering the date within the migration file
19
19
  # as well as the filename.
20
- # If specified, requires the python>=3.9 or backports.zoneinfo library.
20
+ # If specified, requires the python>=3.9 or backports.zoneinfo library and tzdata library.
21
21
  # Any required deps can installed by adding `alembic[tz]` to the pip requirements
22
22
  # string value is passed to ZoneInfo()
23
23
  # leave blank for localtime
@@ -50,7 +50,9 @@ prepend_sys_path = .
50
50
  # version_path_separator = ;
51
51
  # version_path_separator = space
52
52
  # version_path_separator = newline
53
- version_path_separator = os # Use os.pathsep. Default configuration used for new projects.
53
+ #
54
+ # Use os.pathsep. Default configuration used for new projects.
55
+ version_path_separator = os
54
56
 
55
57
  # set to 'true' to search source files recursively
56
58
  # in each "version_locations" directory
@@ -97,12 +99,12 @@ keys = console
97
99
  keys = generic
98
100
 
99
101
  [logger_root]
100
- level = WARN
102
+ level = WARNING
101
103
  handlers = console
102
104
  qualname =
103
105
 
104
106
  [logger_sqlalchemy]
105
- level = WARN
107
+ level = WARNING
106
108
  handlers =
107
109
  qualname = sqlalchemy.engine
108
110
 
alembic/testing/env.py CHANGED
@@ -118,7 +118,7 @@ keys = root,sqlalchemy
118
118
  keys = console
119
119
 
120
120
  [logger_root]
121
- level = WARN
121
+ level = WARNING
122
122
  handlers = console
123
123
  qualname =
124
124
 
@@ -171,7 +171,7 @@ keys = root
171
171
  keys = console
172
172
 
173
173
  [logger_root]
174
- level = WARN
174
+ level = WARNING
175
175
  handlers = console
176
176
  qualname =
177
177
 
@@ -216,7 +216,7 @@ keys = root
216
216
  keys = console
217
217
 
218
218
  [logger_root]
219
- level = WARN
219
+ level = WARNING
220
220
  handlers = console
221
221
  qualname =
222
222
 
@@ -497,7 +497,7 @@ keys = root
497
497
  keys = console
498
498
 
499
499
  [logger_root]
500
- level = WARN
500
+ level = WARNING
501
501
  handlers = console
502
502
  qualname =
503
503
 
alembic/util/compat.py CHANGED
@@ -24,6 +24,7 @@ if True:
24
24
 
25
25
  is_posix = os.name == "posix"
26
26
 
27
+ py313 = sys.version_info >= (3, 13)
27
28
  py311 = sys.version_info >= (3, 11)
28
29
  py310 = sys.version_info >= (3, 10)
29
30
  py39 = sys.version_info >= (3, 9)
@@ -1,4 +1,4 @@
1
- Copyright 2009-2024 Michael Bayer.
1
+ Copyright 2009-2025 Michael Bayer.
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy of
4
4
  this software and associated documentation files (the "Software"), to deal in
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: alembic
3
- Version: 1.13.3
3
+ Version: 1.14.1
4
4
  Summary: A database migration tool for SQLAlchemy.
5
5
  Home-page: https://alembic.sqlalchemy.org
6
6
  Author: Mike Bayer
@@ -28,13 +28,14 @@ Classifier: Topic :: Database :: Front-Ends
28
28
  Requires-Python: >=3.8
29
29
  Description-Content-Type: text/x-rst
30
30
  License-File: LICENSE
31
- Requires-Dist: SQLAlchemy >=1.3.0
31
+ Requires-Dist: SQLAlchemy>=1.3.0
32
32
  Requires-Dist: Mako
33
- Requires-Dist: typing-extensions >=4
34
- Requires-Dist: importlib-metadata ; python_version < "3.9"
35
- Requires-Dist: importlib-resources ; python_version < "3.9"
33
+ Requires-Dist: importlib-metadata; python_version < "3.9"
34
+ Requires-Dist: importlib-resources; python_version < "3.9"
35
+ Requires-Dist: typing-extensions>=4
36
36
  Provides-Extra: tz
37
- Requires-Dist: backports.zoneinfo ; (python_version < "3.9") and extra == 'tz'
37
+ Requires-Dist: backports.zoneinfo; python_version < "3.9" and extra == "tz"
38
+ Requires-Dist: tzdata; extra == "tz"
38
39
 
39
40
  Alembic is a database migrations tool written by the author
40
41
  of `SQLAlchemy <http://www.sqlalchemy.org>`_. A migrations tool
@@ -1,4 +1,4 @@
1
- alembic/__init__.py,sha256=IZLF4dqHa7mXm10zXXAxFsXBP7yE27ZxghGv3BhN-Jw,63
1
+ alembic/__init__.py,sha256=cdCZTWAIlk-sWQ6BPu9FEdV7AUyFJpTFU1bwmzWvqTo,63
2
2
  alembic/__main__.py,sha256=373m7-TBh72JqrSMYviGrxCHZo-cnweM8AGF8A22PmY,78
3
3
  alembic/command.py,sha256=2tkKrIoEgPfXrGgvMRGrUXH4l-7z466DOxd7Q2XOfL8,22169
4
4
  alembic/config.py,sha256=BZ7mwFRk2gq8GFNxxy9qvMUFx43YbDbQTC99OnjqiKY,22216
@@ -10,19 +10,19 @@ alembic/op.py,sha256=flHtcsVqOD-ZgZKK2pv-CJ5Cwh-KJ7puMUNXzishxLw,167
10
10
  alembic/op.pyi,sha256=QZ1ERetxIrpZNTyg48Btn5OJhhpMId-_MLMP36RauOw,50168
11
11
  alembic/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  alembic/autogenerate/__init__.py,sha256=ntmUTXhjLm4_zmqIwyVaECdpPDn6_u1yM9vYk6-553E,543
13
- alembic/autogenerate/api.py,sha256=Bh-37G0PSFeT9WSfEQ-3TZoainXGLL2nsl4okv_xYc0,22173
13
+ alembic/autogenerate/api.py,sha256=L4qkapSJO1Ypymx8HsjLl0vFFt202agwMYsQbIe6ZtI,22219
14
14
  alembic/autogenerate/compare.py,sha256=cdUBH6qsedaJsnToSOu4MfcJaI4bjUJ4VWqtBlqsSr8,44944
15
- alembic/autogenerate/render.py,sha256=YB3C90rq7XDhjTia9GAnK6yfnVVzCROziZrbArmG9SE,35481
15
+ alembic/autogenerate/render.py,sha256=JUjXpAmxhO-WPJGgvs0V_xtEC0Tpv0AngDepVfPIWUc,35482
16
16
  alembic/autogenerate/rewriter.py,sha256=uZWRkTYJoncoEJ5WY1QBRiozjyChqZDJPy4LtcRibjM,7846
17
17
  alembic/ddl/__init__.py,sha256=Df8fy4Vn_abP8B7q3x8gyFwEwnLw6hs2Ljt_bV3EZWE,152
18
18
  alembic/ddl/_autogen.py,sha256=Blv2RrHNyF4cE6znCQXNXG5T9aO-YmiwD4Fz-qfoaWA,9275
19
- alembic/ddl/base.py,sha256=fzGvWyvpSluIOKDQ7Ajc-i_jlDpH4j-JZFOOPxxYS-s,9986
20
- alembic/ddl/impl.py,sha256=VggQMr6aqeVw12Cj4EqJpiETMhbrwIiG22HEJtPcR4s,29067
19
+ alembic/ddl/base.py,sha256=gazpvtk_6XURcsa0libwcaIquL5HwJDP1ZWKJ6P7x0I,9788
20
+ alembic/ddl/impl.py,sha256=7-oxMb7KeycaK96x-kXw4mR6NSE1tmN0UEZIZrPcuhY,30195
21
21
  alembic/ddl/mssql.py,sha256=ydvgBSaftKYjaBaMyqius66Ta4CICQSj79Og3Ed2atY,14219
22
22
  alembic/ddl/mysql.py,sha256=kXOGYmpnL_9WL3ijXNsG4aAwy3m1HWJOoLZSePzmJF0,17316
23
23
  alembic/ddl/oracle.py,sha256=669YlkcZihlXFbnXhH2krdrvDry8q5pcUGfoqkg_R6Y,6243
24
- alembic/ddl/postgresql.py,sha256=GNCnx-N8UsCIstfW49J8ivYcKgRB8KFNPRgNtORC_AM,29883
25
- alembic/ddl/sqlite.py,sha256=wLXhb8bJWRspKQTb-iVfepR4LXYgOuEbUWKX5qwDhIQ,7570
24
+ alembic/ddl/postgresql.py,sha256=OR9ufFDr-uvzIBk38OBsLlfr_PXG9qBSDYIj0-oNnwc,29921
25
+ alembic/ddl/sqlite.py,sha256=yR1ov010h3HIpJvZbCLTkR7HIkKQMfEAGJE7ZnLwmSU,7980
26
26
  alembic/operations/__init__.py,sha256=e0KQSZAgLpTWvyvreB7DWg7RJV_MWSOPVDgCqsd2FzY,318
27
27
  alembic/operations/base.py,sha256=JRaOtPqyqfaPjzGHxuP9VMcO1KsJNmbbLOvwG82qxGA,74474
28
28
  alembic/operations/batch.py,sha256=YqtD4hJ3_RkFxvI7zbmBwxcLEyLHYyWQpsz4l5L85yI,26943
@@ -31,26 +31,26 @@ alembic/operations/schemaobj.py,sha256=Wp-bBe4a8lXPTvIHJttBY0ejtpVR5Jvtb2kI-U2Pz
31
31
  alembic/operations/toimpl.py,sha256=Fx-UKcq6S8pVtsEwPFjTKtEcAVKjfptn-BfpE1k3_ck,7517
32
32
  alembic/runtime/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
33
  alembic/runtime/environment.py,sha256=SkYB_am1h3FSG8IsExAQxGP_7WwzOVigqjlO747Aokc,41497
34
- alembic/runtime/migration.py,sha256=sku7-2_TralZQnNeoDaEFlydTStL-SJechbr9K8AHJs,50093
34
+ alembic/runtime/migration.py,sha256=9GZ_bYZ6yMF7DUD1hgZdmB0YqvcdcNBBfxFaXKHeQoM,49857
35
35
  alembic/script/__init__.py,sha256=lSj06O391Iy5avWAiq8SPs6N8RBgxkSPjP8wpXcNDGg,100
36
36
  alembic/script/base.py,sha256=XLNpdsLnBBSz4ZKMFUArFUdtL1HcjtuUDHNbA-5VlZA,37809
37
37
  alembic/script/revision.py,sha256=NTu-eu5Y78u4NoVXpT0alpD2oL40SGATA2sEMEf1el4,62306
38
38
  alembic/script/write_hooks.py,sha256=NGB6NGgfdf7HK6XNNpSKqUCfzxazj-NRUePgFx7MJSM,5036
39
39
  alembic/templates/async/README,sha256=ISVtAOvqvKk_5ThM5ioJE-lMkvf9IbknFUFVU_vPma4,58
40
- alembic/templates/async/alembic.ini.mako,sha256=7VfUJqH9tEsydKOOmpnGFTsERHWhs7ghORuASnJb_Co,3632
40
+ alembic/templates/async/alembic.ini.mako,sha256=lYN5fP_fIX3FWtTcOy86Xznr6P5r1f0rlkdDhxLhVN4,3658
41
41
  alembic/templates/async/env.py,sha256=zbOCf3Y7w2lg92hxSwmG1MM_7y56i_oRH4AKp0pQBYo,2389
42
42
  alembic/templates/async/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
43
43
  alembic/templates/generic/README,sha256=MVlc9TYmr57RbhXET6QxgyCcwWP7w-vLkEsirENqiIQ,38
44
- alembic/templates/generic/alembic.ini.mako,sha256=5wy1rOdDJjHbeEnieycSaZ9tz6AM6hONYk4RiOVXnmk,3740
44
+ alembic/templates/generic/alembic.ini.mako,sha256=TPnqGqwg9QG8uCvBY5jaz32U2pqVqLK1dG1e8i2yDYM,3766
45
45
  alembic/templates/generic/env.py,sha256=TLRWOVW3Xpt_Tpf8JFzlnoPn_qoUu8UV77Y4o9XD6yI,2103
46
46
  alembic/templates/generic/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
47
47
  alembic/templates/multidb/README,sha256=dWLDhnBgphA4Nzb7sNlMfCS3_06YqVbHhz-9O5JNqyI,606
48
- alembic/templates/multidb/alembic.ini.mako,sha256=oThPQgzkg-NOcbsSXIemi-Lg4nib3G6hDHKdejjtJIM,3834
48
+ alembic/templates/multidb/alembic.ini.mako,sha256=cVrikS0KRB46GVcjSO8xKYm7rqUngqTnd06pCozm1Pw,3860
49
49
  alembic/templates/multidb/env.py,sha256=6zNjnW8mXGUk7erTsAvrfhvqoczJ-gagjVq1Ypg2YIQ,4230
50
50
  alembic/templates/multidb/script.py.mako,sha256=N06nMtNSwHkgl0EBXDyMt8njp9tlOesR583gfq21nbY,1090
51
51
  alembic/testing/__init__.py,sha256=kOxOh5nwmui9d-_CCq9WA4Udwy7ITjm453w74CTLZDo,1159
52
52
  alembic/testing/assertions.py,sha256=ScUb1sVopIl70BirfHUJDvwswC70Q93CiIWwkiZbhHg,5207
53
- alembic/testing/env.py,sha256=zJacVb_z6uLs2U1TtkmnFH9P3_F-3IfYbVv4UEPOvfo,10754
53
+ alembic/testing/env.py,sha256=giHWVLhHkfNWrPEfrAqhpMOLL6FgWoBCVAzBVrVbSSA,10766
54
54
  alembic/testing/fixtures.py,sha256=nBntOynOmVCFc7IYiN3DIQ3TBNTfiGCvL_1-FyCry8o,9462
55
55
  alembic/testing/requirements.py,sha256=dKeAO1l5TwBqXarJN-IPORlCqCJv-41Dj6oXoEikxHQ,5133
56
56
  alembic/testing/schemacompare.py,sha256=N5UqSNCOJetIKC4vKhpYzQEpj08XkdgIoqBmEPQ3tlc,4838
@@ -68,16 +68,16 @@ alembic/testing/suite/test_autogen_identity.py,sha256=kcuqngG7qXAKPJDX4U8sRzPKHE
68
68
  alembic/testing/suite/test_environment.py,sha256=OwD-kpESdLoc4byBrGrXbZHvqtPbzhFCG4W9hJOJXPQ,11877
69
69
  alembic/testing/suite/test_op.py,sha256=2XQCdm_NmnPxHGuGj7hmxMzIhKxXNotUsKdACXzE1mM,1343
70
70
  alembic/util/__init__.py,sha256=KSZ7UT2YzH6CietgUtljVoE3QnGjoFKOi7RL5sgUxrk,1688
71
- alembic/util/compat.py,sha256=RjHdQa1NomU3Zlvgfvza0OMiSRQSLRL3xVl3OdUy2UE,2594
71
+ alembic/util/compat.py,sha256=eoR9ReCTV_l0xGgGlr_OJmVvJecttBYXRKfDhoK8zKU,2630
72
72
  alembic/util/editor.py,sha256=JIz6_BdgV8_oKtnheR6DZoB7qnrHrlRgWjx09AsTsUw,2546
73
73
  alembic/util/exc.py,sha256=KQTru4zcgAmN4IxLMwLFS56XToUewaXB7oOLcPNjPwg,98
74
74
  alembic/util/langhelpers.py,sha256=LpOcovnhMnP45kTt8zNJ4BHpyQrlF40OL6yDXjqKtsE,10026
75
75
  alembic/util/messaging.py,sha256=BxAHiJsYHBPb2m8zv4yaueSRAlVuYXWkRCeN02JXhqw,3250
76
76
  alembic/util/pyfiles.py,sha256=zltVdcwEJJCPS2gHsQvkHkQakuF6wXiZ6zfwHbGNT0g,3489
77
77
  alembic/util/sqla_compat.py,sha256=XMfZaLdbVbJoniNUyI3RUUXu4gCWljjVBbJ7db6vCgc,19526
78
- alembic-1.13.3.dist-info/LICENSE,sha256=zhnnuit3ylhLgqZ5KFbhOOswsxHIlrB2wJpAXuRfvuk,1059
79
- alembic-1.13.3.dist-info/METADATA,sha256=6CGNPkq-FufkoGWO6PUhx64LztmqCUAyhbObbop42yQ,7390
80
- alembic-1.13.3.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
81
- alembic-1.13.3.dist-info/entry_points.txt,sha256=aykM30soxwGN0pB7etLc1q0cHJbL9dy46RnK9VX4LLw,48
82
- alembic-1.13.3.dist-info/top_level.txt,sha256=FwKWd5VsPFC8iQjpu1u9Cn-JnK3-V1RhUCmWqz1cl-s,8
83
- alembic-1.13.3.dist-info/RECORD,,
78
+ alembic-1.14.1.dist-info/LICENSE,sha256=NeqcNBmyYfrxvkSMT0fZJVKBv2s2tf_qVQUiJ9S6VN4,1059
79
+ alembic-1.14.1.dist-info/METADATA,sha256=D5AHibKWuwgPf9ORQhNm0k_iTmpKrkDNF-MboIrflY8,7420
80
+ alembic-1.14.1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
81
+ alembic-1.14.1.dist-info/entry_points.txt,sha256=aykM30soxwGN0pB7etLc1q0cHJbL9dy46RnK9VX4LLw,48
82
+ alembic-1.14.1.dist-info/top_level.txt,sha256=FwKWd5VsPFC8iQjpu1u9Cn-JnK3-V1RhUCmWqz1cl-s,8
83
+ alembic-1.14.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.1.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5