{ "info": { "author": "Galaxy Project and Community", "author_email": "parsec@hx42.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: POSIX", "Programming Language :: Python :: 3.6" ], "description": "====================================\nParsec: Galaxy at the Speed of Light\n====================================\n\n.. image:: https://img.shields.io/pypi/v/galaxy-parsec.svg\n :target: https://pypi.org/project/galaxy-parsec/\n :alt: PyPi\n\n.. image:: https://readthedocs.org/projects/pip/badge/?version=latest\n :target: https://parsec.readthedocs.org\n :alt: Documentation\n\n.. image:: https://requires.io/github/galaxy-iuc/parsec/requirements.svg?branch=master\n :target: https://requires.io/github/galaxy-iuc/parsec/requirements/?branch=master\n :alt: Requirements Status\n\n.. image:: https://travis-ci.org/galaxy-iuc/parsec.svg?branch=master\n :target: https://travis-ci.org/galaxy-iuc/parsec\n :alt: Build Status\n\n.. image:: https://img.shields.io/github/license/galaxy-iuc/parsec.svg\n :target: https://github.com/galaxy-iuc/parsec/blob/master/LICENSE\n :alt: License\n\n\n\nCommand-line utilities to assist in working with Galaxy_ servers.\n\nInstallation\n------------\n\n.. code-block:: shell\n\n $ pip install galaxy-parsec\n $ parsec init\n\nPython 3.6+ is supported\n\nQuestions?\n----------\n\n|Gitter|\n\n.. |Gitter| image:: https://badges.gitter.im/galaxy-iuc/parsec.svg\n :target: https://gitter.im/galaxy-iuc/parsec?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge\n\nQuick Start\n-----------\n\nThis quick start demonstrates using ``parsec`` commands to manipulate Galaxy\nhistories and datasets. You will want to install `jq `__\nif you do not have it already.\n\nConnect to a Galaxy server\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nTo connect to a running Galaxy server, you will need an account on that Galaxy\ninstance and an API key for the account. Instructions on getting an API key can\nbe found at http://wiki.galaxyproject.org/Learn/API .\n\nFirst initialize parsec:\n\n.. code-block:: shell\n\n $ parsec init\n\nOnce initialized, parsec will be usable from the command line. Please note that\nan admin account is required for a few actions like creation of data libraries,\nor access to user API keys. Your configuration must allow access to /api without\nneed for a username or password. More infomration can be found at\nhttps://galaxyproject.org/admin/config/performance/production-server/\n\n.. _view-histories-and-datasets:\n\nIntroduction To Parsec\n~~~~~~~~~~~~~~~~~~~~~~\n\nParsec is a set of automatically generated wrappers for BioBlend functions. I\nfound myself writing a large number of small / one-off scripts that invoked\nsimple bioblend functions. These scripts were impossible to compose and use in\na linux-friendly manner. I copied and pasted code between all of these utility scripts.\n\nParsec is the answer to all of these problems. It extracts all of the\nindividual functions I was writing as separate CLI commands that can be piped\ntogether, run in parallel, etc.\n\nAfter installation, running ``parsec`` will present you with a list of sub-commands you can execute.\n\n.. code-block:: shell\n\n $ parsec\n Usage: parsec [OPTIONS] COMMAND [ARGS]...\n\n Command line wrappers around BioBlend functions. While this sounds\n unexciting, with parsec and jq you can easily build powerful command line\n scripts.\n\n Options:\n --version Show the version and exit.\n -v, --verbose Enables verbose mode.\n --galaxy_instance TEXT name of galaxy instance from ~/.planemo.yml\n [required]\n --help Show this message and exit.\n\n Commands:\n config\n datasets\n datatypes\n folders\n forms\n ...\n\nEach of these commands has more commands under it:\n\n.. code-block:: shell\n\n $ parsec histories\n Usage: parsec histories [OPTIONS] COMMAND [ARGS]...\n\n Options:\n --help Show this message and exit.\n\n Commands:\n create_dataset_collection Create a new dataset collection\n create_history Create a new history, optionally setting\n the...\n create_history_tag Create history tag\n delete_dataset Mark corresponding dataset as deleted.\n delete_dataset_collection Mark corresponding dataset collection as...\n delete_history Delete a history.\n download_dataset Deprecated method, use...\n download_history Download a history export archive.\n export_history Start a job to create an export archive\n for...\n ...\n\n\n\nViewing Histories and Datasets\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nTo get information on the Histories currently in your account, call ``history\nget_histories``, and we will pipe this to a ``jq`` command which selects the\nfirst element from the JSON array.\n\n.. code-block:: shell\n\n $ parsec histories get_histories | jq '.[0]'\n\nParsec will respond with information about your first history\n\n.. code-block:: json\n\n {\n \"name\": \"BuildID=Manual-2017.05.02T16:13 WF=PAP_2017_Comparative_(v1.0)_BOOTSTRAPPED Org=CCS Source=Jenkins\",\n \"url\": \"/galaxy/api/histories/548c0777ac615645\",\n \"annotation\": null,\n \"model_class\": \"History\",\n \"id\": \"548c0777ac615645\",\n \"tags\": [\n \"Automated\",\n \"Annotation\",\n \"BICH464\"\n ],\n \"purged\": false,\n \"published\": false,\n \"deleted\": false\n }\n\nThis may not be all of the information you were expecting about your history.\nIn that case, you might want to call ``show_history`` which will show you more\ndetails about a single history. You can either manually type ``parsec histories\nshow_history 548c0777ac615645``, or we can do this in batch:\n\n.. code-block:: shell\n\n $ parsec histories get_histories | jq '.[0].id' | xargs -n 1 parsec histories show_history\n\nWhich pulls out the first history, select the ``id`` attribute, before passing it to ``xargs``.\nIf you have not used it before, ``xargs`` allows us to execute multiple\ncommands for some input data. Here we execute the command ``parsec histories\nshow_history`` for each line of input (i.e. each ID returned to us from the jq call).\n``xargs -n 1`` ensures that we will only pass a single ID to a\nsingle call of ``show_history``. If you were to use ``jq '.[].id'`` instead of\n``jq '.[0].id'`` it would output the IDs for every history you own. You could\nthen pipe this to xargs and run ``show_history`` on all of your histories!\n\n.. code-block:: json\n\n {\n \"annotation\": null,\n \"contents_url\": \"/galaxy/api/histories/548c0777ac615645/contents\",\n \"create_time\": \"2017-05-02T16:18:21.285382\",\n \"deleted\": false,\n \"empty\": false,\n \"genome_build\": null,\n \"id\": \"548c0777ac615645\",\n \"importable\": true,\n \"model_class\": \"History\",\n \"name\": \"BuildID=Manual-2017.05.02T16:13 WF=PAP_2017_Comparative_(v1.0)_BOOTSTRAPPED Org=CCS Source=Jenkins\",\n \"published\": false,\n \"purged\": false,\n \"size\": 34760258,\n \"slug\": \"buildidmanual-20170502t1613-wfpap2017comparativev10bootstrapped-orgccs-sourcejenkins\",\n \"state\": \"ok\",\n \"state_details\": {\n \"discarded\": 0,\n \"empty\": 0,\n \"error\": 0,\n \"failed_metadata\": 0,\n \"new\": 0,\n \"ok\": 29,\n \"paused\": 0,\n \"queued\": 0,\n \"running\": 0,\n \"setting_metadata\": 0,\n \"upload\": 0\n },\n \"state_ids\": {\n \"discarded\": [\n \"a6cc986453fae8ba\",\n \"f2f9b7b017f20578\",\n \"70eb5af78c588bd1\"\n ],\n \"empty\": [],\n \"error\": [\n \"d643e34e1114cc52\",\n \"98ae3d35d73f82c9\"\n ],\n \"failed_metadata\": [],\n \"new\": [],\n \"ok\": [\n \"e510305efbee5f49\",\n \"0d595b7c2b6e9b93\",\n \"d04ac6f949ae266c\",\n \"175f283ddaeca39c\",\n \"b34432b8a0847c04\",\n \"ea7ff5323ddebcb8\",\n \"3e40a393efafc45c\",\n \"7ce5ec5d51ef85cb\",\n \"577e4242cdfbe1aa\",\n \"193d15527d13f45e\",\n \"4543f9456af7f0df\",\n \"5e1293df75b4f95b\",\n \"a57bae35eca5fbfe\",\n \"6c306b2ed4533f1f\",\n \"97c5f81b159505f0\",\n \"64d1d8e46b4554bd\",\n \"8e9432496d7e2b43\",\n \"5c8579257c579aae\",\n \"243ad216fbfa268e\",\n \"8336d9eb27b27677\",\n \"a1d4cc61bdba629d\",\n \"7f93a80890822fa9\",\n \"c479b351902302e2\",\n \"36b60fb58ad24a71\",\n \"041dd3cb6879f1f7\",\n \"36992e90715c9c77\",\n \"4bddfe152467e972\",\n \"2d9f5c0c36d89e10\",\n \"e53ad6f3133b2816\"\n ],\n \"paused\": [\n \"4a8143557292a233\",\n \"b0f8a75aa6be2c1d\"\n ],\n \"queued\": [],\n \"running\": [],\n \"setting_metadata\": [],\n \"upload\": []\n },\n \"tags\": [\n \"Automated\",\n \"Annotation\",\n \"BICH464\"\n ],\n \"update_time\": \"2017-05-02T16:49:07.941097\",\n \"url\": \"/galaxy/api/histories/548c0777ac615645\",\n \"user_id\": \"f570ade6e7840ba0\",\n \"username_and_slug\": \"u/helena-rasche/h/buildidmanual-20170502t1613-wfpap2017comparativev10bootstrapped-orgccs-sourcejenkins\"\n }\n\nSo much metadata to play with and filter on! Note that many of these commands\nhave additional flags, for example ``parsec histories show_history --help``\nwill tell us that we can also pass the --contents option to retrieve a list of datasets in that history, even filtering on their visibility.\n\n.. code-block:: shell\n\n $ parsec histories show_history --help\n Usage: parsec histories show_history [OPTIONS] HISTORY_ID\n\n Get details of a given history. By default, just get the history meta\n information.\n\n Options:\n --contents When ``True``, the complete list of datasets in the given\n history.\n --deleted TEXT Used when contents=True, includes deleted datasets in\n history dataset list\n --visible TEXT Used when contents=True, includes only visible datasets in\n history dataset list\n --details TEXT Used when contents=True, includes dataset details. Set to\n 'all' for the most information\n\nThus with a simple query\n\n.. code-block:: shell\n\n $ parsec histories show_history 548c0777ac615645 --contents --deleted True | jq -S '.[0]'\n\nWe see the first deleted dataset in the history.\n\n.. code-block:: shell\n\n {\n \"create_time\": \"2017-05-02T16:18:54.272050\",\n \"dataset_id\": \"93c926a0dabafde3\",\n \"deleted\": true,\n \"extension\": \"fasta\",\n \"hid\": 30,\n \"history_content_type\": \"dataset\",\n \"history_id\": \"548c0777ac615645\",\n \"id\": \"d643e34e1114cc52\",\n \"name\": \"Feature Sequence Export Unique on data 27 and data 20\",\n \"purged\": false,\n \"state\": \"error\",\n \"type\": \"file\",\n \"type_id\": \"dataset-d643e34e1114cc52\",\n \"update_time\": \"2017-05-02T16:47:57.807506\",\n \"url\": \"/galaxy/api/histories/548c0777ac615645/contents/d643e34e1114cc52\",\n \"visible\": true\n }\n\n\nThis gives us a dictionary containing the History's metadata. With ``contents=False`` (the default), we only get a list of ids of the datasets contained within the History; with ``contents=True`` we would get metadata on each dataset. We can also directly access more detailed information on a particular dataset by passing its id to the ``show_dataset`` method:\n\n.. code-block:: shell\n\n $ parsec datasets_show_dataset 10a4b652da44e82a\n {\n \"accessible\": true,\n \"annotation\": null,\n \"api_type\": \"file\",\n \"create_time\": \"2015-02-27T23:46:27.642906\",\n \"data_type\": \"galaxy.datatypes.data.Text\",\n \"dataset_id\": \"10a4b652da44e82a\",\n \"deleted\": false,\n \"display_apps\": [],\n \"display_types\": [],\n \"download_url\": \"/api/histories/f3c2b0f3ecac9f02/contents/10a4b652da44e82a/display\",\n \"extension\": \"fastq\",\n \"file_ext\": \"fastq\",\n \"file_path\": null,\n \"file_size\": 16527060,\n \"genome_build\": \"dm3\",\n \"hda_ldda\": \"hda\",\n \"hid\": 1,\n \"history_content_type\": \"dataset\",\n \"history_id\": \"f3c2b0f3ecac9f02\",\n \"id\": \"10a4b652da44e82a\",\n \"meta_files\": [],\n \"metadata_data_lines\": 4,\n \"metadata_dbkey\": \"dm3\",\n \"misc_blurb\": \"15.8 MB\",\n \"misc_info\": \"uploaded fastqsanger file\",\n \"model_class\": \"HistoryDatasetAssociation\",\n \"name\": \"C1_R2_1.chr4.fq\",\n \"purged\": false,\n \"resubmitted\": false,\n \"state\": \"ok\",\n \"tags\": [],\n \"type\": \"file\",\n \"update_time\": \"2015-02-27T23:46:34.659590\",\n \"url\": \"/api/histories/f3c2b0f3ecac9f02/contents/10a4b652da44e82a\",\n \"uuid\": \"ccad6f3a-f75d-472f-9142-2d4c39ad1a35\",\n \"visible\": true,\n \"visualizations\": []\n }\n\n\n\nOn JQ\n-----\n\nIt is worth it to look at some of the things possible with JQ for a moment. The\nabove example may not be so exciting at first blush, but you can do incredible\nthings with the combination of parsec, jq, and xargs. Here are some examples to consider:\n\n- find all histories with a public link, but not published in the\n shared-histories section, and print out their history name and the shared\n link.\n\n .. code-block:: shell\n\n $ parsec histories get_histories | \\\n jq '.[].id' | \\\n xargs -n 1 parsec histories show_history | \\\n jq '. | select(.published == false) | select(.importable == true) | [.published, .importable, .id, .username_and_slug] | @tsv' -r\n\n- reset the API keys for 30 users at once.\n\n .. code-block:: shell\n\n $ parsec users get_users | \\\n jq '.[] | \\\n select(.username | contains(\"janedoe\")) | .id' | \\\n xargs -n 1 parsec users create_user_apikey\n\n- download all of the OK datasets in a set of histories\n\n .. code-block:: shell\n\n $ parsec histories get_histories | \\\n jq '.[].id' | \\ # Or other, more complex filtering?\n xargs -n 1 parsec histories show_history | \\ # Get history details\n jq '.state_ids.ok[]' | \\ # Find OK datasets\n xargs -n 1 parsec datasets download_dataset --file_path '.' --use_default_filename # Download\n\n.. _example-dataset:\n\n\nView Workflows\n~~~~~~~~~~~~~~\n\nMethods for accessing workflows are grouped under ``GalaxyInstance.workflows.*``.\n\nTo get information on the Workflows currently in your account, use:\n\n.. code-block:: shell\n\n $ parsec workflows get_workflows\n [\n {\n 'id': 'e8b85ad72aefca86',\n 'name': u\"TopHat + cufflinks part 1\",\n 'url': '/api/workflows/e8b85ad72aefca86'\n },\n {\n 'id': 'b0631c44aa74526d',\n 'name': 'CuffDiff',\n 'url': '/api/workflows/b0631c44aa74526d'\n }\n ]\n\nFor example, to further investigate a workflow, we can request:\n\n.. code-block:: shell\n\n $ parsec workflows show_workflow ded67e5aa1371841 | jq 'del(.steps)'\n\nThe workflow output is generally quite large as it embeds a full copy of the\nworkflow. In the above JQ command I have removed the ``steps`` attribute from\nthe output for brevity.\n\n.. code-block:: json\n\n {\n \"annotation\": \"\",\n \"model_class\": \"StoredWorkflow\",\n \"latest_workflow_uuid\": \"94c40212-c4bb-43b7-a43b-eadc1a3b2894\",\n \"id\": \"ded67e5aa1371841\",\n \"url\": \"/galaxy/api/workflows/ded67e5aa1371841\",\n \"deleted\": false,\n \"tags\": [],\n \"owner\": \"helena-rasche\",\n \"name\": \"PAP 2017 Functional (v8.15)\",\n \"inputs\": {\n \"0\": {\n \"value\": \"\",\n \"uuid\": \"9397916e-afb7-4e48-b89e-d4c99bf202de\",\n \"label\": \"Apollo Organism JSON File\"\n },\n \"2\": {\n \"value\": \"\",\n \"uuid\": \"eca835c6-328a-4698-a387-d0719b24d19d\",\n \"label\": \"Genome Sequence\"\n },\n \"1\": {\n \"value\": \"\",\n \"uuid\": \"5511d038-e96b-49b2-998a-d037935f6e06\",\n \"label\": \"Annotation Set\"\n }\n },\n \"published\": false\n }\n\n\nView Users\n~~~~~~~~~~\n\nMethods for managing users are grouped under ``GalaxyInstance.users.*``. User management is only available to Galaxy administrators, that is, the API key used to connect to Galaxy must be that of an admin account.\n\nTo get a list of users, call::\n\n $ parsec users get_users\n [\n {\n \"username\": \"test\",\n \"model_class\": \"User\",\n \"email\": \"test@local.host\",\n \"id\": \"f2db41e1fa331b3e\"\n },\n ...\n ]\n\n\n.. _Galaxy: (http://galaxyproject.org/)\n.. _GitHub: https://github.com/\n\n\nIn Depth Example\n~~~~~~~~~~~~~~~~\n\nAs a more detailed example, we'll launch a simple workflow.\n\nStep 1. What are the Inputs\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: shell\n\n $ parsec workflows show_workflow ded67e5aa1371841 | jq .inputs > inputs.json\n\nIn practice this file probably looks similar to this:\n\n.. code-block:: json\n\n {\n \"0\": {\n \"value\": \"\",\n \"uuid\": \"9397916e-afb7-4e48-b89e-d4c99bf202de\",\n \"label\": \"Apollo Organism JSON File\"\n },\n \"2\": {\n \"value\": \"\",\n \"uuid\": \"eca835c6-328a-4698-a387-d0719b24d19d\",\n \"label\": \"Genome Sequence\"\n },\n \"1\": {\n \"value\": \"\",\n \"uuid\": \"5511d038-e96b-49b2-998a-d037935f6e06\",\n \"label\": \"Annotation Set\"\n }\n }\n\n\nStep 2: Prepare History and Load Datasets\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nFirst, we'll create a history to manage all of our work:\n\n.. code-block:: shell\n\n $ HISTORY_ID=$(parsec histories create_history | jq .id)\n $ parsec histories update_history --name 'Parsec test'\n\nNext we have to fetch some datasets. You could upload them:\n\n.. code-block:: shell\n\n $ parsec tools upload_file my-file.gff3 $HISTORY_ID\n\nBut in my case, I need to run a tool which produces them:\n\n.. code-block:: shell\n\n JOB_ID=$(parsec tools run_tool $HISTORY_ID edu.tamu.cpt2.webapollo.export \\\n '{\"org_source|source_select\": \"direct\", \"org_source|org_raw\": \"Miro\"}' | \\\n jq .id)\n\n $ parsec jobs show_job .outputs $JOB_ID\n\nBy storing the job ID in a variable, we can make repeated requests to check on\nit. The second parsec statement fetches the output datasets from this step.\n\n.. code-block:: json\n\n {\n \"fasta_out\": {\n \"id\": \"61513e15ce98c986\",\n \"src\": \"hda\",\n \"uuid\": \"0de1442b-c410-4a38-b9ca-49cff973d9b8\"\n },\n \"gff_out\": {\n \"id\": \"62ee69adcf74378c\",\n \"src\": \"hda\",\n \"uuid\": \"887aaf6f-ed07-4ee8-a396-c16612f83d83\"\n },\n \"json_out\": {\n \"id\": \"1f73e96543934ac8\",\n \"src\": \"hda\",\n \"uuid\": \"3be3d364-83c5-4a23-87fa-ebd8c27f2094\"\n }\n }\n\n\nStep 3: Invoking the Workflow\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nRemembering back to the inputs in step 1, we will match them up and create an ``inputs.json`` file\n\n- 0 / organism json file => json_out\n- 1 / genome sequence => gff_out\n- 2 / annotation set => fasta_out\n\nThis gives us an inputs.json that looks like so:\n\n.. code-block:: json\n\n {\n \"0\": {\n \"id\": \"1f73e96543934ac8\",\n \"src\": \"hda\"\n },\n \"1\": {\n \"id\": \"62ee69adcf74378c\",\n \"src\": \"hda\"\n },\n \"2\": {\n \"id\": \"61513e15ce98c986\",\n \"src\": \"hda\"\n }\n }\n\nWe can now invoke our workflow using parsec!\nSince the inputs is a JSON parameter, it can be supplied many different ways for your convenience. All of the following behave identically.\n\n.. code-block:: shell\n\n $ cat params.json | parsec jobs search_jobs -; # Stdin\n $ parsec jobs search_jobs params.json; # Filename\n $ parsec jobs search_jobs $(cat params.json); # String argument\n\nRunning the invocation:\n\n.. code-block:: shell\n\n $ parsec workflows invoke_workflow ded67e5aa1371841 --inputs inputs.json --history_id $HISTORY_ID\n\nProduces a very succinct workflow launch output:\n\n.. code-block:: json\n\n {\n \"uuid\": \"94246003-2f8b-11e7-9427-20474784cc00\",\n \"state\": \"new\",\n \"workflow_id\": \"3daf5606d767a471\",\n \"id\": \"c7f60cfda02f0f46\",\n \"update_time\": \"2017-05-02T23:03:39.693288\",\n \"model_class\": \"WorkflowInvocation\",\n \"history_id\": \"0d17c6f8cd8d49a5\"\n }\n\nWe can now use parsec to check on the status of all of the datasets:\n\n.. code-block:: shell\n\n $ parsec workflows show_invocation 3daf5606d767a471 c7f60cfda02f0f46 | jq '.steps[].state' | sort | uniq -c\n 3 \"running\"\n 72 \"new\"\n 3 null\n 1 \"ok\"\n\nOr we can use one of the utility scripts to wait on that workflow to finish before continuing on to some other task:\n\n.. code-block:: shell\n\n $ parsec utils wait_on_invocation 3daf5606d767a471 c7f60cfda02f0f46 && ...\n\n\n\nLicense\n-------\n\nCopyright 2016-2017 Galaxy IUC\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSupport\n-------\n\nThis material is based upon work supported by the National Science Foundation under Grant Number (Award 1565146)", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/galaxy-iuc/parsec", "keywords": "parsec", "license": "AFL", "maintainer": "", "maintainer_email": "", "name": "galaxy-parsec", "package_url": "https://pypi.org/project/galaxy-parsec/", "platform": "", "project_url": "https://pypi.org/project/galaxy-parsec/", "project_urls": { "Homepage": "https://github.com/galaxy-iuc/parsec" }, "release_url": "https://pypi.org/project/galaxy-parsec/1.13.0/", "requires_dist": null, "requires_python": "", "summary": "Command-line utilities to assist in interacting with Galaxy servers (http://galaxyproject.org/).", "version": "1.13.0" }, "last_serial": 5665019, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "f922a01a9b4c976f52e8dcddcb5eef52", "sha256": "72cafdcb405dae99885820819381266868f3c63d6f49fd0d282991cfcaf07796" }, "downloads": -1, "filename": "galaxy_parsec-1.0.0-py2.7.egg", "has_sig": false, "md5_digest": "f922a01a9b4c976f52e8dcddcb5eef52", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 207278, "upload_time": "2017-05-26T16:30:38", "url": "https://files.pythonhosted.org/packages/cb/f9/63f04326c824a9596a604e6b1f2493300122551a2fad47a36ce15ee02432/galaxy_parsec-1.0.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "3d5aca63c48ac9374f1e9c8fa30c7010", "sha256": "6bd3c4a06925d92f57fcf63950992dbea7b772ec8e4f4b0837eff84f4af78c63" }, "downloads": -1, "filename": "galaxy-parsec-1.0.0.tar.gz", "has_sig": false, "md5_digest": "3d5aca63c48ac9374f1e9c8fa30c7010", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42176, "upload_time": "2017-05-26T16:30:36", "url": "https://files.pythonhosted.org/packages/a5/cb/a03e3b35332aefac6104c9be1a65e2500b17bc6008759771862df490cc9d/galaxy-parsec-1.0.0.tar.gz" } ], "1.0.0rc1": [ { "comment_text": "", "digests": { "md5": "74ebb88a34494124b91f9b6982792831", "sha256": "ba8bc8d759ba0a962c29f89a78f100700458ba90cfa4f55c1f2b0b5e85f435af" }, "downloads": -1, "filename": "galaxy_parsec-1.0.0rc1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "74ebb88a34494124b91f9b6982792831", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 62099, "upload_time": "2017-05-03T18:41:14", "url": "https://files.pythonhosted.org/packages/91/51/b39e4fddf3347663a8eb22334d60d777284217fe52fbeb1237669b6cea7b/galaxy_parsec-1.0.0rc1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "546c715ee0ddd1003dfa0274356e93ac", "sha256": "b36b6257d9452e691512a8fb2e54aa8ba0a662a41f407d4949ab7131d8c69701" }, "downloads": -1, "filename": "galaxy-parsec-1.0.0rc1.tar.gz", "has_sig": false, "md5_digest": "546c715ee0ddd1003dfa0274356e93ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12533, "upload_time": "2017-05-03T18:41:16", "url": "https://files.pythonhosted.org/packages/f3/94/d0adaf3aa306a323b639ce565fc1d2543241cbf40acfe171ef42224a4fd8/galaxy-parsec-1.0.0rc1.tar.gz" } ], "1.0.0rc5": [ { "comment_text": "", "digests": { "md5": "64c5c6eea5794113ae26cd0686bf6e4d", "sha256": "e28844564229fb1ce880b7e916c0e142fa6c0700d15f3c88abcf0de0d9bcbc07" }, "downloads": -1, "filename": "galaxy_parsec-1.0.0rc5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "64c5c6eea5794113ae26cd0686bf6e4d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 96130, "upload_time": "2017-05-09T00:11:49", "url": "https://files.pythonhosted.org/packages/a8/f0/4c141569b963c472b2ddabf8fab439dbec332a814397cf9e9ba0989c1bd9/galaxy_parsec-1.0.0rc5-py2.py3-none-any.whl" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "12f5e532e582846ad728e4f468b27763", "sha256": "685ffd059d668e842221821a9705352becc516020b80673ae361b16db27a699e" }, "downloads": -1, "filename": "galaxy_parsec-1.0.1-py3.5.egg", "has_sig": false, "md5_digest": "12f5e532e582846ad728e4f468b27763", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 215220, "upload_time": "2017-05-26T16:49:47", "url": "https://files.pythonhosted.org/packages/95/15/a200bd5f6f63c620dca44302e0f7abea90ccaa3a1ba7714869ffa720fe0e/galaxy_parsec-1.0.1-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "93d119b4b5f22ba51600cfe2ec6e2e43", "sha256": "f6e8760a995d2fda4aad42e26423501aa383c0b6e3aba9c01b06b030ead139cf" }, "downloads": -1, "filename": "galaxy-parsec-1.0.1.tar.gz", "has_sig": false, "md5_digest": "93d119b4b5f22ba51600cfe2ec6e2e43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42117, "upload_time": "2017-05-26T16:49:45", "url": "https://files.pythonhosted.org/packages/91/f8/3b3197e4355d6ddeeb5a1664917e36f89e4745c6dc94eff74be1293c9cf0/galaxy-parsec-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "079a42156f5411fe516c2412494a72f3", "sha256": "d6d2ede1147df5d963fdbeb878006bcf2584dd9d27543cab50d58366f159548f" }, "downloads": -1, "filename": "galaxy_parsec-1.0.2-py2.7.egg", "has_sig": false, "md5_digest": "079a42156f5411fe516c2412494a72f3", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 208379, "upload_time": "2017-06-12T15:32:37", "url": "https://files.pythonhosted.org/packages/1a/bc/e9b75d5c1c253ff9e14886005e4a22a2bea0c81e9bd6e6d23ad2dc289b74/galaxy_parsec-1.0.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "d26118af8978a775fe76bdc5a858341f", "sha256": "13898fd381d316b2ad9e679f3c031a7980261209016bfd8aa2b5406a03f47fc1" }, "downloads": -1, "filename": "galaxy-parsec-1.0.2.tar.gz", "has_sig": false, "md5_digest": "d26118af8978a775fe76bdc5a858341f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42875, "upload_time": "2017-06-12T15:32:35", "url": "https://files.pythonhosted.org/packages/88/75/b661b9d0ba63ea40d7890c2e36458a5a2ccada4a76e876cea828c854342e/galaxy-parsec-1.0.2.tar.gz" } ], "1.0.3rc1": [ { "comment_text": "", "digests": { "md5": "6a10bc26031496ce11ee52027d10d38e", "sha256": "b5430bd0ad9197a8fe6fb62fdb3712019e711981d34a3752274592182717d5f6" }, "downloads": -1, "filename": "galaxy_parsec-1.0.3rc1-py2.7.egg", "has_sig": false, "md5_digest": "6a10bc26031496ce11ee52027d10d38e", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 257650, "upload_time": "2017-06-27T11:45:30", "url": "https://files.pythonhosted.org/packages/64/2a/05f59c08853f670fa42891a3e68943c2c6f6d9158fccb60359120d520cd3/galaxy_parsec-1.0.3rc1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "76ff93f521a51a7f5f8fed135b8c4986", "sha256": "c8bf514cb98547ed4c3f87d678cbff93bc30f1d6c8b78335c11e8abac514498b" }, "downloads": -1, "filename": "galaxy-parsec-1.0.3rc1.tar.gz", "has_sig": false, "md5_digest": "76ff93f521a51a7f5f8fed135b8c4986", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52791, "upload_time": "2017-06-27T11:45:28", "url": "https://files.pythonhosted.org/packages/3c/27/72e685f24001e441a4d391b14713fe1392c8634999f5accfe1e13ad74b83/galaxy-parsec-1.0.3rc1.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "066e3d35f3a374095d0d90bf76214494", "sha256": "120ec8ae51790e2b88ea2f99e7b77bc02ded27005b27fba123b7ff89ec4489d8" }, "downloads": -1, "filename": "galaxy-parsec-1.0.4.tar.gz", "has_sig": false, "md5_digest": "066e3d35f3a374095d0d90bf76214494", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52826, "upload_time": "2017-09-11T09:40:55", "url": "https://files.pythonhosted.org/packages/f7/aa/5bbd266698de39c9897d58e26bac2bff714be73ac10ed5f41b8ac45213bb/galaxy-parsec-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "97c159917b1704b380bcb5d5c64e0883", "sha256": "3c45dee3fbdd8f4c5552d2d042708eaabef2b4e96c513ed4a91e86be5082006c" }, "downloads": -1, "filename": "galaxy-parsec-1.0.5.tar.gz", "has_sig": false, "md5_digest": "97c159917b1704b380bcb5d5c64e0883", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53534, "upload_time": "2018-10-03T12:15:09", "url": "https://files.pythonhosted.org/packages/79/dc/0266640b7ac1220f71eca83f28f8207801db2655d40e98af1c082634c762/galaxy-parsec-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "734579f0c52fea498e969cac5f1c3902", "sha256": "f80ffc822963cdc6130ecfc662c6ec1be5257d2200c887889f1946740ed16558" }, "downloads": -1, "filename": "galaxy-parsec-1.0.6.tar.gz", "has_sig": false, "md5_digest": "734579f0c52fea498e969cac5f1c3902", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53862, "upload_time": "2018-12-13T12:25:33", "url": "https://files.pythonhosted.org/packages/45/51/b4a52b8534ad27fdb8daebddd907e612ca6edd24b567e0a9137a447b7a96/galaxy-parsec-1.0.6.tar.gz" } ], "1.12.0": [ { "comment_text": "", "digests": { "md5": "1ed96a39c5bd436fd2e2a4783f30ccc6", "sha256": "ab2d9b4d27abf6d1f96d8d4dfcc0920c464d3fa038df6501c431d554eb3a2b76" }, "downloads": -1, "filename": "galaxy-parsec-1.12.0.tar.gz", "has_sig": false, "md5_digest": "1ed96a39c5bd436fd2e2a4783f30ccc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54279, "upload_time": "2019-04-10T12:28:02", "url": "https://files.pythonhosted.org/packages/aa/4c/1cfab252d8281bb309357bffe887b193d13873923e29e2cb20843442de39/galaxy-parsec-1.12.0.tar.gz" } ], "1.12.1": [ { "comment_text": "", "digests": { "md5": "f9b827c31fb0d4fdbcca91ab7f0b67cc", "sha256": "00b87472aa06b6da3450be215125bb8361ee5c9f654fa080ad8389811f04a1c4" }, "downloads": -1, "filename": "galaxy-parsec-1.12.1.tar.gz", "has_sig": false, "md5_digest": "f9b827c31fb0d4fdbcca91ab7f0b67cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50678, "upload_time": "2019-04-29T14:19:20", "url": "https://files.pythonhosted.org/packages/79/22/26a2b7205f11ae5da55ed6e3bb7eb5b29f5eb84cd1055f08e062b7cb4b68/galaxy-parsec-1.12.1.tar.gz" } ], "1.13.0": [ { "comment_text": "", "digests": { "md5": "d687bc33d4f115c608c30a986444042d", "sha256": "96b705ecba3be27c32badb4b80fc4c50070d83b851ac8ee924454abf8f1aae1e" }, "downloads": -1, "filename": "galaxy-parsec-1.13.0.tar.gz", "has_sig": false, "md5_digest": "d687bc33d4f115c608c30a986444042d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58700, "upload_time": "2019-08-12T09:13:44", "url": "https://files.pythonhosted.org/packages/ef/2c/16b4c5ba162c82ecccd1a9ad6cb64eb067e8ce4e3db8957c9d77f0d8372b/galaxy-parsec-1.13.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d687bc33d4f115c608c30a986444042d", "sha256": "96b705ecba3be27c32badb4b80fc4c50070d83b851ac8ee924454abf8f1aae1e" }, "downloads": -1, "filename": "galaxy-parsec-1.13.0.tar.gz", "has_sig": false, "md5_digest": "d687bc33d4f115c608c30a986444042d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58700, "upload_time": "2019-08-12T09:13:44", "url": "https://files.pythonhosted.org/packages/ef/2c/16b4c5ba162c82ecccd1a9ad6cb64eb067e8ce4e3db8957c9d77f0d8372b/galaxy-parsec-1.13.0.tar.gz" } ] }