From 277d8b6631d4f77c5bd78864f7bbd29a06ae9ca1 Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Thu, 3 Aug 2023 08:08:32 -0600 Subject: [PATCH 01/24] add sqlalchemy --- poetry.lock | 195 ++++++++++++++++++++++++++++++++++++++----------- pyproject.toml | 1 + 2 files changed, 154 insertions(+), 42 deletions(-) diff --git a/poetry.lock b/poetry.lock index 407f7dd1..9b4d0bb6 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,10 +1,9 @@ -# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. [[package]] name = "attrs" version = "23.1.0" description = "Classes Without Boilerplate" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -23,7 +22,6 @@ tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pyte name = "blinker" version = "1.6.2" description = "Fast, simple object-to-object and broadcast signaling" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -35,7 +33,6 @@ files = [ name = "boto3" version = "1.26.163" description = "The AWS SDK for Python" -category = "main" optional = false python-versions = ">= 3.7" files = [ @@ -55,7 +52,6 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] name = "botocore" version = "1.29.163" description = "Low-level, data-driven core of boto 3." -category = "main" optional = false python-versions = ">= 3.7" files = [ @@ -75,7 +71,6 @@ crt = ["awscrt (==0.16.9)"] name = "certifi" version = "2023.5.7" description = "Python package for providing Mozilla's CA Bundle." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -87,7 +82,6 @@ files = [ name = "charset-normalizer" version = "3.1.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -172,7 +166,6 @@ files = [ name = "click" version = "8.1.6" description = "Composable command line interface toolkit" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -187,7 +180,6 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -199,7 +191,6 @@ files = [ name = "coverage" version = "7.2.7" description = "Code coverage measurement for Python" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -275,7 +266,6 @@ toml = ["tomli"] name = "deepdiff" version = "6.3.0" description = "Deep Difference and Search of any Python object/data. Recreate objects by adding adding deltas to each other." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -294,7 +284,6 @@ optimize = ["orjson"] name = "exceptiongroup" version = "1.1.1" description = "Backport of PEP 654 (exception groups)" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -309,7 +298,6 @@ test = ["pytest (>=6)"] name = "flask" version = "2.3.2" description = "A simple framework for building complex web applications." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -329,11 +317,83 @@ Werkzeug = ">=2.3.3" async = ["asgiref (>=3.2)"] dotenv = ["python-dotenv"] +[[package]] +name = "greenlet" +version = "2.0.2" +description = "Lightweight in-process concurrent programming" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" +files = [ + {file = "greenlet-2.0.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:bdfea8c661e80d3c1c99ad7c3ff74e6e87184895bbaca6ee8cc61209f8b9b85d"}, + {file = "greenlet-2.0.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:9d14b83fab60d5e8abe587d51c75b252bcc21683f24699ada8fb275d7712f5a9"}, + {file = "greenlet-2.0.2-cp27-cp27m-win32.whl", hash = "sha256:6c3acb79b0bfd4fe733dff8bc62695283b57949ebcca05ae5c129eb606ff2d74"}, + {file = "greenlet-2.0.2-cp27-cp27m-win_amd64.whl", hash = "sha256:283737e0da3f08bd637b5ad058507e578dd462db259f7f6e4c5c365ba4ee9343"}, + {file = "greenlet-2.0.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d27ec7509b9c18b6d73f2f5ede2622441de812e7b1a80bbd446cb0633bd3d5ae"}, + {file = "greenlet-2.0.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:30bcf80dda7f15ac77ba5af2b961bdd9dbc77fd4ac6105cee85b0d0a5fcf74df"}, + {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26fbfce90728d82bc9e6c38ea4d038cba20b7faf8a0ca53a9c07b67318d46088"}, + {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9190f09060ea4debddd24665d6804b995a9c122ef5917ab26e1566dcc712ceeb"}, + {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d75209eed723105f9596807495d58d10b3470fa6732dd6756595e89925ce2470"}, + {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3a51c9751078733d88e013587b108f1b7a1fb106d402fb390740f002b6f6551a"}, + {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:76ae285c8104046b3a7f06b42f29c7b73f77683df18c49ab5af7983994c2dd91"}, + {file = "greenlet-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:2d4686f195e32d36b4d7cf2d166857dbd0ee9f3d20ae349b6bf8afc8485b3645"}, + {file = "greenlet-2.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c4302695ad8027363e96311df24ee28978162cdcdd2006476c43970b384a244c"}, + {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c48f54ef8e05f04d6eff74b8233f6063cb1ed960243eacc474ee73a2ea8573ca"}, + {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1846f1b999e78e13837c93c778dcfc3365902cfb8d1bdb7dd73ead37059f0d0"}, + {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a06ad5312349fec0ab944664b01d26f8d1f05009566339ac6f63f56589bc1a2"}, + {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:eff4eb9b7eb3e4d0cae3d28c283dc16d9bed6b193c2e1ace3ed86ce48ea8df19"}, + {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5454276c07d27a740c5892f4907c86327b632127dd9abec42ee62e12427ff7e3"}, + {file = "greenlet-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:7cafd1208fdbe93b67c7086876f061f660cfddc44f404279c1585bbf3cdc64c5"}, + {file = "greenlet-2.0.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:910841381caba4f744a44bf81bfd573c94e10b3045ee00de0cbf436fe50673a6"}, + {file = "greenlet-2.0.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:18a7f18b82b52ee85322d7a7874e676f34ab319b9f8cce5de06067384aa8ff43"}, + {file = "greenlet-2.0.2-cp35-cp35m-win32.whl", hash = "sha256:03a8f4f3430c3b3ff8d10a2a86028c660355ab637cee9333d63d66b56f09d52a"}, + {file = "greenlet-2.0.2-cp35-cp35m-win_amd64.whl", hash = "sha256:4b58adb399c4d61d912c4c331984d60eb66565175cdf4a34792cd9600f21b394"}, + {file = "greenlet-2.0.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:703f18f3fda276b9a916f0934d2fb6d989bf0b4fb5a64825260eb9bfd52d78f0"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:32e5b64b148966d9cccc2c8d35a671409e45f195864560829f395a54226408d3"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dd11f291565a81d71dab10b7033395b7a3a5456e637cf997a6f33ebdf06f8db"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0f72c9ddb8cd28532185f54cc1453f2c16fb417a08b53a855c4e6a418edd099"}, + {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd021c754b162c0fb55ad5d6b9d960db667faad0fa2ff25bb6e1301b0b6e6a75"}, + {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:3c9b12575734155d0c09d6c3e10dbd81665d5c18e1a7c6597df72fd05990c8cf"}, + {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b9ec052b06a0524f0e35bd8790686a1da006bd911dd1ef7d50b77bfbad74e292"}, + {file = "greenlet-2.0.2-cp36-cp36m-win32.whl", hash = "sha256:dbfcfc0218093a19c252ca8eb9aee3d29cfdcb586df21049b9d777fd32c14fd9"}, + {file = "greenlet-2.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:9f35ec95538f50292f6d8f2c9c9f8a3c6540bbfec21c9e5b4b751e0a7c20864f"}, + {file = "greenlet-2.0.2-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:d5508f0b173e6aa47273bdc0a0b5ba055b59662ba7c7ee5119528f466585526b"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:f82d4d717d8ef19188687aa32b8363e96062911e63ba22a0cff7802a8e58e5f1"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9c59a2120b55788e800d82dfa99b9e156ff8f2227f07c5e3012a45a399620b7"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2780572ec463d44c1d3ae850239508dbeb9fed38e294c68d19a24d925d9223ca"}, + {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:937e9020b514ceedb9c830c55d5c9872abc90f4b5862f89c0887033ae33c6f73"}, + {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:36abbf031e1c0f79dd5d596bfaf8e921c41df2bdf54ee1eed921ce1f52999a86"}, + {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:18e98fb3de7dba1c0a852731c3070cf022d14f0d68b4c87a19cc1016f3bb8b33"}, + {file = "greenlet-2.0.2-cp37-cp37m-win32.whl", hash = "sha256:3f6ea9bd35eb450837a3d80e77b517ea5bc56b4647f5502cd28de13675ee12f7"}, + {file = "greenlet-2.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:7492e2b7bd7c9b9916388d9df23fa49d9b88ac0640db0a5b4ecc2b653bf451e3"}, + {file = "greenlet-2.0.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:b864ba53912b6c3ab6bcb2beb19f19edd01a6bfcbdfe1f37ddd1778abfe75a30"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:ba2956617f1c42598a308a84c6cf021a90ff3862eddafd20c3333d50f0edb45b"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc3a569657468b6f3fb60587e48356fe512c1754ca05a564f11366ac9e306526"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8eab883b3b2a38cc1e050819ef06a7e6344d4a990d24d45bc6f2cf959045a45b"}, + {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acd2162a36d3de67ee896c43effcd5ee3de247eb00354db411feb025aa319857"}, + {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0bf60faf0bc2468089bdc5edd10555bab6e85152191df713e2ab1fcc86382b5a"}, + {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b0ef99cdbe2b682b9ccbb964743a6aca37905fda5e0452e5ee239b1654d37f2a"}, + {file = "greenlet-2.0.2-cp38-cp38-win32.whl", hash = "sha256:b80f600eddddce72320dbbc8e3784d16bd3fb7b517e82476d8da921f27d4b249"}, + {file = "greenlet-2.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:4d2e11331fc0c02b6e84b0d28ece3a36e0548ee1a1ce9ddde03752d9b79bba40"}, + {file = "greenlet-2.0.2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:88d9ab96491d38a5ab7c56dd7a3cc37d83336ecc564e4e8816dbed12e5aaefc8"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:561091a7be172ab497a3527602d467e2b3fbe75f9e783d8b8ce403fa414f71a6"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:971ce5e14dc5e73715755d0ca2975ac88cfdaefcaab078a284fea6cfabf866df"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be4ed120b52ae4d974aa40215fcdfde9194d63541c7ded40ee12eb4dda57b76b"}, + {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94c817e84245513926588caf1152e3b559ff794d505555211ca041f032abbb6b"}, + {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1a819eef4b0e0b96bb0d98d797bef17dc1b4a10e8d7446be32d1da33e095dbb8"}, + {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7efde645ca1cc441d6dc4b48c0f7101e8d86b54c8530141b09fd31cef5149ec9"}, + {file = "greenlet-2.0.2-cp39-cp39-win32.whl", hash = "sha256:ea9872c80c132f4663822dd2a08d404073a5a9b5ba6155bea72fb2a79d1093b5"}, + {file = "greenlet-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:db1a39669102a1d8d12b57de2bb7e2ec9066a6f2b3da35ae511ff93b01b5d564"}, + {file = "greenlet-2.0.2.tar.gz", hash = "sha256:e7c8dc13af7db097bed64a051d2dd49e9f0af495c26995c00a9ee842690d34c0"}, +] + +[package.extras] +docs = ["Sphinx", "docutils (<0.18)"] +test = ["objgraph", "psutil"] + [[package]] name = "idna" version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -345,7 +405,6 @@ files = [ name = "importlib-metadata" version = "6.8.0" description = "Read metadata from Python packages" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -365,7 +424,6 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -377,7 +435,6 @@ files = [ name = "itsdangerous" version = "2.1.2" description = "Safely pass data to untrusted environments and back." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -389,7 +446,6 @@ files = [ name = "jinja2" version = "3.1.2" description = "A very fast and expressive template engine." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -407,7 +463,6 @@ i18n = ["Babel (>=2.7)"] name = "jmespath" version = "1.0.1" description = "JSON Matching Expressions" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -419,7 +474,6 @@ files = [ name = "jsonschema" version = "4.17.3" description = "An implementation of JSON Schema validation for Python" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -439,7 +493,6 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- name = "markupsafe" version = "2.1.3" description = "Safely add untrusted strings to HTML/XML markup." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -499,7 +552,6 @@ files = [ name = "ordered-set" version = "4.1.0" description = "An OrderedSet is a custom MutableSet that remembers its order, so that every" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -514,7 +566,6 @@ dev = ["black", "mypy", "pytest"] name = "packaging" version = "23.1" description = "Core utilities for Python packages" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -526,7 +577,6 @@ files = [ name = "pluggy" version = "1.2.0" description = "plugin and hook calling mechanisms for python" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -542,7 +592,6 @@ testing = ["pytest", "pytest-benchmark"] name = "psycopg" version = "3.1.9" description = "PostgreSQL database adapter for Python" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -567,7 +616,6 @@ test = ["anyio (>=3.6.2)", "mypy (>=1.2)", "pproxy (>=2.7)", "pytest (>=6.2.5)", name = "psycopg-binary" version = "3.1.9" description = "PostgreSQL database adapter for Python -- C optimisation distribution" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -631,7 +679,6 @@ files = [ name = "pyrsistent" version = "0.19.3" description = "Persistent/Functional/Immutable data structures" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -668,7 +715,6 @@ files = [ name = "pytest" version = "7.4.0" description = "pytest: simple powerful testing with Python" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -691,7 +737,6 @@ testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "no name = "pytest-cov" version = "4.1.0" description = "Pytest plugin for measuring coverage." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -710,7 +755,6 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale name = "python-dateutil" version = "2.8.2" description = "Extensions to the standard Python datetime module" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -725,7 +769,6 @@ six = ">=1.5" name = "python-dotenv" version = "1.0.0" description = "Read key-value pairs from a .env file and set them as environment variables" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -740,7 +783,6 @@ cli = ["click (>=5.0)"] name = "requests" version = "2.31.0" description = "Python HTTP for Humans." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -762,7 +804,6 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "ruff" version = "0.0.261" description = "An extremely fast Python linter, written in Rust." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -789,7 +830,6 @@ files = [ name = "s3transfer" version = "0.6.1" description = "An Amazon S3 Transfer Manager" -category = "main" optional = false python-versions = ">= 3.7" files = [ @@ -807,7 +847,6 @@ crt = ["botocore[crt] (>=1.20.29,<2.0a.0)"] name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -815,11 +854,88 @@ files = [ {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] +[[package]] +name = "sqlalchemy" +version = "2.0.19" +description = "Database Abstraction Library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "SQLAlchemy-2.0.19-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9deaae357edc2091a9ed5d25e9ee8bba98bcfae454b3911adeaf159c2e9ca9e3"}, + {file = "SQLAlchemy-2.0.19-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0bf0fd65b50a330261ec7fe3d091dfc1c577483c96a9fa1e4323e932961aa1b5"}, + {file = "SQLAlchemy-2.0.19-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d90ccc15ba1baa345796a8fb1965223ca7ded2d235ccbef80a47b85cea2d71a"}, + {file = "SQLAlchemy-2.0.19-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb4e688f6784427e5f9479d1a13617f573de8f7d4aa713ba82813bcd16e259d1"}, + {file = "SQLAlchemy-2.0.19-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:584f66e5e1979a7a00f4935015840be627e31ca29ad13f49a6e51e97a3fb8cae"}, + {file = "SQLAlchemy-2.0.19-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2c69ce70047b801d2aba3e5ff3cba32014558966109fecab0c39d16c18510f15"}, + {file = "SQLAlchemy-2.0.19-cp310-cp310-win32.whl", hash = "sha256:96f0463573469579d32ad0c91929548d78314ef95c210a8115346271beeeaaa2"}, + {file = "SQLAlchemy-2.0.19-cp310-cp310-win_amd64.whl", hash = "sha256:22bafb1da60c24514c141a7ff852b52f9f573fb933b1e6b5263f0daa28ce6db9"}, + {file = "SQLAlchemy-2.0.19-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d6894708eeb81f6d8193e996257223b6bb4041cb05a17cd5cf373ed836ef87a2"}, + {file = "SQLAlchemy-2.0.19-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d8f2afd1aafded7362b397581772c670f20ea84d0a780b93a1a1529da7c3d369"}, + {file = "SQLAlchemy-2.0.19-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15afbf5aa76f2241184c1d3b61af1a72ba31ce4161013d7cb5c4c2fca04fd6e"}, + {file = "SQLAlchemy-2.0.19-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8fc05b59142445a4efb9c1fd75c334b431d35c304b0e33f4fa0ff1ea4890f92e"}, + {file = "SQLAlchemy-2.0.19-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5831138f0cc06b43edf5f99541c64adf0ab0d41f9a4471fd63b54ae18399e4de"}, + {file = "SQLAlchemy-2.0.19-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3afa8a21a9046917b3a12ffe016ba7ebe7a55a6fc0c7d950beb303c735c3c3ad"}, + {file = "SQLAlchemy-2.0.19-cp311-cp311-win32.whl", hash = "sha256:c896d4e6ab2eba2afa1d56be3d0b936c56d4666e789bfc59d6ae76e9fcf46145"}, + {file = "SQLAlchemy-2.0.19-cp311-cp311-win_amd64.whl", hash = "sha256:024d2f67fb3ec697555e48caeb7147cfe2c08065a4f1a52d93c3d44fc8e6ad1c"}, + {file = "SQLAlchemy-2.0.19-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:89bc2b374ebee1a02fd2eae6fd0570b5ad897ee514e0f84c5c137c942772aa0c"}, + {file = "SQLAlchemy-2.0.19-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd4d410a76c3762511ae075d50f379ae09551d92525aa5bb307f8343bf7c2c12"}, + {file = "SQLAlchemy-2.0.19-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f469f15068cd8351826df4080ffe4cc6377c5bf7d29b5a07b0e717dddb4c7ea2"}, + {file = "SQLAlchemy-2.0.19-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cda283700c984e699e8ef0fcc5c61f00c9d14b6f65a4f2767c97242513fcdd84"}, + {file = "SQLAlchemy-2.0.19-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:43699eb3f80920cc39a380c159ae21c8a8924fe071bccb68fc509e099420b148"}, + {file = "SQLAlchemy-2.0.19-cp37-cp37m-win32.whl", hash = "sha256:61ada5831db36d897e28eb95f0f81814525e0d7927fb51145526c4e63174920b"}, + {file = "SQLAlchemy-2.0.19-cp37-cp37m-win_amd64.whl", hash = "sha256:57d100a421d9ab4874f51285c059003292433c648df6abe6c9c904e5bd5b0828"}, + {file = "SQLAlchemy-2.0.19-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:16a310f5bc75a5b2ce7cb656d0e76eb13440b8354f927ff15cbaddd2523ee2d1"}, + {file = "SQLAlchemy-2.0.19-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cf7b5e3856cbf1876da4e9d9715546fa26b6e0ba1a682d5ed2fc3ca4c7c3ec5b"}, + {file = "SQLAlchemy-2.0.19-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e7b69d9ced4b53310a87117824b23c509c6fc1f692aa7272d47561347e133b6"}, + {file = "SQLAlchemy-2.0.19-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f9eb4575bfa5afc4b066528302bf12083da3175f71b64a43a7c0badda2be365"}, + {file = "SQLAlchemy-2.0.19-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6b54d1ad7a162857bb7c8ef689049c7cd9eae2f38864fc096d62ae10bc100c7d"}, + {file = "SQLAlchemy-2.0.19-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5d6afc41ca0ecf373366fd8e10aee2797128d3ae45eb8467b19da4899bcd1ee0"}, + {file = "SQLAlchemy-2.0.19-cp38-cp38-win32.whl", hash = "sha256:430614f18443b58ceb9dedec323ecddc0abb2b34e79d03503b5a7579cd73a531"}, + {file = "SQLAlchemy-2.0.19-cp38-cp38-win_amd64.whl", hash = "sha256:eb60699de43ba1a1f77363f563bb2c652f7748127ba3a774f7cf2c7804aa0d3d"}, + {file = "SQLAlchemy-2.0.19-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a752b7a9aceb0ba173955d4f780c64ee15a1a991f1c52d307d6215c6c73b3a4c"}, + {file = "SQLAlchemy-2.0.19-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7351c05db355da112e056a7b731253cbeffab9dfdb3be1e895368513c7d70106"}, + {file = "SQLAlchemy-2.0.19-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa51ce4aea583b0c6b426f4b0563d3535c1c75986c4373a0987d84d22376585b"}, + {file = "SQLAlchemy-2.0.19-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae7473a67cd82a41decfea58c0eac581209a0aa30f8bc9190926fbf628bb17f7"}, + {file = "SQLAlchemy-2.0.19-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:851a37898a8a39783aab603c7348eb5b20d83c76a14766a43f56e6ad422d1ec8"}, + {file = "SQLAlchemy-2.0.19-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:539010665c90e60c4a1650afe4ab49ca100c74e6aef882466f1de6471d414be7"}, + {file = "SQLAlchemy-2.0.19-cp39-cp39-win32.whl", hash = "sha256:f82c310ddf97b04e1392c33cf9a70909e0ae10a7e2ddc1d64495e3abdc5d19fb"}, + {file = "SQLAlchemy-2.0.19-cp39-cp39-win_amd64.whl", hash = "sha256:8e712cfd2e07b801bc6b60fdf64853bc2bd0af33ca8fa46166a23fe11ce0dbb0"}, + {file = "SQLAlchemy-2.0.19-py3-none-any.whl", hash = "sha256:314145c1389b021a9ad5aa3a18bac6f5d939f9087d7fc5443be28cba19d2c972"}, + {file = "SQLAlchemy-2.0.19.tar.gz", hash = "sha256:77a14fa20264af73ddcdb1e2b9c5a829b8cc6b8304d0f093271980e36c200a3f"}, +] + +[package.dependencies] +greenlet = {version = "!=0.4.17", markers = "platform_machine == \"win32\" or platform_machine == \"WIN32\" or platform_machine == \"AMD64\" or platform_machine == \"amd64\" or platform_machine == \"x86_64\" or platform_machine == \"ppc64le\" or platform_machine == \"aarch64\""} +typing-extensions = ">=4.2.0" + +[package.extras] +aiomysql = ["aiomysql", "greenlet (!=0.4.17)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing-extensions (!=3.10.0.1)"] +asyncio = ["greenlet (!=0.4.17)"] +asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5)"] +mssql = ["pyodbc"] +mssql-pymssql = ["pymssql"] +mssql-pyodbc = ["pyodbc"] +mypy = ["mypy (>=0.910)"] +mysql = ["mysqlclient (>=1.4.0)"] +mysql-connector = ["mysql-connector-python"] +oracle = ["cx-oracle (>=7)"] +oracle-oracledb = ["oracledb (>=1.0.1)"] +postgresql = ["psycopg2 (>=2.7)"] +postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] +postgresql-pg8000 = ["pg8000 (>=1.29.1)"] +postgresql-psycopg = ["psycopg (>=3.0.7)"] +postgresql-psycopg2binary = ["psycopg2-binary"] +postgresql-psycopg2cffi = ["psycopg2cffi"] +postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] +pymysql = ["pymysql"] +sqlcipher = ["sqlcipher3-binary"] + [[package]] name = "tomli" version = "2.0.1" description = "A lil' TOML parser" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -831,7 +947,6 @@ files = [ name = "typing-extensions" version = "4.7.0" description = "Backported and Experimental Type Hints for Python 3.7+" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -843,7 +958,6 @@ files = [ name = "tzdata" version = "2023.3" description = "Provider of IANA time zone data" -category = "main" optional = false python-versions = ">=2" files = [ @@ -855,7 +969,6 @@ files = [ name = "urllib3" version = "1.26.16" description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -872,7 +985,6 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "werkzeug" version = "2.3.6" description = "The comprehensive WSGI web application library." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -890,7 +1002,6 @@ watchdog = ["watchdog (>=2.3)"] name = "zipp" version = "3.16.2" description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -905,4 +1016,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = ">=3.9" -content-hash = "da227657fb15ba57439baa7fcc02d4b04d448a37a86d1150852a1aad109d7747" +content-hash = "c129cf744ee647a32ce7d62c9b9bed1004bf93483292a1c1dc0752f8f6cb8571" diff --git a/pyproject.toml b/pyproject.toml index 9455daba..34ca1b4c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,6 +16,7 @@ deepdiff = "^6.3.0" psycopg = {extras = ["binary"], version = "^3.1.9"} pytest = "^7.3.2" flask = "^2.3.2" +sqlalchemy = "^2.0.19" [tool.poetry.group.dev.dependencies] pytest = "^7.3.0" From b3bb3a6d831e6a9827fa271ca48726d3ac4a6dda Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Thu, 3 Aug 2023 08:09:00 -0600 Subject: [PATCH 02/24] create sqlalchemy utils --- harvester/db/utils/utils.py | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 harvester/db/utils/utils.py diff --git a/harvester/db/utils/utils.py b/harvester/db/utils/utils.py new file mode 100644 index 00000000..2f4c754e --- /dev/null +++ b/harvester/db/utils/utils.py @@ -0,0 +1,4 @@ +from sqlalchemy import create_engine + +def create_engine( *args ): + return create_engine( "{}://{}:{}@{}:{}/{}".format( *args ) ) From f44632c600a93e82d938c1990a903e105cf84c14 Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Thu, 3 Aug 2023 08:09:19 -0600 Subject: [PATCH 03/24] add declarative models. --- harvester/db/models/__init__.py | 23 +++++++++++ harvester/db/models/models.py | 69 +++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 harvester/db/models/__init__.py create mode 100644 harvester/db/models/models.py diff --git a/harvester/db/models/__init__.py b/harvester/db/models/__init__.py new file mode 100644 index 00000000..5cd272d3 --- /dev/null +++ b/harvester/db/models/__init__.py @@ -0,0 +1,23 @@ +from sqlalchemy.orm import DeclarativeBase +from sqlalchemy import mapped_column +from sqlalchemy.dialects.postgresql import UUID +from sqlalchemy.orm.exc import DetachedInstanceError +from uuid import uuid4 + +class Base(DeclarativeBase): + + id = mapped_column(UUID(as_uuid=True), primary_key=True, server_default=uuid4) + + def calc_repr(self, **fields): + field_strings = [] + at_least_one_attached_attribute = False + for key, field in fields.items(): + try: + field_strings.append(f"{key}={field!r}") + except DetachedInstanceError: + field_strings.append(f"{key}=DetachedInstanceError") + else: + at_least_one_attached_attribute = True + if at_least_one_attached_attribute: + return f"<{self.__class__.__name__}({','.join(field_strings)})>" + return f"<{self.__class__.__name__} {id(self)}>" \ No newline at end of file diff --git a/harvester/db/models/models.py b/harvester/db/models/models.py new file mode 100644 index 00000000..a31cbb35 --- /dev/null +++ b/harvester/db/models/models.py @@ -0,0 +1,69 @@ +from harvester.db.models import Base + +from sqlalchemy import ForeignKey, Integer, SMALLINT +from sqlalchemy import String, DateTime, Enum +from sqlalchemy.dialects.postgresql import JSON, UUID, ARRAY +from sqlalchemy.orm import mapped_column +from sqlalchemy.sql import func + +import enum + +class SeverityEnum(enum.Enum): + + error = "ERROR" + critical = "CRITICAL" + +class HarvestSource(Base): + + __tablename__ = "harvest_source" + __table_args__ = { + "comment": "Contains information for each harvest source" + } + + name = mapped_column(String, nullable=False) + notification_emails = mapped_column(ARRAY(String), nullable=False) + organization_name = mapped_column(String, nullable=False) + frequency = mapped_column(String, nullable=False) # enum? + config = mapped_column(JSON) + urls = mapped_column(ARRAY(String), nullable=False) + schema_validation_type = mapped_column(String, nullabe=False) # enum? + +class HarvestJob(Base): + + __tablename__ = "harvest_job" + __table_args__ = { + "comment": "Contains job state information for each job that's run through the pipeline" + } + + source_id = mapped_column(UUID(as_uuid=True), ForeignKey("harvest_source.id")) + status = mapped_column(String, nullable=False) # enum? + date_created = mapped_column(Datetime(timezone=True), server_default=func.now()) + date_finished = mapped_column(Datetime(timezone=True)) + extract_started = mapped_column(Datetime(timezone=True)) + extract_finished = mapped_column(Datetime(timezone=True)) + compare_started = mapped_column(Datetime(timezone=True)) + compare_finished = mapped_column(Datetime(timezone=True)) + records_added = mapped_column(SMALLINT) + records_updated = mapped_column(SMALLINT) + records_deleted = mapped_column(SMALLINT) + records_errored = mapped_column(SMALLINT) + records_ignored = mapped_column(SMALLINT) + +class HarvestError(Base): + + __tablename__ = "harvest_error" + __table_args__ = { + "comment": "Table to contain all errors in the pipeline" + } + + job_id = mapped_column(UUID(as_uuid=True), ForeignKey("harvest_job.id")) + record_id = mapped_column(UUID(as_uuid=True)) + record_reported_id = mapped_column(String) + date_created = mapped_column(Datetime(timezone=True), server_default=func.now()) + error_type = mapped_column(String) # enum? + severity = mapped_column(Enum(SeverityEnum, values_callable=lambda enum: [e.value for e in enum])) + message = mapped_column(String) + + + + From 540d9c5f13a31f1672842992ca3bdf6cabc879ea Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Thu, 10 Aug 2023 17:42:26 -0600 Subject: [PATCH 04/24] add plantuml ERD --- docs/diagrams/out/erd/harvester2.0 ERD.png | Bin 0 -> 34509 bytes docs/diagrams/src/erd.plantuml | 59 +++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 docs/diagrams/out/erd/harvester2.0 ERD.png create mode 100644 docs/diagrams/src/erd.plantuml diff --git a/docs/diagrams/out/erd/harvester2.0 ERD.png b/docs/diagrams/out/erd/harvester2.0 ERD.png new file mode 100644 index 0000000000000000000000000000000000000000..3867a3f648a24e778b95e7610e966c3d447af203 GIT binary patch literal 34509 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

