{ "info": { "author": "Jeremie DECOCK", "author_email": "jd.jdhp@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": ".. image:: https://readthedocs.org/projects/pyax-12/badge/?version=latest\n :target: https://readthedocs.org/projects/pyax-12/?badge=latest\n :alt: Documentation Status\n\n==========\n`PyAX-12`_\n==========\n\nCopyright (c) 2010,2015 Jeremie DECOCK (http://www.jdhp.org)\n\n\n* Web site: http://www.jdhp.org/projects_en.html#pyax12\n* Online documentation: http://pyax-12.readthedocs.org\n* Source code: https://github.com/jeremiedecock/pyax12\n* Issue tracker: https://github.com/jeremiedecock/pyax12/issues\n* PyAX-12 on PyPI: https://pypi.python.org/pypi/pyax12\n\nIn collaboration with http://www.vorobotics.com\n\n\nDescription\n===========\n\n`PyAX-12`_ is an open source lightweight Python library to control\n`Dynamixel AX-12+`_ actuators.\n\n|Watch a demo on youtube|_\n\nNote:\n\n This project is still in beta stage, so the API is not finalized yet.\n\n\nDependencies\n============\n\n- Python >= 3.0\n- `Python-serial`_\n\nPyAX-12 is tested to work with Python 3.4 under Gnu/Linux (Debian 8), MacOSX\n(Mavericks 10.9) and Windows (7).\nAny Python 3.X version under recent Gnu/Linux, MaxOSX and Windows systems\nshould suit too.\n\nPyAX-12 can also be run on `Raspberry Pi`_ through the GPIO connector.\n\n`Python-serial`_ is the only dependency required to install PyAX-12.\n\nNote:\n\n If you use ``pip`` to install PyAX-12, Python-serial will be automatically\n downloaded and installed (see the following install_ section).\n\n\n.. _install:\n\nInstallation\n============\n\nGnu/Linux\n---------\n\nYou can install, upgrade, uninstall PyAX-12 with these commands (in a\nterminal)::\n\n pip install --pre pyax12\n pip install --upgrade pyax12\n pip uninstall pyax12\n\nOr, if you have downloaded the PyAX-12 source code::\n\n python3 setup.py install\n\n.. There's also a package for Debian/Ubuntu::\n.. \n.. sudo apt-get install pyax12\n\nWindows\n-------\n\n.. Note:\n.. \n.. The following installation procedure has been tested to work with Python\n.. 3.4 under Windows 7.\n.. It should also work with recent Windows systems.\n\nYou can install, upgrade, uninstall PyAX-12 with these commands (in a\n`command prompt`_)::\n\n py -m pip install --pre pyax12\n py -m pip install --upgrade pyax12\n py -m pip uninstall pyax12\n\nOr, if you have downloaded the PyAX-12 source code::\n\n py setup.py install\n\nMacOSX\n-------\n\n.. Note:\n.. \n.. The following installation procedure has been tested to work with Python\n.. 3.5 under MacOSX 10.9 (*Mavericks*).\n.. It should also work with recent MacOSX systems.\n\nYou can install, upgrade, uninstall PyAX-12 with these commands (in a\nterminal)::\n\n pip install --pre pyax12\n pip install --upgrade pyax12\n pip uninstall pyax12\n\nOr, if you have downloaded the PyAX-12 source code::\n\n python3 setup.py install\n\n\nHardware setup\n==============\n\n`Official AX-12 documentation `__ (archive).\n\nConnecting AX-12 actuators to a computer (including Raspberry Pi computers) through USB port\n--------------------------------------------------------------------------------------------\n\nThe USB2Dynamixel_ can be used to connect AX-12 actuators to your computer.\nActually, any FTDI serial/USB converter device should do the job.\n\nFor more information on USB2Dynamixel setup, check the\n`official documentation `__.\n\nConnecting AX-12 actuators to a Raspberry Pi through GPIO port\n--------------------------------------------------------------\n\nA small electronic circuit is needed to convert Raspberry Pi UART signals (on\nRX and TX pins) to the half-duplex ones required by Dynamixels (see\n`this archive `__).\n\nThe chips that converts full-duplex into half-duplex are either 74HC126/74HC04\nor 74LS241.\n\nControl Dynamixel AX-12 with the 74LS241\n''''''''''''''''''''''''''''''''''''''''\n\nHere are the schematics of the electronic circuit required to control Dynamixel\nAX-12 with the 74LS241.\n\n.. image:: https://github.com/jeremiedecock/pyax12/raw/master/docs/images/breadboard.png\n :alt: 74LS241 breadboard\n :align: center\n\n.. image:: https://github.com/jeremiedecock/pyax12/raw/master/docs/images/schema.png\n :alt: 74LS241 schematic\n :align: center\n\nAdditional explanation can be found on the following pages:\n\n- http://www.oppedijk.com/robotics/control-dynamixel-with-raspberrypi\n- http://memememememememe.me/post/the-dynamixel-ax-12a-servos/\n- http://robottini.altervista.org/dynamixel-ax-12a-and-arduino-how-to-use-the-serial-port\n- http://savageelectronics.blogspot.fr/2011/01/arduino-y-dynamixel-ax-12.html\n\nA PCB by Thiago Hersan is freely available here:\n\n- https://circuits.io/circuits/267189-ax-12-driver-for-raspberry-pi/#pcb\n\nFor other schematics, check the following pages:\n\n- http://memememememememe.me/assets/posts/the-dynamixel-ax-12a-servos/uart_half-duplex_74LS241.jpg\n- https://circuits.io/circuits/267189-ax-12-driver-for-raspberry-pi/#schematic\n- http://robottini.altervista.org/wp-content/uploads/2011/12/Dynamixel-Arduino-electric-schema-1024x768.jpg (this one doesn't link pins 3 and 20 by a resistor)\n\nControl Dynamixel AX-12 with the 774HC126/74HC04\n''''''''''''''''''''''''''''''''''''''''''''''''\n\nFor the 74HC126/74HC04, check the following page:\n\n- `Robotis support `__ (archive)\n\nUART configuration\n''''''''''''''''''\n\nIncreasing the bandwidth up to 1Mbps may require a special setup (not tested\nyet):\n\n- http://www.oppedijk.com/robotics/control-dynamixel-with-raspberrypi\n- http://fw.hardijzer.nl/?p=138\n\nOtherwise keeping the bandwidth to 57600bps should work out of the box\n(make sure you use the right Dynamixel ID and the Dynamixel bandwidth\nis properly setup to 56700bps).\n\nAdditional information\n''''''''''''''''''''''\n\nSee also: https://github.com/jeremiedecock/raspberry-pi-python-snippets/tree/master/dynamixel_ax12\n\nDocumentation\n=============\n\n.. PyAX-12 documentation is available on the following page:\n.. \n.. http://pyax-12.rtfd.org/\n\n- Online Documentation: http://pyax-12.readthedocs.org\n- API Documentation: http://pyax-12.readthedocs.org/en/latest/api.html\n\n\nExample usage\n=============\n\n.. Please check whether the serial port, the baud rate and the\n.. Dynamixel IDs defined in the following examples fits with your hardware.\n\nIn the following examples, the ``dynamixel_id``, ``port`` and ``baudrate``\nvalues should be adapted depending on your configuration:\n\n- for **Linux** users:\n \n - the ``port`` value should be something like\n \n - \"/dev/ttyS0\", \"/dev/ttyS1\", ... if you use an actual serial port\n - \"/dev/ttyUSB0\", \"/dev/ttyUSB1\", ... if you use an `USB to serial` adapter\n (like the USB2Dynamixel_ adapter)\n\n - the ``baudrate`` value should be the same than the one configured in\n Dynamixel units\n\n- for **Windows** users:\n\n - the ``port`` value should be something like \"COM2\", \"COM3\", ... (see the\n *COM port* configuration in the Windows `device manager`_)\n - the ``baudrate`` value should be the same than the one configured in\n the Dynamixel units *and* the Windows `device manager`_ (i.e. check the\n *COM port* configuration in the Windows `device manager`_)\n\n- for **MacOSX** users:\n \n - the ``port`` value should be something like \"/dev/tty.usbserial-XXX\" if you\n use an `USB to serial` adapter like the USB2Dynamixel_ adapter\n - the ``baudrate`` value should be the same than the one configured in\n Dynamixel units\n\n- for **Raspberry Pi** users:\n\n - if you want to control AX-12 actuators through GPIO connector, don't forget\n to set ``rpi_gpio`` to ``True`` in the ``Connection`` constructor (check\n the first following example)\n - the ``port`` value should be \"/dev/ttyAMA0\"\n\nIf you use the USB2Dynamixel_ device, make sure its switch is set on \"TTL\".\n\nSome other examples are available in the examples_ directory.\n\nPing a Dynamixel\n----------------\n\nThis snippet prints ``True`` if the specified Dynamixel unit is connected and\navailable at the given `baudrate`; otherwise it prints ``False``.\n\n::\n\n from pyax12.connection import Connection\n\n # Connect to the serial port\n serial_connection = Connection(port=\"/dev/ttyUSB0\", baudrate=57600)\n\n dynamixel_id = 3\n\n # Ping the third dynamixel unit\n is_available = serial_connection.ping(dynamixel_id)\n\n print(is_available)\n\n # Close the serial connection\n serial_connection.close()\n\n\nRaspberry Pi users who connected AX-12 actuators to the GPIO connector should\nuse the following code instead::\n\n from pyax12.connection import Connection\n\n # Connect to the serial port\n serial_connection = Connection(port=\"/dev/ttyAMA0\", rpi_gpio=True)\n\n dynamixel_id = 3\n\n # Ping the third dynamixel unit\n is_available = serial_connection.ping(dynamixel_id)\n\n print(is_available)\n\n # Close the serial connection\n serial_connection.close()\n\n\nScan (search available Dynamixel units)\n---------------------------------------\n\nThis snippet prints the ID list of connected and available Dynamixel units (at\nthe given `baudrate`).\n\n::\n\n from pyax12.connection import Connection\n\n # Connect to the serial port\n serial_connection = Connection(port=\"/dev/ttyUSB0\", baudrate=57600)\n\n # Ping the dynamixel unit(s)\n ids_available = serial_connection.scan()\n\n for dynamixel_id in ids_available:\n print(dynamixel_id)\n\n # Close the serial connection\n serial_connection.close()\n\n\nPrint the control table of the first Dynamixel unit\n---------------------------------------------------\n\nThis snippet prints the control table of the specified Dynamixel unit (i.e. the\ninternal state information of the Dynamixel unit).\n\n::\n\n from pyax12.connection import Connection\n\n # Connect to the serial port\n serial_connection = Connection(port=\"/dev/ttyUSB0\", baudrate=57600)\n\n dynamixel_id = 1\n\n # Print the control table of the specified Dynamixel unit\n serial_connection.pretty_print_control_table(dynamixel_id)\n\n # Close the serial connection\n serial_connection.close()\n\nThis snippet should print something like that::\n\n model_number................. AX-12+\n firmware_version............. 24\n id........................... 1\n baud_rate.................... 57142.9 bps\n return_delay_time............ 500 \u00b5s\n cw_angle_limit............... -150.0\u00b0 (0)\n ccw_angle_limit.............. 150.0\u00b0 (1023)\n max_temperature.............. 70\u00b0C\n min_voltage.................. 6.0V\n max_voltage.................. 14.0V\n max_torque................... 1023\n status_return_level.......... 2 (respond to all instructions)\n input_voltage_alarm_led...... off\n angle_limit_alarm_led........ off\n overheating_alarm_led........ on\n range_alarm_led.............. off\n checksum_alarm_led........... off\n overload_alarm_led........... on\n instruction_alarm_led........ off\n input_voltage_alarm_shutdown. off\n angle_limit_alarm_shutdown... off\n overheating_alarm_shutdown... on\n range_alarm_shutdown......... off\n checksum_alarm_shutdown...... off\n overload_alarm_shutdown...... on\n instruction_alarm_shutdown... off\n down_calibration............. 46\n up_calibration............... 972\n torque_enabled............... yes\n led.......................... off\n cw_compliance_margin......... 0.3\u00b0 (1)\n ccw_compliance_margin........ 0.3\u00b0 (1)\n cw_compliance_slope.......... 9.4\u00b0 (32)\n ccw_compliance_slope......... 9.4\u00b0 (32)\n goal_position................ -0.1\u00b0 (511)\n moving_speed................. 512\n torque_limit................. 1023\n present_position............. -0.1\u00b0 (511)\n present_speed................ 0\n present_load................. 0\n present_voltage.............. 12.1V\n present_temperature.......... 43\u00b0C\n registred_instruction........ no\n moving....................... no\n locked....................... no\n punch........................ 32\n\nMove the first Dynamixel unit to various position angles\n--------------------------------------------------------\n\nThis snippet moves the first Dynamixel unit to 0\u00b0, then -45\u00b0, -90\u00b0, -135\u00b0,\n-150\u00b0 (the maximum CW angle), +150\u00b0 (the maximum CCW angle), +135\u00b0, +90\u00b0, +45\u00b0\nand finally goes back to 0\u00b0.\n\n::\n\n from pyax12.connection import Connection\n import time\n\n # Connect to the serial port\n serial_connection = Connection(port=\"/dev/ttyUSB0\", baudrate=57600)\n\n dynamixel_id = 1\n\n # Go to 0\u00b0\n serial_connection.goto(dynamixel_id, 0, speed=512, degrees=True)\n time.sleep(1) # Wait 1 second\n\n # Go to -45\u00b0 (45\u00b0 CW)\n serial_connection.goto(dynamixel_id, -45, speed=512, degrees=True)\n time.sleep(1) # Wait 1 second\n\n # Go to -90\u00b0 (90\u00b0 CW)\n serial_connection.goto(dynamixel_id, -90, speed=512, degrees=True)\n time.sleep(1) # Wait 1 second\n\n # Go to -135\u00b0 (135\u00b0 CW)\n serial_connection.goto(dynamixel_id, -135, speed=512, degrees=True)\n time.sleep(1) # Wait 1 second\n\n # Go to -150\u00b0 (150\u00b0 CW)\n serial_connection.goto(dynamixel_id, -150, speed=512, degrees=True)\n time.sleep(1) # Wait 1 second\n\n # Go to +150\u00b0 (150\u00b0 CCW)\n serial_connection.goto(dynamixel_id, 150, speed=512, degrees=True)\n time.sleep(2) # Wait 2 seconds\n\n # Go to +135\u00b0 (135\u00b0 CCW)\n serial_connection.goto(dynamixel_id, 135, speed=512, degrees=True)\n time.sleep(1) # Wait 1 second\n\n # Go to +90\u00b0 (90\u00b0 CCW)\n serial_connection.goto(dynamixel_id, 90, speed=512, degrees=True)\n time.sleep(1) # Wait 1 second\n\n # Go to +45\u00b0 (45\u00b0 CCW)\n serial_connection.goto(dynamixel_id, 45, speed=512, degrees=True)\n time.sleep(1) # Wait 1 second\n\n # Go back to 0\u00b0\n serial_connection.goto(dynamixel_id, 0, speed=512, degrees=True)\n\n # Close the serial connection\n serial_connection.close()\n\n\nBug reports\n===========\n\nTo search for bugs or report them, please use the PyAX-12 Bug Tracker at:\n\n https://github.com/jeremiedecock/pyax12/issues\n\n\n.. _related-libraries:\n\nRelated libraries\n=================\n\nOther libraries to control `Dynamixel AX-12+`_ actuators are referenced in the\nfollowing (non comprehensive) list:\n\n- PyPot_ by Inria (FLOWERS team)\n- PyDynamixel_ by Richard Clark\n- Pydyn_ by Fabien Benureau and Olivier Mangin (Inria FLOWER team)\n- Dynamixel_ by Ian Danforth\n- dynamixel_hr_ by Romain Reignier\n- python_dynamixels_ by Jesse Merritt\n- ax12_ by Thiago Hersan\n- `Dynamixel Monitor`_ by Christian Balkenius\n- DynamixelMonitor_ by Slavik\n\n\nLicense\n=======\n\nThe ``PyAX-12`` library is provided under the terms and conditions of the\n`MIT License`_.\n\n\n.. _MIT License: http://opensource.org/licenses/MIT\n\n.. _PyAX-12: http://www.jdhp.org/projects_en.html#pyax12\n.. _Dynamixel AX-12+: http://en.robotis.com/index/product.php?cate_code=10101111&bbs_no=6#product_title\n.. _examples: https://github.com/jeremiedecock/pyax12/tree/master/examples\n.. _USB2Dynamixel: http://support.robotis.com/en/product/auxdevice/interface/usb2dxl_manual.htm\n.. _Python-serial: https://github.com/pyserial/pyserial\n.. _command prompt: https://en.wikipedia.org/wiki/Cmd.exe\n.. _device manager: http://windows.microsoft.com/en-us/windows/open-device-manager\n.. _Raspberry Pi: https://www.raspberrypi.org/\n\n.. _PyPot: https://github.com/poppy-project/pypot\n.. _Pydyn: https://github.com/humm/pydyn\n.. _PyDynamixel: https://github.com/richard-clark/PyDynamixel\n.. _Dynamixel : https://pypi.python.org/pypi/dynamixel/1.0.1\n.. _dynamixel_hr : https://github.com/HumaRobotics/dynamixel_hr\n.. _python_dynamixels : https://github.com/jes1510/python_dynamixels\n.. _ax12 : https://github.com/thiagohersan/memememe/tree/master/Python/ax12\n.. _Dynamixel Monitor : http://robosavvy.com/forum/viewtopic.php?p=42991\n.. _DynamixelMonitor : https://github.com/slavikshen/DynamixelMonitor\n\n.. |Watch a demo on youtube| image:: http://download.tuxfamily.org/jdhp/image/pyax12_demo_youtube.jpeg\n.. _Watch a demo on youtube: http://youtu.be/5r0mNPhpf04\n", "description_content_type": null, "docs_url": null, "download_url": "http://www.jdhp.org/", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.jdhp.org/", "keywords": "dynamixel ax12 ax-12 servo actuator library robotics", "license": "", "maintainer": "", "maintainer_email": "", "name": "pyax12", "package_url": "https://pypi.org/project/pyax12/", "platform": "", "project_url": "https://pypi.org/project/pyax12/", "project_urls": { "Download": "http://www.jdhp.org/", "Homepage": "http://www.jdhp.org/" }, "release_url": "https://pypi.org/project/pyax12/0.5.dev3/", "requires_dist": null, "requires_python": "", "summary": "A library to control dynamixel AX-12+ servos with python", "version": "0.5.dev3" }, "last_serial": 2907481, "releases": { "0.3.dev0": [ { "comment_text": "", "digests": { "md5": "13bb8a702e3107114d85b2f40ec9f1cd", "sha256": "9e1753b002b1270823c8a0f5eb712c4684da104280d772dfd62a6bd0a7756349" }, "downloads": -1, "filename": "pyax12-0.3.dev0.tar.gz", "has_sig": false, "md5_digest": "13bb8a702e3107114d85b2f40ec9f1cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33225, "upload_time": "2015-08-24T22:11:05", "url": "https://files.pythonhosted.org/packages/01/58/cadc48b919fb720561907066312b65fc711e61a42455309c623b067b402c/pyax12-0.3.dev0.tar.gz" } ], "0.4.dev0": [ { "comment_text": "", "digests": { "md5": "6b9a710826d636ffa7abd1a9c3d12474", "sha256": "39c8912934a951cada23eb3be6ea54fd522a4b7f7784cfa2f3411ed38becd70c" }, "downloads": -1, "filename": "pyax12-0.4.dev0.tar.gz", "has_sig": false, "md5_digest": "6b9a710826d636ffa7abd1a9c3d12474", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33703, "upload_time": "2015-08-25T17:16:44", "url": "https://files.pythonhosted.org/packages/01/9d/a8e0d7c72f9f642db17a59b5b06664afc68a2efb3baf1fa9da6df91fdb55/pyax12-0.4.dev0.tar.gz" } ], "0.4.dev1": [ { "comment_text": "", "digests": { "md5": "ac085e95beb320bf731abbb7d455f344", "sha256": "4d1b47d510a46e86caeca8bcf393454e7eb64fe6e0b0129236ce042dfd42b0d0" }, "downloads": -1, "filename": "pyax12-0.4.dev1.tar.gz", "has_sig": false, "md5_digest": "ac085e95beb320bf731abbb7d455f344", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35844, "upload_time": "2015-08-26T21:45:03", "url": "https://files.pythonhosted.org/packages/4c/6f/d11b1dab6d246e71877094e7fdd0c968c989ab5ef549ea50e7aa6ac6ef6f/pyax12-0.4.dev1.tar.gz" } ], "0.4.dev2": [ { "comment_text": "", "digests": { "md5": "dca8313e3623a65bef8f66903efa3326", "sha256": "05a35ddeda80802ce53381f85c1955c30b84578caf5c5e435a1363c5db35e896" }, "downloads": -1, "filename": "pyax12-0.4.dev2.tar.gz", "has_sig": false, "md5_digest": "dca8313e3623a65bef8f66903efa3326", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40992, "upload_time": "2015-08-29T22:57:41", "url": "https://files.pythonhosted.org/packages/a4/8d/7e5838aab74aac65c2b1cbc3c8d0241a714bfae858647891b8da53810c37/pyax12-0.4.dev2.tar.gz" } ], "0.4.dev3": [ { "comment_text": "", "digests": { "md5": "2cb73a4bb6b4203302913b3cd3a0e6e5", "sha256": "deb4499e5490e646728c22096df31d52a39de6c3dfae561475dd8da3b8a4b785" }, "downloads": -1, "filename": "pyax12-0.4.dev3.tar.gz", "has_sig": false, "md5_digest": "2cb73a4bb6b4203302913b3cd3a0e6e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45493, "upload_time": "2015-08-31T09:54:16", "url": "https://files.pythonhosted.org/packages/d3/39/f42c28898ae040cb85ec6a392faacabe7b5288b439f1bc6b0723e3d75df4/pyax12-0.4.dev3.tar.gz" } ], "0.4.dev4": [ { "comment_text": "", "digests": { "md5": "bd84d81506686b55c2d16269ce6e0ce2", "sha256": "7aebd2786b2b5b11cec9e48ca3aa3f6b142d1154ddb31c207eb40ba2610fd09a" }, "downloads": -1, "filename": "pyax12-0.4.dev4.tar.gz", "has_sig": false, "md5_digest": "bd84d81506686b55c2d16269ce6e0ce2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45877, "upload_time": "2015-08-31T13:48:54", "url": "https://files.pythonhosted.org/packages/f3/5a/77c7af15ed4b7d300c8b63a2d4e6180b0fb0e50cc97cbee0bb32883d7c78/pyax12-0.4.dev4.tar.gz" } ], "0.4.dev5": [ { "comment_text": "", "digests": { "md5": "7d40f2196ec6ffc9f016d11b6b023bd5", "sha256": "47ffdf4064142a682ab287f491b4364cbb3062fd117585cc0afa29fcd1f8e1a9" }, "downloads": -1, "filename": "pyax12-0.4.dev5.tar.gz", "has_sig": false, "md5_digest": "7d40f2196ec6ffc9f016d11b6b023bd5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45873, "upload_time": "2015-09-01T12:06:51", "url": "https://files.pythonhosted.org/packages/c3/31/3d7fd52a3ccda2515aed35c443bcbcd42e388ef087e4ff6053929c993f09/pyax12-0.4.dev5.tar.gz" } ], "0.4.dev6": [ { "comment_text": "", "digests": { "md5": "fdab1088cdc04740f561d293e1403ce8", "sha256": "48cc1d8d6e0bf27f2b9be5b5e5e904c7ff0fef1ecf3a7da41339775e52bb4ecf" }, "downloads": -1, "filename": "pyax12-0.4.dev6.tar.gz", "has_sig": false, "md5_digest": "fdab1088cdc04740f561d293e1403ce8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45948, "upload_time": "2015-09-04T16:35:58", "url": "https://files.pythonhosted.org/packages/f5/2d/167e8642bdba8f7f06b5b1d0c8449337409d252f79bcfc955d1172ddddf4/pyax12-0.4.dev6.tar.gz" } ], "0.5.dev0": [ { "comment_text": "", "digests": { "md5": "2e810cd7f1b8d3891f1059a1d8fc1935", "sha256": "8760f5a706254cb7dbecfae62454cd18d295eeab7c3e03ac274ba108b92a8b8b" }, "downloads": -1, "filename": "pyax12-0.5.dev0.tar.gz", "has_sig": false, "md5_digest": "2e810cd7f1b8d3891f1059a1d8fc1935", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48514, "upload_time": "2017-05-08T14:44:43", "url": "https://files.pythonhosted.org/packages/c9/5c/f51558e1d15ee78eb02ad1f94f887620eaa9e69f1fe17dec55dc0905907b/pyax12-0.5.dev0.tar.gz" } ], "0.5.dev1": [ { "comment_text": "", "digests": { "md5": "47218f76b917f218d8c11b1ecd7eb8da", "sha256": "feed0adaa6f6a030727ed64119c9f46265f48e6a5c5eaf5289ddbb7800263a59" }, "downloads": -1, "filename": "pyax12-0.5.dev1.tar.gz", "has_sig": false, "md5_digest": "47218f76b917f218d8c11b1ecd7eb8da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2498367, "upload_time": "2017-05-22T06:59:49", "url": "https://files.pythonhosted.org/packages/21/ae/d7ff95fab398a9618b73cd2efdb87fd08575678bf7f81e63a7d672f2f5fc/pyax12-0.5.dev1.tar.gz" } ], "0.5.dev2": [ { "comment_text": "", "digests": { "md5": "86c9fc25d3c5410c5041034411c428aa", "sha256": "618341b16707bfcdf0e66a8d29b14bbc88481c27e5047637f1845b140dbd565c" }, "downloads": -1, "filename": "pyax12-0.5.dev2.tar.gz", "has_sig": false, "md5_digest": "86c9fc25d3c5410c5041034411c428aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1197885, "upload_time": "2017-05-29T20:05:40", "url": "https://files.pythonhosted.org/packages/84/d5/6717bb63dbae08696a530bb5bfa5d421e004cbbfbefea53c3b936b8431f6/pyax12-0.5.dev2.tar.gz" } ], "0.5.dev3": [ { "comment_text": "", "digests": { "md5": "6f3afc047c6d6f22d4f3eb19cb28202e", "sha256": "b2181fcfc3dda78aeda221ae8fb9a50c40e91dc812e6b46ce772496bd6f0e06b" }, "downloads": -1, "filename": "pyax12-0.5.dev3.tar.gz", "has_sig": false, "md5_digest": "6f3afc047c6d6f22d4f3eb19cb28202e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1197907, "upload_time": "2017-05-29T20:12:42", "url": "https://files.pythonhosted.org/packages/64/79/c6783b1275c83d19903e301892668d3c9fcb3ed277e39d741f6a18f51df2/pyax12-0.5.dev3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6f3afc047c6d6f22d4f3eb19cb28202e", "sha256": "b2181fcfc3dda78aeda221ae8fb9a50c40e91dc812e6b46ce772496bd6f0e06b" }, "downloads": -1, "filename": "pyax12-0.5.dev3.tar.gz", "has_sig": false, "md5_digest": "6f3afc047c6d6f22d4f3eb19cb28202e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1197907, "upload_time": "2017-05-29T20:12:42", "url": "https://files.pythonhosted.org/packages/64/79/c6783b1275c83d19903e301892668d3c9fcb3ed277e39d741f6a18f51df2/pyax12-0.5.dev3.tar.gz" } ] }