{ "info": { "author": "Gianpiero Napoli", "author_email": "gianpiero@rti.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: Other/Proprietary License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Software Development :: Build Tools" ], "description": "rticonnextdds-connector: Python\n===============================\n\n(return to\n`rticonnextdds-connector `__)\n\nRTI Connector for Connext DDS\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n*RTI Connector* for Connext DDS is a quick and easy way to access the\npower and functionality of `RTI Connext\nDDS `__. It is based on\n`XML-Based Application\nCreation `__\nand Dynamic Data.\n\n--------------\n\n**Warning**: The Python *Connector* uses 0-based indexing for sequences\nsince v0.4.1. Previously sequences started at index 1. See *read/take\ndata* more more information. \\___\\_\n\nLanguage Support\n~~~~~~~~~~~~~~~~\n\nThis repository is specific to Python. For other languages (lua, C,\netc.), refer to the `main Connector\nrepository `__.\n\nWe use ctypes to call our native functions; these details are hidden in\na Python wrapper. RTI tested its Python implementation with both Python\n2.7.14 and Python 3.6.3.\n\nPlatform support\n~~~~~~~~~~~~~~~~\n\nPython *Connector* builds its library for `select\narchitectures `__.\nIf you need another architecture, please contact your RTI account\nmanager or sales@rti.com.\n\n### Testing We tested on: \\* For MacOS 64 bit : Darwin 18 clang 10 \\*\nFor Windows 64 bit: Windows 10 64 bit VS2015 \\* For Windows 32 bit:\nWindows 7 32 bit VS2017 \\* For Linux 64 bit: CentOS 6.5 gcc 4.8.2 \\* For\nLinux 32 bit: Ubuntu 16.04 gcc 5.4.0 \\* For ARM: Yocto linux 2.0.3 gcc\n5.2.0\n\nVersion of Connext\n~~~~~~~~~~~~~~~~~~\n\nTo check the version of the libraries, run the following command. For\nexample:\n\n.. code:: bash\n\n strings librtiddsconnector.dylib | grep BUILD\n\nThreading model\n~~~~~~~~~~~~~~~\n\nThe *Connector* Native API does not yet implement any mechanism for\nthread safety. For now, the responsibility of protecting calls to the\n*Connector* is left to you. (In future, thread safety may be added in\nthe native layer.) In Python, you will have to protect the calls to\n*Connector* if you are using different threads. For an example, see\n`Protecting calls to the Connector\nlibrary `__\nbelow.\n\nSupport\n~~~~~~~\n\n*Connector* is an experimental RTI product. If you have questions, use\nthe `RTI Community\nforum `__.\n\nGetting started with Python\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nBe sure you have Python. Then use pip to install the *Connector*:\n\n.. code:: bash\n\n $ pip install rticonnextdds_connector\n\nYou can also clone the repository:\n\n.. code:: bash\n\n $ git clone --recursive https://github.com/rticommunity/rticonnextdds-connector-py.git\n\nAvailable examples\n~~~~~~~~~~~~~~~~~~\n\nYou can find several sets of examples in the\n`examples/python `__ directory. If you used pip to\ninstall, you will need to clone the examples from the repository as\nindicated above.\n\n- **simple**: shows how to write samples and how to read/take.\n- **mixed**: contains various examples.\n\nProtecting calls to the *Connector* library\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAs explained above, you are responsible for protecting calls to\n*Connector*. There are many options in Python to do so; one is to use\nthe ``threading`` package:\n\n.. code:: py\n\n ...\n ...\n import threading\n sem = threading.Semaphore();\n ...\n ...\n #acquire the semaphore\n sem.acquire(True);\n #call to connector APissem.acquire(True);\n input.take();\n numOfSamples = input.samples.getLength();\n ...\n ...\n #release the semaphore\n sem.release();\n ...\n ...\n\nFor more information on the threading Python packages, see the `Python\ndocumentation `__.\n\nAPI overview\n~~~~~~~~~~~~\n\nrequire the *Connector* library\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nTo use ``rticonnextdds_connector``, import it:\n\n.. code:: py\n\n import rticonnextdds_connector as rti\n\ninstantiate a new *Connector*\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nTo create a new *Connector*, pass an XML file and a configuration name.\n\n.. code:: py\n\n connector = rti.Connector(\"MyParticipantLibrary::Zero\",\"./ShapeExample.xml\");\n\nFor more information on the XML format, see the `XML-Based Application\nCreation\nguide `__\nor look at the `ShapeExample.xml `__\nfile included in this examples directory.\n\ndelete a *Connector*\n^^^^^^^^^^^^^^^^^^^^\n\nTo destroy all the DDS entities that belong to a *Connector* previously\ncreated, call the ``delete`` function.\n\n.. code:: py\n\n connector = rti.Connector(\"MyParticipantLibrary::Zero\",\"./ShapeExample.xml\");\n ...\n ...\n connector.delete();\n\nwrite a sample\n^^^^^^^^^^^^^^\n\nTo write a sample, first get a reference to the output port:\n\n.. code:: py\n\n output = connector.getOutput(\"MyPublisher::MySquareWriter\")\n\nThen set the instance\u2019s fields:\n\n.. code:: py\n\n output.instance.setNumber(\"x\", 1);\n output.instance.setNumber(\"y\", 2);\n output.instance.setNumber(\"shapesize\", 30);\n output.instance.setString(\"color\", \"BLUE\");\n\nThen write:\n\n.. code:: py\n\n output.write();\n\nset the instance\u2019s fields:\n^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThe content of an instance can be set by using a dictionary that matches\nthe original type, or field by field.\n\n- **Using a dictionary**:\n\n.. code:: py\n\n #assuming that sample is a dictionary containing\n #an object of the same type of the output.instance:\n\n output.instance.setDictionary(sample);\n\n- **Field by field**:\n\n.. code:: py\n\n output.instance.setNumber(\"y\", 2);\n\nThe following APIs set an instance field by field:\n``setNumber(fieldName, number);`` ``setBoolean(fieldName, boolean);``\nand ``setString(fieldName, string);``.\n\nNested fields can be accessed with the dot notation ``\"x.y.z\"``. Arrays\nor sequences can be accessed with square brakets: ``\"x.y[1].z\"``. For\nmore information on how to access fields, see the \u201cData Access API\u201d\nsection of the `RTI Prototyper Getting Started\nGuide `__.\n\nread/take data\n^^^^^^^^^^^^^^\n\nTo read/take samples, first get a reference to the input port:\n\n.. code:: py\n\n input = connector.getInput(\"MySubscriber::MySquareReader\");\n\nThen call the ``read()`` or ``take()`` API:\n\n.. code:: py\n\n input.read();\n\nor\n\n.. code:: pu\n\n input.take();\n\nThe read/take operation can return multiple samples. Therefore, you must\niterate on an array:\n\n.. code:: py\n\n input.take();\n numOfSamples = input.samples.getLength();\n for j in range (0, numOfSamples):\n if input.infos.isValid(j):\n x = input.samples.getNumber(j, \"x\");\n y = input.samples.getNumber(j, \"y\");\n size = input.samples.getNumber(j, \"shapesize\");\n color = input.samples.getString(j, \"color\");\n toPrint = \"Received x: \" + repr(x) + \" y: \" + repr(y) + \" size: \" + repr(size) + \" color: \" + repr(color);\n print(toPrint);\n }\n\naccess sample fields after a read/take\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nA ``read()`` or ``take()`` operation can return multiple samples. They\nare stored in an array. Every time you try to access a specific sample,\nyou have to specify an index (j in the example below).\n\nYou can access the data by getting a copy in a dictionary object, or you\ncan access each field individually:\n\n- **Using a dictionary**:\n\n.. code:: py\n\n numOfSamples = input.samples.getLength();\n for j in range (0, numOfSamples):\n if input.infos.isValid(j):\n sample = input.samples.getDictionary(j);\n #print the whole sample\n print(sample);\n #or print a single element\n print(sample['x']);\n }\n\n- **Field by field**:\n\n.. code:: py\n\n numOfSamples = input.samples.getLength();\n for j in range (0, numOfSamples):\n if input.infos.isValid(j):\n x = input.samples.getNumber(j, \"x\");\n y = input.samples.getNumber(j, \"y\");\n size = input.samples.getNumber(j, \"shapesize\");\n color = input.samples.getString(j, \"color\");\n toPrint = \"Received x: \" + repr(x) + \" y: \" + repr(y) + \" size: \" + repr(size) + \" color: \" + repr(color);\n print(toPrint);\n }\n\nThe following APIs access the samples field by field:\n``getNumber(indexm fieldName);`` ``getBoolean(index, fieldName);`` and\n``getString(index, fieldName);``.\n\nLicense\n~~~~~~~\n\nWith the sole exception of the contents of the \u201cexamples\u201d subdirectory,\nall use of this product is subject to the RTI Software License Agreement\nincluded at the top level of this repository. Files within the\n\u201cexamples\u201d subdirectory are licensed as marked within the file.\n\nThis software is an experimental (\u201cpre-production\u201d) product. The\nSoftware is provided \u201cas is,\u201d with no warranty of any type, including\nany warranty for fitness for any purpose. RTI is under no obligation to\nmaintain or support the software. RTI shall not be liable for any\nincidental or consequential damages arising out of the use or inability\nto use the software.\n\n(return to\n`rticonnextdds-connector `__)\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rticommunity/rticonnextdds-connector-py", "keywords": "rti dds connext connector pub sub pub-sub", "license": "RTI", "maintainer": "", "maintainer_email": "", "name": "rticonnextdds-connector", "package_url": "https://pypi.org/project/rticonnextdds-connector/", "platform": "", "project_url": "https://pypi.org/project/rticonnextdds-connector/", "project_urls": { "Homepage": "https://github.com/rticommunity/rticonnextdds-connector-py" }, "release_url": "https://pypi.org/project/rticonnextdds-connector/0.4.5/", "requires_dist": null, "requires_python": "", "summary": "RTI Connector for Connext DDS", "version": "0.4.5" }, "last_serial": 5166434, "releases": { "0.2.1": [ { "comment_text": "", "digests": { "md5": "4234d9a961f5076d232b10e963770136", "sha256": "aff2dc29a8fef7cca811bbc292af9a131d8c7b4319deb05d9477c1f58f2f9573" }, "downloads": -1, "filename": "rticonnextdds_connector-0.2.1.tar.gz", "has_sig": false, "md5_digest": "4234d9a961f5076d232b10e963770136", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58750009, "upload_time": "2017-05-31T17:40:24", "url": "https://files.pythonhosted.org/packages/b6/58/c082a3f124289913a3b8e1b0b7c4f7f5b0f741f1e9dd9de42609bde0264e/rticonnextdds_connector-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "8129a229a0e6141beef77b365ce1b2d2", "sha256": "80b6b46e1b4c7510dee6d063d6b80d8ea16cb3744d2df24a8fbdc616951681e0" }, "downloads": -1, "filename": "rticonnextdds_connector-0.3.0.tar.gz", "has_sig": false, "md5_digest": "8129a229a0e6141beef77b365ce1b2d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56077383, "upload_time": "2017-06-28T21:34:17", "url": "https://files.pythonhosted.org/packages/ec/60/276d3a5c8a272bccf46ade7fb92f96623257d8a67005ec207b98f5e9c20d/rticonnextdds_connector-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "addde579a23541edcf0d3508a7b20682", "sha256": "ab2b6dbdb37efca0e5e027c508317f2a1efa0e6ba81d04b3cd9020ac569c2cf8" }, "downloads": -1, "filename": "rticonnextdds_connector-0.3.1.tar.gz", "has_sig": false, "md5_digest": "addde579a23541edcf0d3508a7b20682", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56078729, "upload_time": "2017-07-13T20:41:58", "url": "https://files.pythonhosted.org/packages/f5/99/18c8a0b716f8305b53aaa7c3078b7929ae8e3ecadd684396e0c65f87700a/rticonnextdds_connector-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "03ad20a3f91f1a7bab5777ad37fe3d77", "sha256": "8630e318568b7cefac8016d50d373ff45b810c3ee7674d13344748a8bd8c8bc6" }, "downloads": -1, "filename": "rticonnextdds_connector-0.3.2.tar.gz", "has_sig": false, "md5_digest": "03ad20a3f91f1a7bab5777ad37fe3d77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56123748, "upload_time": "2018-02-15T16:14:36", "url": "https://files.pythonhosted.org/packages/a9/65/da43557fd2d97d84e97ef7a4621ed9701443a113736fadde9a6ef304f5cc/rticonnextdds_connector-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "47b290ebe2837eee96a6a9cfc878df6e", "sha256": "be498de21b98fde77bb1bc6cf6511c77ec7ada0dd897472d86a2380bb8f42d80" }, "downloads": -1, "filename": "rticonnextdds_connector-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "47b290ebe2837eee96a6a9cfc878df6e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 56708782, "upload_time": "2018-10-02T18:05:30", "url": "https://files.pythonhosted.org/packages/10/c0/3a366457a95ffbdd108d89d0c6a32679480012841011cfe6844599f40952/rticonnextdds_connector-0.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "22705504bfcabc5ae93e0ed28eed9eb8", "sha256": "4a035bb5521bc97060d8cfea47e83557d7229f8b18334bc9f3b2f6490b174c4b" }, "downloads": -1, "filename": "rticonnextdds_connector-0.3.3.tar.gz", "has_sig": false, "md5_digest": "22705504bfcabc5ae93e0ed28eed9eb8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56119097, "upload_time": "2018-10-02T18:05:41", "url": "https://files.pythonhosted.org/packages/ac/5c/c074a115245c3e5dd0aaddcf201bdecb2de1f38e50007e778fd028aebae8/rticonnextdds_connector-0.3.3.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "5fb28423f3ce35b22221cf730d05d500", "sha256": "3650499afe4f0f71c6aae4420c0fb6654ebfc456a57ee1a49b5777f5571c25a1" }, "downloads": -1, "filename": "rticonnextdds_connector-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5fb28423f3ce35b22221cf730d05d500", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24301927, "upload_time": "2019-03-26T18:02:48", "url": "https://files.pythonhosted.org/packages/59/6e/59a40e404ab37d4c72d7ee77551fdf54a2cec7a077065f7fc774d538bd7a/rticonnextdds_connector-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "98078de875b1e558344b00cc3cc077f1", "sha256": "2a1f15c86301dd67ebaac8663f7d59ba5d4e6a27485a632f0c58496d02d9e0a5" }, "downloads": -1, "filename": "rticonnextdds_connector-0.4.1.tar.gz", "has_sig": false, "md5_digest": "98078de875b1e558344b00cc3cc077f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23974280, "upload_time": "2019-03-26T18:03:06", "url": "https://files.pythonhosted.org/packages/fb/53/00787f3e172a20e1e2e6aac45750004087508ec0988e27d1cff26a15fb2e/rticonnextdds_connector-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "1044ea297e3260014e20e975c7dbe213", "sha256": "21733aaa432611ddf40fc8dfbd9d75efaab61fa6d5902b9e95336789b40fc3bf" }, "downloads": -1, "filename": "rticonnextdds_connector-0.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "1044ea297e3260014e20e975c7dbe213", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24302036, "upload_time": "2019-03-26T18:35:36", "url": "https://files.pythonhosted.org/packages/e5/93/3892643f82bada9182d04a9dc2a2527e99ca5755fa9dec0406f15300a28e/rticonnextdds_connector-0.4.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "42095932aabeb0abd5566293ef74085f", "sha256": "e1582ec4fe47e8d38bd5877e34b4be8f4bead850fa5778a36a04b0f04a900107" }, "downloads": -1, "filename": "rticonnextdds_connector-0.4.2.tar.gz", "has_sig": false, "md5_digest": "42095932aabeb0abd5566293ef74085f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20794557, "upload_time": "2019-03-26T18:35:42", "url": "https://files.pythonhosted.org/packages/eb/44/8ebd1356bf96eb52f68a3dbcdf2acc2417b6a135cb3db4df4962befb4ddc/rticonnextdds_connector-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "b4822fb5ae8d9bae2d383efbfbbb7e39", "sha256": "fdc7e316b21a0a55d6dc3bbe9a147859dfd9b560b0e7942ec99dfd0f8307d1bd" }, "downloads": -1, "filename": "rticonnextdds_connector-0.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "b4822fb5ae8d9bae2d383efbfbbb7e39", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24302042, "upload_time": "2019-03-26T22:20:00", "url": "https://files.pythonhosted.org/packages/f3/0d/b60f4bb9559cca42bb8210c2d90b3e1ea62551f1b8333c0c16adbbf4168f/rticonnextdds_connector-0.4.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a9239af746a8cdd9e6ddc72b64abadf5", "sha256": "b4381f3f26ecc3353dd7e9ddbac23a915b1237d0825277124cee2756647bded1" }, "downloads": -1, "filename": "rticonnextdds_connector-0.4.3.tar.gz", "has_sig": false, "md5_digest": "a9239af746a8cdd9e6ddc72b64abadf5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23974057, "upload_time": "2019-03-26T22:20:06", "url": "https://files.pythonhosted.org/packages/03/9f/0d158c8e093257d5a6121e955b6e0d2105055c16ef61f6effbbad3196ca5/rticonnextdds_connector-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "4ebea5ef7407250414463a318cd92cc6", "sha256": "f5015e2f2b24c76a5b5d22f93d158d879b38a23e456565ddfad870e823a73657" }, "downloads": -1, "filename": "rticonnextdds_connector-0.4.4-py3-none-any.whl", "has_sig": false, "md5_digest": "4ebea5ef7407250414463a318cd92cc6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24312330, "upload_time": "2019-03-27T21:17:15", "url": "https://files.pythonhosted.org/packages/10/a7/3fe5d7a846f48538c7ba466ea016c7b6d33e4785d997f13d763e169d4676/rticonnextdds_connector-0.4.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c3e3696e7b9614ad884389533e9739f5", "sha256": "8a3881d90013f4f08cf72f4c891ceb8bbe5ce158015daf3b1ad9d92ac6b6317a" }, "downloads": -1, "filename": "rticonnextdds_connector-0.4.4.tar.gz", "has_sig": false, "md5_digest": "c3e3696e7b9614ad884389533e9739f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23974072, "upload_time": "2019-03-27T21:17:21", "url": "https://files.pythonhosted.org/packages/b9/bc/db68ce286b1b8c5d5a5290ec7b41afbc5a459d59eb9a937e2ce32e6b537a/rticonnextdds_connector-0.4.4.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "8a568e16b9ba03f2a5eadf32bf203c4a", "sha256": "adfcd7181ffcf42ca16f9cbb9f6e6ced05578614c7ed87297c4227ee099b73d8" }, "downloads": -1, "filename": "rticonnextdds_connector-0.4.5-py3-none-any.whl", "has_sig": false, "md5_digest": "8a568e16b9ba03f2a5eadf32bf203c4a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24312441, "upload_time": "2019-04-19T23:14:25", "url": "https://files.pythonhosted.org/packages/89/98/bda01e2f45cfbc5a75794c907fe18297ac719c999e19f6b1f874af06865d/rticonnextdds_connector-0.4.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7b0563d2b39dc8041bc78d140320b2d1", "sha256": "98f9a87b87a03f833336e00697ee82e4ebc9908d0100ebd38d0564a1e77985a4" }, "downloads": -1, "filename": "rticonnextdds_connector-0.4.5.tar.gz", "has_sig": false, "md5_digest": "7b0563d2b39dc8041bc78d140320b2d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23979981, "upload_time": "2019-04-19T23:14:31", "url": "https://files.pythonhosted.org/packages/67/4e/5d6ce8e3958484f09f301cb50d2761848b3460d297b27b0d2851aae067dd/rticonnextdds_connector-0.4.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8a568e16b9ba03f2a5eadf32bf203c4a", "sha256": "adfcd7181ffcf42ca16f9cbb9f6e6ced05578614c7ed87297c4227ee099b73d8" }, "downloads": -1, "filename": "rticonnextdds_connector-0.4.5-py3-none-any.whl", "has_sig": false, "md5_digest": "8a568e16b9ba03f2a5eadf32bf203c4a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24312441, "upload_time": "2019-04-19T23:14:25", "url": "https://files.pythonhosted.org/packages/89/98/bda01e2f45cfbc5a75794c907fe18297ac719c999e19f6b1f874af06865d/rticonnextdds_connector-0.4.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7b0563d2b39dc8041bc78d140320b2d1", "sha256": "98f9a87b87a03f833336e00697ee82e4ebc9908d0100ebd38d0564a1e77985a4" }, "downloads": -1, "filename": "rticonnextdds_connector-0.4.5.tar.gz", "has_sig": false, "md5_digest": "7b0563d2b39dc8041bc78d140320b2d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23979981, "upload_time": "2019-04-19T23:14:31", "url": "https://files.pythonhosted.org/packages/67/4e/5d6ce8e3958484f09f301cb50d2761848b3460d297b27b0d2851aae067dd/rticonnextdds_connector-0.4.5.tar.gz" } ] }