#2~L(Xsg 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 Date: Fri, 11 Aug 2023 08:50:54 -0600 Subject: [PATCH 05/24] information for potential data model --- docs/diagrams/out/erd/README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 docs/diagrams/out/erd/README.md diff --git a/docs/diagrams/out/erd/README.md b/docs/diagrams/out/erd/README.md new file mode 100644 index 00000000..66a5e9a3 --- /dev/null +++ b/docs/diagrams/out/erd/README.md @@ -0,0 +1,12 @@ +## How do we organize and display data on data.gov? + +- Navigating to the [datasets](https://catalog.data.gov/dataset) page we see the following "filters" + - topics + - topic categories + - dataset type + - tags + - formats + - organization types + - organizations + - publishers + - bureaus From 2ba07cb2359ce26e1c80bc66e634df6688aedbca Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Fri, 11 Aug 2023 08:51:50 -0600 Subject: [PATCH 06/24] change owner entity name. add lookups. --- docs/diagrams/src/erd.plantuml | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/docs/diagrams/src/erd.plantuml b/docs/diagrams/src/erd.plantuml index ff66f1c9..ef2659a6 100644 --- a/docs/diagrams/src/erd.plantuml +++ b/docs/diagrams/src/erd.plantuml @@ -2,7 +2,8 @@ skinparam linetype ortho -entity "owner" as owner { +' entities +entity "publisher" as owner { uuid : uuid (PK) -- name : text @@ -23,7 +24,7 @@ entity "source" as source { } entity "record" as record { - *uuid : uuid (PK) + uuid : uuid (PK) -- source_id: uuid (FK) job_id: uuid (FK) @@ -31,7 +32,7 @@ entity "record" as record { } entity "job" as job { - *uuid : uuid (PK) + uuid : uuid (PK) -- source_id: uuid (FK) date_created: datetime @@ -43,13 +44,28 @@ entity "job" as job { } entity "error" as error { - *uuid : uuid (PK) + uuid : uuid (PK) -- job_id: uuid (FK) type: text message: text } +' lookups +entity "organization_lu" as organization_lu { + name : text (PK) + -- + type: text + +} + +entity "bureau_lu" as bureau_lu { + name: text (PK) + -- + another_field: text +} + +' relationships owner ||--|{ source source ||--|| job source ||--|{ record From b21ba5957d44a6fa18797001f58b66a3c12dc076 Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Fri, 11 Aug 2023 08:52:26 -0600 Subject: [PATCH 07/24] update to latest diagram. --- docs/diagrams/out/erd/harvester2.0 ERD.png | Bin 34509 -> 53572 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/diagrams/out/erd/harvester2.0 ERD.png b/docs/diagrams/out/erd/harvester2.0 ERD.png index 3867a3f648a24e778b95e7610e966c3d447af203..5fdcd384231ac5e9cfdf2c6c021832c11766c8a0 100644 GIT binary patch literal 53572 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Ξ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

