From 2f9d9576374c231aa0f9c50c0b7b4cfe1d6760ad Mon Sep 17 00:00:00 2001 From: Alsia Plybeah Date: Tue, 25 Jun 2024 13:05:34 -0400 Subject: [PATCH] update pyproject; cli and settings to create working connection --- analytics/Makefile | 2 -- analytics/poetry.lock | 25 ++++++++++++++++++++++++- analytics/pyproject.toml | 1 + analytics/settings.toml | 2 +- analytics/src/analytics/cli.py | 10 ++++------ 5 files changed, 30 insertions(+), 10 deletions(-) diff --git a/analytics/Makefile b/analytics/Makefile index b819d043e..7084dc535 100644 --- a/analytics/Makefile +++ b/analytics/Makefile @@ -152,8 +152,6 @@ sprint-db-data-import: @echo "=> Importing project data to the database" @echo "=====================================================" $(POETRY) analytics export db_export \ - --owner $(ORG) \ - --project $(SPRINT_PROJECT) \ --sprint-file $(SPRINT_FILE) \ --issue-file $(ISSUE_FILE) diff --git a/analytics/poetry.lock b/analytics/poetry.lock index d099cf86e..3029d81fe 100644 --- a/analytics/poetry.lock +++ b/analytics/poetry.lock @@ -1935,6 +1935,29 @@ files = [ [package.extras] test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] +[[package]] +name = "psycopg" +version = "3.1.19" +description = "PostgreSQL database adapter for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "psycopg-3.1.19-py3-none-any.whl", hash = "sha256:dca5e5521c859f6606686432ae1c94e8766d29cc91f2ee595378c510cc5b0731"}, + {file = "psycopg-3.1.19.tar.gz", hash = "sha256:92d7b78ad82426cdcf1a0440678209faa890c6e1721361c2f8901f0dccd62961"}, +] + +[package.dependencies] +typing-extensions = ">=4.1" +tzdata = {version = "*", markers = "sys_platform == \"win32\""} + +[package.extras] +binary = ["psycopg-binary (==3.1.19)"] +c = ["psycopg-c (==3.1.19)"] +dev = ["black (>=24.1.0)", "codespell (>=2.2)", "dnspython (>=2.1)", "flake8 (>=4.0)", "mypy (>=1.4.1)", "types-setuptools (>=57.4)", "wheel (>=0.37)"] +docs = ["Sphinx (>=5.0)", "furo (==2022.6.21)", "sphinx-autobuild (>=2021.3.14)", "sphinx-autodoc-typehints (>=1.12)"] +pool = ["psycopg-pool"] +test = ["anyio (>=3.6.2,<4.0)", "mypy (>=1.4.1)", "pproxy (>=2.7)", "pytest (>=6.2.5)", "pytest-cov (>=3.0)", "pytest-randomly (>=3.5)"] + [[package]] name = "ptyprocess" version = "0.7.0" @@ -3160,4 +3183,4 @@ test = ["websockets"] [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "f7d115d7c9e403d9501ce979f30334c74bb1527f3bc95b70583c03f7bcf9cfdd" +content-hash = "5cfdff4542a0784685c9464acce097c7fb579ddea7bfe49946b62c7c512144ee" diff --git a/analytics/pyproject.toml b/analytics/pyproject.toml index bf9fdc026..0972263d4 100644 --- a/analytics/pyproject.toml +++ b/analytics/pyproject.toml @@ -21,6 +21,7 @@ python = "^3.11" slack-sdk = "^3.23.0" typer = { extras = ["all"], version = "^0.9.0" } sqlalchemy = "^2.0.30" +psycopg = ">=3.0.7" [tool.poetry.group.dev.dependencies] black = "^23.7.0" diff --git a/analytics/settings.toml b/analytics/settings.toml index b292763e9..7ff7221cc 100644 --- a/analytics/settings.toml +++ b/analytics/settings.toml @@ -1,4 +1,4 @@ POSTGRES_NAME = "app" -POSTGRES_HOST = "0.0.0.0" +POSTGRES_HOST = "grants-analytics-db" POSTGRES_USER = "app" POSTGRES_PORT = 5432 \ No newline at end of file diff --git a/analytics/src/analytics/cli.py b/analytics/src/analytics/cli.py index 3867c67e3..ceedd4161 100644 --- a/analytics/src/analytics/cli.py +++ b/analytics/src/analytics/cli.py @@ -151,24 +151,22 @@ def test_connection() -> None: @export_app.command(name="db_export") def export_json_to_database( - # dataset: BaseDataset, # got RuntimeError: Type not yet supported with this defined here sprint_file: Annotated[str, SPRINT_FILE_ARG], issue_file: Annotated[str, ISSUE_FILE_ARG], ) -> None: """Export JSON data to the database.""" # Get the database engine and establish a connection engine = db.get_db() - connection = engine.connect() # get data and load from JSON - task_data = DeliverableTasks.load_from_json_files( + deliverable_data = DeliverableTasks.load_from_json_files( sprint_file=sprint_file, issue_file=issue_file, ) - BaseDataset.to_sql( - output_table=task_data, - engine=connection, + deliverable_data.to_sql( + output_table="github_project_data", + engine=engine, replace_table=True, ) # replace_table=True is the default