Skip to content

Commit 7f301e0

Browse files
committed
Apply ruff format
1 parent bfe935b commit 7f301e0

File tree

4 files changed

+111
-68
lines changed

4 files changed

+111
-68
lines changed

docs/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,6 @@
2222
"logo-text.html",
2323
# "globaltoc.html",
2424
"localtoc.html",
25-
"searchbox.html"
25+
"searchbox.html",
2626
]
2727
}

setup.py

Lines changed: 25 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,37 +5,33 @@
55
setup(
66
name="sqlalchemy-aurora-data-api",
77
version="0.4.1",
8-
url='https://github.com/chanzuckerberg/sqlalchemy-aurora-data-api',
9-
license='Apache Software License',
10-
author='Andrey Kislyuk',
11-
author_email='[email protected]',
12-
description='An AWS Aurora Serverless Data API dialect for SQLAlchemy',
13-
long_description=open('README.rst').read(),
14-
install_requires=[
15-
'sqlalchemy',
16-
'aurora-data-api >= 0.4.0'
17-
],
18-
extras_require={
19-
},
20-
packages=find_packages(exclude=['test']),
8+
url="https://github.com/chanzuckerberg/sqlalchemy-aurora-data-api",
9+
license="Apache Software License",
10+
author="Andrey Kislyuk",
11+
author_email="[email protected]",
12+
description="An AWS Aurora Serverless Data API dialect for SQLAlchemy",
13+
long_description=open("README.rst").read(),
14+
install_requires=["sqlalchemy", "aurora-data-api >= 0.4.0"],
15+
extras_require={},
16+
packages=find_packages(exclude=["test"]),
2117
entry_points={
22-
'sqlalchemy.dialects': [
23-
'mysql.auroradataapi = sqlalchemy_aurora_data_api:AuroraMySQLDataAPIDialect',
24-
'postgresql.auroradataapi = sqlalchemy_aurora_data_api:AuroraPostgresDataAPIDialect'
18+
"sqlalchemy.dialects": [
19+
"mysql.auroradataapi = sqlalchemy_aurora_data_api:AuroraMySQLDataAPIDialect",
20+
"postgresql.auroradataapi = sqlalchemy_aurora_data_api:AuroraPostgresDataAPIDialect",
2521
]
2622
},
27-
platforms=['MacOS X', 'Posix'],
28-
test_suite='test',
23+
platforms=["MacOS X", "Posix"],
24+
test_suite="test",
2925
classifiers=[
30-
'Intended Audience :: Developers',
31-
'License :: OSI Approved :: Apache Software License',
32-
'Operating System :: MacOS :: MacOS X',
33-
'Operating System :: POSIX',
34-
'Programming Language :: Python',
35-
'Programming Language :: Python :: 3.5',
36-
'Programming Language :: Python :: 3.6',
37-
'Programming Language :: Python :: 3.7',
38-
'Programming Language :: Python :: 3.8',
39-
'Topic :: Software Development :: Libraries :: Python Modules'
40-
]
26+
"Intended Audience :: Developers",
27+
"License :: OSI Approved :: Apache Software License",
28+
"Operating System :: MacOS :: MacOS X",
29+
"Operating System :: POSIX",
30+
"Programming Language :: Python",
31+
"Programming Language :: Python :: 3.5",
32+
"Programming Language :: Python :: 3.6",
33+
"Programming Language :: Python :: 3.7",
34+
"Programming Language :: Python :: 3.8",
35+
"Topic :: Software Development :: Libraries :: Python Modules",
36+
],
4137
)

sqlalchemy_aurora_data_api/__init__.py

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ def ms(value):
5050
def bind_processor(self, dialect):
5151
def process(value):
5252
return value.isoformat() if isinstance(value, self.py_type) else value
53+
5354
return process
5455

5556
def bind_expression(self, value):
@@ -74,6 +75,7 @@ def process(value):
7475
return datetime.datetime.strptime(value, "%Y-%m-%d %H:%M:%S.%f")
7576
return datetime.datetime.strptime(value, "%Y-%m-%d %H:%M:%S")
7677
return value
78+
7779
return process
7880

