diff --git a/Pipfile b/Pipfile index f084a58..3456952 100644 --- a/Pipfile +++ b/Pipfile @@ -18,6 +18,7 @@ psycopg2-binary = "*" sqlalchemy = "2.0.21" sqlalchemy-utils = "*" obonet = "*" +orjson = "*" #Security modules python-multipart = "*" python-jose = "*" diff --git a/Pipfile.lock b/Pipfile.lock index ef4c5c8..eec8d6c 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "3cfead865413a6c799afd11a370c4d406dbf6018330dbfd29e48558d07dc7cf3" + "sha256": "740d3539f3313c770dbcb5dfbbcf745795ad1f6c3faf8490f22c3abe26d30d5f" }, "pipfile-spec": 6, "requires": { @@ -133,7 +133,7 @@ "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519", "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561" ], - "markers": "python_full_version >= '3.7.0'", + "markers": "python_version >= '3.7'", "version": "==3.3.2" }, "click": { @@ -149,7 +149,7 @@ "sha256:190348041559e21b22a1d65cee485282ca11a6f81d503fddb84d5017e9ed1e49", "sha256:80600258e7ed2f16b9aa1d7c295bd70194109ad5a30fdee0eaeefef1d4c559dd" ], - "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'", "version": "==0.18.0" }, "exceptiongroup": { @@ -405,6 +405,62 @@ "index": "pypi", "version": "==1.0.0" }, + "orjson": { + "hashes": [ + "sha256:031df1026c7ea8303332d78711f180231e3ae8b564271fb748a03926587c5546", + "sha256:0d3ba9d88e20765335260d7b25547d7c571eee2b698200f97afa7d8c7cd668fc", + "sha256:0d691c44604941945b00e0a13b19a7d9c1a19511abadf0080f373e98fdeb6b31", + "sha256:0fd9a2101d04e85086ea6198786a3f016e45475f800712e6833e14bf9ce2832f", + "sha256:16946d095212a3dec552572c5d9bca7afa40f3116ad49695a397be07d529f1fa", + "sha256:1ab9dbdec3f13f3ea6f937564ce21651844cfbf2725099f2f490426acf683c23", + "sha256:23f21faf072ed3b60b5954686f98157e073f6a8068eaa58dbde83e87212eda84", + "sha256:266e55c83f81248f63cc93d11c5e3a53df49a5d2598fa9e9db5f99837a802d5d", + "sha256:2cc03a35bfc71c8ebf96ce49b82c2a7be6af4b3cd3ac34166fdb42ac510bbfff", + "sha256:2f37f0cdd026ef777a4336e599d8194c8357fc14760c2a5ddcfdf1965d45504b", + "sha256:31372ba3a9fe8ad118e7d22fba46bbc18e89039e3bfa89db7bc8c18ee722dca8", + "sha256:31fb66b41fb2c4c817d9610f0bc7d31345728d7b5295ac78b63603407432a2b2", + "sha256:3869d65561f10071d3e7f35ae58fd377056f67d7aaed5222f318390c3ad30339", + "sha256:3deadd8dc0e9ff844b5b656fa30a48dbee1c3b332d8278302dd9637f6b09f627", + "sha256:43fd6036b16bb6742d03dae62f7bdf8214d06dea47e4353cde7e2bd1358d186f", + "sha256:446d9ad04204e79229ae19502daeea56479e55cbc32634655d886f5a39e91b44", + "sha256:4584e8eb727bc431baaf1bf97e35a1d8a0109c924ec847395673dfd5f4ef6d6f", + "sha256:49b7e3fe861cb246361825d1a238f2584ed8ea21e714bf6bb17cebb86772e61c", + "sha256:5b98cd948372f0eb219bc309dee4633db1278687161e3280d9e693b6076951d2", + "sha256:5ef58869f3399acbbe013518d8b374ee9558659eef14bca0984f67cb1fbd3c37", + "sha256:60da7316131185d0110a1848e9ad15311e6c8938ee0b5be8cbd7261e1d80ee8f", + "sha256:62e9a99879c4d5a04926ac2518a992134bfa00d546ea5a4cae4b9be454d35a22", + "sha256:63ef57a53bfc2091a7cd50a640d9ae866bd7d92a5225a1bab6baa60ef62583f2", + "sha256:6e47153db080f5e87e8ba638f1a8b18995eede6b0abb93964d58cf11bcea362f", + "sha256:730385fdb99a21fce9bb84bb7fcbda72c88626facd74956bda712834b480729d", + "sha256:7ccd5bd222e5041069ad9d9868ab59e6dbc53ecde8d8c82b919954fbba43b46b", + "sha256:7e8e4a571d958910272af8d53a9cbe6599f9f5fd496a1bc51211183bb2072cbd", + "sha256:811ac076855e33e931549340288e0761873baf29276ad00f221709933c644330", + "sha256:828c502bb261588f7de897e06cb23c4b122997cb039d2014cb78e7dabe92ef0c", + "sha256:838b898e8c1f26eb6b8d81b180981273f6f5110c76c22c384979aca854194f1b", + "sha256:860d0f5b42d0c0afd73fa4177709f6e1b966ba691fcd72175affa902052a81d6", + "sha256:8a730bf07feacb0863974e67b206b7c503a62199de1cece2eb0d4c233ec29c11", + "sha256:9156b96afa38db71344522f5517077eaedf62fcd2c9148392ff93d801128809c", + "sha256:9171e8e1a1f221953e38e84ae0abffe8759002fd8968106ee379febbb5358b33", + "sha256:978117122ca4cc59b28af5322253017f6c5fc03dbdda78c7f4b94ae984c8dd43", + "sha256:9b1b5adc5adf596c59dca57156b71ad301d73956f5bab4039b0e34dbf50b9fa0", + "sha256:9bcf56efdb83244cde070e82a69c0f03c47c235f0a5cb6c81d9da23af7fbaae4", + "sha256:a8c83718346de08d68b3cb1105c5d91e5fc39885d8610fdda16613d4e3941459", + "sha256:ae77275a28667d9c82d4522b681504642055efa0368d73108511647c6499b31c", + "sha256:b57c0954a9fdd2b05b9cec0f5a12a0bdce5bf021a5b3b09323041613972481ab", + "sha256:b812417199eeb169c25f67815cfb66fd8de7ff098bf57d065e8c1943a7ba5c8f", + "sha256:cfad553a36548262e7da0f3a7464270e13900b898800fb571a5d4b298c3f8356", + "sha256:d3222db9df629ef3c3673124f2e05fb72bc4a320c117e953fec0d69dde82e36d", + "sha256:d714595d81efab11b42bccd119977d94b25d12d3a806851ff6bfd286a4bce960", + "sha256:d92a3e835a5100f1d5b566fff79217eab92223ca31900dba733902a182a35ab0", + "sha256:ddc089315d030c54f0f03fb38286e2667c05009a78d659f108a8efcfbdf2e585", + "sha256:e3b0c4da61f39899561e08e571f54472a09fa71717d9797928af558175ae5243", + "sha256:eaaf80957c38e9d3f796f355a80fad945e72cd745e6b64c210e635b7043b673e", + "sha256:fa6b67f8bef277c2a4aadd548d58796854e7d760964126c3209b19bccc6a74f1", + "sha256:fc6bc65b0cf524ee042e0bc2912b9206ef242edfba7426cf95763e4af01f527a" + ], + "index": "pypi", + "version": "==3.9.13" + }, "packaging": { "hashes": [ "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5", @@ -673,7 +729,7 @@ "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", "version": "==2.8.2" }, "python-jose": { @@ -819,7 +875,7 @@ "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", "version": "==1.16.0" }, "sniffio": { diff --git a/app/routes/pdbdev.py b/app/routes/pdbdev.py index fed1b9a..0eda6bb 100644 --- a/app/routes/pdbdev.py +++ b/app/routes/pdbdev.py @@ -1,7 +1,9 @@ import json import psycopg2 -from fastapi import APIRouter, Depends, Path +from fastapi import APIRouter, Depends, Path, Response +import orjson +from fastapi import APIRouter, Depends from psycopg2.extras import RealDictCursor import logging from sqlalchemy import text @@ -165,7 +167,7 @@ async def get_psm_level_residue_pairs(project_id: Annotated[str, Path(..., if conn is not None: conn.close() print('Database connection closed.') - return data + return Response(orjson.dumps(data), media_type='application/json') # # @pdb_dev_router.get('/projects/{project_id}/residue-pairs/reported') diff --git a/app/routes/xiview.py b/app/routes/xiview.py index 573f332..a51ffab 100644 --- a/app/routes/xiview.py +++ b/app/routes/xiview.py @@ -5,7 +5,8 @@ import fastapi import psycopg2 -from fastapi import APIRouter, Depends, Request +from fastapi import APIRouter, Depends, Request, Response +import orjson from psycopg2 import sql from psycopg2.extras import RealDictCursor from sqlalchemy.orm import session, Session @@ -117,7 +118,7 @@ async def get_data_object(ids, pxid): logger.debug('Database connection closed.') if error is not None: raise error - return data + return Response(orjson.dumps(data), media_type='application/json') async def get_pride_api_info(cur, pxid):