From 4b40fec97dc2f5d3055aaa2a3a6b271495f175ee Mon Sep 17 00:00:00 2001 From: Peng Ren Date: Tue, 18 Nov 2025 19:34:47 -0500 Subject: [PATCH] Revert "Add JSON serializer/deserializer" --- pydynamodb/sqlalchemy_dynamodb/pydynamodb.py | 13 ++----------- tests/test_sqlalchemy_dynamodb.py | 15 +++------------ 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/pydynamodb/sqlalchemy_dynamodb/pydynamodb.py b/pydynamodb/sqlalchemy_dynamodb/pydynamodb.py index 395dc7d..faf4157 100644 --- a/pydynamodb/sqlalchemy_dynamodb/pydynamodb.py +++ b/pydynamodb/sqlalchemy_dynamodb/pydynamodb.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- import re from ..util import strtobool -from typing import TYPE_CHECKING, Any, Callable, cast, Optional, Sequence, List +from typing import TYPE_CHECKING, cast, Optional, Sequence, List import pydynamodb from pydynamodb.error import OperationalError, NotSupportedError @@ -566,6 +566,7 @@ def visit_delete(self, delete_stmt, **kw): class DynamoDBTypeCompiler(GenericTypeCompiler): + def visit_FLOAT(self, type_, **kw): return self.visit_REAL(type_, **kw) @@ -622,16 +623,6 @@ class DynamoDBDialect(DefaultDialect): _connect_options = dict() # type: ignore - def __init__( - self, - json_serializer: Optional[Callable[..., Any]] = None, - json_deserializer: Optional[Callable[..., Any]] = None, - **kwargs: Any, - ) -> None: - DefaultDialect.__init__(self, **kwargs) - self._json_serializer = json_serializer - self._json_deserializer = json_deserializer - @classmethod def dbapi(cls): return pydynamodb diff --git a/tests/test_sqlalchemy_dynamodb.py b/tests/test_sqlalchemy_dynamodb.py index 4eafa78..01f9b90 100644 --- a/tests/test_sqlalchemy_dynamodb.py +++ b/tests/test_sqlalchemy_dynamodb.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from sqlalchemy.sql import text, select from sqlalchemy.sql.schema import Column, MetaData, Table -from sqlalchemy import Integer, String, Numeric, JSON +from sqlalchemy import Integer, String, Numeric from sqlalchemy.orm import declarative_base, Session Base = declarative_base() @@ -18,7 +18,6 @@ class _TestCase02(Base): key_sort = Column(Integer, primary_key=True) col_str = Column(String) col_num = Column(Numeric) - col_json = Column(JSON) col_nested = Column() class _User(Base): @@ -110,7 +109,7 @@ def test_nested_data_insert(self, engine): """ INSERT INTO "%s" VALUE { 'key_partition': :pk, 'key_sort': :sk, - 'col_str': :col1, 'col_nested': :col2, 'col_json': :col3 + 'col_str': :col1, 'col_nested': :col2 } """ % TESTCASE02_TABLE @@ -125,14 +124,13 @@ def test_nested_data_insert(self, engine): "sk": 0, "col1": "test case nested 0", "col2": nested_data, - "col3": nested_data, } conn.execute(text(sql_one_row_2_0_), params_2_0_) rows = conn.execute( text( """ - SELECT col_nested, col_json FROM %s WHERE key_partition = :pk + SELECT col_nested FROM %s WHERE key_partition = :pk AND key_sort = :sk """ % TESTCASE02_TABLE @@ -141,7 +139,6 @@ def test_nested_data_insert(self, engine): ).fetchall() assert len(rows) == 1 assert rows[0][0] == nested_data - assert rows[0][1] == nested_data def test_declarative_table_insert(self, engine): engine, conn = engine @@ -289,7 +286,6 @@ def test_nested_data_in_reflect_table(self, engine): Column("key_sort", Integer), Column("col_str", String), Column("col_nested"), - Column("col_json", JSON), ) rows = conn.execute( table.select().where( @@ -303,11 +299,6 @@ def test_nested_data_in_reflect_table(self, engine): "Key2": {"Val2-1", "Val2-2"}, "Key3": "Val3", } - assert rows[0].col_json == { - "Key1": ["Val1-1", 1, {"Subkey1": "Val1-1"}], - "Key2": {"Val2-1", "Val2-2"}, - "Key3": "Val3", - } def test_has_table_1(self, engine): engine, conn = engine