7981

@@ -84,6 +86,7 @@ class _ADA_DATE(_ADA_DATETIME_MIXIN, DATE):
8486
def bind_processor(self, dialect):
8587
def process(value):
8688
return value.strftime("%Y-%m-%d") if isinstance(value, self.py_type) else value
89+
8790
return process
8891

8992

@@ -94,6 +97,7 @@ class _ADA_TIME(_ADA_DATETIME_MIXIN, TIME):
9497
def bind_processor(self, dialect):
9598
def process(value):
9699
return value.strftime("%H:%M:%S.") + self.ms(value) if isinstance(value, self.py_type) else value
100+
97101
return process
98102

99103

@@ -104,6 +108,7 @@ class _ADA_TIMESTAMP(_ADA_DATETIME_MIXIN, TIMESTAMP):
104108
def bind_processor(self, dialect):
105109
def process(value):
106110
return value.strftime("%Y-%m-%d %H:%M:%S.") + self.ms(value) if isinstance(value, self.py_type) else value
111+
107112
return process
108113

109114

@@ -112,6 +117,7 @@ def bind_processor(self, dialect):
112117
def process(value):
113118
# FIXME: escape strings properly here
114119
return "\v".join(value) if isinstance(value, list) else value
120+
115121
return process
116122

117123
def bind_expression(self, value):
@@ -123,11 +129,14 @@ class AuroraMySQLDataAPIDialect(MySQLDialect):
123129
driver = "aurora_data_api"
124130
default_schema_name = None
125131
supports_native_decimal = True
126-
colspecs = util.update_copy(MySQLDialect.colspecs, {
127-
sqltypes.Date: _ADA_DATE,
128-
sqltypes.Time: _ADA_TIME,
129-
sqltypes.DateTime: _ADA_TIMESTAMP,
130-
})
132+
colspecs = util.update_copy(
133+
MySQLDialect.colspecs,
134+
{
135+
sqltypes.Date: _ADA_DATE,
136+
sqltypes.Time: _ADA_TIME,
137+
sqltypes.DateTime: _ADA_TIMESTAMP,
138+
},
139+
)
131140
supports_statement_cache = True
132141

133142
@classmethod
@@ -145,17 +154,20 @@ class AuroraPostgresDataAPIDialect(PGDialect):
145154
# See https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect
146155
driver = "aurora_data_api"
147156
default_schema_name = None
148-
colspecs = util.update_copy(PGDialect.colspecs, {
149-
sqltypes.JSON: _ADA_SA_JSON,
150-
JSON: _ADA_JSON,
151-
JSONB: _ADA_JSONB,
152-
UUID: _ADA_UUID,
153-
sqltypes.Date: _ADA_DATE,
154-
sqltypes.Time: _ADA_TIME,
155-
sqltypes.DateTime: _ADA_TIMESTAMP,
156-
sqltypes.Enum: _ADA_ENUM,
157-
ARRAY: _ADA_ARRAY
158-
})
157+
colspecs = util.update_copy(
158+
PGDialect.colspecs,
159+
{
160+
sqltypes.JSON: _ADA_SA_JSON,
161+
JSON: _ADA_JSON,
162+
JSONB: _ADA_JSONB,
163+
UUID: _ADA_UUID,
164+
sqltypes.Date: _ADA_DATE,
165+
sqltypes.Time: _ADA_TIME,
166+
sqltypes.DateTime: _ADA_TIMESTAMP,
167+
sqltypes.Enum: _ADA_ENUM,
168+
ARRAY: _ADA_ARRAY,
169+
},
170+
)
159171
supports_sane_multi_rowcount = False
160172
supports_statement_cache = True
161173

@@ -169,5 +181,6 @@ def _extract_error_code(self, exception):
169181

170182
def register_dialects():
171183
from sqlalchemy.dialects import registry
184+
172185
registry.register("mysql.auroradataapi", __name__, AuroraMySQLDataAPIDialect.__name__)
173186
registry.register("postgresql.auroradataapi", __name__, AuroraPostgresDataAPIDialect.__name__)

