diff --git a/database/base.py b/database/base.py index a9aa736bb..14635f436 100644 --- a/database/base.py +++ b/database/base.py @@ -2,8 +2,7 @@ from sqlalchemy import Column, types from sqlalchemy.dialects.postgresql import UUID -from sqlalchemy.ext.declarative import declarative_base -from sqlalchemy.orm import Session +from sqlalchemy.orm import Session, declarative_base from helpers.clock import get_utc_now diff --git a/database/engine.py b/database/engine.py index 69a6cb840..0f0bef6cf 100644 --- a/database/engine.py +++ b/database/engine.py @@ -54,7 +54,7 @@ def create_session(self): timeseries_engine = self.timeseries_engine class RoutingSession(Session): - def get_bind(self, mapper=None, clause=None): + def get_bind(self, mapper=None, clause=None, **kwargs): if mapper is not None and issubclass( mapper.class_, TimeseriesBaseModel ): @@ -78,12 +78,12 @@ def get_bind(self, mapper=None, clause=None): database_url=get_config( "services", "database_url", - default="postgres://postgres:@postgres:5432/postgres", + default="postgresql://postgres:@postgres:5432/postgres", ), timeseries_database_url=get_config( "services", "timeseries_database_url", - default="postgres://postgres:@timescale:5432/postgres", + default="postgresql://postgres:@timescale:5432/postgres", ), ) diff --git a/docker/test_codecov_config.yml b/docker/test_codecov_config.yml index 446749d74..2a9b03ded 100644 --- a/docker/test_codecov_config.yml +++ b/docker/test_codecov_config.yml @@ -7,8 +7,8 @@ setup: enabled: true services: - database_url: postgres://postgres:password@postgres:5432/postgres - timeseries_database_url: postgres://postgres:password@timescale:5432/postgres + database_url: postgresql://postgres:password@postgres:5432/postgres + timeseries_database_url: postgresql://postgres:password@timescale:5432/postgres redis_url: redis://redis:6379 minio: hash_key: testixik8qdauiab1yiffydimvi72ekq # never change this diff --git a/pyproject.toml b/pyproject.toml index f99af750c..1adaa32f7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,8 +39,8 @@ dependencies = [ "requests>=2.32.0", "sentry-sdk>=2.13.0", "shared", - "sqlalchemy==1.3.*", - "sqlparse==0.5.0", + "sqlalchemy<2", + "sqlparse>=0.5.0", "statsd>=3.3.0", "stripe>=11.4.1", "test-results-parser", diff --git a/ta_storage/pg.py b/ta_storage/pg.py index 04efeec1a..e5fa9c177 100644 --- a/ta_storage/pg.py +++ b/ta_storage/pg.py @@ -37,14 +37,15 @@ def get_repo_flag_ids(db_session: Session, repoid: int, flags: list[str]) -> set if not flags: return set() - return set( - db_session.query(RepositoryFlag.id_) + return { + flag.id_ + for flag in db_session.query(RepositoryFlag.id_) .filter( RepositoryFlag.repository_id == repoid, RepositoryFlag.flag_name.in_(flags), ) .all() - ) + } def modify_structures( diff --git a/tasks/test_results_processor.py b/tasks/test_results_processor.py index 896a0b2db..5452cba51 100644 --- a/tasks/test_results_processor.py +++ b/tasks/test_results_processor.py @@ -44,14 +44,15 @@ def get_repo_flag_ids(db_session: Session, repoid: int, flags: list[str]) -> set if not flags: return set() - return set( - db_session.query(RepositoryFlag.id_) + return { + flag.id_ + for flag in db_session.query(RepositoryFlag.id_) .filter( RepositoryFlag.repository_id == repoid, RepositoryFlag.flag_name.in_(flags), ) .all() - ) + } def create_daily_totals( diff --git a/uv.lock b/uv.lock index 3f652f367..43e920557 100644 --- a/uv.lock +++ b/uv.lock @@ -682,6 +682,30 @@ grpc = [ { name = "grpcio" }, ] +[[package]] +name = "greenlet" +version = "3.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2f/ff/df5fede753cc10f6a5be0931204ea30c35fa2f2ea7a35b25bdaf4fe40e46/greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467", size = 186022 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f3/57/0db4940cd7bb461365ca8d6fd53e68254c9dbbcc2b452e69d0d41f10a85e/greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1", size = 272990 }, + { url = "https://files.pythonhosted.org/packages/1c/ec/423d113c9f74e5e402e175b157203e9102feeb7088cee844d735b28ef963/greenlet-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:935e943ec47c4afab8965954bf49bfa639c05d4ccf9ef6e924188f762145c0ff", size = 649175 }, + { url = "https://files.pythonhosted.org/packages/a9/46/ddbd2db9ff209186b7b7c621d1432e2f21714adc988703dbdd0e65155c77/greenlet-3.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:667a9706c970cb552ede35aee17339a18e8f2a87a51fba2ed39ceeeb1004798a", size = 663425 }, + { url = "https://files.pythonhosted.org/packages/bc/f9/9c82d6b2b04aa37e38e74f0c429aece5eeb02bab6e3b98e7db89b23d94c6/greenlet-3.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8a678974d1f3aa55f6cc34dc480169d58f2e6d8958895d68845fa4ab566509e", size = 657736 }, + { url = "https://files.pythonhosted.org/packages/d9/42/b87bc2a81e3a62c3de2b0d550bf91a86939442b7ff85abb94eec3fc0e6aa/greenlet-3.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efc0f674aa41b92da8c49e0346318c6075d734994c3c4e4430b1c3f853e498e4", size = 660347 }, + { url = "https://files.pythonhosted.org/packages/37/fa/71599c3fd06336cdc3eac52e6871cfebab4d9d70674a9a9e7a482c318e99/greenlet-3.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0153404a4bb921f0ff1abeb5ce8a5131da56b953eda6e14b88dc6bbc04d2049e", size = 615583 }, + { url = "https://files.pythonhosted.org/packages/4e/96/e9ef85de031703ee7a4483489b40cf307f93c1824a02e903106f2ea315fe/greenlet-3.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:275f72decf9932639c1c6dd1013a1bc266438eb32710016a1c742df5da6e60a1", size = 1133039 }, + { url = "https://files.pythonhosted.org/packages/87/76/b2b6362accd69f2d1889db61a18c94bc743e961e3cab344c2effaa4b4a25/greenlet-3.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4aab7f6381f38a4b42f269057aee279ab0fc7bf2e929e3d4abfae97b682a12c", size = 1160716 }, + { url = "https://files.pythonhosted.org/packages/1f/1b/54336d876186920e185066d8c3024ad55f21d7cc3683c856127ddb7b13ce/greenlet-3.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:b42703b1cf69f2aa1df7d1030b9d77d3e584a70755674d60e710f0af570f3761", size = 299490 }, + { url = "https://files.pythonhosted.org/packages/5f/17/bea55bf36990e1638a2af5ba10c1640273ef20f627962cf97107f1e5d637/greenlet-3.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1695e76146579f8c06c1509c7ce4dfe0706f49c6831a817ac04eebb2fd02011", size = 643731 }, + { url = "https://files.pythonhosted.org/packages/78/d2/aa3d2157f9ab742a08e0fd8f77d4699f37c22adfbfeb0c610a186b5f75e0/greenlet-3.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7876452af029456b3f3549b696bb36a06db7c90747740c5302f74a9e9fa14b13", size = 649304 }, + { url = "https://files.pythonhosted.org/packages/f1/8e/d0aeffe69e53ccff5a28fa86f07ad1d2d2d6537a9506229431a2a02e2f15/greenlet-3.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ead44c85f8ab905852d3de8d86f6f8baf77109f9da589cb4fa142bd3b57b475", size = 646537 }, + { url = "https://files.pythonhosted.org/packages/05/79/e15408220bbb989469c8871062c97c6c9136770657ba779711b90870d867/greenlet-3.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8320f64b777d00dd7ccdade271eaf0cad6636343293a25074cc5566160e4de7b", size = 642506 }, + { url = "https://files.pythonhosted.org/packages/18/87/470e01a940307796f1d25f8167b551a968540fbe0551c0ebb853cb527dd6/greenlet-3.1.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6510bf84a6b643dabba74d3049ead221257603a253d0a9873f55f6a59a65f822", size = 602753 }, + { url = "https://files.pythonhosted.org/packages/e2/72/576815ba674eddc3c25028238f74d7b8068902b3968cbe456771b166455e/greenlet-3.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:04b013dc07c96f83134b1e99888e7a79979f1a247e2a9f59697fa14b5862ed01", size = 1122731 }, + { url = "https://files.pythonhosted.org/packages/ac/38/08cc303ddddc4b3d7c628c3039a61a3aae36c241ed01393d00c2fd663473/greenlet-3.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:411f015496fec93c1c8cd4e5238da364e1da7a124bcb293f085bf2860c32c6f6", size = 1142112 }, +] + [[package]] name = "grpc-google-iam-v1" version = "0.14.0" @@ -1701,7 +1725,7 @@ wheels = [ [[package]] name = "shared" version = "0.1.0" -source = { git = "https://github.com/codecov/shared?rev=284b92c74f0bc7ca5c4f6f139f3b26fe64fe9c1a#284b92c74f0bc7ca5c4f6f139f3b26fe64fe9c1a" } +source = { git = "https://github.com/codecov/shared?rev=e30c1c7e3ff9c4527986d5bb67ae628dc1a18abb#e30c1c7e3ff9c4527986d5bb67ae628dc1a18abb" } dependencies = [ { name = "amplitude-analytics" }, { name = "boto3" }, @@ -1757,9 +1781,12 @@ wheels = [ [[package]] name = "sqlalchemy" -version = "1.3.24" +version = "1.4.54" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c5/ab/81bef2f960abf3cdaf32fbf1994f0c6f5e6a5f1667b5713ed6ebf162b6a2/SQLAlchemy-1.3.24.tar.gz", hash = "sha256:ebbb777cbf9312359b897bf81ba00dae0f5cb69fba2a18265dcc18a6f5ef7519", size = 6353598 } +dependencies = [ + { name = "greenlet", marker = "platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ce/af/20290b55d469e873cba9d41c0206ab5461ff49d759989b3fe65010f9d265/sqlalchemy-1.4.54.tar.gz", hash = "sha256:4470fbed088c35dc20b78a39aaf4ae54fe81790c783b3264872a0224f437c31a", size = 8470350 } [[package]] name = "sqlalchemy-utils" @@ -2040,9 +2067,9 @@ requires-dist = [ { name = "regex", specifier = ">=2023.12.25" }, { name = "requests", specifier = ">=2.32.0" }, { name = "sentry-sdk", specifier = ">=2.13.0" }, - { name = "shared", git = "https://github.com/codecov/shared?rev=284b92c74f0bc7ca5c4f6f139f3b26fe64fe9c1a" }, - { name = "sqlalchemy", specifier = "==1.3.*" }, - { name = "sqlparse", specifier = "==0.5.0" }, + { name = "shared", git = "https://github.com/codecov/shared?rev=e30c1c7e3ff9c4527986d5bb67ae628dc1a18abb" }, + { name = "sqlalchemy", specifier = "<2" }, + { name = "sqlparse", specifier = ">=0.5.0" }, { name = "statsd", specifier = ">=3.3.0" }, { name = "stripe", specifier = ">=11.4.1" }, { name = "test-results-parser", git = "https://github.com/codecov/test-results-parser?rev=190bbc8a911099749928e13d5fe57f6027ca1e74" },