{ "info": { "author": "Michal Stolarczyk, Vince Reuter, Nathan Sheffield", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Topic :: Scientific/Engineering :: Bio-Informatics" ], "description": "[![Deploy to Dockerhub on release](https://github.com/refgenie/refgenieserver/actions/workflows/deploy_release_software.yml/badge.svg)](https://github.com/refgenie/refgenieserver/actions/workflows/deploy_release_software.yml)\n[![Deploy to Amazon ECS - software-staging](https://github.com/refgenie/refgenieserver/actions/workflows/deploy_staging_software.yml/badge.svg)](https://github.com/refgenie/refgenieserver/actions/workflows/deploy_staging_software.yml)\n\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\n# refgenieserver\n\nThis folder contains code for an API to provide reference genomes. `refgenieserver` can do 2 things: `archive` an existing refgenie folder, and then `serve` it.\n\n## How to `serve`\n\n### Building container\n\nIn the same directory as the `Dockerfile`:\n\n```\ndocker build -t refgenieserverim .\n```\n\n### Running container for development:\n\nYou can run it directly after installing with `pip install`, like this:\n\n```\nrefgenieserver serve -c refgenie.yaml -p 5000\n```\n\nBetter, though, is to use the container. Mount a directory of files to serve at `/genomes`:\n\n```\ndocker run --rm -p 80:80 --name refgenieservercon \\\n -v $(pwd)/files:/genomes \\\n refgenieserverim refgenieserver serve -c refgenie.yaml\n```\n\n### Running container for production:\nRun the container from the image you just built:\n\n```\ndocker run --rm -d -p 80:80 \\\n -v /path/to/genomes_archive:/genomes \\\n --name refgenieservercon \\\n refgenieserverim refgenieserver serve -c /genomes/genome_config.yaml\n```\n\nMake sure the `genome_config.yaml` filename matches what you've named your configuration file! We use `-d` to detach so it's in background. You shouldn't need to mount the app (`-v /path/to/refgenieserver:/app`) because in this case we're running it directly. Terminate container when finished:\n\n```\ndocker stop refgenieservercon\n```\n\n\n### Interacting with the API web server\n\nNavigate to [http://localhost/](http://localhost/) to see the server in action.\n\nYou can see the automatic docs and interactive swagger openAPI interface at [http://localhost/docs](http://localhost/docs). That will also tell you all the endpoints, etc.\n\n\n### Monitoring for errors\n\nAttach to container to see debug output:\n\n```\ndocker attach refgenieservercon\n```\n\nGrab errors:\n\n```\ndocker events | grep -oP \"(?<=die )[^ ]+\"\n```\n\nView those error codes:\n\n```\ndocker logs \n```\n\nEnter an interactive shell to explore the container contents:\n\n```\ndocker exec -it refgenieservercon sh\n```\n\n## How to `archive`\n\nRefgenieserver can also archive your assets, creating the directory for asset archives needed to `serve`.\n\nFirst, make sure the config has a `genome_archive_folder` key that points to the directory where you want to store the servable archives (`genome_archive_folder` is __not__ added automatically by [`refgenie init`](http://refgenie.databio.org/en/latest/usage/#refgenie-init-help)). Your first time you will need to manually add this to tell refgenieserver where to store the archives.\n\nSecondly, if you wish to store the refgenieserver configuration file separately from the `genome_archive_folder`, specify a `genome_archive_config` key. The path that this key points to will be considered relative to the refgenie configuration file, unless it's absolute.\n\nThen run:\n```\nrefgenieserver archive -c CONFIG\n````\nIt just requires a `-c` argument or `$REFGENIE` environment variable.\n\nThis command will:\n- create the `genome_archive` directory and structure that can be used to serve the assets\n- create a server config file in that directory, which includes a couple of extra asset attributes, like `archive_digest` and `archive_size`.\n\nIn case you already have some of the assets archived and just want to add a new one, use:\n\n```\nrefgenieserver archive -c CONFIG GENOME/ASSET:TAG\n```\n\nIn case you want to remove an unwanted archive, add an `-r` flag:\n\n```\nrefgenieserver archive -c CONFIG -r GENOME/ASSET:TAG\n```\n\n## How to test the `refgenie` suite of software\n\nThe `refgenie` universe includes [`refgenie`](http://refgenie.databio.org/en/latest/), [`refgenconf`](http://refgenie.databio.org/en/latest/overview/#3-the-refgenconf-python-package), and [`refgenieserver`](https://github.com/databio/refgenieserver/).\n\nThe [`test_refgenie.sh`](https://github.com/databio/refgenieserver/blob/staging/test_refgenie.sh) script will test the integration of all three tools to ensure everything is functioning, particularly following any changes or updates to one, two, or all three tools.\n\nUse it simply as follows:\n```\n/path/to/test_refgenie.sh\n```\n\nThe script also requires Python's [virtual environment module](https://docs.python.org/3/tutorial/venv.html), [Docker](https://www.docker.com/), and [Bulker](https://bulker.databio.org/en/latest/) to successfully test all components.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://refgenie.databio.org/", "keywords": "project,bioinformatics,sequencing,ngs,workflow,GUI,genomes,server", "license": "BSD2", "maintainer": "", "maintainer_email": "", "name": "refgenieserver", "package_url": "https://pypi.org/project/refgenieserver/", "platform": "", "project_url": "https://pypi.org/project/refgenieserver/", "project_urls": { "Homepage": "https://refgenie.databio.org/" }, "release_url": "https://pypi.org/project/refgenieserver/0.7.0/", "requires_dist": [ "aiofiles", "fastapi", "jinja2", "logmuse (>=0.2)", "refgenconf (>=0.11.0)", "ubiquerg (>=0.6.1)", "uvicorn (>=0.7.1)" ], "requires_python": "", "summary": "This server provides both a web interface and a RESTful API. Users may explore and download archived indexes from the web interface or develop tools that programmatically query the API.", "version": "0.7.0", "yanked": false, "yanked_reason": null }, "last_serial": 10186746, "releases": { "0.3.0": [ { "comment_text": "", "digests": { "md5": "a317823b4d00ab4b102541c1afa6861c", "sha256": "05f2efd1947f59e7e2ffc36e8369f086d3b7bdfa8b6e88be93bf596cbe16d077" }, "downloads": -1, "filename": "refgenieserver-0.3.0.tar.gz", "has_sig": false, "md5_digest": "a317823b4d00ab4b102541c1afa6861c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11240, "upload_time": "2019-10-21T19:49:21", "upload_time_iso_8601": "2019-10-21T19:49:21.070737Z", "url": "https://files.pythonhosted.org/packages/09/46/02a9542db37be54545d37dcc8727e813a2e864986760cb6890faff256df3/refgenieserver-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "d5ca1cc3147b80e0affd3ff6ef402393", "sha256": "1df8b8233ac38495376bb3c782dee2543c47483eed59d4ebbcea5704d68f772f" }, "downloads": -1, "filename": "refgenieserver-0.3.1.tar.gz", "has_sig": false, "md5_digest": "d5ca1cc3147b80e0affd3ff6ef402393", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9977, "upload_time": "2019-10-22T18:16:08", "upload_time_iso_8601": "2019-10-22T18:16:08.264692Z", "url": "https://files.pythonhosted.org/packages/72/25/8843c525222d9529096fe92100f213812fa96935ebd08d1a441b45aa2d7b/refgenieserver-0.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "5674c9bf3f1e5733ed04937eaaf0107b", "sha256": "91e3c597c72fe3608add1225926f2982e25a0e5503243400d717d1a3e483a69d" }, "downloads": -1, "filename": "refgenieserver-0.3.2.tar.gz", "has_sig": false, "md5_digest": "5674c9bf3f1e5733ed04937eaaf0107b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10024, "upload_time": "2019-10-23T16:36:11", "upload_time_iso_8601": "2019-10-23T16:36:11.249830Z", "url": "https://files.pythonhosted.org/packages/c3/3e/c013539317e35d22a5201129ddb21df0394e45cf079fdf5a017108fe73c0/refgenieserver-0.3.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "937b43ef36b67c8dc6bde3fd45ae0c09", "sha256": "4e0ae4e43dec99f244dca6f7a2713a151837b143056d636c12761bf771e91143" }, "downloads": -1, "filename": "refgenieserver-0.3.3.tar.gz", "has_sig": false, "md5_digest": "937b43ef36b67c8dc6bde3fd45ae0c09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29057, "upload_time": "2019-10-24T15:46:13", "upload_time_iso_8601": "2019-10-24T15:46:13.090611Z", "url": "https://files.pythonhosted.org/packages/4d/f7/1792f4f491ec1e83edaf517592c37d3d58798ca20113a558f5afdd01d0d1/refgenieserver-0.3.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "80eaccf0ac2c0001566ad7222a21d1f9", "sha256": "fe0d7a11bbcfc6d7dee51e97486e6ef5502d118e303e4f7412e53341ffdffdc9" }, "downloads": -1, "filename": "refgenieserver-0.3.4.tar.gz", "has_sig": false, "md5_digest": "80eaccf0ac2c0001566ad7222a21d1f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30073, "upload_time": "2019-11-06T18:42:59", "upload_time_iso_8601": "2019-11-06T18:42:59.015863Z", "url": "https://files.pythonhosted.org/packages/19/78/eb77dac3da942d10feb1f2433f71b85da27b9a58ec6a416c29a44839bf12/refgenieserver-0.3.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "bd3737b3a83a1c1138de3a3f841b12de", "sha256": "9bcf9731babfc187da437808a4d39ca358b76fd0b515a97ec67c888a37bfb568" }, "downloads": -1, "filename": "refgenieserver-0.4.0.tar.gz", "has_sig": false, "md5_digest": "bd3737b3a83a1c1138de3a3f841b12de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31064, "upload_time": "2019-12-06T20:00:25", "upload_time_iso_8601": "2019-12-06T20:00:25.806740Z", "url": "https://files.pythonhosted.org/packages/20/bb/a6e2d7ea88e0d885a9451c437ebada09acb2e45eba02fe7819471f81d22f/refgenieserver-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "45189279c5ee68dfe34db08a282ea10d", "sha256": "eade6d6d3190b44bc997dca8ffa18bf56a8d23fa124f10af3cd7f9297463bbe9" }, "downloads": -1, "filename": "refgenieserver-0.4.1.tar.gz", "has_sig": false, "md5_digest": "45189279c5ee68dfe34db08a282ea10d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31303, "upload_time": "2019-12-13T21:05:40", "upload_time_iso_8601": "2019-12-13T21:05:40.349260Z", "url": "https://files.pythonhosted.org/packages/3d/0a/b596e307d57f6c71289bf0793d88cd8c776748e556eb1822519321e734f4/refgenieserver-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "6b31b6123fc4b16b959e6b28fe42afea", "sha256": "e1bda93ca482b9d20c04c2b9015145c99c13f7f7fee053ce91122c00f5bd526b" }, "downloads": -1, "filename": "refgenieserver-0.4.2.tar.gz", "has_sig": false, "md5_digest": "6b31b6123fc4b16b959e6b28fe42afea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31316, "upload_time": "2020-01-08T12:56:27", "upload_time_iso_8601": "2020-01-08T12:56:27.192066Z", "url": "https://files.pythonhosted.org/packages/57/10/d8d245ea36c7bb6777f343b4ac0af96c1a376c5125a7819c89c8bfe22b6d/refgenieserver-0.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "9e967b7f200d069221dcf2a5dec50180", "sha256": "0cf9f5ef2155dbb1114f20417f8471128bc74a1f57b4b4d5a58ba5665e206a1e" }, "downloads": -1, "filename": "refgenieserver-0.4.3.tar.gz", "has_sig": false, "md5_digest": "9e967b7f200d069221dcf2a5dec50180", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40846, "upload_time": "2020-01-16T20:59:23", "upload_time_iso_8601": "2020-01-16T20:59:23.936456Z", "url": "https://files.pythonhosted.org/packages/c9/13/b176648a656b44fe15fee49b629ff855538be400c0d7bcc5d82375d9d22d/refgenieserver-0.4.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "5e7ec0fe586c1a4cb7c1b2e6048424f2", "sha256": "34a9ed17e87fbea03c19a4087198b18041d0ed965693116ebbb54eca28a59e43" }, "downloads": -1, "filename": "refgenieserver-0.4.4.tar.gz", "has_sig": false, "md5_digest": "5e7ec0fe586c1a4cb7c1b2e6048424f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41007, "upload_time": "2020-03-17T21:20:50", "upload_time_iso_8601": "2020-03-17T21:20:50.980595Z", "url": "https://files.pythonhosted.org/packages/db/34/15b0969cee9e16d568fe0e310ed64075f8eb7e8829e15e9be7a4fce154fd/refgenieserver-0.4.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "1d7b071ce84f84e1945939761ad5dbdb", "sha256": "2fac2f7dc1ba81825fd58a4f432de81e800898d050d5c9d79b7ece5a2dd9414b" }, "downloads": -1, "filename": "refgenieserver-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1d7b071ce84f84e1945939761ad5dbdb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 38562, "upload_time": "2020-07-06T19:47:21", "upload_time_iso_8601": "2020-07-06T19:47:21.391359Z", "url": "https://files.pythonhosted.org/packages/c3/44/eb55b601c06080259f61eb3cd080fb723cd3c86317df2752c0f0b1b5f458/refgenieserver-0.5.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8067916e6d35d1742954eaba7b7983d3", "sha256": "8477806d5194540d2d6d3595cf39b2d129def3eed4e25a9a547359d0e9923f50" }, "downloads": -1, "filename": "refgenieserver-0.5.0.tar.gz", "has_sig": false, "md5_digest": "8067916e6d35d1742954eaba7b7983d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34776, "upload_time": "2020-07-06T19:47:22", "upload_time_iso_8601": "2020-07-06T19:47:22.733879Z", "url": "https://files.pythonhosted.org/packages/1c/52/e20f694ee26d001679737ef3963b9cb128aaaa72d624a727e674eb99b601/refgenieserver-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "7c2b6c441254032684e170d7cecd1107", "sha256": "29c6b0702c873885bdb59146bc5690e535f86902e066bf2ea8db53b3041279c6" }, "downloads": -1, "filename": "refgenieserver-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7c2b6c441254032684e170d7cecd1107", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 38550, "upload_time": "2020-07-10T21:03:25", "upload_time_iso_8601": "2020-07-10T21:03:25.039506Z", "url": "https://files.pythonhosted.org/packages/ca/09/c082fd3fb89fbb48e655362c80ffc2195ed1efbb56f5cd4861a278d19b38/refgenieserver-0.5.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e13a3afa47a4151974ae943968712299", "sha256": "f7e1e5cc0abe125a284a3138a4b033d203c150b93d79413b39980ba0b8c9350e" }, "downloads": -1, "filename": "refgenieserver-0.5.1.tar.gz", "has_sig": false, "md5_digest": "e13a3afa47a4151974ae943968712299", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34788, "upload_time": "2020-07-10T21:03:26", "upload_time_iso_8601": "2020-07-10T21:03:26.548312Z", "url": "https://files.pythonhosted.org/packages/ec/14/34e4840877f4836dcfc7d6f32ac15bf149cce3246a6ab7586889adab8d91/refgenieserver-0.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "1d4c171bcb019ec232445fc7dc41dc01", "sha256": "97b23c263e92e8f97f0b85eea12407a993775f0f37b66b206309504051c6547a" }, "downloads": -1, "filename": "refgenieserver-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1d4c171bcb019ec232445fc7dc41dc01", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 51346, "upload_time": "2021-03-11T18:20:12", "upload_time_iso_8601": "2021-03-11T18:20:12.521166Z", "url": "https://files.pythonhosted.org/packages/a4/24/015053d7153e916c265405cb5486a1e5df97677c6fb0693148596da06ec4/refgenieserver-0.6.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b968eb59054bad1a9d6b6900afe27dc6", "sha256": "bb355301efa0ea264d978efae5678e5afc9aa46e0a46cc160e8fd3330f549102" }, "downloads": -1, "filename": "refgenieserver-0.6.0.tar.gz", "has_sig": false, "md5_digest": "b968eb59054bad1a9d6b6900afe27dc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39374, "upload_time": "2021-03-11T18:20:13", "upload_time_iso_8601": "2021-03-11T18:20:13.776200Z", "url": "https://files.pythonhosted.org/packages/6a/7c/9a5a1d7a607d5788e67612189eeeb8f94034aa922c6120eb29bd9495e551/refgenieserver-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "3acd3a6349011614610c27fff78d94b6", "sha256": "131ff3a586c853108201577a2e88f073162a07922f6f50ba91f559fcc2bc52fe" }, "downloads": -1, "filename": "refgenieserver-0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3acd3a6349011614610c27fff78d94b6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 51394, "upload_time": "2021-03-18T19:05:08", "upload_time_iso_8601": "2021-03-18T19:05:08.836410Z", "url": "https://files.pythonhosted.org/packages/96/af/31ca3c86c7015a4224052df0a0a94c2b21610ef36c1290cf7c07c72a288d/refgenieserver-0.6.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8ca018448368c3ec137f10638707a772", "sha256": "07d9bf45c2e50c7cdf5d073f22f6bb5623de4d697e74e9f02044c1deefb97f3e" }, "downloads": -1, "filename": "refgenieserver-0.6.1.tar.gz", "has_sig": false, "md5_digest": "8ca018448368c3ec137f10638707a772", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39380, "upload_time": "2021-03-18T19:05:10", "upload_time_iso_8601": "2021-03-18T19:05:10.409546Z", "url": "https://files.pythonhosted.org/packages/ba/87/41e3dfe090f2163993c93098aa163288e66cea2da474935e2d8aefcffdfb/refgenieserver-0.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "58798397bd98a33c0fda963f712699da", "sha256": "9d5dda329de13c0618442004894e4260dad1e1ef5f2d0d54af00559d63f25890" }, "downloads": -1, "filename": "refgenieserver-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "58798397bd98a33c0fda963f712699da", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 54350, "upload_time": "2021-04-27T17:09:37", "upload_time_iso_8601": "2021-04-27T17:09:37.690403Z", "url": "https://files.pythonhosted.org/packages/98/b2/3bb1bcb5cc68d7d8117a3e347e3b24cb04efb6a1a29eff1859daf51533a8/refgenieserver-0.7.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fe646bf8e03d6f921345cb1247a59344", "sha256": "6d17ea0bb8e97dd8a09736958d098af580ac90de34f3cced388dd62e6ec2de5a" }, "downloads": -1, "filename": "refgenieserver-0.7.0.tar.gz", "has_sig": false, "md5_digest": "fe646bf8e03d6f921345cb1247a59344", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42175, "upload_time": "2021-04-27T17:09:39", "upload_time_iso_8601": "2021-04-27T17:09:39.103845Z", "url": "https://files.pythonhosted.org/packages/26/a6/bd9a299f211be20c2a4229a591731bb3c1a6cc4e99205c0e05dd9c35fab0/refgenieserver-0.7.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "58798397bd98a33c0fda963f712699da", "sha256": "9d5dda329de13c0618442004894e4260dad1e1ef5f2d0d54af00559d63f25890" }, "downloads": -1, "filename": "refgenieserver-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "58798397bd98a33c0fda963f712699da", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 54350, "upload_time": "2021-04-27T17:09:37", "upload_time_iso_8601": "2021-04-27T17:09:37.690403Z", "url": "https://files.pythonhosted.org/packages/98/b2/3bb1bcb5cc68d7d8117a3e347e3b24cb04efb6a1a29eff1859daf51533a8/refgenieserver-0.7.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fe646bf8e03d6f921345cb1247a59344", "sha256": "6d17ea0bb8e97dd8a09736958d098af580ac90de34f3cced388dd62e6ec2de5a" }, "downloads": -1, "filename": "refgenieserver-0.7.0.tar.gz", "has_sig": false, "md5_digest": "fe646bf8e03d6f921345cb1247a59344", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42175, "upload_time": "2021-04-27T17:09:39", "upload_time_iso_8601": "2021-04-27T17:09:39.103845Z", "url": "https://files.pythonhosted.org/packages/26/a6/bd9a299f211be20c2a4229a591731bb3c1a6cc4e99205c0e05dd9c35fab0/refgenieserver-0.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }