From 44eec23c78601c158f9d61433344bb1ed58f8acc Mon Sep 17 00:00:00 2001 From: "Kim, Hyo-Jung" Date: Mon, 25 Sep 2023 11:45:03 +0900 Subject: [PATCH 1/8] Fixed omission of 'collation' keyword in existing CHAR type --- src/sqlacodegen/generators.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/sqlacodegen/generators.py b/src/sqlacodegen/generators.py index 9ddb11cf..58c5031f 100644 --- a/src/sqlacodegen/generators.py +++ b/src/sqlacodegen/generators.py @@ -37,6 +37,7 @@ Table, Text, UniqueConstraint, + CHAR, ) from sqlalchemy.dialects.postgresql import JSONB from sqlalchemy.engine import Connection, Engine @@ -539,6 +540,14 @@ def render_column_type(self, coltype: object) -> str: ): del kwargs["astext_type"] + if isinstance(coltype, CHAR): + # If the column type is CHAR and it has a non-None collation, + # include the collation argument in the kwargs dictionary + # and remove any corresponding argument from the args list. + if coltype.collation is not None: + kwargs["collation"] = repr(coltype.collation) + args.pop() + if args or kwargs: return render_callable(coltype.__class__.__name__, *args, kwargs=kwargs) else: From 3a8081352e06d89efb5428d0cbdaf1a004e78244 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 04:00:53 +0000 Subject: [PATCH 2/8] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/sqlacodegen/generators.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sqlacodegen/generators.py b/src/sqlacodegen/generators.py index 58c5031f..c5b01172 100644 --- a/src/sqlacodegen/generators.py +++ b/src/sqlacodegen/generators.py @@ -19,6 +19,7 @@ import sqlalchemy from sqlalchemy import ( ARRAY, + CHAR, Boolean, CheckConstraint, Column, @@ -37,7 +38,6 @@ Table, Text, UniqueConstraint, - CHAR, ) from sqlalchemy.dialects.postgresql import JSONB from sqlalchemy.engine import Connection, Engine From bbc07b7b2573c92fa7e5778259181930182c457f Mon Sep 17 00:00:00 2001 From: "Kim, Hyo-Jung" Date: Mon, 25 Sep 2023 13:23:17 +0900 Subject: [PATCH 3/8] add CHAR collation test cases --- tests/test_generator_tables.py | 26 ++++++++++++++++++++++++++ tests/test_generator_tables2.py | 26 ++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/tests/test_generator_tables.py b/tests/test_generator_tables.py index e8b7435c..a005f077 100644 --- a/tests/test_generator_tables.py +++ b/tests/test_generator_tables.py @@ -245,6 +245,32 @@ def test_mysql_column_types(generator: CodeGenerator) -> None: ) +@pytest.mark.parametrize("engine", ["mysql"], indirect=["engine"]) +def test_mysql_char_collation(generator: CodeGenerator) -> None: + Table( + "simple_items", + generator.metadata, + Column("id", mysql.INTEGER), + Column("name", mysql.CHAR(10, collation="utf8mb4_unicode_ci")), + ) + + validate_code( + generator.generate(), + """\ + from sqlalchemy import Column, Integer, MetaData, String, Table, CHAR + + metadata = MetaData() + + + t_simple_items = Table( + 'simple_items', metadata, + Column('id', Integer), + Column('name', CHAR(10, collation='utf8mb4_unicode_ci')) + ) + """, + ) + + def test_constraints(generator: CodeGenerator) -> None: Table( "simple_items", diff --git a/tests/test_generator_tables2.py b/tests/test_generator_tables2.py index 3ea64599..bd54cc69 100644 --- a/tests/test_generator_tables2.py +++ b/tests/test_generator_tables2.py @@ -245,6 +245,32 @@ def test_mysql_column_types(generator: CodeGenerator) -> None: ) +@pytest.mark.parametrize("engine", ["mysql"], indirect=["engine"]) +def test_mysql_char_collation(generator: CodeGenerator) -> None: + Table( + "simple_items", + generator.metadata, + Column("id", mysql.INTEGER), + Column("name", mysql.CHAR(10, collation="utf8mb4_unicode_ci")), + ) + + validate_code( + generator.generate(), + """\ + from sqlalchemy import Column, Integer, MetaData, String, Table, CHAR + + metadata = MetaData() + + + t_simple_items = Table( + 'simple_items', metadata, + Column('id', Integer), + Column('name', CHAR(10, collation='utf8mb4_unicode_ci')) + ) + """, + ) + + def test_constraints(generator: CodeGenerator) -> None: Table( "simple_items", From f4989fe3925c2e0fd7e0c8de1b4a6a80cc26a9ee Mon Sep 17 00:00:00 2001 From: "Kim, Hyo-Jung" Date: Mon, 25 Sep 2023 13:39:45 +0900 Subject: [PATCH 4/8] fix test file --- .hypothesis/unicode_data/13.0.0/charmap.json.gz | Bin 0 -> 20988 bytes tests/test_generator_tables.py | 12 ++++++------ tests/test_generator_tables2.py | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) create mode 100644 .hypothesis/unicode_data/13.0.0/charmap.json.gz diff --git a/.hypothesis/unicode_data/13.0.0/charmap.json.gz b/.hypothesis/unicode_data/13.0.0/charmap.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..e057594ef27d69fc320180b3b463379617b385a5 GIT binary patch literal 20988 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%0AoPQH-PAd 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 literal 0 HcmV?d00001 diff --git a/tests/test_generator_tables.py b/tests/test_generator_tables.py index a005f077..676a94c1 100644 --- a/tests/test_generator_tables.py +++ b/tests/test_generator_tables.py @@ -251,21 +251,21 @@ def test_mysql_char_collation(generator: CodeGenerator) -> None: "simple_items", generator.metadata, Column("id", mysql.INTEGER), - Column("name", mysql.CHAR(10, collation="utf8mb4_unicode_ci")), + Column("name", mysql.CHAR(10, collation="utf8mb3_bin")), ) validate_code( generator.generate(), """\ - from sqlalchemy import Column, Integer, MetaData, String, Table, CHAR - + from sqlalchemy import CHAR, Column, Integer, MetaData, Table + metadata = MetaData() - - + + t_simple_items = Table( 'simple_items', metadata, Column('id', Integer), - Column('name', CHAR(10, collation='utf8mb4_unicode_ci')) + Column('name', CHAR(10, collation='utf8mb3_bin')) ) """, ) diff --git a/tests/test_generator_tables2.py b/tests/test_generator_tables2.py index bd54cc69..9a50c398 100644 --- a/tests/test_generator_tables2.py +++ b/tests/test_generator_tables2.py @@ -19,7 +19,7 @@ ) from sqlalchemy.sql.expression import text from sqlalchemy.sql.sqltypes import NullType -from sqlalchemy.types import INTEGER, NUMERIC, SMALLINT, VARCHAR, Text +from sqlalchemy.types import INTEGER, NUMERIC, SMALLINT, VARCHAR, Text, CHAR from sqlacodegen.generators import CodeGenerator, TablesGenerator @@ -257,11 +257,11 @@ def test_mysql_char_collation(generator: CodeGenerator) -> None: validate_code( generator.generate(), """\ - from sqlalchemy import Column, Integer, MetaData, String, Table, CHAR - + from sqlalchemy import CHAR, Column, Integer, MetaData, Table + metadata = MetaData() - - + + t_simple_items = Table( 'simple_items', metadata, Column('id', Integer), From 1a9ab171a6940275f1d9b12017d33aca9f4d3fe2 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 04:40:05 +0000 Subject: [PATCH 5/8] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- tests/test_generator_tables.py | 6 +++--- tests/test_generator_tables2.py | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/test_generator_tables.py b/tests/test_generator_tables.py index 676a94c1..17823846 100644 --- a/tests/test_generator_tables.py +++ b/tests/test_generator_tables.py @@ -258,10 +258,10 @@ def test_mysql_char_collation(generator: CodeGenerator) -> None: generator.generate(), """\ from sqlalchemy import CHAR, Column, Integer, MetaData, Table - + metadata = MetaData() - - + + t_simple_items = Table( 'simple_items', metadata, Column('id', Integer), diff --git a/tests/test_generator_tables2.py b/tests/test_generator_tables2.py index 9a50c398..6358c619 100644 --- a/tests/test_generator_tables2.py +++ b/tests/test_generator_tables2.py @@ -19,7 +19,7 @@ ) from sqlalchemy.sql.expression import text from sqlalchemy.sql.sqltypes import NullType -from sqlalchemy.types import INTEGER, NUMERIC, SMALLINT, VARCHAR, Text, CHAR +from sqlalchemy.types import INTEGER, NUMERIC, SMALLINT, VARCHAR, Text from sqlacodegen.generators import CodeGenerator, TablesGenerator @@ -258,10 +258,10 @@ def test_mysql_char_collation(generator: CodeGenerator) -> None: generator.generate(), """\ from sqlalchemy import CHAR, Column, Integer, MetaData, Table - + metadata = MetaData() - - + + t_simple_items = Table( 'simple_items', metadata, Column('id', Integer), From 392f5c5bfbebf915d11d2630b78d74ad8bd428ca Mon Sep 17 00:00:00 2001 From: "Kim, Hyo-Jung" Date: Mon, 25 Sep 2023 17:47:53 +0900 Subject: [PATCH 6/8] drop hypothesis --- .hypothesis/unicode_data/13.0.0/charmap.json.gz | Bin 20988 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .hypothesis/unicode_data/13.0.0/charmap.json.gz diff --git a/.hypothesis/unicode_data/13.0.0/charmap.json.gz b/.hypothesis/unicode_data/13.0.0/charmap.json.gz deleted file mode 100644 index e057594ef27d69fc320180b3b463379617b385a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20988 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%0AoPQH-PAd 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 From 3aa604cceb83015cf970b2a075f75524c154378c Mon Sep 17 00:00:00 2001 From: "Kim, Hyo-Jung" Date: Wed, 27 Sep 2023 17:07:26 +0900 Subject: [PATCH 7/8] Fixes #285 drop duplicate imports --- src/sqlacodegen/generators.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/sqlacodegen/generators.py b/src/sqlacodegen/generators.py index 58c5031f..37c368b7 100644 --- a/src/sqlacodegen/generators.py +++ b/src/sqlacodegen/generators.py @@ -293,9 +293,15 @@ def group_imports(self) -> list[list[str]]: future_imports: list[str] = [] stdlib_imports: list[str] = [] thirdparty_imports: list[str] = [] + duplicate_imports = set() for package in sorted(self.imports): - imports = ", ".join(sorted(self.imports[package])) + imports = sorted(self.imports[package]) + unique_imports = [ + import_ for import_ in imports if import_ not in duplicate_imports + ] + duplicate_imports.update(imports) + imports_str = ", ".join(unique_imports) collection = thirdparty_imports if package == "__future__": collection = future_imports @@ -305,7 +311,7 @@ def group_imports(self) -> list[list[str]]: if "site-packages" not in (sys.modules[package].__file__ or ""): collection = stdlib_imports - collection.append(f"from {package} import {imports}") + collection.append(f"from {package} import {imports_str}") for module in sorted(self.module_imports): thirdparty_imports.append(f"import {module}") From ac1bdb048304d14c33a105ebbadcb73fba7fd437 Mon Sep 17 00:00:00 2001 From: "Kim, Hyo-Jung" Date: Wed, 27 Sep 2023 17:10:05 +0900 Subject: [PATCH 8/8] fire previous Fixed codes --- src/sqlacodegen/generators.py | 9 --------- tests/test_generator_tables.py | 26 -------------------------- tests/test_generator_tables2.py | 26 -------------------------- 3 files changed, 61 deletions(-) diff --git a/src/sqlacodegen/generators.py b/src/sqlacodegen/generators.py index 661bda76..2d838cae 100644 --- a/src/sqlacodegen/generators.py +++ b/src/sqlacodegen/generators.py @@ -19,7 +19,6 @@ import sqlalchemy from sqlalchemy import ( ARRAY, - CHAR, Boolean, CheckConstraint, Column, @@ -546,14 +545,6 @@ def render_column_type(self, coltype: object) -> str: ): del kwargs["astext_type"] - if isinstance(coltype, CHAR): - # If the column type is CHAR and it has a non-None collation, - # include the collation argument in the kwargs dictionary - # and remove any corresponding argument from the args list. - if coltype.collation is not None: - kwargs["collation"] = repr(coltype.collation) - args.pop() - if args or kwargs: return render_callable(coltype.__class__.__name__, *args, kwargs=kwargs) else: diff --git a/tests/test_generator_tables.py b/tests/test_generator_tables.py index 17823846..e8b7435c 100644 --- a/tests/test_generator_tables.py +++ b/tests/test_generator_tables.py @@ -245,32 +245,6 @@ def test_mysql_column_types(generator: CodeGenerator) -> None: ) -@pytest.mark.parametrize("engine", ["mysql"], indirect=["engine"]) -def test_mysql_char_collation(generator: CodeGenerator) -> None: - Table( - "simple_items", - generator.metadata, - Column("id", mysql.INTEGER), - Column("name", mysql.CHAR(10, collation="utf8mb3_bin")), - ) - - validate_code( - generator.generate(), - """\ - from sqlalchemy import CHAR, Column, Integer, MetaData, Table - - metadata = MetaData() - - - t_simple_items = Table( - 'simple_items', metadata, - Column('id', Integer), - Column('name', CHAR(10, collation='utf8mb3_bin')) - ) - """, - ) - - def test_constraints(generator: CodeGenerator) -> None: Table( "simple_items", diff --git a/tests/test_generator_tables2.py b/tests/test_generator_tables2.py index 6358c619..3ea64599 100644 --- a/tests/test_generator_tables2.py +++ b/tests/test_generator_tables2.py @@ -245,32 +245,6 @@ def test_mysql_column_types(generator: CodeGenerator) -> None: ) -@pytest.mark.parametrize("engine", ["mysql"], indirect=["engine"]) -def test_mysql_char_collation(generator: CodeGenerator) -> None: - Table( - "simple_items", - generator.metadata, - Column("id", mysql.INTEGER), - Column("name", mysql.CHAR(10, collation="utf8mb4_unicode_ci")), - ) - - validate_code( - generator.generate(), - """\ - from sqlalchemy import CHAR, Column, Integer, MetaData, Table - - metadata = MetaData() - - - t_simple_items = Table( - 'simple_items', metadata, - Column('id', Integer), - Column('name', CHAR(10, collation='utf8mb4_unicode_ci')) - ) - """, - ) - - def test_constraints(generator: CodeGenerator) -> None: Table( "simple_items",