test/test.py

Lines changed: 56 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,21 @@
66
import enum
77
from uuid import UUID as uuid_type, uuid4
88

9-
from sqlalchemy import (create_engine, Column, Integer, String, Boolean, Float, LargeBinary, Numeric, Date, Time,
10-
DateTime, Text, Enum)
9+
from sqlalchemy import (
10+
create_engine,
11+
Column,
12+
Integer,
13+
String,
14+
Boolean,
15+
Float,
16+
LargeBinary,
17+
Numeric,
18+
Date,
19+
Time,
20+
DateTime,
21+
Text,
22+
Enum,
23+
)
1124
from sqlalchemy.dialects.postgresql import UUID, JSONB, JSON, DATE, TIME, TIMESTAMP, ARRAY
1225
from sqlalchemy.ext.declarative import declarative_base
1326
from sqlalchemy.orm import sessionmaker
@@ -48,7 +61,7 @@
4861
"sequences_optional",
4962
"supports_native_enum",
5063
"supports_native_boolean",
51-
"dbapi_exception_translation_map"
64+
"dbapi_exception_translation_map",
5265
}
5366

5467
dialect_interface_methods = {
@@ -94,7 +107,7 @@
94107
# "reflect_table",
95108
"reset_isolation_level",
96109
"set_isolation_level",
97-
"type_descriptor"
110+
"type_descriptor",
98111
}
99112

100113
BasicBase = declarative_base()
@@ -166,7 +179,7 @@ class TestAuroraDataAPIPostgresDialect(TestAuroraDataAPI):
166179
def setUpClass(cls):
167180
register_dialects()
168181
cls.db_name = os.environ.get("AURORA_DB_NAME", __name__)
169-
cls.engine = create_engine(cls.dialect + ':@/' + cls.db_name)
182+
cls.engine = create_engine(cls.dialect + ":@/" + cls.db_name)
170183

171184
def test_execute(self):
172185
with self.engine.connect() as conn:
@@ -175,26 +188,41 @@ def test_execute(self):
175188

176189
def test_orm(self):
177190
uuid = uuid4()
178-
doc = {'foo': [1, 2, 3]}
191+
doc = {"foo": [1, 2, 3]}
179192
blob = b"0123456789ABCDEF" * 1024
180193
friends = ["Scarlett O'Hara", 'Ada "Hacker" Lovelace']
181194
Base.metadata.create_all(self.engine)
182195
added = datetime.datetime.now().replace(microsecond=123456)
183-
ed_user = User(name='ed', fullname='Ed Jones', nickname='edsnickname', doc=doc, doc2=doc, uuid=str(uuid),
184-
flag=True, birthday=datetime.datetime.fromtimestamp(0), added=added, floated=1.2, nybbled=blob,
185-
friends=friends, num_friends=500, num_laptops=9000, first_date=added, note='note',
186-
socks=Socks.red)
196+
ed_user = User(
197+
name="ed",
198+
fullname="Ed Jones",
199+
nickname="edsnickname",
200+
doc=doc,
201+
doc2=doc,
202+
uuid=str(uuid),
203+
flag=True,
204+
birthday=datetime.datetime.fromtimestamp(0),
205+
added=added,
206+
floated=1.2,
207+
nybbled=blob,
208+
friends=friends,
209+
num_friends=500,
210+
num_laptops=9000,
211+
first_date=added,
212+
note="note",
213+
socks=Socks.red,
214+
)
187215
Session = sessionmaker(bind=self.engine)
188216
session = Session()
189217

190218
session.query(User).delete()
191219
session.commit()
192220