#2~L(Xsg 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 Date: Fri, 11 Aug 2023 10:47:08 -0600 Subject: [PATCH 08/24] reorganize. --- docs/diagrams/src/erd.plantuml | 131 +++++++++++++++++++++------------ 1 file changed, 83 insertions(+), 48 deletions(-) diff --git a/docs/diagrams/src/erd.plantuml b/docs/diagrams/src/erd.plantuml index ef2659a6..19f23a3e 100644 --- a/docs/diagrams/src/erd.plantuml +++ b/docs/diagrams/src/erd.plantuml @@ -2,71 +2,106 @@ skinparam linetype ortho -' entities -entity "publisher" as owner { - uuid : uuid (PK) - -- - name : text - description : text - agency: text - organization: text -} +' ERD +card "Entity Relationship Diagram" as entities { + entity "publisher" as publisher { + uuid : uuid (PK) + -- + name : text + description : text + organization: text (FK) + } -entity "source" as source { - uuid : uuid (PK) - -- - owner_id: uuid (FK) - name : text - frequency: text - config: json - url: text - schema_validation_type: text -} + entity "source" as source { + uuid : uuid (PK) + -- + publisher_id: uuid (FK) + name : text + frequency: text + config: json + url: text + schema_validation_type: text + } -entity "record" as record { - uuid : uuid (PK) - -- - source_id: uuid (FK) - job_id: uuid (FK) - status: text -} + entity "record" as record { + uuid : uuid (PK) + -- + source_id: uuid (FK) + job_id: uuid (FK) + status: text + } -entity "job" as job { - uuid : uuid (PK) - -- - source_id: uuid (FK) - date_created: datetime - date_finished: datetime - extract_started: datetime - extract_finished: datetime - compare_started: datetime - compare_finished: datetime -} + entity "job" as job { + uuid : uuid (PK) + -- + source_id: uuid (FK) + date_created: datetime + date_finished: datetime + extract_started: datetime + extract_finished: datetime + compare_started: datetime + compare_finished: datetime + } -entity "error" as error { - uuid : uuid (PK) - -- - job_id: uuid (FK) - type: text - message: text + entity "error" as error { + uuid : uuid (PK) + -- + job_id: uuid (FK) + type: text + message: text + } } -' lookups -entity "organization_lu" as organization_lu { +' lookup tables +card "Lookup Tables" as lookup { + + entity "organization_lu" as organization_lu { name : text (PK) -- type: text - -} + } entity "bureau_lu" as bureau_lu { name: text (PK) -- another_field: text + } + } +' enumerators +card "Enumerators" as enumerators { + + enum error_severity { + ERROR + CRITICAL + } + + enum job_status { + CREATE + PROCESSING + COMPLETE + } + + enum schema_validation { + DCATUS + ISO1911 + } + + enum data_formats { + CSV + XML + HTML + JSON + GEOJSON + TIFF + PDF + } + +} + ' relationships -owner ||--|{ source +publisher ||--|{ source source ||--|| job source ||--|{ record job ||--|{ record From ab9731c648cb5ad58480fee9f89c0ae6f6e9edf0 Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Fri, 11 Aug 2023 10:48:43 -0600 Subject: [PATCH 09/24] update to latest diagram. --- docs/diagrams/out/erd/harvester2.0 ERD.png | Bin 53572 -> 83120 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/diagrams/out/erd/harvester2.0 ERD.png b/docs/diagrams/out/erd/harvester2.0 ERD.png index 5fdcd384231ac5e9cfdf2c6c021832c11766c8a0..6f0d08c5ce151fb1394a0640cc4896b69f66d19b 100644 GIT binary patch literal 83120 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 literal 53572 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Ξ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 aC%fH_`Qxf( Date: Fri, 11 Aug 2023 14:05:57 -0600 Subject: [PATCH 10/24] move file --- docs/diagrams/{out/erd => src}/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/diagrams/{out/erd => src}/README.md (100%) diff --git a/docs/diagrams/out/erd/README.md b/docs/diagrams/src/README.md similarity index 100% rename from docs/diagrams/out/erd/README.md rename to docs/diagrams/src/README.md From ab2ee08adf8fd10ea69f51e9e2e0eeabe806a8b6 Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Tue, 15 Aug 2023 15:10:24 -0600 Subject: [PATCH 11/24] update ERD to reflect models and export as png. --- docs/diagrams/out/erd/harvester2.0 ERD.png | Bin 83120 -> 84971 bytes docs/diagrams/src/erd.plantuml | 88 ++++++++++----------- 2 files changed, 40 insertions(+), 48 deletions(-) diff --git a/docs/diagrams/out/erd/harvester2.0 ERD.png b/docs/diagrams/out/erd/harvester2.0 ERD.png index 6f0d08c5ce151fb1394a0640cc4896b69f66d19b..9661113dbbfc312e8fb44928fdaf1198babb51c8 100644 GIT binary patch literal 84971 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 diff --git a/docs/diagrams/src/erd.plantuml b/docs/diagrams/src/erd.plantuml index 19f23a3e..0a54ea05 100644 --- a/docs/diagrams/src/erd.plantuml +++ b/docs/diagrams/src/erd.plantuml @@ -4,105 +4,97 @@ skinparam linetype ortho ' ERD card "Entity Relationship Diagram" as entities { - entity "publisher" as publisher { + entity "harvest_source" as source { uuid : uuid (PK) -- - name : text - description : text - organization: text (FK) - } - - entity "source" as source { - uuid : uuid (PK) - -- - publisher_id: uuid (FK) - name : text + name: text + notifications_emails: array( txt ) + organization_name: txt frequency: text config: json - url: text + urls: array( txt ) schema_validation_type: text } - entity "record" as record { + entity "harvest_record" as record { uuid : uuid (PK) -- source_id: uuid (FK) job_id: uuid (FK) status: text + s3_path: text } - entity "job" as job { + entity "harvest_job" as job { uuid : uuid (PK) -- source_id: uuid (FK) - date_created: datetime + status: text + date_created date_finished: datetime extract_started: datetime extract_finished: datetime - compare_started: datetime + compare_started: datetime compare_finished: datetime + records_added: smallint + records_updated: smallint + records_deleted: smallint + records_errored: smallint + records_ignored: smallint } - entity "error" as error { + entity "harvest_error" as error { uuid : uuid (PK) -- job_id: uuid (FK) - type: text + record_id: uuid (FK) + record_reported_id: text + date_created: datetime + error_type: text + severity: enum message: text + } } ' lookup tables card "Lookup Tables" as lookup { - - entity "organization_lu" as organization_lu { - name : text (PK) - -- - type: text - } - -entity "bureau_lu" as bureau_lu { - name: text (PK) - -- - another_field: text + + entity "data_format" as data_format { + name: text (PK) + -- + mime_type: text } - } ' enumerators card "Enumerators" as enumerators { enum error_severity { - ERROR - CRITICAL + ERROR + CRITICAL } enum job_status { - CREATE - PROCESSING - COMPLETE + CREATE + PROCESSING + COMPLETE } enum schema_validation { - DCATUS - ISO1911 + DCATUS + ISO1911 } - enum data_formats { - CSV - XML - HTML - JSON - GEOJSON - TIFF - PDF + enum record_status { + STALE + ACTIVE + INVALID } - } ' relationships -publisher ||--|{ source -source ||--|| job +source ||--|{ job source ||--|{ record job ||--|{ record job ||-|{ error From 9a5b7285622dbeaeaae9a8234305b81a8f321f2b Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Tue, 15 Aug 2023 15:10:41 -0600 Subject: [PATCH 12/24] remove unneeded repr function. --- harvester/db/models/__init__.py | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/harvester/db/models/__init__.py b/harvester/db/models/__init__.py index 5cd272d3..7aa241e1 100644 --- a/harvester/db/models/__init__.py +++ b/harvester/db/models/__init__.py @@ -1,23 +1,8 @@ -from sqlalchemy.orm import DeclarativeBase -from sqlalchemy import mapped_column +from sqlalchemy import text +from sqlalchemy.orm import DeclarativeBase, mapped_column from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm.exc import DetachedInstanceError -from uuid import uuid4 class Base(DeclarativeBase): - id = mapped_column(UUID(as_uuid=True), primary_key=True, server_default=uuid4) - - def calc_repr(self, **fields): - field_strings = [] - at_least_one_attached_attribute = False - for key, field in fields.items(): - try: - field_strings.append(f"{key}={field!r}") - except DetachedInstanceError: - field_strings.append(f"{key}=DetachedInstanceError") - else: - at_least_one_attached_attribute = True - if at_least_one_attached_attribute: - return f"<{self.__class__.__name__}({','.join(field_strings)})>" - return f"<{self.__class__.__name__} {id(self)}>" \ No newline at end of file + id = mapped_column(UUID(as_uuid=True), primary_key=True, server_default=text("gen_random_uuid()")) \ No newline at end of file From 1e68719412de057a351d4319925493135ef34982 Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Tue, 15 Aug 2023 15:11:06 -0600 Subject: [PATCH 13/24] update datetime columns and add harvest record model. --- harvester/db/models/models.py | 54 ++++++++++++++++++++++++++--------- 1 file changed, 41 insertions(+), 13 deletions(-) diff --git a/harvester/db/models/models.py b/harvester/db/models/models.py index a31cbb35..2a482fe6 100644 --- a/harvester/db/models/models.py +++ b/harvester/db/models/models.py @@ -1,18 +1,24 @@ +import os + +import dotenv + from harvester.db.models import Base -from sqlalchemy import ForeignKey, Integer, SMALLINT +from sqlalchemy import ForeignKey, Integer, SMALLINT, create_engine from sqlalchemy import String, DateTime, Enum from sqlalchemy.dialects.postgresql import JSON, UUID, ARRAY -from sqlalchemy.orm import mapped_column +from sqlalchemy.orm import mapped_column, sessionmaker from sqlalchemy.sql import func import enum - + +dotenv.load_dotenv() + class SeverityEnum(enum.Enum): error = "ERROR" critical = "CRITICAL" - + class HarvestSource(Base): __tablename__ = "harvest_source" @@ -26,7 +32,7 @@ class HarvestSource(Base): frequency = mapped_column(String, nullable=False) # enum? config = mapped_column(JSON) urls = mapped_column(ARRAY(String), nullable=False) - schema_validation_type = mapped_column(String, nullabe=False) # enum? + schema_validation_type = mapped_column(String, nullable=False) # enum? class HarvestJob(Base): @@ -37,12 +43,12 @@ class HarvestJob(Base): source_id = mapped_column(UUID(as_uuid=True), ForeignKey("harvest_source.id")) status = mapped_column(String, nullable=False) # enum? - date_created = mapped_column(Datetime(timezone=True), server_default=func.now()) - date_finished = mapped_column(Datetime(timezone=True)) - extract_started = mapped_column(Datetime(timezone=True)) - extract_finished = mapped_column(Datetime(timezone=True)) - compare_started = mapped_column(Datetime(timezone=True)) - compare_finished = mapped_column(Datetime(timezone=True)) + date_created = mapped_column(DateTime(timezone=True), server_default=func.now()) + date_finished = mapped_column(DateTime(timezone=True)) + extract_started = mapped_column(DateTime(timezone=True)) + extract_finished = mapped_column(DateTime(timezone=True)) + compare_started = mapped_column(DateTime(timezone=True)) + compare_finished = mapped_column(DateTime(timezone=True)) records_added = mapped_column(SMALLINT) records_updated = mapped_column(SMALLINT) records_deleted = mapped_column(SMALLINT) @@ -59,11 +65,33 @@ class HarvestError(Base): job_id = mapped_column(UUID(as_uuid=True), ForeignKey("harvest_job.id")) record_id = mapped_column(UUID(as_uuid=True)) record_reported_id = mapped_column(String) - date_created = mapped_column(Datetime(timezone=True), server_default=func.now()) + date_created = mapped_column(DateTime(timezone=True), server_default=func.now()) error_type = mapped_column(String) # enum? severity = mapped_column(Enum(SeverityEnum, values_callable=lambda enum: [e.value for e in enum])) message = mapped_column(String) - +class HarvestRecord(Base): + + __tablename__ = "harvest_record" + __table_args__ = { + "comment": "Table to contain records" + } + + job_id = mapped_column(UUID(as_uuid=True), ForeignKey("harvest_job.id")) + source_id = mapped_column(UUID(as_uuid=True), ForeignKey("harvest_source.id")) + status = mapped_column(String) #enum? + s3_path = mapped_column(String) + +def create_sqlalchemy_engine(): + + host = os.getenv("POSTGRES_HOST") + user = os.getenv("POSTGRES_USER") + password = os.getenv("POSTGRES_PASSWORD") + db = os.getenv("POSTGRES_DB") + + return create_engine(f"postgresql://{user}:{password}@{host}/{db}") +def create_sqlalchemy_session( engine ): + Session = sessionmaker(bind=engine) + return Session() \ No newline at end of file From c6b1ec688b17b728264a861199795593cc8f8c22 Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Tue, 15 Aug 2023 15:11:17 -0600 Subject: [PATCH 14/24] add fixtures. --- tests/db/sqlalchemy/conftest.py | 40 +++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 tests/db/sqlalchemy/conftest.py diff --git a/tests/db/sqlalchemy/conftest.py b/tests/db/sqlalchemy/conftest.py new file mode 100644 index 00000000..45814231 --- /dev/null +++ b/tests/db/sqlalchemy/conftest.py @@ -0,0 +1,40 @@ +import pytest + +@pytest.fixture +def create_test_harvest_source(): + return { + "id": "7b295ba9-137e-4d0d-8295-3abac2849a0e", + "name": "test_harvest_source", + "notification_emails": [ "something@example.com", "another@test.com" ], + "organization_name": "example", + "frequency": "weekly", + "config": { "test": 1, "example": True, "something": [ "a", "b" ] }, + "urls": [ "https://path_to_resource/example.json", "https://path_to_resource/another_example.json"], + "schema_validation_type": "dcatus" + } + +@pytest.fixture +def create_test_harvest_job(): + return { + "id": "c8837a2f-bd0b-4333-82f5-0b64f126da34", + "source_id": "7b295ba9-137e-4d0d-8295-3abac2849a0e", + "status": "INACTIVE", + } + +@pytest.fixture +def create_test_harvest_record(): + return { + "job_id": "c8837a2f-bd0b-4333-82f5-0b64f126da34", + "source_id": "7b295ba9-137e-4d0d-8295-3abac2849a0e", + "status": "ACTIVE", + "s3_path": "https://bucket-name.s3.region-code.amazonaws.com/key-name" + } + +@pytest.fixture +def create_test_harvest_error(): + return { + "job_id": "c8837a2f-bd0b-4333-82f5-0b64f126da34", + "record_id": "b5195975-03db-4cf8-b373-52035f0f428f", + "record_reported_id": "example", + "severity": "CRITICAL" + } \ No newline at end of file From c52bf48af6fb08cfc40da0578488443a42510ebf Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Tue, 15 Aug 2023 15:11:42 -0600 Subject: [PATCH 15/24] add tests for adding records to associated models/tables. --- tests/db/sqlalchemy/test_sqlalchemy.py | 73 ++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 tests/db/sqlalchemy/test_sqlalchemy.py diff --git a/tests/db/sqlalchemy/test_sqlalchemy.py b/tests/db/sqlalchemy/test_sqlalchemy.py new file mode 100644 index 00000000..3a6c0d1d --- /dev/null +++ b/tests/db/sqlalchemy/test_sqlalchemy.py @@ -0,0 +1,73 @@ +import pytest +from harvester.db.models import Base +from harvester.db.models.models import create_sqlalchemy_engine, create_sqlalchemy_session +from harvester.db.models.models import HarvestSource, HarvestJob, HarvestRecord, HarvestError +from sqlalchemy.orm import close_all_sessions + +def test_add_tables(): + + engine = create_sqlalchemy_engine() + session = create_sqlalchemy_session(engine) + + Base.metadata.create_all(engine) + + close_all_sessions() + +def test_add_harvest_source(create_test_harvest_source): + engine = create_sqlalchemy_engine() + session = create_sqlalchemy_session(engine) + + harvest_source = HarvestSource(**create_test_harvest_source) + + session.add(harvest_source) + session.commit() + + for item in session.query(HarvestSource).all(): + assert item + + close_all_sessions() + +def test_add_harvest_job(create_test_harvest_job): + engine = create_sqlalchemy_engine() + session = create_sqlalchemy_session(engine) + + harvest_job = HarvestJob(**create_test_harvest_job) + + session.add(harvest_job) + session.commit() + + for item in session.query(HarvestJob).all(): + assert item + + close_all_sessions() + +def test_add_harvest_record(create_test_harvest_record): + engine = create_sqlalchemy_engine() + session = create_sqlalchemy_session(engine) + + harvest_record = HarvestRecord(**create_test_harvest_record) + + session.add(harvest_record) + session.commit() + + for item in session.query(HarvestRecord).all(): + assert item + + close_all_sessions() + +def test_add_harvest_error(create_test_harvest_error): + engine = create_sqlalchemy_engine() + session = create_sqlalchemy_session(engine) + + harvest_error = HarvestError(**create_test_harvest_error) + + session.add(harvest_error) + session.commit() + + for item in session.query(HarvestError).all(): + assert item + + close_all_sessions() + + + From 3c7426d84692593be1d930e620973f2d5ede8bf0 Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Tue, 15 Aug 2023 15:19:16 -0600 Subject: [PATCH 16/24] removed unneeded module. --- harvester/db/utils/utils.py | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 harvester/db/utils/utils.py diff --git a/harvester/db/utils/utils.py b/harvester/db/utils/utils.py deleted file mode 100644 index 2f4c754e..00000000 --- a/harvester/db/utils/utils.py +++ /dev/null @@ -1,4 +0,0 @@ -from sqlalchemy import create_engine - -def create_engine( *args ): - return create_engine( "{}://{}:{}@{}:{}/{}".format( *args ) ) From 5cc3faf189c98124c5ac7c70546d9799a4f92481 Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Tue, 15 Aug 2023 15:19:27 -0600 Subject: [PATCH 17/24] update for ruff. --- harvester/db/models/__init__.py | 7 +-- harvester/db/models/models.py | 56 +++++++++++------------- tests/db/sqlalchemy/test_sqlalchemy.py | 60 ++++++++++++++------------ 3 files changed, 62 insertions(+), 61 deletions(-) diff --git a/harvester/db/models/__init__.py b/harvester/db/models/__init__.py index 7aa241e1..800b9271 100644 --- a/harvester/db/models/__init__.py +++ b/harvester/db/models/__init__.py @@ -1,8 +1,9 @@ from sqlalchemy import text from sqlalchemy.orm import DeclarativeBase, mapped_column from sqlalchemy.dialects.postgresql import UUID -from sqlalchemy.orm.exc import DetachedInstanceError -class Base(DeclarativeBase): - id = mapped_column(UUID(as_uuid=True), primary_key=True, server_default=text("gen_random_uuid()")) \ No newline at end of file +class Base(DeclarativeBase): + id = mapped_column( + UUID(as_uuid=True), primary_key=True, server_default=text("gen_random_uuid()") + ) diff --git a/harvester/db/models/models.py b/harvester/db/models/models.py index 2a482fe6..dec12407 100644 --- a/harvester/db/models/models.py +++ b/harvester/db/models/models.py @@ -1,48 +1,46 @@ -import os +import os import dotenv from harvester.db.models import Base -from sqlalchemy import ForeignKey, Integer, SMALLINT, create_engine -from sqlalchemy import String, DateTime, Enum +from sqlalchemy import ForeignKey, SMALLINT, create_engine +from sqlalchemy import String, DateTime, Enum from sqlalchemy.dialects.postgresql import JSON, UUID, ARRAY from sqlalchemy.orm import mapped_column, sessionmaker from sqlalchemy.sql import func import enum -dotenv.load_dotenv() +dotenv.load_dotenv() + class SeverityEnum(enum.Enum): - error = "ERROR" - critical = "CRITICAL" + critical = "CRITICAL" -class HarvestSource(Base): +class HarvestSource(Base): __tablename__ = "harvest_source" - __table_args__ = { - "comment": "Contains information for each harvest source" - } + __table_args__ = {"comment": "Contains information for each harvest source"} name = mapped_column(String, nullable=False) notification_emails = mapped_column(ARRAY(String), nullable=False) organization_name = mapped_column(String, nullable=False) - frequency = mapped_column(String, nullable=False) # enum? + frequency = mapped_column(String, nullable=False) # enum? config = mapped_column(JSON) urls = mapped_column(ARRAY(String), nullable=False) - schema_validation_type = mapped_column(String, nullable=False) # enum? + schema_validation_type = mapped_column(String, nullable=False) # enum? -class HarvestJob(Base): +class HarvestJob(Base): __tablename__ = "harvest_job" __table_args__ = { - "comment": "Contains job state information for each job that's run through the pipeline" + "comment": "Contains job state information run through the pipeline" } source_id = mapped_column(UUID(as_uuid=True), ForeignKey("harvest_source.id")) - status = mapped_column(String, nullable=False) # enum? + status = mapped_column(String, nullable=False) # enum? date_created = mapped_column(DateTime(timezone=True), server_default=func.now()) date_finished = mapped_column(DateTime(timezone=True)) extract_started = mapped_column(DateTime(timezone=True)) @@ -55,35 +53,33 @@ class HarvestJob(Base): records_errored = mapped_column(SMALLINT) records_ignored = mapped_column(SMALLINT) -class HarvestError(Base): +class HarvestError(Base): __tablename__ = "harvest_error" - __table_args__ = { - "comment": "Table to contain all errors in the pipeline" - } + __table_args__ = {"comment": "Table to contain all errors in the pipeline"} job_id = mapped_column(UUID(as_uuid=True), ForeignKey("harvest_job.id")) record_id = mapped_column(UUID(as_uuid=True)) record_reported_id = mapped_column(String) date_created = mapped_column(DateTime(timezone=True), server_default=func.now()) - error_type = mapped_column(String) # enum? - severity = mapped_column(Enum(SeverityEnum, values_callable=lambda enum: [e.value for e in enum])) + error_type = mapped_column(String) # enum? + severity = mapped_column( + Enum(SeverityEnum, values_callable=lambda enum: [e.value for e in enum]) + ) message = mapped_column(String) + class HarvestRecord(Base): + __tablename__ = "harvest_record" + __table_args__ = {"comment": "Table to contain records"} - __tablename__ = "harvest_record" - __table_args__ = { - "comment": "Table to contain records" - } - job_id = mapped_column(UUID(as_uuid=True), ForeignKey("harvest_job.id")) source_id = mapped_column(UUID(as_uuid=True), ForeignKey("harvest_source.id")) - status = mapped_column(String) #enum? + status = mapped_column(String) # enum? s3_path = mapped_column(String) -def create_sqlalchemy_engine(): +def create_sqlalchemy_engine(): host = os.getenv("POSTGRES_HOST") user = os.getenv("POSTGRES_USER") password = os.getenv("POSTGRES_PASSWORD") @@ -91,7 +87,7 @@ def create_sqlalchemy_engine(): return create_engine(f"postgresql://{user}:{password}@{host}/{db}") -def create_sqlalchemy_session( engine ): +def create_sqlalchemy_session(engine): Session = sessionmaker(bind=engine) - return Session() \ No newline at end of file + return Session() diff --git a/tests/db/sqlalchemy/test_sqlalchemy.py b/tests/db/sqlalchemy/test_sqlalchemy.py index 3a6c0d1d..f79d495c 100644 --- a/tests/db/sqlalchemy/test_sqlalchemy.py +++ b/tests/db/sqlalchemy/test_sqlalchemy.py @@ -1,73 +1,77 @@ -import pytest from harvester.db.models import Base -from harvester.db.models.models import create_sqlalchemy_engine, create_sqlalchemy_session -from harvester.db.models.models import HarvestSource, HarvestJob, HarvestRecord, HarvestError +from harvester.db.models.models import ( + create_sqlalchemy_engine, + create_sqlalchemy_session, +) +from harvester.db.models.models import ( + HarvestSource, + HarvestJob, + HarvestRecord, + HarvestError, +) from sqlalchemy.orm import close_all_sessions -def test_add_tables(): - - engine = create_sqlalchemy_engine() - session = create_sqlalchemy_session(engine) - Base.metadata.create_all(engine) +def test_add_tables(): + engine = create_sqlalchemy_engine() + Base.metadata.create_all(engine) - close_all_sessions() def test_add_harvest_source(create_test_harvest_source): - engine = create_sqlalchemy_engine() - session = create_sqlalchemy_session(engine) + engine = create_sqlalchemy_engine() + session = create_sqlalchemy_session(engine) harvest_source = HarvestSource(**create_test_harvest_source) - session.add(harvest_source) + session.add(harvest_source) session.commit() for item in session.query(HarvestSource).all(): assert item - close_all_sessions() + close_all_sessions() + def test_add_harvest_job(create_test_harvest_job): - engine = create_sqlalchemy_engine() - session = create_sqlalchemy_session(engine) + engine = create_sqlalchemy_engine() + session = create_sqlalchemy_session(engine) harvest_job = HarvestJob(**create_test_harvest_job) - session.add(harvest_job) + session.add(harvest_job) session.commit() for item in session.query(HarvestJob).all(): assert item - close_all_sessions() + close_all_sessions() + def test_add_harvest_record(create_test_harvest_record): - engine = create_sqlalchemy_engine() - session = create_sqlalchemy_session(engine) + engine = create_sqlalchemy_engine() + session = create_sqlalchemy_session(engine) harvest_record = HarvestRecord(**create_test_harvest_record) - session.add(harvest_record) + session.add(harvest_record) session.commit() for item in session.query(HarvestRecord).all(): assert item - close_all_sessions() + close_all_sessions() + def test_add_harvest_error(create_test_harvest_error): - engine = create_sqlalchemy_engine() - session = create_sqlalchemy_session(engine) + engine = create_sqlalchemy_engine() + session = create_sqlalchemy_session(engine) harvest_error = HarvestError(**create_test_harvest_error) - session.add(harvest_error) + session.add(harvest_error) session.commit() for item in session.query(HarvestError).all(): assert item - close_all_sessions() - - - + close_all_sessions() From 2c1ec64099bcb1e724b7b9331d094c7cd6156b78 Mon Sep 17 00:00:00 2001 From: robert-bryson Date: Wed, 16 Aug 2023 16:02:00 +0000 Subject: [PATCH 18/24] black/isort lint --- harvester/db/models/__init__.py | 2 +- harvester/db/models/models.py | 12 +++++------ tests/db/sqlalchemy/conftest.py | 29 ++++++++++++++++---------- tests/db/sqlalchemy/test_sqlalchemy.py | 17 ++++++--------- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/harvester/db/models/__init__.py b/harvester/db/models/__init__.py index 800b9271..2c542b76 100644 --- a/harvester/db/models/__init__.py +++ b/harvester/db/models/__init__.py @@ -1,6 +1,6 @@ from sqlalchemy import text -from sqlalchemy.orm import DeclarativeBase, mapped_column from sqlalchemy.dialects.postgresql import UUID +from sqlalchemy.orm import DeclarativeBase, mapped_column class Base(DeclarativeBase): diff --git a/harvester/db/models/models.py b/harvester/db/models/models.py index dec12407..bce7ccc7 100644 --- a/harvester/db/models/models.py +++ b/harvester/db/models/models.py @@ -1,16 +1,14 @@ +import enum import os import dotenv - -from harvester.db.models import Base - -from sqlalchemy import ForeignKey, SMALLINT, create_engine -from sqlalchemy import String, DateTime, Enum -from sqlalchemy.dialects.postgresql import JSON, UUID, ARRAY +from sqlalchemy import (SMALLINT, DateTime, Enum, ForeignKey, String, + create_engine) +from sqlalchemy.dialects.postgresql import ARRAY, JSON, UUID from sqlalchemy.orm import mapped_column, sessionmaker from sqlalchemy.sql import func -import enum +from harvester.db.models import Base dotenv.load_dotenv() diff --git a/tests/db/sqlalchemy/conftest.py b/tests/db/sqlalchemy/conftest.py index 45814231..49d3af70 100644 --- a/tests/db/sqlalchemy/conftest.py +++ b/tests/db/sqlalchemy/conftest.py @@ -1,19 +1,24 @@ -import pytest +import pytest -@pytest.fixture + +@pytest.fixture def create_test_harvest_source(): return { "id": "7b295ba9-137e-4d0d-8295-3abac2849a0e", "name": "test_harvest_source", - "notification_emails": [ "something@example.com", "another@test.com" ], + "notification_emails": ["something@example.com", "another@test.com"], "organization_name": "example", "frequency": "weekly", - "config": { "test": 1, "example": True, "something": [ "a", "b" ] }, - "urls": [ "https://path_to_resource/example.json", "https://path_to_resource/another_example.json"], - "schema_validation_type": "dcatus" + "config": {"test": 1, "example": True, "something": ["a", "b"]}, + "urls": [ + "https://path_to_resource/example.json", + "https://path_to_resource/another_example.json", + ], + "schema_validation_type": "dcatus", } -@pytest.fixture + +@pytest.fixture def create_test_harvest_job(): return { "id": "c8837a2f-bd0b-4333-82f5-0b64f126da34", @@ -21,20 +26,22 @@ def create_test_harvest_job(): "status": "INACTIVE", } -@pytest.fixture + +@pytest.fixture def create_test_harvest_record(): return { "job_id": "c8837a2f-bd0b-4333-82f5-0b64f126da34", "source_id": "7b295ba9-137e-4d0d-8295-3abac2849a0e", "status": "ACTIVE", - "s3_path": "https://bucket-name.s3.region-code.amazonaws.com/key-name" + "s3_path": "https://bucket-name.s3.region-code.amazonaws.com/key-name", } + @pytest.fixture def create_test_harvest_error(): return { "job_id": "c8837a2f-bd0b-4333-82f5-0b64f126da34", "record_id": "b5195975-03db-4cf8-b373-52035f0f428f", "record_reported_id": "example", - "severity": "CRITICAL" - } \ No newline at end of file + "severity": "CRITICAL", + } diff --git a/tests/db/sqlalchemy/test_sqlalchemy.py b/tests/db/sqlalchemy/test_sqlalchemy.py index f79d495c..22442328 100644 --- a/tests/db/sqlalchemy/test_sqlalchemy.py +++ b/tests/db/sqlalchemy/test_sqlalchemy.py @@ -1,16 +1,11 @@ -from harvester.db.models import Base -from harvester.db.models.models import ( - create_sqlalchemy_engine, - create_sqlalchemy_session, -) -from harvester.db.models.models import ( - HarvestSource, - HarvestJob, - HarvestRecord, - HarvestError, -) from sqlalchemy.orm import close_all_sessions +from harvester.db.models import Base +from harvester.db.models.models import (HarvestError, HarvestJob, + HarvestRecord, HarvestSource, + create_sqlalchemy_engine, + create_sqlalchemy_session) + def test_add_tables(): engine = create_sqlalchemy_engine() From 7b081f3e1ba66ffd2413b574f93918df310926b9 Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Wed, 16 Aug 2023 21:26:38 -0600 Subject: [PATCH 19/24] remove unneeded imports. move functions to conftest. --- harvester/db/models/models.py | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) diff --git a/harvester/db/models/models.py b/harvester/db/models/models.py index dec12407..ffbd8222 100644 --- a/harvester/db/models/models.py +++ b/harvester/db/models/models.py @@ -1,19 +1,11 @@ -import os - -import dotenv - from harvester.db.models import Base - -from sqlalchemy import ForeignKey, SMALLINT, create_engine +from sqlalchemy import ForeignKey, SMALLINT from sqlalchemy import String, DateTime, Enum from sqlalchemy.dialects.postgresql import JSON, UUID, ARRAY -from sqlalchemy.orm import mapped_column, sessionmaker +from sqlalchemy.orm import mapped_column from sqlalchemy.sql import func - import enum -dotenv.load_dotenv() - class SeverityEnum(enum.Enum): error = "ERROR" @@ -77,17 +69,3 @@ class HarvestRecord(Base): source_id = mapped_column(UUID(as_uuid=True), ForeignKey("harvest_source.id")) status = mapped_column(String) # enum? s3_path = mapped_column(String) - - -def create_sqlalchemy_engine(): - host = os.getenv("POSTGRES_HOST") - user = os.getenv("POSTGRES_USER") - password = os.getenv("POSTGRES_PASSWORD") - db = os.getenv("POSTGRES_DB") - - return create_engine(f"postgresql://{user}:{password}@{host}/{db}") - - -def create_sqlalchemy_session(engine): - Session = sessionmaker(bind=engine) - return Session() From 9c89fd025af15fed306f2086d69f6835b33cecc9 Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Wed, 16 Aug 2023 21:27:20 -0600 Subject: [PATCH 20/24] add new fixtures. update existing fixtures. --- tests/db/sqlalchemy/conftest.py | 103 ++++++++++++++++++++++++++------ 1 file changed, 85 insertions(+), 18 deletions(-) diff --git a/tests/db/sqlalchemy/conftest.py b/tests/db/sqlalchemy/conftest.py index 45814231..40f40af2 100644 --- a/tests/db/sqlalchemy/conftest.py +++ b/tests/db/sqlalchemy/conftest.py @@ -1,40 +1,107 @@ -import pytest +import pytest +import os +import dotenv +from sqlalchemy.orm import sessionmaker +from sqlalchemy import create_engine +from datetime import datetime +from harvester.db.models import Base -@pytest.fixture -def create_test_harvest_source(): +dotenv.load_dotenv() + + +@pytest.fixture(scope="session") +def engine(): + host = os.getenv("POSTGRES_HOST") + user = os.getenv("POSTGRES_USER") + password = os.getenv("POSTGRES_PASSWORD") + db = os.getenv("POSTGRES_DB") + + engine = create_engine(f"postgresql://{user}:{password}@{host}/{db}") + yield engine + engine.dispose() + + +@pytest.fixture(scope="session") +def tables(engine): + Base.metadata.create_all(engine) + yield + Base.metadata.drop_all(engine) + + +@pytest.fixture(scope="session") +def session(engine, tables): + Session = sessionmaker(bind=engine) + session = Session() + yield session + session.rollback() + session.close() + + +@pytest.fixture +def test_harvest_source(): return { - "id": "7b295ba9-137e-4d0d-8295-3abac2849a0e", + "id": "efecc0d6-9dac-4916-8356-150a683e9864", "name": "test_harvest_source", - "notification_emails": [ "something@example.com", "another@test.com" ], + "notification_emails": ["something@example.com", "another@test.com"], "organization_name": "example", "frequency": "weekly", - "config": { "test": 1, "example": True, "something": [ "a", "b" ] }, - "urls": [ "https://path_to_resource/example.json", "https://path_to_resource/another_example.json"], - "schema_validation_type": "dcatus" + "config": {"test": 1, "example": True, "something": ["a", "b"]}, + "urls": [ + "https://path_to_resource/example.json", + "https://path_to_resource/another_example.json", + ], + "schema_validation_type": "dcatus", } -@pytest.fixture -def create_test_harvest_job(): + +@pytest.fixture +def test_harvest_job(): return { "id": "c8837a2f-bd0b-4333-82f5-0b64f126da34", - "source_id": "7b295ba9-137e-4d0d-8295-3abac2849a0e", + "source_id": "efecc0d6-9dac-4916-8356-150a683e9864", "status": "INACTIVE", } -@pytest.fixture -def create_test_harvest_record(): + +@pytest.fixture +def test_harvest_record(): return { + "id": "a2a9f93d-b91e-4df6-bb71-00fca7b519a1", "job_id": "c8837a2f-bd0b-4333-82f5-0b64f126da34", - "source_id": "7b295ba9-137e-4d0d-8295-3abac2849a0e", + "source_id": "efecc0d6-9dac-4916-8356-150a683e9864", "status": "ACTIVE", - "s3_path": "https://bucket-name.s3.region-code.amazonaws.com/key-name" + "s3_path": "https://bucket-name.s3.region-code.amazonaws.com/key-name", } + @pytest.fixture -def create_test_harvest_error(): +def test_harvest_error(): return { + "id": "860f5605-66a0-4d8c-beb4-989b2e18d295", "job_id": "c8837a2f-bd0b-4333-82f5-0b64f126da34", "record_id": "b5195975-03db-4cf8-b373-52035f0f428f", "record_reported_id": "example", - "severity": "CRITICAL" - } \ No newline at end of file + "severity": "CRITICAL", + } + + +@pytest.fixture +def test_update_source(): + return { + "id": "efecc0d6-9dac-4916-8356-150a683e9864", + "urls": ["http://another_path/data.json"], + } + + +@pytest.fixture +def test_update_job(): + return { + "id": "c8837a2f-bd0b-4333-82f5-0b64f126da34", + "status": "ACTIVE", + "extract_started": datetime.utcnow(), + } + + +@pytest.fixture +def test_update_record(): + return {"id": "a2a9f93d-b91e-4df6-bb71-00fca7b519a1", "status": "INVALID"} From 1be0015d0958b1ea3f94b2979e3d11aaca4c5174 Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Wed, 16 Aug 2023 21:28:13 -0600 Subject: [PATCH 21/24] add record update test. parametrize tests. --- tests/db/sqlalchemy/test_sqlalchemy.py | 114 ++++++++++--------------- 1 file changed, 47 insertions(+), 67 deletions(-) diff --git a/tests/db/sqlalchemy/test_sqlalchemy.py b/tests/db/sqlalchemy/test_sqlalchemy.py index f79d495c..7e8d30fb 100644 --- a/tests/db/sqlalchemy/test_sqlalchemy.py +++ b/tests/db/sqlalchemy/test_sqlalchemy.py @@ -1,77 +1,57 @@ -from harvester.db.models import Base -from harvester.db.models.models import ( - create_sqlalchemy_engine, - create_sqlalchemy_session, -) +import pytest from harvester.db.models.models import ( HarvestSource, HarvestJob, HarvestRecord, HarvestError, ) -from sqlalchemy.orm import close_all_sessions - - -def test_add_tables(): - engine = create_sqlalchemy_engine() - Base.metadata.create_all(engine) - - -def test_add_harvest_source(create_test_harvest_source): - engine = create_sqlalchemy_engine() - session = create_sqlalchemy_session(engine) - - harvest_source = HarvestSource(**create_test_harvest_source) - - session.add(harvest_source) - session.commit() - - for item in session.query(HarvestSource).all(): - assert item - - close_all_sessions() - - -def test_add_harvest_job(create_test_harvest_job): - engine = create_sqlalchemy_engine() - session = create_sqlalchemy_session(engine) - - harvest_job = HarvestJob(**create_test_harvest_job) - - session.add(harvest_job) - session.commit() - - for item in session.query(HarvestJob).all(): - assert item - - close_all_sessions() - - -def test_add_harvest_record(create_test_harvest_record): - engine = create_sqlalchemy_engine() - session = create_sqlalchemy_session(engine) - - harvest_record = HarvestRecord(**create_test_harvest_record) - - session.add(harvest_record) +import uuid +from datetime import datetime + +MODELS = [HarvestSource, HarvestJob, HarvestRecord, HarvestError] + + +@pytest.mark.parametrize( + "model, test_record", + zip( + MODELS, + [ + "test_harvest_source", + "test_harvest_job", + "test_harvest_record", + "test_harvest_error", + ], + ), +) +def test_insert_record(session, model, test_record, request): + test_record = request.getfixturevalue(test_record) + session.add(model(**test_record)) session.commit() - for item in session.query(HarvestRecord).all(): - assert item + row = session.query(model).filter(model.id == test_record["id"]).first() + assert row - close_all_sessions() - -def test_add_harvest_error(create_test_harvest_error): - engine = create_sqlalchemy_engine() - session = create_sqlalchemy_session(engine) - - harvest_error = HarvestError(**create_test_harvest_error) - - session.add(harvest_error) - session.commit() - - for item in session.query(HarvestError).all(): - assert item - - close_all_sessions() +@pytest.mark.parametrize( + "model, new_info", + zip( + MODELS[:-1], + [ + "test_update_source", + "test_update_job", + "test_update_record", + ], + ), +) +def test_update_record(session, model, new_info, request): + new_info = request.getfixturevalue(new_info) + session.query(model).filter(model.id == new_info["id"]).update(new_info) + + row = session.query(model).filter(model.id == new_info["id"]).first() + + new_info["id"] = uuid.UUID(new_info["id"]) + row = { + k: v.replace(tzinfo=None) if type(v) == datetime else v + for k, v in row.__dict__.items() + } + assert new_info.items() <= row.items() From a1cfc7f93462144e4a95f5f09c394df0fdb344e1 Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Thu, 17 Aug 2023 09:02:51 -0600 Subject: [PATCH 22/24] prevent error codes from being masked. --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index baddf213..b3086965 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -42,7 +42,7 @@ jobs: run: docker-compose up -d - name: Run Pytest - run: poetry run pytest --junitxml=pytest.xml --cov=harvester | tee pytest-coverage.txt + run: set -o pipefail; poetry run pytest --junitxml=pytest.xml --cov=harvester | tee pytest-coverage.txt - name: Report test coverage uses: MishaKav/pytest-coverage-comment@main From 7bb874c62975e268cd3c4c4f8346b4f0de65aeac Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Thu, 17 Aug 2023 09:03:33 -0600 Subject: [PATCH 23/24] add psycopg3 dialect to connection string. --- tests/db/sqlalchemy/conftest.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/db/sqlalchemy/conftest.py b/tests/db/sqlalchemy/conftest.py index 40f40af2..67a36707 100644 --- a/tests/db/sqlalchemy/conftest.py +++ b/tests/db/sqlalchemy/conftest.py @@ -15,8 +15,9 @@ def engine(): user = os.getenv("POSTGRES_USER") password = os.getenv("POSTGRES_PASSWORD") db = os.getenv("POSTGRES_DB") + dialect = "psycopg" - engine = create_engine(f"postgresql://{user}:{password}@{host}/{db}") + engine = create_engine(f"postgresql+{dialect}://{user}:{password}@{host}/{db}") yield engine engine.dispose() From b76dee49da957addb3773fdf5903881f650e75e7 Mon Sep 17 00:00:00 2001 From: Reid Hewitt Date: Fri, 25 Aug 2023 10:43:42 -0600 Subject: [PATCH 24/24] update to reflect enum in erd.plantuml. --- tests/db/sqlalchemy/conftest.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/db/sqlalchemy/conftest.py b/tests/db/sqlalchemy/conftest.py index 67a36707..24a8b3f4 100644 --- a/tests/db/sqlalchemy/conftest.py +++ b/tests/db/sqlalchemy/conftest.py @@ -60,7 +60,7 @@ def test_harvest_job(): return { "id": "c8837a2f-bd0b-4333-82f5-0b64f126da34", "source_id": "efecc0d6-9dac-4916-8356-150a683e9864", - "status": "INACTIVE", + "status": "CREATE", } @@ -98,7 +98,7 @@ def test_update_source(): def test_update_job(): return { "id": "c8837a2f-bd0b-4333-82f5-0b64f126da34", - "status": "ACTIVE", + "status": "PROCESSING", "extract_started": datetime.utcnow(), }