From 76302f54c614cdc1d2c952ab7b09e89439285905 Mon Sep 17 00:00:00 2001 From: Desi Pilla Date: Mon, 7 Nov 2022 22:57:37 -0500 Subject: [PATCH 01/13] migrate: render setup pt 1 --- build.sh | 8 ++ doritostats/settings.py | 2 + poetry.lock | 220 +++++++++++++++------------------------- pyproject.toml | 1 + render.yaml | 20 ++++ 5 files changed, 110 insertions(+), 141 deletions(-) create mode 100755 build.sh create mode 100644 render.yaml diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..78662fe --- /dev/null +++ b/build.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +# exit on error +set -o errexit + +poetry install + +python manage.py collectstatic --no-input +python manage.py migrate \ No newline at end of file diff --git a/doritostats/settings.py b/doritostats/settings.py index 0eebcba..8a7abe0 100644 --- a/doritostats/settings.py +++ b/doritostats/settings.py @@ -30,6 +30,7 @@ # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True +# DEBUG = 'RENDER' not in os.environ ALLOWED_HOSTS = ['*'] @@ -52,6 +53,7 @@ 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'whitenoise.middleware.WhiteNoiseMiddleware', ] ROOT_URLCONF = 'doritostats.urls' diff --git a/poetry.lock b/poetry.lock index 0f12c9f..362d91f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -21,7 +21,15 @@ python-versions = ">=3.5" dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"] docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"] -tests_no_zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] +tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] + +[[package]] +name = "brotli" +version = "1.0.9" +description = "Python bindings for the Brotli compression library" +category = "main" +optional = false +python-versions = "*" [[package]] name = "certifi" @@ -40,7 +48,7 @@ optional = false python-versions = ">=3.6.0" [package.extras] -unicode_backport = ["unicodedata2"] +unicode-backport = ["unicodedata2"] [[package]] name = "colorama" @@ -152,19 +160,6 @@ category = "main" optional = false python-versions = ">=3.8" -[[package]] -name = "oauthlib" -version = "3.2.2" -description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" -category = "main" -optional = false -python-versions = ">=3.6" - -[package.extras] -rsa = ["cryptography (>=3.0.0)"] -signals = ["blinker (>=1.4.0)"] -signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] - [[package]] name = "packaging" version = "21.3" @@ -297,54 +292,7 @@ urllib3 = ">=1.21.1,<1.27" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"] - -[[package]] -name = "requests-oauthlib" -version = "1.3.1" -description = "OAuthlib authentication support for Requests." -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[package.dependencies] -oauthlib = ">=3.0.0" -requests = ">=2.0.0" - -[package.extras] -rsa = ["oauthlib[signedtoken] (>=3.0.0)"] - -[[package]] -name = "scikit-learn" -version = "0.22.2.post1" -description = "A set of python modules for machine learning and data mining" -category = "main" -optional = false -python-versions = ">=3.5" - -[package.dependencies] -joblib = ">=0.11" -numpy = ">=1.11.0" -scipy = ">=0.17.0" - -[package.extras] -alldeps = ["numpy (>=1.11.0)", "scipy (>=0.17.0)"] - -[[package]] -name = "scipy" -version = "1.9.3" -description = "Fundamental algorithms for scientific computing in Python" -category = "main" -optional = false -python-versions = ">=3.8" - -[package.dependencies] -numpy = ">=1.18.5,<1.26.0" - -[package.extras] -dev = ["flake8", "mypy", "pycodestyle", "typing_extensions"] -doc = ["matplotlib (>2)", "numpydoc", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-panels (>=0.5.2)", "sphinx-tabs"] -test = ["asv", "gmpy2", "mpmath", "pytest", "pytest-cov", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "setuptools" @@ -394,25 +342,6 @@ category = "main" optional = false python-versions = ">=3.7" -[[package]] -name = "tweepy" -version = "4.10.1" -description = "Twitter library for Python" -category = "main" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -oauthlib = ">=3.2.0,<4" -requests = ">=2.27.0,<3" -requests-oauthlib = ">=1.2.0,<2" - -[package.extras] -async = ["aiohttp (>=3.7.3,<4)", "async-lru (>=1.0.3,<2)"] -dev = ["coverage (>=4.4.2)", "coveralls (>=2.1.0)", "tox (>=3.21.0)"] -socks = ["requests[socks] (>=2.27.0,<3)"] -test = ["vcrpy (>=1.10.3)"] - [[package]] name = "tzdata" version = "2022.5" @@ -442,13 +371,16 @@ category = "main" optional = false python-versions = ">=3.7" +[package.dependencies] +Brotli = {version = "*", optional = true, markers = "extra == \"brotli\""} + [package.extras] brotli = ["Brotli"] [metadata] lock-version = "1.1" python-versions = "^3.10" -content-hash = "16fb1eb561c10263f7c37d8d96955bce7ff9117b2cc30271e096ef2227607cf0" +content-hash = "a175faceefe83e9a19dac3727b986ffc9ef0cf9acc8e0be846010e2d5692985b" [metadata.files] asgiref = [ @@ -459,6 +391,70 @@ attrs = [ {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, ] +brotli = [ + {file = "Brotli-1.0.9-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:268fe94547ba25b58ebc724680609c8ee3e5a843202e9a381f6f9c5e8bdb5c70"}, + {file = "Brotli-1.0.9-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:c2415d9d082152460f2bd4e382a1e85aed233abc92db5a3880da2257dc7daf7b"}, + {file = "Brotli-1.0.9-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5913a1177fc36e30fcf6dc868ce23b0453952c78c04c266d3149b3d39e1410d6"}, + {file = "Brotli-1.0.9-cp27-cp27m-win32.whl", hash = "sha256:afde17ae04d90fbe53afb628f7f2d4ca022797aa093e809de5c3cf276f61bbfa"}, + {file = "Brotli-1.0.9-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:7cb81373984cc0e4682f31bc3d6be9026006d96eecd07ea49aafb06897746452"}, + {file = "Brotli-1.0.9-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:db844eb158a87ccab83e868a762ea8024ae27337fc7ddcbfcddd157f841fdfe7"}, + {file = "Brotli-1.0.9-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9744a863b489c79a73aba014df554b0e7a0fc44ef3f8a0ef2a52919c7d155031"}, + {file = "Brotli-1.0.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a72661af47119a80d82fa583b554095308d6a4c356b2a554fdc2799bc19f2a43"}, + {file = "Brotli-1.0.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ee83d3e3a024a9618e5be64648d6d11c37047ac48adff25f12fa4226cf23d1c"}, + {file = "Brotli-1.0.9-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:19598ecddd8a212aedb1ffa15763dd52a388518c4550e615aed88dc3753c0f0c"}, + {file = "Brotli-1.0.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:44bb8ff420c1d19d91d79d8c3574b8954288bdff0273bf788954064d260d7ab0"}, + {file = "Brotli-1.0.9-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e23281b9a08ec338469268f98f194658abfb13658ee98e2b7f85ee9dd06caa91"}, + {file = "Brotli-1.0.9-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:3496fc835370da351d37cada4cf744039616a6db7d13c430035e901443a34daa"}, + {file = "Brotli-1.0.9-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b83bb06a0192cccf1eb8d0a28672a1b79c74c3a8a5f2619625aeb6f28b3a82bb"}, + {file = "Brotli-1.0.9-cp310-cp310-win32.whl", hash = "sha256:26d168aac4aaec9a4394221240e8a5436b5634adc3cd1cdf637f6645cecbf181"}, + {file = "Brotli-1.0.9-cp310-cp310-win_amd64.whl", hash = "sha256:622a231b08899c864eb87e85f81c75e7b9ce05b001e59bbfbf43d4a71f5f32b2"}, + {file = "Brotli-1.0.9-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:c83aa123d56f2e060644427a882a36b3c12db93727ad7a7b9efd7d7f3e9cc2c4"}, + {file = "Brotli-1.0.9-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:6b2ae9f5f67f89aade1fab0f7fd8f2832501311c363a21579d02defa844d9296"}, + {file = "Brotli-1.0.9-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:68715970f16b6e92c574c30747c95cf8cf62804569647386ff032195dc89a430"}, + {file = "Brotli-1.0.9-cp35-cp35m-win32.whl", hash = "sha256:defed7ea5f218a9f2336301e6fd379f55c655bea65ba2476346340a0ce6f74a1"}, + {file = "Brotli-1.0.9-cp35-cp35m-win_amd64.whl", hash = "sha256:88c63a1b55f352b02c6ffd24b15ead9fc0e8bf781dbe070213039324922a2eea"}, + {file = "Brotli-1.0.9-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:503fa6af7da9f4b5780bb7e4cbe0c639b010f12be85d02c99452825dd0feef3f"}, + {file = "Brotli-1.0.9-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:40d15c79f42e0a2c72892bf407979febd9cf91f36f495ffb333d1d04cebb34e4"}, + {file = "Brotli-1.0.9-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:93130612b837103e15ac3f9cbacb4613f9e348b58b3aad53721d92e57f96d46a"}, + {file = "Brotli-1.0.9-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87fdccbb6bb589095f413b1e05734ba492c962b4a45a13ff3408fa44ffe6479b"}, + {file = "Brotli-1.0.9-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:6d847b14f7ea89f6ad3c9e3901d1bc4835f6b390a9c71df999b0162d9bb1e20f"}, + {file = "Brotli-1.0.9-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:495ba7e49c2db22b046a53b469bbecea802efce200dffb69b93dd47397edc9b6"}, + {file = "Brotli-1.0.9-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:4688c1e42968ba52e57d8670ad2306fe92e0169c6f3af0089be75bbac0c64a3b"}, + {file = "Brotli-1.0.9-cp36-cp36m-win32.whl", hash = "sha256:61a7ee1f13ab913897dac7da44a73c6d44d48a4adff42a5701e3239791c96e14"}, + {file = "Brotli-1.0.9-cp36-cp36m-win_amd64.whl", hash = "sha256:1c48472a6ba3b113452355b9af0a60da5c2ae60477f8feda8346f8fd48e3e87c"}, + {file = "Brotli-1.0.9-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3b78a24b5fd13c03ee2b7b86290ed20efdc95da75a3557cc06811764d5ad1126"}, + {file = "Brotli-1.0.9-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:9d12cf2851759b8de8ca5fde36a59c08210a97ffca0eb94c532ce7b17c6a3d1d"}, + {file = "Brotli-1.0.9-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:6c772d6c0a79ac0f414a9f8947cc407e119b8598de7621f39cacadae3cf57d12"}, + {file = "Brotli-1.0.9-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29d1d350178e5225397e28ea1b7aca3648fcbab546d20e7475805437bfb0a130"}, + {file = "Brotli-1.0.9-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7bbff90b63328013e1e8cb50650ae0b9bac54ffb4be6104378490193cd60f85a"}, + {file = "Brotli-1.0.9-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:ec1947eabbaf8e0531e8e899fc1d9876c179fc518989461f5d24e2223395a9e3"}, + {file = "Brotli-1.0.9-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:12effe280b8ebfd389022aa65114e30407540ccb89b177d3fbc9a4f177c4bd5d"}, + {file = "Brotli-1.0.9-cp37-cp37m-win32.whl", hash = "sha256:f909bbbc433048b499cb9db9e713b5d8d949e8c109a2a548502fb9aa8630f0b1"}, + {file = "Brotli-1.0.9-cp37-cp37m-win_amd64.whl", hash = "sha256:97f715cf371b16ac88b8c19da00029804e20e25f30d80203417255d239f228b5"}, + {file = "Brotli-1.0.9-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e16eb9541f3dd1a3e92b89005e37b1257b157b7256df0e36bd7b33b50be73bcb"}, + {file = "Brotli-1.0.9-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:160c78292e98d21e73a4cc7f76a234390e516afcd982fa17e1422f7c6a9ce9c8"}, + {file = "Brotli-1.0.9-cp38-cp38-manylinux1_i686.whl", hash = "sha256:b663f1e02de5d0573610756398e44c130add0eb9a3fc912a09665332942a2efb"}, + {file = "Brotli-1.0.9-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:5b6ef7d9f9c38292df3690fe3e302b5b530999fa90014853dcd0d6902fb59f26"}, + {file = "Brotli-1.0.9-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a674ac10e0a87b683f4fa2b6fa41090edfd686a6524bd8dedbd6138b309175c"}, + {file = "Brotli-1.0.9-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e2d9e1cbc1b25e22000328702b014227737756f4b5bf5c485ac1d8091ada078b"}, + {file = "Brotli-1.0.9-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b336c5e9cf03c7be40c47b5fd694c43c9f1358a80ba384a21969e0b4e66a9b17"}, + {file = "Brotli-1.0.9-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:85f7912459c67eaab2fb854ed2bc1cc25772b300545fe7ed2dc03954da638649"}, + {file = "Brotli-1.0.9-cp38-cp38-win32.whl", hash = "sha256:35a3edbe18e876e596553c4007a087f8bcfd538f19bc116917b3c7522fca0429"}, + {file = "Brotli-1.0.9-cp38-cp38-win_amd64.whl", hash = "sha256:269a5743a393c65db46a7bb982644c67ecba4b8d91b392403ad8a861ba6f495f"}, + {file = "Brotli-1.0.9-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2aad0e0baa04517741c9bb5b07586c642302e5fb3e75319cb62087bd0995ab19"}, + {file = "Brotli-1.0.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5cb1e18167792d7d21e21365d7650b72d5081ed476123ff7b8cac7f45189c0c7"}, + {file = "Brotli-1.0.9-cp39-cp39-manylinux1_i686.whl", hash = "sha256:16d528a45c2e1909c2798f27f7bf0a3feec1dc9e50948e738b961618e38b6a7b"}, + {file = "Brotli-1.0.9-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:56d027eace784738457437df7331965473f2c0da2c70e1a1f6fdbae5402e0389"}, + {file = "Brotli-1.0.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9bf919756d25e4114ace16a8ce91eb340eb57a08e2c6950c3cebcbe3dff2a5e7"}, + {file = "Brotli-1.0.9-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:e4c4e92c14a57c9bd4cb4be678c25369bf7a092d55fd0866f759e425b9660806"}, + {file = "Brotli-1.0.9-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e48f4234f2469ed012a98f4b7874e7f7e173c167bed4934912a29e03167cf6b1"}, + {file = "Brotli-1.0.9-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9ed4c92a0665002ff8ea852353aeb60d9141eb04109e88928026d3c8a9e5433c"}, + {file = "Brotli-1.0.9-cp39-cp39-win32.whl", hash = "sha256:cfc391f4429ee0a9370aa93d812a52e1fee0f37a81861f4fdd1f4fb28e8547c3"}, + {file = "Brotli-1.0.9-cp39-cp39-win_amd64.whl", hash = "sha256:854c33dad5ba0fbd6ab69185fec8dab89e13cda6b7d191ba111987df74f38761"}, + {file = "Brotli-1.0.9-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9749a124280a0ada4187a6cfd1ffd35c350fb3af79c706589d98e088c5044267"}, + {file = "Brotli-1.0.9-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:76ffebb907bec09ff511bb3acc077695e2c32bc2142819491579a695f77ffd4d"}, + {file = "Brotli-1.0.9.zip", hash = "sha256:4d1b810aa0ed773f81dceda2cc7b403d01057458730e309856356d4ef4188438"}, +] certifi = [ {file = "certifi-2022.9.24-py3-none-any.whl", hash = "sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382"}, {file = "certifi-2022.9.24.tar.gz", hash = "sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14"}, @@ -532,10 +528,6 @@ numpy = [ {file = "numpy-1.23.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4d52914c88b4930dafb6c48ba5115a96cbab40f45740239d9f4159c4ba779962"}, {file = "numpy-1.23.4.tar.gz", hash = "sha256:ed2cc92af0efad20198638c69bb0fc2870a58dabfba6eb722c933b48556c686c"}, ] -oauthlib = [ - {file = "oauthlib-3.2.2-py3-none-any.whl", hash = "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca"}, - {file = "oauthlib-3.2.2.tar.gz", hash = "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918"}, -] packaging = [ {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, @@ -662,56 +654,6 @@ requests = [ {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, ] -requests-oauthlib = [ - {file = "requests-oauthlib-1.3.1.tar.gz", hash = "sha256:75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a"}, - {file = "requests_oauthlib-1.3.1-py2.py3-none-any.whl", hash = "sha256:2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5"}, -] -scikit-learn = [ - {file = "scikit-learn-0.22.2.post1.tar.gz", hash = "sha256:57538d138ba54407d21e27c306735cbd42a6aae0df6a5a30c7a6edde46b0017d"}, - {file = "scikit_learn-0.22.2.post1-cp35-cp35m-macosx_10_9_intel.whl", hash = "sha256:267ad874b54c67b479c3b45eb132ef4a56ab2b27963410624a413a4e2a3fc388"}, - {file = "scikit_learn-0.22.2.post1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:8ed66ab27b3d68e57bb1f315fc35e595a5c4a1f108c3420943de4d18fc40e615"}, - {file = "scikit_learn-0.22.2.post1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:4990f0e166292d2a0f0ee528233723bcfd238bfdb3ec2512a9e27f5695362f35"}, - {file = "scikit_learn-0.22.2.post1-cp35-cp35m-win32.whl", hash = "sha256:ddd3bf82977908ff69303115dd5697606e669d8a7eafd7d83bb153ef9e11bd5e"}, - {file = "scikit_learn-0.22.2.post1-cp35-cp35m-win_amd64.whl", hash = "sha256:349ba3d837fb3f7cb2b91486c43713e4b7de17f9e852f165049b1b7ac2f81478"}, - {file = "scikit_learn-0.22.2.post1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:73207dca6e70f8f611f28add185cf3a793c8232a1722f21d82259560dc35cd50"}, - {file = "scikit_learn-0.22.2.post1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:de9933297f8659ee3bb330eafdd80d74cd73d5dab39a9026b65a4156bc479063"}, - {file = "scikit_learn-0.22.2.post1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:6043e2c4ccfc68328c331b0fc19691be8fb02bd76d694704843a23ad651de902"}, - {file = "scikit_learn-0.22.2.post1-cp36-cp36m-win32.whl", hash = "sha256:8416150ab505f1813da02cdbdd9f367b05bfc75cf251235015bb09f8674358a0"}, - {file = "scikit_learn-0.22.2.post1-cp36-cp36m-win_amd64.whl", hash = "sha256:a7f8aa93f61aaad080b29a9018db93ded0586692c03ddf2122e47dd1d3a14e1b"}, - {file = "scikit_learn-0.22.2.post1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:eb4c9f0019abb374a2e55150f070a333c8f990b850d1eb4dfc2765fc317ffc7c"}, - {file = "scikit_learn-0.22.2.post1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:ffce8abfdcd459e72e5b91727b247b401b22253cbd18d251f842a60e26262d6f"}, - {file = "scikit_learn-0.22.2.post1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:84e759a766c315deb5c85139ff879edbb0aabcddb9358acf499564ed1c21e337"}, - {file = "scikit_learn-0.22.2.post1-cp37-cp37m-win32.whl", hash = "sha256:5b722e8bb708f254af028dc2da86d23df5371cba57e24f889b672e7b15423caa"}, - {file = "scikit_learn-0.22.2.post1-cp37-cp37m-win_amd64.whl", hash = "sha256:3f4d8eea3531d3eaf613fa33f711113dfff6021d57a49c9d319af4afb46f72f0"}, - {file = "scikit_learn-0.22.2.post1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d1bb83d6c51a81193d8a6b5f31930e2959c0e1019d49bdd03f54163735dae4b"}, - {file = "scikit_learn-0.22.2.post1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:ea91a70a992ada395efc3d510cf011dc2d99dc9037bb38cd1cb00e14745005f5"}, - {file = "scikit_learn-0.22.2.post1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:83fc104a799cb340054e485c25dfeee712b36f5638fb374eba45a9db490f16ff"}, - {file = "scikit_learn-0.22.2.post1-cp38-cp38-win32.whl", hash = "sha256:1bf45e62799b6938357cfce19f72e3751448c4b27010e4f98553da669b5bbd86"}, - {file = "scikit_learn-0.22.2.post1-cp38-cp38-win_amd64.whl", hash = "sha256:672ea38eb59b739a8907ec063642b486bcb5a2073dda5b72b7983eeaf1fd67c1"}, -] -scipy = [ - {file = "scipy-1.9.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1884b66a54887e21addf9c16fb588720a8309a57b2e258ae1c7986d4444d3bc0"}, - {file = "scipy-1.9.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:83b89e9586c62e787f5012e8475fbb12185bafb996a03257e9675cd73d3736dd"}, - {file = "scipy-1.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a72d885fa44247f92743fc20732ae55564ff2a519e8302fb7e18717c5355a8b"}, - {file = "scipy-1.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d01e1dd7b15bd2449c8bfc6b7cc67d630700ed655654f0dfcf121600bad205c9"}, - {file = "scipy-1.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:68239b6aa6f9c593da8be1509a05cb7f9efe98b80f43a5861cd24c7557e98523"}, - {file = "scipy-1.9.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b41bc822679ad1c9a5f023bc93f6d0543129ca0f37c1ce294dd9d386f0a21096"}, - {file = "scipy-1.9.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:90453d2b93ea82a9f434e4e1cba043e779ff67b92f7a0e85d05d286a3625df3c"}, - {file = "scipy-1.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83c06e62a390a9167da60bedd4575a14c1f58ca9dfde59830fc42e5197283dab"}, - {file = "scipy-1.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abaf921531b5aeaafced90157db505e10345e45038c39e5d9b6c7922d68085cb"}, - {file = "scipy-1.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:06d2e1b4c491dc7d8eacea139a1b0b295f74e1a1a0f704c375028f8320d16e31"}, - {file = "scipy-1.9.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a04cd7d0d3eff6ea4719371cbc44df31411862b9646db617c99718ff68d4840"}, - {file = "scipy-1.9.3-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:545c83ffb518094d8c9d83cce216c0c32f8c04aaf28b92cc8283eda0685162d5"}, - {file = "scipy-1.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d54222d7a3ba6022fdf5773931b5d7c56efe41ede7f7128c7b1637700409108"}, - {file = "scipy-1.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cff3a5295234037e39500d35316a4c5794739433528310e117b8a9a0c76d20fc"}, - {file = "scipy-1.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:2318bef588acc7a574f5bfdff9c172d0b1bf2c8143d9582e05f878e580a3781e"}, - {file = "scipy-1.9.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d644a64e174c16cb4b2e41dfea6af722053e83d066da7343f333a54dae9bc31c"}, - {file = "scipy-1.9.3-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:da8245491d73ed0a994ed9c2e380fd058ce2fa8a18da204681f2fe1f57f98f95"}, - {file = "scipy-1.9.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4db5b30849606a95dcf519763dd3ab6fe9bd91df49eba517359e450a7d80ce2e"}, - {file = "scipy-1.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c68db6b290cbd4049012990d7fe71a2abd9ffbe82c0056ebe0f01df8be5436b0"}, - {file = "scipy-1.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:5b88e6d91ad9d59478fafe92a7c757d00c59e3bdc3331be8ada76a4f8d683f58"}, - {file = "scipy-1.9.3.tar.gz", hash = "sha256:fbc5c05c85c1a02be77b1ff591087c83bc44579c6d2bd9fb798bb64ea5e1a027"}, -] setuptools = [ {file = "setuptools-65.5.0-py3-none-any.whl", hash = "sha256:f62ea9da9ed6289bfe868cd6845968a2c854d1427f8548d52cae02a42b4f0356"}, {file = "setuptools-65.5.0.tar.gz", hash = "sha256:512e5536220e38146176efb833d4a62aa726b7bbff82cfbc8ba9eaa3996e0b17"}, @@ -732,10 +674,6 @@ tomli = [ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] -tweepy = [ - {file = "tweepy-4.10.1-py3-none-any.whl", hash = "sha256:0a21396b646af4fcee69762d2908c104e1fe2e2c4e1dfd6e6078a41b38771382"}, - {file = "tweepy-4.10.1.tar.gz", hash = "sha256:310193775d7fc381abd6f37021a9af27f7e9edfcce5ec51bd73ea5f30c21fa61"}, -] tzdata = [ {file = "tzdata-2022.5-py2.py3-none-any.whl", hash = "sha256:323161b22b7802fdc78f20ca5f6073639c64f1a7227c40cd3e19fd1d0ce6650a"}, {file = "tzdata-2022.5.tar.gz", hash = "sha256:e15b2b3005e2546108af42a0eb4ccab4d9e225e2dfbf4f77aad50c70a4b1f3ab"}, diff --git a/pyproject.toml b/pyproject.toml index d4e7744..9a17aa6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,6 +21,7 @@ Django = "^4.1.2" django-on-heroku = "^1.1.2" joblib = "^1.2.0" gunicorn = "^20.1.0" +whitenoise = {extras = ["brotli"], version = "^6.2.0"} [build-system] requires = ["poetry-core"] diff --git a/render.yaml b/render.yaml new file mode 100644 index 0000000..7616deb --- /dev/null +++ b/render.yaml @@ -0,0 +1,20 @@ +databases: + - name: doritostats + databaseName: doritostats + user: doritostats + +services: + - type: web + name: doritostats + env: python + buildCommand: "./build.sh" + startCommand: "gunicorn mysite.wsgi:application" + envVars: + - key: DATABASE_URL + fromDatabase: + name: doritostats + property: connectionString + - key: SECRET_KEY + generateValue: true + - key: WEB_CONCURRENCY + value: 4 From f4e7f3098367a66e275813918b2b9ec6f953c320 Mon Sep 17 00:00:00 2001 From: Desi Pilla Date: Fri, 11 Nov 2022 09:29:46 -0500 Subject: [PATCH 02/13] update settings --- doritostats/settings.py | 101 ++++++++++++++++------------- poetry.lock | 138 ++++++++++++++++++++++------------------ pyproject.toml | 6 ++ 3 files changed, 138 insertions(+), 107 deletions(-) diff --git a/doritostats/settings.py b/doritostats/settings.py index 8a7abe0..faab058 100644 --- a/doritostats/settings.py +++ b/doritostats/settings.py @@ -14,9 +14,11 @@ from pathlib import Path import django_on_heroku +import dj_database_url # Initialise environment variables import dotenv + dotenv.load_dotenv() # Build paths inside the project like this: BASE_DIR / 'subdir'. @@ -26,65 +28,74 @@ # See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = os.getenv('DJANGO_SECRET_KEY') +SECRET_KEY = os.getenv("DJANGO_SECRET_KEY") # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True # DEBUG = 'RENDER' not in os.environ -ALLOWED_HOSTS = ['*'] +ALLOWED_HOSTS = ["*"] +# RENDER_EXTERNAL_HOSTNAME = os.environ.get("RENDER_EXTERNAL_HOSTNAME") +# if RENDER_EXTERNAL_HOSTNAME: +# ALLOWED_HOSTS.append(RENDER_EXTERNAL_HOSTNAME) + # Application definition INSTALLED_APPS = [ - 'fantasy_stats.apps.FantasyStatsConfig', - 'django.contrib.admin', - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.messages', - 'django.contrib.staticfiles', + "fantasy_stats.apps.FantasyStatsConfig", + "django.contrib.admin", + "django.contrib.auth", + "django.contrib.contenttypes", + "django.contrib.sessions", + "django.contrib.messages", + "django.contrib.staticfiles", ] MIDDLEWARE = [ - 'django.middleware.security.SecurityMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', - 'whitenoise.middleware.WhiteNoiseMiddleware', + "django.middleware.security.SecurityMiddleware", + "django.contrib.sessions.middleware.SessionMiddleware", + "django.middleware.common.CommonMiddleware", + "django.middleware.csrf.CsrfViewMiddleware", + "django.contrib.auth.middleware.AuthenticationMiddleware", + "django.contrib.messages.middleware.MessageMiddleware", + "django.middleware.clickjacking.XFrameOptionsMiddleware", + "whitenoise.middleware.WhiteNoiseMiddleware", ] -ROOT_URLCONF = 'doritostats.urls' +ROOT_URLCONF = "doritostats.urls" TEMPLATES = [ { - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [os.path.join(BASE_DIR, 'templates')], - 'APP_DIRS': True, - 'OPTIONS': { - 'context_processors': [ - 'django.template.context_processors.debug', - 'django.template.context_processors.request', - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', + "BACKEND": "django.template.backends.django.DjangoTemplates", + "DIRS": [os.path.join(BASE_DIR, "templates")], + "APP_DIRS": True, + "OPTIONS": { + "context_processors": [ + "django.template.context_processors.debug", + "django.template.context_processors.request", + "django.contrib.auth.context_processors.auth", + "django.contrib.messages.context_processors.messages", ], }, }, ] -WSGI_APPLICATION = 'doritostats.wsgi.application' +WSGI_APPLICATION = "doritostats.wsgi.application" # Database # https://docs.djangoproject.com/en/3.2/ref/settings/#databases -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': BASE_DIR / 'db.sqlite3', - } +# DATABASES = { # Heroku +# "default": { +# "ENGINE": "django.db.backends.sqlite3", +# "NAME": BASE_DIR / "db.sqlite3", +# } +# } +DATABASES = { # Render + "default": dj_database_url.config( + default="postgresql://postgres:postgres@localhost:5432/mysite", conn_max_age=600 + ) } @@ -93,16 +104,16 @@ AUTH_PASSWORD_VALIDATORS = [ { - 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator", }, { - 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator", }, { - 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + "NAME": "django.contrib.auth.password_validation.CommonPasswordValidator", }, { - 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator", }, ] @@ -110,9 +121,9 @@ # Internationalization # https://docs.djangoproject.com/en/3.2/topics/i18n/ -LANGUAGE_CODE = 'en-us' +LANGUAGE_CODE = "en-us" -TIME_ZONE = 'America/New_York' +TIME_ZONE = "America/New_York" USE_I18N = True @@ -124,14 +135,16 @@ # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.2/howto/static-files/ -STATIC_URL = '/static/' -STATIC_ROOT = os.path.join(BASE_DIR, 'static') +STATIC_URL = "/static/" +STATIC_ROOT = os.path.join(BASE_DIR, "static") STATICFILES_DIRS = [ - 'static/', + "static/", ] -django_on_heroku.settings(locals()) +if not DEBUG: + STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage" +# django_on_heroku.settings(locals()) # Default primary key field type # https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field -DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' +DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" diff --git a/poetry.lock b/poetry.lock index 362d91f..deac7af 100644 --- a/poetry.lock +++ b/poetry.lock @@ -21,7 +21,7 @@ python-versions = ">=3.5" dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"] docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"] -tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] +tests_no_zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] [[package]] name = "brotli" @@ -48,7 +48,7 @@ optional = false python-versions = ">=3.6.0" [package.extras] -unicode-backport = ["unicodedata2"] +unicode_backport = ["unicodedata2"] [[package]] name = "colorama" @@ -201,7 +201,7 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "psycopg2-binary" -version = "2.9.4" +version = "2.9.5" description = "psycopg2 - Python-PostgreSQL Database Adapter" category = "main" optional = false @@ -292,7 +292,7 @@ urllib3 = ">=1.21.1,<1.27" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] +use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "setuptools" @@ -566,65 +566,77 @@ pluggy = [ {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, ] psycopg2-binary = [ - {file = "psycopg2-binary-2.9.4.tar.gz", hash = "sha256:a6a2d3d75d8698dee492f4af7ad07606d0734e581edf9e2ce2f74b6fce90f42e"}, - {file = "psycopg2_binary-2.9.4-cp310-cp310-macosx_10_15_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:e72491d72870c3cb2f0d6f4174485533caec0e9ed7e717e2859b7cc7ff2ae1c4"}, - {file = "psycopg2_binary-2.9.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2903bf90b1e6bfc9bbfc94a1db0b50ffa9830a0ca4c042fbc38d93890c02ce08"}, - {file = "psycopg2_binary-2.9.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:15e0ac0ed8a85f6049e836e95ddee627766561c85be8d23f4b3edb6ddbaa7310"}, - {file = "psycopg2_binary-2.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:edf0a66ce9517365c7dcfed597894d8dd1f27b59e550b77a089054101435213b"}, - {file = "psycopg2_binary-2.9.4-cp310-cp310-manylinux_2_24_aarch64.whl", hash = "sha256:61c6a258469c66412ae8358a0501df6ccb3bb48aa9c43b56624571ff9767f91d"}, - {file = "psycopg2_binary-2.9.4-cp310-cp310-manylinux_2_24_ppc64le.whl", hash = "sha256:704f1fcdc5b606b70563ea696c69bda90caee3a2f45ffc9cee60a901b394a79f"}, - {file = "psycopg2_binary-2.9.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:30200b07779446760813eef06098ec6d084131e4365b4e023eb43100de758b11"}, - {file = "psycopg2_binary-2.9.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:f5fbb3b325c65010e04af206a9243e2df8606736c510c7f268aca6a93e5294a9"}, - {file = "psycopg2_binary-2.9.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:52383e932e6de5595963f9178cf2af7b9e1f3daacf5135b9c0e21aabbc5bf7c4"}, - {file = "psycopg2_binary-2.9.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0d8e0c9eec79fe1ae66691e06e3cc714da6fbd77981209bf32fa823c03dbaff8"}, - {file = "psycopg2_binary-2.9.4-cp310-cp310-win32.whl", hash = "sha256:161dc52a617f0bb610a87d391cb2e77fe65b89ebfbd752f4f3217dde701ea196"}, - {file = "psycopg2_binary-2.9.4-cp310-cp310-win_amd64.whl", hash = "sha256:33ac8b4754e6b6b21f3ee180da169d8526d91aee9408ec1fc573c16ab32b0207"}, - {file = "psycopg2_binary-2.9.4-cp36-cp36m-macosx_10_14_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:7751b11cd7f6b952b4b5ec5b93b5be9ce20faba786c18c25c354f5d8717a173c"}, - {file = "psycopg2_binary-2.9.4-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b216a15e13f6e763db40ac3beb74b588650bc030d10a78fde182b88d273b82b5"}, - {file = "psycopg2_binary-2.9.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0eae72190be519bf2629062eab7ac8d4ceec5bd132953cefa1596584d86964fe"}, - {file = "psycopg2_binary-2.9.4-cp36-cp36m-manylinux_2_24_aarch64.whl", hash = "sha256:fb639a0e65dce4a9cccbcbdd8ddd0c8c6ab10bca317b827a5c52ac3c3a4ad60a"}, - {file = "psycopg2_binary-2.9.4-cp36-cp36m-manylinux_2_24_ppc64le.whl", hash = "sha256:80ed219ce6cb21a5b53ead0edf5b56b6d23de4cb95389ac606f47670474f4816"}, - {file = "psycopg2_binary-2.9.4-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:f78cafa25731e0b5aa16fe20bea1abf643d4e853f6bfb8a64421b06b878e2b88"}, - {file = "psycopg2_binary-2.9.4-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:34fd249275faa782c3a2016e86ac2330636ac58d731a1580e7d686e3976b9536"}, - {file = "psycopg2_binary-2.9.4-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:24d627ed69e754c48dd142a914124858c600b4108c92546eb0ba822e63c0c6e2"}, - {file = "psycopg2_binary-2.9.4-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:65d5f4e70a2d3fbaa1349236968792611088f3f2dccead36c1626e1d183cc327"}, - {file = "psycopg2_binary-2.9.4-cp36-cp36m-win32.whl", hash = "sha256:ae5b41dbf7731b838021923edfbe3b5ccdec84d92d5795f5229c0d08d32509d9"}, - {file = "psycopg2_binary-2.9.4-cp36-cp36m-win_amd64.whl", hash = "sha256:97e4f3d9b17d12e7c00cb1c29c0040044135cd5146838da4274615dbe0baae78"}, - {file = "psycopg2_binary-2.9.4-cp37-cp37m-macosx_10_15_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:8660112e9127a019969a23c878e1b4a419e8a6427f9a9050c19830f152628c8a"}, - {file = "psycopg2_binary-2.9.4-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea8d5cd689fa7225d81ae0a049ba03e0165f4ed9ca083b19a405be9ad0b36845"}, - {file = "psycopg2_binary-2.9.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63edc507f8cbfbb5903adb75bad8a99f9798981c854df9119dbebab2ec3ee0e1"}, - {file = "psycopg2_binary-2.9.4-cp37-cp37m-manylinux_2_24_aarch64.whl", hash = "sha256:25e0517ad7ee3c5c3c69dbe3c1d95504c811e42f452b39a3505d0763b1f6caa0"}, - {file = "psycopg2_binary-2.9.4-cp37-cp37m-manylinux_2_24_ppc64le.whl", hash = "sha256:0a9465f0aa36480c8e7614991cbe8ca8aa16b0517c5398a49648ce345e446c19"}, - {file = "psycopg2_binary-2.9.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:aff258af03dda9a990960a53759d10c3a9b936837c71fe2f3b581acd356b9121"}, - {file = "psycopg2_binary-2.9.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:576b9dfbcd154a0e8b5d9dae6316d037450e64a3b31df87dec71d88e2a2d5e5f"}, - {file = "psycopg2_binary-2.9.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:044b6ab68613de7ea1e63856627deea091bfea09dea5ab4f050b13250fd18cab"}, - {file = "psycopg2_binary-2.9.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:7b47643c45e7619788c081d42e1d9d98c7c8a4933010a9967d097cc3c4c29f41"}, - {file = "psycopg2_binary-2.9.4-cp37-cp37m-win32.whl", hash = "sha256:82df4a8600999c4c0cb7d6614df1bbdb3c74732f63e79f78487893ffbed3d083"}, - {file = "psycopg2_binary-2.9.4-cp37-cp37m-win_amd64.whl", hash = "sha256:8d7bc25729bb6d96b44f49ad78fde0e27a1a867cb205322b7e5f5b49e04d6f1f"}, - {file = "psycopg2_binary-2.9.4-cp38-cp38-macosx_10_15_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:2f1ded23d17af0d738e7e78087f0b88a53228887845b1989b03af4dfd3fef703"}, - {file = "psycopg2_binary-2.9.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f225784812b2b57d340f2eb0d2cebef989dcc82c288f5553e28ee9767c7c8344"}, - {file = "psycopg2_binary-2.9.4-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:89a86c2b35460700d04b4d6461153ab39ee85af5a5385acac9563a8310e6320a"}, - {file = "psycopg2_binary-2.9.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59a3010d566a48b919490a982f6807f68842686941dc12d568e129d9cd7703d6"}, - {file = "psycopg2_binary-2.9.4-cp38-cp38-manylinux_2_24_aarch64.whl", hash = "sha256:02cde837df012fa5d579b9cf4bc8e1feb460f38d61f7a4ab4a919d55a9f6eeef"}, - {file = "psycopg2_binary-2.9.4-cp38-cp38-manylinux_2_24_ppc64le.whl", hash = "sha256:226f11be577b70a57f4910c0ee28591d4d9fcb3d455e966267179156ae2e0c41"}, - {file = "psycopg2_binary-2.9.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:181ac372a5a5308b4076933601a9b5f0cd139b389b0aa5e164786a2abbcdb978"}, - {file = "psycopg2_binary-2.9.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:d5f27b1d1b56470385faa2b2636fcb823e7ac5b5b734e0aa76b14637c66eb3b7"}, - {file = "psycopg2_binary-2.9.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:55137faec669c4277c5687c6ce7c1fbc4dece0e2f14256ee808f4a652f0a2170"}, - {file = "psycopg2_binary-2.9.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ffb2f288f577a748cc23c65a818290755a4c2da1f87a40d7055b61a096d31e20"}, - {file = "psycopg2_binary-2.9.4-cp38-cp38-win32.whl", hash = "sha256:451550e0bb5889bbabbf92575a6d6eafced941cc28c86be6ae4667f81bf32d67"}, - {file = "psycopg2_binary-2.9.4-cp38-cp38-win_amd64.whl", hash = "sha256:b23b25b1243576b952689966205ef7d4285688068b966a1ca0e620bcb390d483"}, - {file = "psycopg2_binary-2.9.4-cp39-cp39-macosx_10_15_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:7ad9d032dc1a31a86ca7b059f43554a049a2bfda8fe32d1492ad25f6686aff03"}, - {file = "psycopg2_binary-2.9.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7b01d07006a0ac2216921b69a220b9f0974345d0b1b36efaeabdc7550b1cc4f8"}, - {file = "psycopg2_binary-2.9.4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb5341fc7c53fdd95ac2415be77b1de854ab266488cff71174ebb007baf0e675"}, - {file = "psycopg2_binary-2.9.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a431deb6ffdfa551f7400b3a94fa4b964837e67f49e3c37aa26d90dc75970816"}, - {file = "psycopg2_binary-2.9.4-cp39-cp39-manylinux_2_24_aarch64.whl", hash = "sha256:d6ba33f39436191ece7ea2b3d0b4dff00af71acd5c6e6f1d6b7563aa7286e9f2"}, - {file = "psycopg2_binary-2.9.4-cp39-cp39-manylinux_2_24_ppc64le.whl", hash = "sha256:d6c5e1df6f427d7a82606cf8f07cf3ba9fb3f366804b01e65f1f00f8df6b54f1"}, - {file = "psycopg2_binary-2.9.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1c22c59ab7d9dc110d409445f111f58556bf699b0548f3fc5176684a29c629c4"}, - {file = "psycopg2_binary-2.9.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:b896637091cde69d170a89253dde9aee814b25ca204b7e213fd0a6462e666638"}, - {file = "psycopg2_binary-2.9.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:2535f44b00f26f6af0e949c825e6aecb9adcb56c965c17af5b97137fb69f00c0"}, - {file = "psycopg2_binary-2.9.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6a1618260a112a9c93504511f0b6254b4402a8c41b7130dc6d4c9e39aff3aa0c"}, - {file = "psycopg2_binary-2.9.4-cp39-cp39-win32.whl", hash = "sha256:e02f77b620ad6b36564fe41980865436912e21a3b1138cdde175cf24afde1bc5"}, - {file = "psycopg2_binary-2.9.4-cp39-cp39-win_amd64.whl", hash = "sha256:44f5dc9b4384bafca8429759ce76c8960ffc2b583fcad9e5dfb3e5f4894269e4"}, + {file = "psycopg2-binary-2.9.5.tar.gz", hash = "sha256:33e632d0885b95a8b97165899006c40e9ecdc634a529dca7b991eb7de4ece41c"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-macosx_10_15_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:0775d6252ccb22b15da3b5d7adbbf8cfe284916b14b6dc0ff503a23edb01ee85"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2ec46ed947801652c9643e0b1dc334cfb2781232e375ba97312c2fc256597632"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3520d7af1ebc838cc6084a3281145d5cd5bdd43fdef139e6db5af01b92596cb7"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5cbc554ba47ecca8cd3396ddaca85e1ecfe3e48dd57dc5e415e59551affe568e"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-manylinux_2_24_aarch64.whl", hash = "sha256:5d28ecdf191db558d0c07d0f16524ee9d67896edf2b7990eea800abeb23ebd61"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-manylinux_2_24_ppc64le.whl", hash = "sha256:b9c33d4aef08dfecbd1736ceab8b7b3c4358bf10a0121483e5cd60d3d308cc64"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:05b3d479425e047c848b9782cd7aac9c6727ce23181eb9647baf64ffdfc3da41"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1e491e6489a6cb1d079df8eaa15957c277fdedb102b6a68cfbf40c4994412fd0"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:9e32cedc389bcb76d9f24ea8a012b3cb8385ee362ea437e1d012ffaed106c17d"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:46850a640df62ae940e34a163f72e26aca1f88e2da79148e1862faaac985c302"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-win32.whl", hash = "sha256:3d790f84201c3698d1bfb404c917f36e40531577a6dda02e45ba29b64d539867"}, + {file = "psycopg2_binary-2.9.5-cp310-cp310-win_amd64.whl", hash = "sha256:1764546ffeaed4f9428707be61d68972eb5ede81239b46a45843e0071104d0dd"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-macosx_10_9_universal2.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:426c2ae999135d64e6a18849a7d1ad0e1bd007277e4a8f4752eaa40a96b550ff"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7cf1d44e710ca3a9ce952bda2855830fe9f9017ed6259e01fcd71ea6287565f5"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:024030b13bdcbd53d8a93891a2cf07719715724fc9fee40243f3bd78b4264b8f"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bcda1c84a1c533c528356da5490d464a139b6e84eb77cc0b432e38c5c6dd7882"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-manylinux_2_24_aarch64.whl", hash = "sha256:2ef892cabdccefe577088a79580301f09f2a713eb239f4f9f62b2b29cafb0577"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-manylinux_2_24_ppc64le.whl", hash = "sha256:af0516e1711995cb08dc19bbd05bec7dbdebf4185f68870595156718d237df3e"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e72c91bda9880f097c8aa3601a2c0de6c708763ba8128006151f496ca9065935"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e67b3c26e9b6d37b370c83aa790bbc121775c57bfb096c2e77eacca25fd0233b"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:5fc447058d083b8c6ac076fc26b446d44f0145308465d745fba93a28c14c9e32"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d892bfa1d023c3781a3cab8dd5af76b626c483484d782e8bd047c180db590e4c"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-win32.whl", hash = "sha256:2abccab84d057723d2ca8f99ff7b619285d40da6814d50366f61f0fc385c3903"}, + {file = "psycopg2_binary-2.9.5-cp311-cp311-win_amd64.whl", hash = "sha256:bef7e3f9dc6f0c13afdd671008534be5744e0e682fb851584c8c3a025ec09720"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-macosx_10_14_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:6e63814ec71db9bdb42905c925639f319c80e7909fb76c3b84edc79dadef8d60"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:212757ffcecb3e1a5338d4e6761bf9c04f750e7d027117e74aa3cd8a75bb6fbd"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f8a9bcab7b6db2e3dbf65b214dfc795b4c6b3bb3af922901b6a67f7cb47d5f8"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-manylinux_2_24_aarch64.whl", hash = "sha256:56b2957a145f816726b109ee3d4e6822c23f919a7d91af5a94593723ed667835"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-manylinux_2_24_ppc64le.whl", hash = "sha256:f95b8aca2703d6a30249f83f4fe6a9abf2e627aa892a5caaab2267d56be7ab69"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:70831e03bd53702c941da1a1ad36c17d825a24fbb26857b40913d58df82ec18b"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:dbc332beaf8492b5731229a881807cd7b91b50dbbbaf7fe2faf46942eda64a24"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:2d964eb24c8b021623df1c93c626671420c6efadbdb8655cb2bd5e0c6fa422ba"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:95076399ec3b27a8f7fa1cc9a83417b1c920d55cf7a97f718a94efbb96c7f503"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-win32.whl", hash = "sha256:3fc33295cfccad697a97a76dec3f1e94ad848b7b163c3228c1636977966b51e2"}, + {file = "psycopg2_binary-2.9.5-cp36-cp36m-win_amd64.whl", hash = "sha256:02551647542f2bf89073d129c73c05a25c372fc0a49aa50e0de65c3c143d8bd0"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-macosx_10_15_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:63e318dbe52709ed10d516a356f22a635e07a2e34c68145484ed96a19b0c4c68"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7e518a0911c50f60313cb9e74a169a65b5d293770db4770ebf004245f24b5c5"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9d38a4656e4e715d637abdf7296e98d6267df0cc0a8e9a016f8ba07e4aa3eeb"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-manylinux_2_24_aarch64.whl", hash = "sha256:68d81a2fe184030aa0c5c11e518292e15d342a667184d91e30644c9d533e53e1"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-manylinux_2_24_ppc64le.whl", hash = "sha256:7ee3095d02d6f38bd7d9a5358fcc9ea78fcdb7176921528dd709cc63f40184f5"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:46512486be6fbceef51d7660dec017394ba3e170299d1dc30928cbedebbf103a"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b911dfb727e247340d36ae20c4b9259e4a64013ab9888ccb3cbba69b77fd9636"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:422e3d43b47ac20141bc84b3d342eead8d8099a62881a501e97d15f6addabfe9"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c5682a45df7d9642eff590abc73157c887a68f016df0a8ad722dcc0f888f56d7"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-win32.whl", hash = "sha256:b8104f709590fff72af801e916817560dbe1698028cd0afe5a52d75ceb1fce5f"}, + {file = "psycopg2_binary-2.9.5-cp37-cp37m-win_amd64.whl", hash = "sha256:7b3751857da3e224f5629400736a7b11e940b5da5f95fa631d86219a1beaafec"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-macosx_10_15_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:043a9fd45a03858ff72364b4b75090679bd875ee44df9c0613dc862ca6b98460"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9ffdc51001136b699f9563b1c74cc1f8c07f66ef7219beb6417a4c8aaa896c28"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c15ba5982c177bc4b23a7940c7e4394197e2d6a424a2d282e7c236b66da6d896"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc85b3777068ed30aff8242be2813038a929f2084f69e43ef869daddae50f6ee"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-manylinux_2_24_aarch64.whl", hash = "sha256:215d6bf7e66732a514f47614f828d8c0aaac9a648c46a831955cb103473c7147"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-manylinux_2_24_ppc64le.whl", hash = "sha256:7d07f552d1e412f4b4e64ce386d4c777a41da3b33f7098b6219012ba534fb2c2"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a0adef094c49f242122bb145c3c8af442070dc0e4312db17e49058c1702606d4"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:00475004e5ed3e3bf5e056d66e5dcdf41a0dc62efcd57997acd9135c40a08a50"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:7d88db096fa19d94f433420eaaf9f3c45382da2dd014b93e4bf3215639047c16"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:902844f9c4fb19b17dfa84d9e2ca053d4a4ba265723d62ea5c9c26b38e0aa1e6"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-win32.whl", hash = "sha256:4e7904d1920c0c89105c0517dc7e3f5c20fb4e56ba9cdef13048db76947f1d79"}, + {file = "psycopg2_binary-2.9.5-cp38-cp38-win_amd64.whl", hash = "sha256:a36a0e791805aa136e9cbd0ffa040d09adec8610453ee8a753f23481a0057af5"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-macosx_10_15_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:25382c7d174c679ce6927c16b6fbb68b10e56ee44b1acb40671e02d29f2fce7c"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9c38d3869238e9d3409239bc05bc27d6b7c99c2a460ea337d2814b35fb4fea1b"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5c6527c8efa5226a9e787507652dd5ba97b62d29b53c371a85cd13f957fe4d42"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e59137cdb970249ae60be2a49774c6dfb015bd0403f05af1fe61862e9626642d"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-manylinux_2_24_aarch64.whl", hash = "sha256:d4c7b3a31502184e856df1f7bbb2c3735a05a8ce0ade34c5277e1577738a5c91"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-manylinux_2_24_ppc64le.whl", hash = "sha256:b9a794cef1d9c1772b94a72eec6da144c18e18041d294a9ab47669bc77a80c1d"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c5254cbd4f4855e11cebf678c1a848a3042d455a22a4ce61349c36aafd4c2267"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c5e65c6ac0ae4bf5bef1667029f81010b6017795dcb817ba5c7b8a8d61fab76f"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:74eddec4537ab1f701a1647214734bc52cee2794df748f6ae5908e00771f180a"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:01ad49d68dd8c5362e4bfb4158f2896dc6e0c02e87b8a3770fc003459f1a4425"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-win32.whl", hash = "sha256:937880290775033a743f4836aa253087b85e62784b63fd099ee725d567a48aa1"}, + {file = "psycopg2_binary-2.9.5-cp39-cp39-win_amd64.whl", hash = "sha256:484405b883630f3e74ed32041a87456c5e0e63a8e3429aa93e8714c366d62bd1"}, ] py = [ {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, diff --git a/pyproject.toml b/pyproject.toml index 9a17aa6..e2ac3eb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,6 +23,12 @@ joblib = "^1.2.0" gunicorn = "^20.1.0" whitenoise = {extras = ["brotli"], version = "^6.2.0"} +# [[tool.poetry.source]] +# name = "foo" +# url = "https://pypi.example.org/simple/" +# default = true +# secondary = false + [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" From 40a31b4400341251cd78b0212880e8e217955317 Mon Sep 17 00:00:00 2001 From: Desi Pilla Date: Fri, 11 Nov 2022 09:50:33 -0500 Subject: [PATCH 03/13] Update build.sh --- build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/build.sh b/build.sh index 78662fe..bb40819 100755 --- a/build.sh +++ b/build.sh @@ -2,6 +2,7 @@ # exit on error set -o errexit +pip install poetry poetry install python manage.py collectstatic --no-input From 8e4a67bdf0bc170dc26fc862e4b75dc964e4e487 Mon Sep 17 00:00:00 2001 From: Desi Pilla Date: Fri, 11 Nov 2022 09:55:16 -0500 Subject: [PATCH 04/13] Update render.yaml --- render.yaml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/render.yaml b/render.yaml index 7616deb..3cd3590 100644 --- a/render.yaml +++ b/render.yaml @@ -8,13 +8,4 @@ services: name: doritostats env: python buildCommand: "./build.sh" - startCommand: "gunicorn mysite.wsgi:application" - envVars: - - key: DATABASE_URL - fromDatabase: - name: doritostats - property: connectionString - - key: SECRET_KEY - generateValue: true - - key: WEB_CONCURRENCY - value: 4 + startCommand: gunicorn doritostats.wsgi:application From d78dd3821ede3268a01d933e9a049b5aa17a428e Mon Sep 17 00:00:00 2001 From: Desi Pilla Date: Fri, 11 Nov 2022 10:00:12 -0500 Subject: [PATCH 05/13] remove requirements.txt --- requirements.txt => NOT_requirements_NOT.txt | 0 render.yaml | 3 +++ 2 files changed, 3 insertions(+) rename requirements.txt => NOT_requirements_NOT.txt (100%) diff --git a/requirements.txt b/NOT_requirements_NOT.txt similarity index 100% rename from requirements.txt rename to NOT_requirements_NOT.txt diff --git a/render.yaml b/render.yaml index 3cd3590..be971cd 100644 --- a/render.yaml +++ b/render.yaml @@ -9,3 +9,6 @@ services: env: python buildCommand: "./build.sh" startCommand: gunicorn doritostats.wsgi:application + envVars: + - key: PYTHON_VERSION + value: "3.10.6" From e4a176ed8353af7d420828e918c274cb782be816 Mon Sep 17 00:00:00 2001 From: Desi Pilla Date: Fri, 11 Nov 2022 10:06:19 -0500 Subject: [PATCH 06/13] Update settings.py --- doritostats/settings.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/doritostats/settings.py b/doritostats/settings.py index faab058..39daf58 100644 --- a/doritostats/settings.py +++ b/doritostats/settings.py @@ -135,14 +135,25 @@ # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.2/howto/static-files/ +### WHEN USING HEROKU ### +# STATIC_URL = "/static/" +# STATIC_ROOT = os.path.join(BASE_DIR, "static") +# STATICFILES_DIRS = [ +# "static/", +# ] +# django_on_heroku.settings(locals()) + +### ON RENDER ### +# This setting tells Django at which URL static files are going to be served to the user. +# Here, they well be accessible at your-domain.onrender.com/static/... STATIC_URL = "/static/" -STATIC_ROOT = os.path.join(BASE_DIR, "static") -STATICFILES_DIRS = [ - "static/", -] -if not DEBUG: +# Following settings only make sense on production and may break development environments. +if not DEBUG: # Tell Django to copy statics to the `staticfiles` directory + # in your application directory on Render. + STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles") + # Turn on WhiteNoise storage backend that takes care of compressing static files + # and creating unique names for each version so they can safely be cached forever. STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage" -# django_on_heroku.settings(locals()) # Default primary key field type # https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field From 2363f957a8122fa0e955f2010f30745bd58e3278 Mon Sep 17 00:00:00 2001 From: Desi Pilla Date: Fri, 11 Nov 2022 10:11:04 -0500 Subject: [PATCH 07/13] Update settings.py --- doritostats/settings.py | 1 + 1 file changed, 1 insertion(+) diff --git a/doritostats/settings.py b/doritostats/settings.py index 39daf58..52a933e 100644 --- a/doritostats/settings.py +++ b/doritostats/settings.py @@ -147,6 +147,7 @@ # This setting tells Django at which URL static files are going to be served to the user. # Here, they well be accessible at your-domain.onrender.com/static/... STATIC_URL = "/static/" +STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles") # Following settings only make sense on production and may break development environments. if not DEBUG: # Tell Django to copy statics to the `staticfiles` directory # in your application directory on Render. From 8995a0db032fb21cbfc9b2b8c397c77622364287 Mon Sep 17 00:00:00 2001 From: Desi Pilla Date: Fri, 11 Nov 2022 10:11:11 -0500 Subject: [PATCH 08/13] Update settings.py --- doritostats/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doritostats/settings.py b/doritostats/settings.py index 52a933e..66e2bc5 100644 --- a/doritostats/settings.py +++ b/doritostats/settings.py @@ -151,7 +151,7 @@ # Following settings only make sense on production and may break development environments. if not DEBUG: # Tell Django to copy statics to the `staticfiles` directory # in your application directory on Render. - STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles") + # STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles") # Turn on WhiteNoise storage backend that takes care of compressing static files # and creating unique names for each version so they can safely be cached forever. STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage" From b4985ee0c74f11eb32396be768dda38d3e64ca51 Mon Sep 17 00:00:00 2001 From: Desi Pilla Date: Fri, 11 Nov 2022 10:18:10 -0500 Subject: [PATCH 09/13] Update settings.py --- doritostats/settings.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doritostats/settings.py b/doritostats/settings.py index 66e2bc5..32af1a4 100644 --- a/doritostats/settings.py +++ b/doritostats/settings.py @@ -94,7 +94,8 @@ # } DATABASES = { # Render "default": dj_database_url.config( - default="postgresql://postgres:postgres@localhost:5432/mysite", conn_max_age=600 + default=os.getenv("DATABASE_URL"), + conn_max_age=600, ) } From b201b4a359c3f22c16b2743b61fbb34edaca2008 Mon Sep 17 00:00:00 2001 From: Desi Pilla Date: Fri, 11 Nov 2022 12:19:53 -0500 Subject: [PATCH 10/13] fix: css issues --- NOT_requirements_NOT.txt | 12 ------------ doritostats/settings.py | 3 +-- 2 files changed, 1 insertion(+), 14 deletions(-) delete mode 100644 NOT_requirements_NOT.txt diff --git a/NOT_requirements_NOT.txt b/NOT_requirements_NOT.txt deleted file mode 100644 index 95ca424..0000000 --- a/NOT_requirements_NOT.txt +++ /dev/null @@ -1,12 +0,0 @@ -Django==3.2.7 -dj-database-url==0.5.0 -django-on-heroku==1.1.2 -django-environ==0.8.1 -python-dotenv==0.21.0 -espn-api==0.17.0 -gunicorn==20.1.0 -joblib==1.2.0 -numpy==1.17.5 -pandas==0.25.3 -psycopg2-binary==2.9.1 -tabulate==0.8.9 \ No newline at end of file diff --git a/doritostats/settings.py b/doritostats/settings.py index 32af1a4..21410bd 100644 --- a/doritostats/settings.py +++ b/doritostats/settings.py @@ -148,11 +148,10 @@ # This setting tells Django at which URL static files are going to be served to the user. # Here, they well be accessible at your-domain.onrender.com/static/... STATIC_URL = "/static/" -STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles") # Following settings only make sense on production and may break development environments. if not DEBUG: # Tell Django to copy statics to the `staticfiles` directory # in your application directory on Render. - # STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles") + STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles/") # Turn on WhiteNoise storage backend that takes care of compressing static files # and creating unique names for each version so they can safely be cached forever. STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage" From 8262b9d6868e2a6daa28c98ed5139d032d4c3c2c Mon Sep 17 00:00:00 2001 From: Desi Pilla Date: Fri, 11 Nov 2022 12:20:04 -0500 Subject: [PATCH 11/13] chore:cleanup some things --- static/fantasy_stats/img/favicon.jpg | Bin 18265 -> 0 bytes static/twitter_sentiment/css/sentiment.css | 90 --------------------- static/twitter_sentiment/img/favicon.png | Bin 11381 -> 0 bytes 3 files changed, 90 deletions(-) delete mode 100644 static/fantasy_stats/img/favicon.jpg delete mode 100644 static/twitter_sentiment/css/sentiment.css delete mode 100644 static/twitter_sentiment/img/favicon.png diff --git a/static/fantasy_stats/img/favicon.jpg b/static/fantasy_stats/img/favicon.jpg deleted file mode 100644 index 84fd20710ad106797bf775234ea974fb75d0975a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18265 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 T`_(a#KvxBH7s2@U|8D{SUDN%i diff --git a/static/twitter_sentiment/css/sentiment.css b/static/twitter_sentiment/css/sentiment.css deleted file mode 100644 index ebe5f2d..0000000 --- a/static/twitter_sentiment/css/sentiment.css +++ /dev/null @@ -1,90 +0,0 @@ -body { - font-family: "Helvetica Neue", Helvetica, Arial; - font-size: 14px; - line-height: 20px; - font-weight: 400; - color: #3b3b3b; - background: #91dff7fa; - -webkit-font-smoothing: antialiased; - } - - -.box -{ - /* background:#fff; */ - width:300px; - height:400px; - display:flex; - justify-content:center; - align-items:center; - position:relative; - flex-direction:column; - box-shadow:0 30px 60px rgba(0,0,0,.4); - transition: transform .2s; -} -/* .box:hover -{ - transform:scale(1.2); -} */ -.box .percent -{ - width:150px; - height:150px; - position:relative; -} -.box .percent svg -{ - width:150px; - height:150px; - position:relative; -} -.box .percent svg circle -{ - width:150px; - height:150px; - fill:none; - stroke-width:10; - stroke:#000; - transform:translate(5px,5px); - stroke-dasharray:440; - stroke-dashoffset:440; - stroke-linecap:round; -} -.box .percent svg circle:nth-child(1) -{ - stroke-dashoffset:0; - stroke:#f3f3f3; -} -.box .percent svg circle:nth-child(2) -{ - stroke-dashoffset:calc(440 - (440 * {{ perc_pos }}) / 100); - stroke:#03a9f4; -} -.box .percent .num -{ - top:0; - left:0; - width:100%; - height:100%; - display:flex; - justify-content:center; - align-items:center; - position:absolute; - color:#111; -} -.box .percent .num h2 -{ - font-size:48px; -} -.box .percent .num h2 span -{ - font-size:24px; -} -.box .text -{ - padding: 10px 0 0; - color:#999; - font-weight:700; - letter-spacing:1px; -} - diff --git a/static/twitter_sentiment/img/favicon.png b/static/twitter_sentiment/img/favicon.png deleted file mode 100644 index 0ae0d42f34a96442a162fefb4a4db2be044430de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11381 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 From d75a2b7b5bf19874a968aa07eb91b8a001238588 Mon Sep 17 00:00:00 2001 From: Desi Pilla Date: Fri, 11 Nov 2022 12:22:50 -0500 Subject: [PATCH 12/13] Update settings.py --- doritostats/settings.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doritostats/settings.py b/doritostats/settings.py index 21410bd..fb84bf5 100644 --- a/doritostats/settings.py +++ b/doritostats/settings.py @@ -148,6 +148,8 @@ # This setting tells Django at which URL static files are going to be served to the user. # Here, they well be accessible at your-domain.onrender.com/static/... STATIC_URL = "/static/" +STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles/") +STATICFILES_DIRS = [os.path.join(BASE_DIR, "static/")] # Following settings only make sense on production and may break development environments. if not DEBUG: # Tell Django to copy statics to the `staticfiles` directory # in your application directory on Render. From f15c7910237aa1f48a649e4e5a4b73c8b7ade8c7 Mon Sep 17 00:00:00 2001 From: Desi Pilla Date: Fri, 11 Nov 2022 16:07:30 -0500 Subject: [PATCH 13/13] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b2c903d..0c8d798 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # espn-api-v3 -Link to [Heroku website](https://doritostats.herokuapp.com/fantasy_stats/) +Link to [Render website](https://doritostats-72na.onrender.com/fantasy_stats/) +Link to [Heroku website](https://doritostats.herokuapp.com/fantasy_stats/) (WILL BE DEACTIVATED ON NOV 28TH, 2022) This project aims to make ESPN Fantasy Football statistics easily available. With the introduction of version 3 of the ESPN's API, this structure creates leagues, teams, and player classes that allow for advanced data analytics and the potential for many new features to be added.