193221
session.add(ed_user)
194-
self.assertEqual(session.query(User).filter_by(name='ed').first().name, "ed")
222+
self.assertEqual(session.query(User).filter_by(name="ed").first().name, "ed")
195223
session.commit()
196-
self.assertGreater(session.query(User).filter(User.name.like('%ed')).count(), 0)
197-
u = session.query(User).filter(User.name.like('%ed')).first()
224+
self.assertGreater(session.query(User).filter(User.name.like("%ed")).count(), 0)
225+
u = session.query(User).filter(User.name.like("%ed")).first()
198226
self.assertEqual(u.doc, doc)
199227
self.assertEqual(u.doc2, doc)
200228
self.assertEqual(u.flag, True)
@@ -207,7 +235,7 @@ def test_orm(self):
207235
self.assertEqual(u.num_friends, 500)
208236
self.assertEqual(u.num_laptops, 9000)
209237
self.assertEqual(u.first_date, added.date())
210-
self.assertEqual(u.note, 'note')
238+
self.assertEqual(u.note, "note")
211239
self.assertEqual(u.socks, Socks.red)
212240
self.assertEqual(u.uuid, str(uuid))
213241
self.assertIsInstance(u.uuid2, uuid_type)
@@ -216,12 +244,12 @@ def test_orm(self):
216244
session.commit()
217245

218246
session2 = Session()
219-
u2 = session2.query(User).filter(User.name.like('%ed')).first()
247+
u2 = session2.query(User).filter(User.name.like("%ed")).first()
220248
self.assertEqual(u2.socks, Socks.green)
221249

222250
@unittest.skipIf(sys.version_info < (3, 7), "Skipping test that requires Python 3.7+")
223251
def test_timestamp_microsecond_padding(self):
224-
ts = '2019-10-31 09:37:17.3186'
252+
ts = "2019-10-31 09:37:17.3186"
225253
processor = _ADA_TIMESTAMP.result_processor(_ADA_TIMESTAMP, None, None)
226254
self.assertEqual(processor(ts), datetime.datetime.fromisoformat(ts.ljust(26, "0")))
227255

@@ -233,7 +261,7 @@ class TestAuroraDataAPIMySQLDialect(TestAuroraDataAPI):
233261
def setUpClass(cls):
234262
register_dialects()
235263
cls.db_name = os.environ.get("AURORA_DB_NAME", __name__)
236-
cls.engine = create_engine(cls.dialect + ':@/' + cls.db_name + "?charset=utf8mb4")
264+
cls.engine = create_engine(cls.dialect + ":@/" + cls.db_name + "?charset=utf8mb4")
237265

238266
def test_execute(self):
239267
with self.engine.connect() as conn:
@@ -245,19 +273,25 @@ def test_orm(self):
245273
birthday = datetime.datetime.fromtimestamp(0).date()
246274
eats_breakfast_at = datetime.time(9, 0, 0, 123)
247275
married_at = datetime.datetime(2020, 2, 20, 2, 20, 2, 200200)
248-
ed_user = BasicUser(name='ed', fullname='Ed Jones', nickname='edsnickname',
249-
birthday=birthday, eats_breakfast_at=eats_breakfast_at, married_at=married_at)
276+
ed_user = BasicUser(
277+
name="ed",
278+
fullname="Ed Jones",
279+
nickname="edsnickname",
280+
birthday=birthday,
281+
eats_breakfast_at=eats_breakfast_at,
282+
married_at=married_at,
283+
)
250284
Session = sessionmaker(bind=self.engine)
251285
session = Session()
252286

253287
session.query(BasicUser).delete()
254288
session.commit()
255289

256290
session.add(ed_user)
257-
self.assertEqual(session.query(BasicUser).filter_by(name='ed').first().name, "ed")
291+
self.assertEqual(session.query(BasicUser).filter_by(name="ed").first().name, "ed")
258292
session.commit()
259-
self.assertGreater(session.query(BasicUser).filter(BasicUser.name.like('%ed')).count(), 0)
260-
u = session.query(BasicUser).filter(BasicUser.name.like('%ed')).first()
293+
self.assertGreater(session.query(BasicUser).filter(BasicUser.name.like("%ed")).count(), 0)
294+
u = session.query(BasicUser).filter(BasicUser.name.like("%ed")).first()
261295
self.assertEqual(u.nickname, "edsnickname")
262296
self.assertEqual(u.birthday, birthday)
263297
self.assertEqual(u.eats_breakfast_at, eats_breakfast_at.replace(microsecond=0))

0 commit comments

Comments
 (0)