{ "info": { "author": "Bryce Boe", "author_email": "bbzbryce@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": ".. _main_page:\n\nfarcy: a code review bot for github pull requests\n=================================================\n\n.. image:: https://travis-ci.org/appfolio/farcy.svg?branch=master\n :target: https://travis-ci.org/appfolio/farcy\n.. image:: https://coveralls.io/repos/appfolio/farcy/badge.svg?branch=master\n :target: https://coveralls.io/r/appfolio/farcy?branch=master\n\n**Definition**:\n\n a form of glanders chiefly affecting the skin and superficial lymphatic\n vessels of horses and mules.\n\nWhile horses and mules function with farcy, such animals would *likely* prefer\nnot to have them, and they are an eyesore to those viewing such\nanimals. Unreviewed source code is analogous to farcy for equines, where the\nresulting execution of the source code will likely work as intended, but may be\nan eyesore to those working with the source. Farcy attempts to instruct authors\nof pull requests to remove eyesores they've added by commenting on changes\nintroduced in pull requests.\n\nInstallation and execution\n--------------------------\n\nFarcy is easiest to install using ``pip``:\n\n.. code-block:: bash\n\n $ pip install farcy\n\nFarcy is run by specifying a github repository owner (or organization), the\nrepository name, and an optional log level:\n\n.. code-block:: bash\n\n $ farcy --level INFO appfolio farcy\n\nConfiguration\n~~~~~~~~~~~~~\n\nFarcy allows to be configured using configuration files. Existence of a configuration\nfile is optional and values can be overwritten by commandline arguments. On boot,\nFarcy will look for a configuration file at ``~/.config/farcy/farcy.conf``.\n\nThe configuration file can contain a ``DEFAULT`` section and a section per repository\nwith specific settings. The ``DEFAULT`` section can take an optional ``repository`` key.\n\n.. code-block::\n\n [DEFAULT]\n log_level: INFO\n repository:appfolio/farcy\n\n [appfolio/farcy]\n debug: true\n exclude_paths: npm_modules, vendor, db\n limit_users: balloob, bboe\n pr_issue_report_limit: 32\n\n [appfolio/gemsurance]\n exclude_users: bboe\n log_level: WARNING\n pr_issue_report_limit: 10\n\n\nConfiguration files for the various linters can be placed in\n``~/.config/farcy/handler_NAME.conf``. Replace ``NAME`` with the name of the handler.\n\n\nOptional external packages needed for various file types\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n**Python**: ``farcy`` will take advantage of two tools for python files:\n``flake8`` and ``pep257``. These can be installed alongside ``farcy`` via:\n\n.. code-block:: bash\n\n $ pip install farcy[python]\n\n**Ruby**: In order to provide code review of ruby files, ``rubocop`` is\nrequired. Install via:\n\n.. code-block:: bash\n\n $ gem install rubocop\n\n**JavaScript**: jsxhint is used to provide code review for JavaScript and JSX files. Install via:\n\n.. code-block:: bash\n\n $ npm install -g jsxhint\n\n\nDocker\n------\nFarcy is available as a Docker image with all the handlers installed and ready to be used.\n\nTo get started, create a config folder with a configuration file `farcy.conf` that points at your repository.\n\n.. code-block::\n\n [DEFAULT]\n repository: appfolio/farcy\n\nAfter that, run the Docker container in interactive mode to setup your GitHub credentials. This will create the file `github_auth` in your configuration folder. This file can be reused if you plan on creating multiple containers.\n\n.. code-block:: bash\n\n $ docker run -t -i -v /path/to/local/farcy/config:/config appfolio/farcy\n\nAfter the initial setup, Farcy is ready to go and you can run the Docker container in daemon mode.\n\n.. code-block:: bash\n\n $ docker run -d --name=\"farcy\" -v /path/to/local/farcy/config:/config appfolio/farcy\n\nCopyright and license\n---------------------\n\nSource released under the Simplified BSD License.\n\n* Copyright (c), 2014, AppFolio, Inc\n* Copyright (c), 2014, Bryce Boe\n* Copyright (c), 2015, Paulus Schoutsen\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/appfolio/farcy", "keywords": "code review", "license": "Simplified BSD License", "maintainer": "", "maintainer_email": "", "name": "farcy", "package_url": "https://pypi.org/project/farcy/", "platform": "", "project_url": "https://pypi.org/project/farcy/", "project_urls": { "Homepage": "https://github.com/appfolio/farcy" }, "release_url": "https://pypi.org/project/farcy/1.3.0/", "requires_dist": null, "requires_python": "", "summary": "A code review bot for github pull requests", "version": "1.3.0" }, "last_serial": 4353021, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "4b21645e13624ddbe69dd99163ca4036", "sha256": "7e8482f396f63c034d6e969c9b7514d23b86210deac36cbc0be05b0da7199516" }, "downloads": -1, "filename": "farcy-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4b21645e13624ddbe69dd99163ca4036", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14091, "upload_time": "2015-07-13T22:16:36", "url": "https://files.pythonhosted.org/packages/cb/f9/25735e77de671b45d0b7d16ec4a4b6b94de84640c20b0cda1366a1f707e6/farcy-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf3a5acea9f3afe90ca8d7280d9c571f", "sha256": "c755a33c0f9a597d12eb36499157a064ee2cd3a04691f78df6c8e51484fd50dd" }, "downloads": -1, "filename": "farcy-0.1.tar.gz", "has_sig": false, "md5_digest": "bf3a5acea9f3afe90ca8d7280d9c571f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13227, "upload_time": "2015-07-13T22:16:40", "url": "https://files.pythonhosted.org/packages/b7/39/bd258d04a9b2bef75e7c124c8c76668b266d8ad35d7f9e08d4158abd6b9c/farcy-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "7483d3fdc1f1a159038c3cb49191383f", "sha256": "03adf8ffa93ce9577686abcd6672c67b0b4c9c219e94f339612fca7070066032" }, "downloads": -1, "filename": "farcy-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7483d3fdc1f1a159038c3cb49191383f", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14489, "upload_time": "2015-07-16T00:15:54", "url": "https://files.pythonhosted.org/packages/c8/06/2a0a3066a2d55da2bc863c084fe465a44378dd2008d39d1933b70c39d53d/farcy-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d269d1fa5338969289e40a94cb821be5", "sha256": "df8823893b227aceacc217b3b7c4ed4c3ff4c30e322f42bf1670b0fbbd382b89" }, "downloads": -1, "filename": "farcy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "d269d1fa5338969289e40a94cb821be5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14753, "upload_time": "2015-07-16T00:15:57", "url": "https://files.pythonhosted.org/packages/f4/a6/b3150df66fdb09f25a19cd89c594b3e7c658759ba45112835e587257b5f3/farcy-0.1.1.tar.gz" } ], "0.1b": [ { "comment_text": "", "digests": { "md5": "d03a1cf14eea1cd485894ed531f32e55", "sha256": "b17c9f94f5c45857febce2c3fbed7ae96e10aee117a210d9a3153ff5933b0dd0" }, "downloads": -1, "filename": "farcy-0.1b-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d03a1cf14eea1cd485894ed531f32e55", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 10527, "upload_time": "2014-12-06T01:03:33", "url": "https://files.pythonhosted.org/packages/75/a4/5bf7a2858f0d1c4fb100369ad44c8c3803fcf35b1210b960083fffea65dc/farcy-0.1b-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "67af41947367caafa96c29ce3db76916", "sha256": "581c69dab946c0b1fc478354b21daf877318665bf70a0346e5d127c66c9a37af" }, "downloads": -1, "filename": "farcy-0.1b.tar.gz", "has_sig": false, "md5_digest": "67af41947367caafa96c29ce3db76916", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7910, "upload_time": "2014-12-06T01:03:36", "url": "https://files.pythonhosted.org/packages/cd/48/a77ef2fc8a9bf3c91be02a66f6967edcd23d8d45d1794360831c4a448c43/farcy-0.1b.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "0dffe3fa24c2f7ed5b2ce85592d6e12f", "sha256": "35528b2c729672aa40e1922d4a463ef168d317c6b4601e31c23ddbf037afd906" }, "downloads": -1, "filename": "farcy-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0dffe3fa24c2f7ed5b2ce85592d6e12f", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 17809, "upload_time": "2015-08-31T20:52:04", "url": "https://files.pythonhosted.org/packages/43/50/2a3dd1609e1ab015dfeb11d3893a99189589c43bf89b030e581101504de5/farcy-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e1a4b564bd6e426194e3e011ac4ceaad", "sha256": "2e03fc9dbe796454f02a5157fd0c4bf96cb30380b0947177f84f187ce72f87ed" }, "downloads": -1, "filename": "farcy-0.2.0.tar.gz", "has_sig": false, "md5_digest": "e1a4b564bd6e426194e3e011ac4ceaad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20105, "upload_time": "2015-08-31T20:52:12", "url": "https://files.pythonhosted.org/packages/3c/32/6c9671842ee31868bace3ee5df52a9b4a71c797102e7111fe9778aa6be76/farcy-0.2.0.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "0ded4795ab8e77acaeb881a1a87a4d39", "sha256": "b95d1450934a1733b2d55b551e610380600b523bafc312715bce6ab2b441f678" }, "downloads": -1, "filename": "farcy-1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0ded4795ab8e77acaeb881a1a87a4d39", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 19082, "upload_time": "2015-09-23T17:39:06", "url": "https://files.pythonhosted.org/packages/c2/6f/5e58d03cd808f6c855712dbff13cc87502625c1828165fdd42dcb4e41a2b/farcy-1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fff5655f646372d9e9a05fb5232a8f49", "sha256": "d65b56187494c98da3cfc280e7328050fd845b05eeb0223823ef2609f6b83684" }, "downloads": -1, "filename": "farcy-1.0.tar.gz", "has_sig": false, "md5_digest": "fff5655f646372d9e9a05fb5232a8f49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22397, "upload_time": "2015-09-23T17:39:14", "url": "https://files.pythonhosted.org/packages/9d/05/b04a916b93dc0818dba40a45e5dbfeea3fdbb7c34d0bbb8e73010ed4ecef/farcy-1.0.tar.gz" } ], "1.0rc1": [ { "comment_text": "", "digests": { "md5": "89d6cffd8679c8b416ce4cc6dacb79ae", "sha256": "77daf667b3d9176786c055615a8ea9cfaffe2e8189b22eb86b467dbc25983dd7" }, "downloads": -1, "filename": "farcy-1.0rc1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "89d6cffd8679c8b416ce4cc6dacb79ae", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 19098, "upload_time": "2015-09-09T21:37:01", "url": "https://files.pythonhosted.org/packages/73/6c/c8f527bf5abb680ae99dc89b6106e4e4d9ca371333f9a251cc625a3c88f9/farcy-1.0rc1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "86abcade9fc44404a8c906b607cdf51f", "sha256": "b5aadfb39dec9f89cc3d0548146011fc3fc228535756e79f8fc41e1638f36a45" }, "downloads": -1, "filename": "farcy-1.0rc1.tar.gz", "has_sig": false, "md5_digest": "86abcade9fc44404a8c906b607cdf51f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22312, "upload_time": "2015-09-09T21:37:19", "url": "https://files.pythonhosted.org/packages/28/5d/737679dfdc411c1f3e1a559e93f2834954152f97845d113bcab128e82f10/farcy-1.0rc1.tar.gz" } ], "1.0rc2": [ { "comment_text": "", "digests": { "md5": "20d69d8f3120c9a88d7cdc9086482ec6", "sha256": "b959200bc02e860d2d545a994feeab1ebc8ba4d5e8cb06318d689935f4b42ccc" }, "downloads": -1, "filename": "farcy-1.0rc2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "20d69d8f3120c9a88d7cdc9086482ec6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 19141, "upload_time": "2015-09-15T18:57:57", "url": "https://files.pythonhosted.org/packages/cd/f3/1ddba1914175280b45ea52da47ea00232b949eac6e7bdb1eb3385ec597a5/farcy-1.0rc2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5a6fe2a1daa94d196993ef7ee035bafc", "sha256": "5c99b0a0e32ae996195dc977e38b2244cdeecb9cf538348dc868fb087d5d317e" }, "downloads": -1, "filename": "farcy-1.0rc2.tar.gz", "has_sig": false, "md5_digest": "5a6fe2a1daa94d196993ef7ee035bafc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22398, "upload_time": "2015-09-15T18:58:03", "url": "https://files.pythonhosted.org/packages/d1/9e/ad8430382d1eb16114fbb8f5a5b8046a8a1cd960f4395b7df38e6c912950/farcy-1.0rc2.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "03efda81cb02560ed75e24cd2cce67c3", "sha256": "0578740699a547b31a7851a7432fd604a483543fd4b9a3721b5a5d939bf11908" }, "downloads": -1, "filename": "farcy-1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "03efda81cb02560ed75e24cd2cce67c3", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 19595, "upload_time": "2016-01-13T19:43:14", "url": "https://files.pythonhosted.org/packages/cd/ae/1734c31e8fa0adc4f1caadaa1fbf46f216a6492a8eb01f94ace443c30b76/farcy-1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b2b15a8787dfce4da4206c51406bd51", "sha256": "0dce3ee112af6069412ebabbfc0265a02c4c472727cccd3bbf7459387d4667b0" }, "downloads": -1, "filename": "farcy-1.1.tar.gz", "has_sig": false, "md5_digest": "2b2b15a8787dfce4da4206c51406bd51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23087, "upload_time": "2016-01-13T19:43:05", "url": "https://files.pythonhosted.org/packages/c4/9e/86b94b2f18e3467698c4e3f1b27ed1a3d25f311d55f34d62f186bc139c40/farcy-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "8587ab6c186c21f64cd5f32ff5b483f2", "sha256": "b0fc2da351c0dac29e678a4cac36f3139e1fbbc97976a76eafe46445f6765be8" }, "downloads": -1, "filename": "farcy-1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8587ab6c186c21f64cd5f32ff5b483f2", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 19550, "upload_time": "2018-03-16T00:20:41", "url": "https://files.pythonhosted.org/packages/34/fb/9901b18d52479c6bc6fc63d868c68d363a8783d4341d5c3abc1657af1a5e/farcy-1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "18e1c8b74b37fe8cf397d83cef6779a3", "sha256": "fd8e3c1c62f4577d88ef609027793b74e0eb3499adbcfc3b574a0541f94717df" }, "downloads": -1, "filename": "farcy-1.2.tar.gz", "has_sig": false, "md5_digest": "18e1c8b74b37fe8cf397d83cef6779a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23438, "upload_time": "2018-03-16T00:20:44", "url": "https://files.pythonhosted.org/packages/5e/99/0a49fa17503920048689390444be9c95a6cc86ae8a24c1ec9f091cb56361/farcy-1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "3588dd063d306509ebc6232d00432228", "sha256": "202c0c1faa911a47939b79da140d6b875ee9817af45a676a3664e5277df3c1e0" }, "downloads": -1, "filename": "farcy-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3588dd063d306509ebc6232d00432228", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 19494, "upload_time": "2018-03-16T05:47:57", "url": "https://files.pythonhosted.org/packages/8d/d0/9ca9df6b95658e64b25ce30eea4aaf9dbad3d4b9cd41aa3a65d848294e4c/farcy-1.2.1-py2.py3-none-any.whl" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "efbc32d6c73b24bf0366f5a6f8a94c65", "sha256": "a1863bbd411290647d8656440c2cfaad2582e9ddf3654f7f0a25c7b526521922" }, "downloads": -1, "filename": "farcy-1.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "efbc32d6c73b24bf0366f5a6f8a94c65", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 19489, "upload_time": "2018-03-16T05:53:50", "url": "https://files.pythonhosted.org/packages/a2/48/af439f211d2e6001b90eaaa421f6d7aa090f0e300e1ae46058963bd84aae/farcy-1.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8e4c93524edceba62770289457117e53", "sha256": "6af17e7ae7f6bb581e8fda0a1759021621a34049e9cb67708b9e1915a0462109" }, "downloads": -1, "filename": "farcy-1.2.2.tar.gz", "has_sig": false, "md5_digest": "8e4c93524edceba62770289457117e53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23288, "upload_time": "2018-03-16T05:53:53", "url": "https://files.pythonhosted.org/packages/60/4d/95df58e0998c9f761c3c506a8baf590ab9da8c1b4acc52cfa342f77b5091/farcy-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "b7c97cd5c229905256e06747c89e3aff", "sha256": "ba37f693e0edd79a85fe506a5b98598319092d3b16cc29fa279063e06e6f2184" }, "downloads": -1, "filename": "farcy-1.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b7c97cd5c229905256e06747c89e3aff", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 19484, "upload_time": "2018-03-19T17:53:49", "url": "https://files.pythonhosted.org/packages/79/ab/b11fa80575d2be99a42283f5b820af0f145b037d7e4855d0f19dedb4def8/farcy-1.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dbaee178dbaed526fd9bd490df14285e", "sha256": "ccb6c42477de9c6ff29f317d47fb59cbf4ff537bc21b0ffc015ee56bd81bbe70" }, "downloads": -1, "filename": "farcy-1.2.3.tar.gz", "has_sig": false, "md5_digest": "dbaee178dbaed526fd9bd490df14285e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23294, "upload_time": "2018-03-19T17:53:52", "url": "https://files.pythonhosted.org/packages/52/5d/6085d46e0a462945b5a159ed0962bc3351c9afc14b302ff13787c36e4844/farcy-1.2.3.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "889c5787f260e5513c0f271b22f14c34", "sha256": "c01279731d9546e2b766e53c7f28a4992e0d72494e25ca01ee1322cec05d28cc" }, "downloads": -1, "filename": "farcy-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "889c5787f260e5513c0f271b22f14c34", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 16922, "upload_time": "2018-10-08T17:59:00", "url": "https://files.pythonhosted.org/packages/65/a0/47fae36fb382f8a9d7221c6b21ebed5027f66f9208f893466687ec3e1ae2/farcy-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "420d37215006498c6b6ffbbfbd2cf5d8", "sha256": "9a6db4684fd60c2a3bf008f94ff950e9d01c43e7305ce44270990703b7d6eb7a" }, "downloads": -1, "filename": "farcy-1.3.0.tar.gz", "has_sig": false, "md5_digest": "420d37215006498c6b6ffbbfbd2cf5d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24796, "upload_time": "2018-10-08T17:59:02", "url": "https://files.pythonhosted.org/packages/32/81/a14bcbc8c8e14b8fd68590a46b0774c20b1bc0a0c5e70a7919610c9e81cf/farcy-1.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "889c5787f260e5513c0f271b22f14c34", "sha256": "c01279731d9546e2b766e53c7f28a4992e0d72494e25ca01ee1322cec05d28cc" }, "downloads": -1, "filename": "farcy-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "889c5787f260e5513c0f271b22f14c34", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 16922, "upload_time": "2018-10-08T17:59:00", "url": "https://files.pythonhosted.org/packages/65/a0/47fae36fb382f8a9d7221c6b21ebed5027f66f9208f893466687ec3e1ae2/farcy-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "420d37215006498c6b6ffbbfbd2cf5d8", "sha256": "9a6db4684fd60c2a3bf008f94ff950e9d01c43e7305ce44270990703b7d6eb7a" }, "downloads": -1, "filename": "farcy-1.3.0.tar.gz", "has_sig": false, "md5_digest": "420d37215006498c6b6ffbbfbd2cf5d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24796, "upload_time": "2018-10-08T17:59:02", "url": "https://files.pythonhosted.org/packages/32/81/a14bcbc8c8e14b8fd68590a46b0774c20b1bc0a0c5e70a7919610c9e81cf/farcy-1.3.0.tar.gz" } ] }