{ "info": { "author": "Ben Whalley", "author_email": "benwhalley@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "FAB! The Forgione-Avent-Barber Finger Pressure Stimulator\n=========================================================\n\nThis repository contains the control software for the new\nForgione-Avent-Barber (FAB) finger pressure stimulator. Details of the\noriginal Forgione Barber (FB) device [Forgione1971]_ `are\nhere `__. The FAB updates the original\ndesign to allow for indepenent computer control of pressure stimulation\nof each hand, allowing for a much greater range of experimental designs\n(e.g. deceptive or conditioned placebo designs).\n\n\n\n\n\nBackground and rationale for the new design\n--------------------------------------------------\n\nStudies of pain and placebo analgesia have historically used a wide\nvariety of stimuli as laborotory analogues including electrical stimuli\n[Wager2004]_, cold water (i.e. a cold pressor;\n[Posner1985]_), heat [Ptrovic2002]_, iontophorensis\n[Montgomery1997]_, lasers [Bingel2006]_, and pressure\n[Whalley2008]_.\n\nPain stimuli for laborotory studies can be evaluated on a number of\ndimensions: the *reliability* of the stimuli (in the sense the same stimuli\ncan be delivered consistently); *validity* of the stimuli, in the sense\nthat it corresponds to real world pain experiences; *repeatability*, in\nthe sense that multiple stimuli can be given in a single experiment;\nwhether *deception* is possible --- that is, whether participants can be\nconvincingly misinformed about the stimuli to be delivered (this would, for exaple, allow placebo-conditioning studies to take place, e.g. @montgomery1997classical); and\nthe *expense* and *practicality* of the techniques \u2014 for example whether\nthe equipment can be used by students without additional supervision.\n\n================== ============ ========== ============ =========== ========== ========= ===========\n Stimuli Reliablity Validity Repeatable Deception Blinding Expense Practical \n------------------ ------------ ---------- ------------ ----------- ---------- --------- -----------\n *Heat* Good Good Yes Yes Yes High Yes \n *Cold* Moderate Good No No No Low Yes \n *Iontophorensis* Yes Poor Yes Yes Yes NA NA \n *Electrical* Good Poor Yes Yes Yes Med Yes \n *Laser* Good Poor Yes Yes Yes High No \n *Focal pressure* Moderate Good Yes No No Low Yes \n================== ============ ========== ============ =========== ========== ========= ===========\n\n\nFocal pressure, applied to the skin over bone, is a method of evoking\nexperimental pain of an 'aching' nature. The experienced sensation is\nrelatively closely related to the pressure applied, and many studies of\npain and placebo analgesia use pressure stimuli because they are cheap,\npractical, reliable and have reasonable ecological validity (see Table\nfor a comparison of the different types of pain stimulator available).\nThe FB device is used to apply pressure to the fingers via lever [Forgione1971]_, see figure. However, three important limitations of the original FB device are that \n\n1. it is impossible to deceive pariticpants as to the true magnitude of the\nstimulus to be delivered, ruling out conditioning studies\n2. it is impossible to blind experimenters to the stimuli to be delivered (e.g. via computer control), and that \n3. the reliability of pain measurements is limited by the resolution of pain self report scales.\n\nThe FAB is designed to resolve all three of these limitations.\n\n\n.. figure:: static/hand_300.jpg?raw=true\n :alt: An original Forgione Barber device.\n :width: 200 px\n\n An original Forgione Barber device.\n\n\n\n\nThe FAB: Hardware\n~~~~~~~~~~~~~~~~~~~\n\nThe FAB is based on cheap, readily available hardware (an Arduino\nmicrocontroller and widely-available pressure-sensors) and the key\nmechanical components are 3D printed and can be assembled by lab\ntechnicians. Ready-assembled units are also be available to buy.\n\nMore details, including circuit diagrams, schematics, and CAD files\nsufficient to enable 3d-printing and assembly of a device, will be\navailable soon under a permissive open source license.\n\n\nThe piston\n The key mechanical component is a 3D-printed piston which contains 2kg of\n ballast and a linear motor to drive the probe which makes contact with the participants finger.\n As the linear motor drives the probe downwards and makes contact with the finger\n the piston is lifted from a rest position, but the maximum weight which can be applied to\n the probe remains 2kg [#grams]_. \n\nArduino microcontroller and sensors\n An arduino microcontroller is used to drive the linear actuators and capture data from \n two load cells mounted within the pistons (between the probe and the motor). These data are fed\n to a controlling PC via the `Firmata `_ serial protocol.\n\n\n.. [#grams] Where 1 g = 9.8 mN\n\n\n.. figure:: static/piston_300.jpg?raw=true\n :alt: The FAB piston and probe\n :width: 200 px\n\n The FAB piston and probe\n\n\n\n.. figure:: static/pistons_long_shot_300.jpg?raw=true\n :alt: The prototype cabinet and both pistons\n :width: 200 px\n\n The prototype cabinet and both pistons\n\n\n\n\n\n\n\nSoftware\n~~~~~~~~~~~~\n\nThe system includes two software components which communicate via a USB\nserial link:\n\n- This control software, which runs on a host computer and provides a\n user interface via a web browser.\n\n- The open source Standard `Firmata `__ firmware,\n which runs on the embedded controller inside the device. This is\n pre-installed on ready-assembled devices.\n\n\n\n\nInstallation\n^^^^^^^^^^^^^^^^^^\n\nThe software should work on both Mac and PC - the primary dependencies\nare a recent version of Python plus a C compiler (needed to install the\npython-gevent library).\n\n\n\nOn OS X (or BSD/Linux)\n,,,,,,,,,,,,,,,,,,,,,,,,,\n\n1. Install XCode from the Mac App Store (you can skip this if you\n already have a working C compiler on your linux system).\n\n2. Open the Terminal app (in the /Applications/Utilities folder).\n\n3. If you don't already have pip_ installed, type ``sudo easy_install pip``\n\n\n.. _pip: https://pypi.python.org/pypi/pip\n\n\n And then to install the software: ``pip install fab-controller``\n\n\n4. To start using the FAB device, type the command: ``fab``\n\n\n.. note: If all is well this will open a web browser window with the interface to the device. \n\n\n\n\n\nOn Windows\n,,,,,,,,,,,,,\n\n1. Ensure you have GCC, Python and pip installed.\n\n2. Repeat the steps above.\n\n\n\n\n\n\n\nUser guide\n~~~~~~~~~~~~~~~~\n\n\n\nGetting started\n^^^^^^^^^^^^^^^^^^\n\n1. Connect both the DC power input and the USB cables.\n2. Run the ``fab`` command from the Terminal.\n\n\nOn running the ``fab`` command, a browser window will open containing\nthe user interface for the FAB device, shown below.\n\n.. figure:: static/manual.png?raw=true\n :alt: The FAB user interface\n\n The FAB user interface\nThe device has 3 primary modes of use:\n\n- Manual control\n- Programmed control\n- Calibration mode\n\n\n\nTarget weights and tracking\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\nIn both manual and programmed control, the interface distinguishes\nbetween:\n\n- Target value for the weight[#grams]_ applied to each hand.\n- The actual measurements recorded by the sensor [#actualforce]_.\n\n\n.. [#actualforce] Note that the exact pressure applied to the finger will vary as a function of the contact area, and can only be estimated based on the width of the finger, but will be broadly similar between participants.\n\n\nTargets can be set in 'grams' for each hand[#grams]_. Once a target has been set\nthe control software moves the probes up and down, attempting to\nmaintain the target weight, as measured by the sensor. Thus where\nparticipants flex or move their fingers, the system will attempt to\ncompensate to keep the measured force constant.\n\n\n\nManual control\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\nUsing the slider controls under the 'manual' tab, you can set a target\nweight in grams for each hand.\n\n\n.. figure:: static/manual.png?raw=true\n :alt: Manual control interface\n\n\n\nProgrammed control\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\n.. figure:: static/programmed.png?raw=true\n :alt: Program interface\n\n\nPrograms for blocks of stimuli can be entered in the text area. Programs\nare simple lists of comma-separated integers. The first column specifies\nthe duration, the second the target in grams for the left hand, and the\nthird the target for the right hand. So, the following lines:\n\n::\n\n 20,500,500\n 10,1000,2000\n\nDenote a program which will deliver 500g to both hands for 20 seconds,\nand then 1000g to the left and 2000g to the right hands for 10 seconds.\n\nAt the end of a program target weights are set to zero.\n\n\n\nGet set, Stop and Reset buttons.\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\n- The get set button sets the target for both hands to 20g. This allows\n a participant to find a comfortable position, and for program to\n begin from a common reference point.\n- The stop button will always stop any program or manual setting, and\n reduce the target weights to zero. Additionally, the probes will be\n moved approx 1mm upwards to give the participant space to move their\n fingers.\n- The reset button moves both probes to their top resting points.\n\n\n\n\n\nInstructions for participants\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\n\n.. note:: In addition to standard reminders that participants are free to withdraw from experiments at any time, participants in studies using the FAB should be explictly reminded that **if they wish to stop the study at any time they should simply remove their hands from the device by pulling backwards**.\n\n\nThe probes in contact with the participants' fingers are attached using magnets to ensure it will always be possible with only very moderate horzontal force, and it is recommended to demonstrate this feature to participants at the very start of the session.\n\n\n\n\n\nLogging and data capture\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\nBy default, log files will be saved into ``~/Documents/fab/logs/``.\n\nThe current log file name change be changed (e.g. per-participant) in the 'Detailed Log' tab, next to the console.\n\n\n\n\n\nTroubleshooting and known issues\n---------------------------------------------------------\n\n\n\nSoftware hangs on start-up\n The device must start in a position where neither piston is activating the top-stop micro-switch. If the switch is depressed on startup the server may hang. The workaround is to remove power from the device and pull both pistons gently downwards approx 3 mm.\n\n\n\n\n\n.. Pressure = 980kpa\n.. 2kg in newtons / 2mm*10mm area / 1000 = kpa\n.. ( 19.6/ (.002*.01) )/1000\n\n.. Could be between 816 and 1225 kpa depending on width of contact spot\n\n\n\n\n\n\n\n\n\n.. [Bingel2006] Bingel, Ulrike, J\u00fcrgen Lorenz, Eszter Schoell, Cornelius Weiller, and Christian B\u00fcchel. 2006. \u201cMechanisms of Placebo Analgesia: RACC Recruitment of a Subcortical Antinociceptive Network.\u201d Pain 120 (1): 8\u201315.\n\n.. [Forgione1971] Forgione, Albert G, and Theodore X Barber. 1971. \u201cA Strain Gauge Pain Stimulator.\u201d Psychophysiology 8 (1): 102\u2013106.\n\n.. [Montgomery1997] Montgomery, Guy H, and Irving Kirsch. 1997. \u201cClassical Conditioning and the Placebo Effect.\u201d Pain 72 (1): 107\u2013113.\n\n.. [Ptrovic2002] Petrovic, Predrag, Eija Kalso, Karl Magnus Petersson, and Martin Ingvar. 2002. \u201cPlacebo and Opioid Analgesia\u2013Imaging a Shared Neuronal Network.\u201d Science 295 (5560): 1737\u20131740.\n\n.. [Posner1985] Posner, John, Andras Telekes, Dominic Crowley, Richard Phillipson, and Anthony W Peck. 1985. \u201cEffects of an Opiate on Cold-Induced Pain and the CNS in Healthy Volunteers.\u201d Pain 23 (1): 73\u201382.\n\n.. [Treutwein1995] Treutwein, Bernhard. 1995. \u201cAdaptive Psychophysical Procedures.\u201d Vision Research 35 (17): 2503\u20132522.\n\n.. [Wager2004] Wager, Tor D, James K Rilling, Edward E Smith, Alex Sokolik, Kenneth L Casey, Richard J Davidson, Stephen M Kosslyn, Robert M Rose, and Jonathan D Cohen. 2004. \u201cPlacebo-Induced Changes in FMRI in the Anticipation and Experience of Pain.\u201d Science 303 (5661): 1162\u20131167.\n\n.. [Whalley2008] Whalley, Ben, Michael E Hyland, and Irving Kirsch. 2008. \u201cConsistency of the Placebo Effect.\u201d Journal of Psychosomatic Research 64 (5): 537\u2013541.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/fab-controller/", "keywords": null, "license": "LICENSE.txt", "maintainer": null, "maintainer_email": null, "name": "fab-controller", "package_url": "https://pypi.org/project/fab-controller/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/fab-controller/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://pypi.python.org/pypi/fab-controller/" }, "release_url": "https://pypi.org/project/fab-controller/0.9.14/", "requires_dist": null, "requires_python": null, "summary": "Control an FAB finger pressure stimulator device.", "version": "0.9.14" }, "last_serial": 1509013, "releases": { "0.9": [ { "comment_text": "", "digests": { "md5": "af5312c7233821dc8dd2206866587b06", "sha256": "96a249d62314c1522c58601b0cf3b72352e299c89cd4f6667a6d98e03b29da3a" }, "downloads": -1, "filename": "fab-controller-0.9.tar.gz", "has_sig": false, "md5_digest": "af5312c7233821dc8dd2206866587b06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8968, "upload_time": "2015-01-06T01:11:42", "url": "https://files.pythonhosted.org/packages/60/21/60d746cd09f037a1488a28e04eb97703fefc2886ca1330ae1eaddec6fd47/fab-controller-0.9.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "ef073751f56a3f6350a25b6e0fbc2857", "sha256": "4a48b8cdfa82ebd795df4e373383aea35ccdeaebb9d5f860bf06576b2d99edaa" }, "downloads": -1, "filename": "fab-controller-0.9.1.tar.gz", "has_sig": false, "md5_digest": "ef073751f56a3f6350a25b6e0fbc2857", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8992, "upload_time": "2015-01-06T01:19:32", "url": "https://files.pythonhosted.org/packages/ca/52/5bc8bc7334bb746ee563bbedb16c65d0493abddc0c97aa4707046657e690/fab-controller-0.9.1.tar.gz" } ], "0.9.10": [ { "comment_text": "", "digests": { "md5": "6477b491ffe551d9a547f33b2c31eba6", "sha256": "a25d3c3e110adbe58653094fc84c31527d5a1dbe235050fc0bd599fd85e4da54" }, "downloads": -1, "filename": "fab-controller-0.9.10.tar.gz", "has_sig": false, "md5_digest": "6477b491ffe551d9a547f33b2c31eba6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 616881, "upload_time": "2015-01-08T12:39:10", "url": "https://files.pythonhosted.org/packages/b2/a4/a7fd7f0f297ccd0d9af48945df89a22f15d32124efa83d824a67615e8522/fab-controller-0.9.10.tar.gz" } ], "0.9.11": [ { "comment_text": "", "digests": { "md5": "afe9cbf9b4960bf1958325b984afd42e", "sha256": "02ff7a4942518a4f21ffd6dd7b8862185c67b550d1e97ca661cc8f1def803d9f" }, "downloads": -1, "filename": "fab-controller-0.9.11.tar.gz", "has_sig": false, "md5_digest": "afe9cbf9b4960bf1958325b984afd42e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 616878, "upload_time": "2015-01-08T15:08:37", "url": "https://files.pythonhosted.org/packages/1f/0f/dfb710c60e6ab6a003f63df16ed24482c87eac03a190cd1103fecd41054e/fab-controller-0.9.11.tar.gz" } ], "0.9.12": [ { "comment_text": "", "digests": { "md5": "843664f77b192ee1cd7a6af8f7e25778", "sha256": "4188c2e577b42239ff49f6c5e471e405ae06858b4f3ac32590056cc9740a05dc" }, "downloads": -1, "filename": "fab-controller-0.9.12.tar.gz", "has_sig": false, "md5_digest": "843664f77b192ee1cd7a6af8f7e25778", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 616963, "upload_time": "2015-01-21T11:42:50", "url": "https://files.pythonhosted.org/packages/89/27/cd407880195e084e3bb8c97e2aa8f30a0721980b88ae194ad69c212155c3/fab-controller-0.9.12.tar.gz" } ], "0.9.14": [ { "comment_text": "", "digests": { "md5": "13b07a55842430d91765f65f24d7c092", "sha256": "adaee49ed8760d1608874140f17e90ce97c34213433a124f8d226e1ec6e5e738" }, "downloads": -1, "filename": "fab-controller-0.9.14.tar.gz", "has_sig": false, "md5_digest": "13b07a55842430d91765f65f24d7c092", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 617076, "upload_time": "2015-03-09T14:52:43", "url": "https://files.pythonhosted.org/packages/65/82/1fe0d500d5be4ea9f6471e06341a0313c6302312252e4099a312461b59b8/fab-controller-0.9.14.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "55dc6804afb81a0d20bb506b2a573b83", "sha256": "b53846b0c64cb46e153a92ceffe6646cc2afd76f92584332bdd778b0bc3b184e" }, "downloads": -1, "filename": "fab-controller-0.9.2.tar.gz", "has_sig": false, "md5_digest": "55dc6804afb81a0d20bb506b2a573b83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9037, "upload_time": "2015-01-06T01:23:01", "url": "https://files.pythonhosted.org/packages/88/05/85f49e027d5f84dbaa9bc5e51a98f3e4e4fc7368dd20f08989d3bb9a027e/fab-controller-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "c38738c8bef547a2db66c9c62492fa49", "sha256": "d3e9b667382627d419c6e360bb68970bdd739fda35721e1d3be02442f3446fa7" }, "downloads": -1, "filename": "fab-controller-0.9.3.tar.gz", "has_sig": false, "md5_digest": "c38738c8bef547a2db66c9c62492fa49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9224, "upload_time": "2015-01-06T01:24:05", "url": "https://files.pythonhosted.org/packages/13/60/af10e010e5e55a70bdf3d1af45af3820dc52ccf65cfede12d10875f5502a/fab-controller-0.9.3.tar.gz" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "18ea02885f8f34023471dba98ff8fec8", "sha256": "8a0e4c1e7bc5f938458a93e169a54ab381dbfffef7378c6dbc0616784302a01d" }, "downloads": -1, "filename": "fab-controller-0.9.4.tar.gz", "has_sig": false, "md5_digest": "18ea02885f8f34023471dba98ff8fec8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9246, "upload_time": "2015-01-06T01:25:54", "url": "https://files.pythonhosted.org/packages/e9/b2/5eb1076b677f80a84f91a7cae92cf5f36e6236ebd0c2e3e7e1a593cdfa55/fab-controller-0.9.4.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "f48967b8168e0d8f112a168a7952a22c", "sha256": "268373ff8bb9d70393e52f53dd937edfc23afb9b4a463b636a312d7add48bf8d" }, "downloads": -1, "filename": "fab-controller-0.9.5.tar.gz", "has_sig": false, "md5_digest": "f48967b8168e0d8f112a168a7952a22c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 612142, "upload_time": "2015-01-06T01:30:58", "url": "https://files.pythonhosted.org/packages/fb/10/343647f4f824deb29fdb9808928a7f7d3523d35ddcf93134b875b9b9ee29/fab-controller-0.9.5.tar.gz" } ], "0.9.6": [ { "comment_text": "", "digests": { "md5": "a9b9a1e585bc305830b910cda51e7616", "sha256": "0274f2993e7bcbc5b5766312d5db728afbef0c11fa27fb5f65d43f372e20db32" }, "downloads": -1, "filename": "fab-controller-0.9.6.tar.gz", "has_sig": false, "md5_digest": "a9b9a1e585bc305830b910cda51e7616", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 612131, "upload_time": "2015-01-06T01:38:04", "url": "https://files.pythonhosted.org/packages/40/ec/9c12224ee30998fc8d7f3dbf73e92dfd71f24c5eb633d75f061c0016a2aa/fab-controller-0.9.6.tar.gz" } ], "0.9.7": [ { "comment_text": "", "digests": { "md5": "5c78849adf59b46af25c8b8269a8a429", "sha256": "3bc371ebacc9fd06cf8b4b47515607017117803c9ce3d85df4396f343beb4503" }, "downloads": -1, "filename": "fab-controller-0.9.7.tar.gz", "has_sig": false, "md5_digest": "5c78849adf59b46af25c8b8269a8a429", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 612157, "upload_time": "2015-01-06T11:03:39", "url": "https://files.pythonhosted.org/packages/6c/ea/daf6ef8d2d9149fcabda8ef39525c0d026ba670fa5a193396cd666e7201f/fab-controller-0.9.7.tar.gz" } ], "0.9.9": [ { "comment_text": "", "digests": { "md5": "4cfa3daa9f4d6148000685cbae0a6383", "sha256": "1b33a8aac8f39ae9022d2e6b9c22ff68782fe57c61048454bda86a1ef0f5b1fe" }, "downloads": -1, "filename": "fab-controller-0.9.9.tar.gz", "has_sig": false, "md5_digest": "4cfa3daa9f4d6148000685cbae0a6383", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 612200, "upload_time": "2015-01-06T15:32:00", "url": "https://files.pythonhosted.org/packages/c5/c8/ce55ca4ffe4089b0cffbee19afeead748f04869a9ae81121bf64290b20b6/fab-controller-0.9.9.tar.gz" } ], "1.0a1": [ { "comment_text": "", "digests": { "md5": "0c4918feedb2f292c8934c280d940add", "sha256": "21d084cb8f59176dcf06f0e0c7860e9318efa8e4235db6eb4476f20c5333cbc6" }, "downloads": -1, "filename": "fab-controller-1.0a1.tar.gz", "has_sig": false, "md5_digest": "0c4918feedb2f292c8934c280d940add", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 934079, "upload_time": "2015-04-16T08:03:33", "url": "https://files.pythonhosted.org/packages/b7/fa/f6ad166aa481263969face6e780d8db66f77c2c10b46ba0174da6988a271/fab-controller-1.0a1.tar.gz" } ], "1.0a2": [ { "comment_text": "", "digests": { "md5": "630fb9549c1f9ad02d3081dc8a30bc65", "sha256": "813d7df79386640258e3f713b43b53f6e60fcf8bef7ba036dc2244166a36021d" }, "downloads": -1, "filename": "fab-controller-1.0a2.tar.gz", "has_sig": false, "md5_digest": "630fb9549c1f9ad02d3081dc8a30bc65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 934088, "upload_time": "2015-04-16T08:08:19", "url": "https://files.pythonhosted.org/packages/42/2b/014fc468f3f7c4af759ee345c019813e6a92b55611d90fcef003964e227b/fab-controller-1.0a2.tar.gz" } ], "1.0a3": [ { "comment_text": "", "digests": { "md5": "ed46ad00bd10f367bf95285f539d4aae", "sha256": "f0c9d6a5d80b419c055769662131c500047232f1ddd80122363f5f2dee07a80e" }, "downloads": -1, "filename": "fab-controller-1.0a3.tar.gz", "has_sig": false, "md5_digest": "ed46ad00bd10f367bf95285f539d4aae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 957788, "upload_time": "2015-04-17T08:46:20", "url": "https://files.pythonhosted.org/packages/99/77/37fe570d30be50861591b7801f2d909022c93fa73ac5d72fa9c3bb4ebf63/fab-controller-1.0a3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "13b07a55842430d91765f65f24d7c092", "sha256": "adaee49ed8760d1608874140f17e90ce97c34213433a124f8d226e1ec6e5e738" }, "downloads": -1, "filename": "fab-controller-0.9.14.tar.gz", "has_sig": false, "md5_digest": "13b07a55842430d91765f65f24d7c092", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 617076, "upload_time": "2015-03-09T14:52:43", "url": "https://files.pythonhosted.org/packages/65/82/1fe0d500d5be4ea9f6471e06341a0313c6302312252e4099a312461b59b8/fab-controller-0.9.14.tar.gz" } ] }