{ "info": { "author": "Measurement Standards Laboratory of New Zealand", "author_email": "info@measurement.govt.nz", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering", "Topic :: Software Development" ], "description": "===========\nMSL-LoadLib\n===========\n\n|docs| |pypi|\n\nThis package is used to load a shared library in Python. It is basically just a thin wrapper\naround ctypes_ (for libraries that use the ``__cdecl`` or ``__stdcall`` calling convention),\n`Python for .NET`_ (for libraries that use Microsoft's .NET Framework, ``CLR``), Py4J_\n(for Java ``.jar`` or ``.class`` files) and comtypes_ (for libraries that use the\n`Component Object Model`_).\n\nHowever, the primary advantage is that it is possible to communicate with a 32-bit shared\nlibrary from 64-bit Python.\n\nTested in Python 2.7, 3.4+. The `examples `_\nprovided are currently only supported in Windows and Linux.\n\n**MSL-LoadLib** is a pure-python package, but, `Python for .NET`_ depends on the .NET Common Language\nRuntime (CLR) on Windows and Mono Runtime on Linux and OSX and Py4J_ depends on having a\n`Java Virtual Machine`_ installed.\n\nInstall\n-------\n\nTo install **MSL-LoadLib** run:\n\n.. code-block:: console\n\n pip install msl-loadlib\n\nAlternatively, using the `MSL Package Manager`_ run:\n\n.. code-block:: console\n\n msl install loadlib\n\nOptional dependencies:\n\n* `Python for .NET`_\n* Py4J_\n* comtypes_\n\nTo set up your environment on Linux, please follow the instructions on the\n`prerequisites `_\nsection of the documentation.\n\nExamples\n--------\n\nIf you are loading a 64-bit library in 64-bit Python, or a 32-bit library in 32-bit Python,\nthen you can directly load the library using ``LoadLibrary``.\n\nThe following examples load a 64-bit library in a 64-bit Python interpreter. If you are using a 32-bit\nPython interpreter then replace the **64** with **32** in the filename.\n\nImport the ``LoadLibrary`` class and the directory where the example libraries are located\n\n.. code-block:: pycon\n\n >>> from msl.loadlib import LoadLibrary\n >>> from msl.examples.loadlib import EXAMPLES_DIR\n\nIf the file extension is not included then a default extension, ``.dll`` (Windows) or ``.so`` (Linux), is used.\n\nLoad a `C++ `_ library\nand call the ``add`` function\n\n.. code-block:: pycon\n\n >>> cpp = LoadLibrary(EXAMPLES_DIR + '/cpp_lib64')\n >>> cpp.lib.add(1, 2)\n 3\n\nLoad a `FORTRAN `_\nlibrary and call the ``factorial`` function\n\n.. code-block:: pycon\n\n >>> fortran = LoadLibrary(EXAMPLES_DIR + '/fortran_lib64')\n\nWith a FORTRAN library you must pass values by reference using ctypes_, and, since the returned value is not\nof type ``int`` we must configure ctypes_ for a value of type ``double`` to be returned\n\n.. code-block:: pycon\n\n >>> from ctypes import byref, c_int, c_double\n >>> fortran.lib.factorial.restype = c_double\n >>> fortran.lib.factorial(byref(c_int(37)))\n 1.3763753091226343e+43\n\nLoad a `.NET `_ library\nand call the ``reverse_string`` function, we must specify that the library type is a .NET library by passing\nin the ``'net'`` argument\n\n.. code-block:: pycon\n\n >>> net = LoadLibrary(EXAMPLES_DIR + '/dotnet_lib64.dll', 'net')\n >>> net.lib.StringManipulation.reverse_string('abcdefghijklmnopqrstuvwxyz')\n 'zyxwvutsrqponmlkjihgfedcba'\n\nLoad `Java `_ byte code\nand call the ``cos`` function\n\n.. code-block:: pycon\n\n >>> java = LoadLibrary(EXAMPLES_DIR + '/Trig.class')\n >>> java.lib.Trig.cos(1.234)\n 0.33046510807172985\n\nPython interacts with the `Java Virtual Machine`_ via a local network socket and therefore the connection\nneeds to be closed when you are done using the Java library\n\n.. code-block:: pycon\n\n >>> java.gateway.shutdown()\n\nTo load a `Component Object Model`_ (COM) library pass in the library's Program ID.\n*NOTE: This example will only work on Windows.*\n\nHere we load the FileSystemObject_ library and include the ``'com'`` argument to indicate that\nit is a COM library. We then use the library to create, edit and close a text file\n\n.. code-block:: pycon\n\n >>> com = LoadLibrary('Scripting.FileSystemObject', 'com')\n >>> fp = com.lib.CreateTextFile('a_new_file.txt')\n >>> fp.WriteLine('This is a test')\n 0\n >>> fp.Close()\n 0\n\n`Inter-process communication `_ is used to access a 32-bit shared library from a module that is\nrunning within a 64-bit Python interpreter. The procedure uses a client-server protocol where the client\nis a subclass of ``msl.loadlib.Client64`` and the server is a subclass of ``msl.loadlib.Server32``.\nSee the `tutorials `_ for\nexamples on how to implement `inter-process communication `_.\n\nDocumentation\n-------------\n\nThe documentation for **MSL-LoadLib** can be found `here `_.\n\n.. |docs| image:: https://readthedocs.org/projects/msl-loadlib/badge/?version=latest\n :target: https://msl-loadlib.readthedocs.io/en/latest/\n :alt: Documentation Status\n :scale: 100%\n\n.. |pypi| image:: https://badge.fury.io/py/msl-loadlib.svg\n :target: https://badge.fury.io/py/msl-loadlib\n\n.. _ctypes: https://docs.python.org/3/library/ctypes.html\n.. _Python for .NET: https://pythonnet.github.io/\n.. _Py4J: https://www.py4j.org/\n.. _ipc: https://en.wikipedia.org/wiki/Inter-process_communication\n.. _Java Virtual Machine: https://en.wikipedia.org/wiki/Java_virtual_machine\n.. _MSL Package Manager: https://msl-package-manager.readthedocs.io/en/latest/\n.. _comtypes: https://pythonhosted.org/comtypes/#\n.. _Component Object Model: https://en.wikipedia.org/wiki/Component_Object_Model\n.. _FileSystemObject: https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/filesystemobject-object\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/MSLNZ/msl-loadlib", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "msl-loadlib", "package_url": "https://pypi.org/project/msl-loadlib/", "platform": "any", "project_url": "https://pypi.org/project/msl-loadlib/", "project_urls": { "Homepage": "https://github.com/MSLNZ/msl-loadlib" }, "release_url": "https://pypi.org/project/msl-loadlib/0.6.0/", "requires_dist": [ "pythonnet ; extra == 'all'", "py4j ; extra == 'all'", "comtypes ; extra == 'all'", "pythonnet ; extra == 'clr'", "comtypes ; extra == 'com'", "py4j ; extra == 'java'" ], "requires_python": "", "summary": "Load a shared library (and access a 32-bit library from 64-bit Python)", "version": "0.6.0" }, "last_serial": 5235967, "releases": { "0.3.2": [ { "comment_text": "", "digests": { "md5": "b0f8bbb7332a7e5c5064f256e70eadb3", "sha256": "0a6c897e37fd054c1cfe2af4e7396cb5ba80c070c5b597f0aa83693dbb739ded" }, "downloads": -1, "filename": "msl_loadlib-0.3.2-py2.py3-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "b0f8bbb7332a7e5c5064f256e70eadb3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11321014, "upload_time": "2017-10-18T05:48:20", "url": "https://files.pythonhosted.org/packages/14/86/2b1311f5e049809cb0a65434f20b87c31c480f7b7c8dfdfb37a10ff293a6/msl_loadlib-0.3.2-py2.py3-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "5234f22dc30a26102b3fa2db937acb22", "sha256": "9b4307eab2ffa78481116d3989063f25d7b16208b7ee38baaca634da58eb73d5" }, "downloads": -1, "filename": "msl_loadlib-0.3.2-py2.py3-none-win_amd64.whl", "has_sig": false, "md5_digest": "5234f22dc30a26102b3fa2db937acb22", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8527725, "upload_time": "2017-10-18T05:35:40", "url": "https://files.pythonhosted.org/packages/58/8c/42aa8f97f2efe366cccb4fc0451ef63768a5dba3896d565e4bba654c80f7/msl_loadlib-0.3.2-py2.py3-none-win_amd64.whl" }, { "comment_text": "", "digests": { "md5": "c5333c92767a24547eb4f5c37f41491f", "sha256": "fe01484642f4b47afb344c30637101542a30282f03f9032d15f2caaf92296bc9" }, "downloads": -1, "filename": "msl-loadlib-0.3.2.tar.gz", "has_sig": false, "md5_digest": "c5333c92767a24547eb4f5c37f41491f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30208, "upload_time": "2017-11-12T20:25:00", "url": "https://files.pythonhosted.org/packages/b7/18/ea3639e47a0c18cfbd0c0f243911060953a2060e83b5a1e9f603c903d96b/msl-loadlib-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "5c9b5e1ebf4d455bfc4a2a80690ef881", "sha256": "615f9fc7a92e63ce1b50e7a5ef9c51f7ef350001a76f29d46fff3d5f81ccb562" }, "downloads": -1, "filename": "msl_loadlib-0.4.0-py2.py3-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "5c9b5e1ebf4d455bfc4a2a80690ef881", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11723583, "upload_time": "2018-02-28T03:35:55", "url": "https://files.pythonhosted.org/packages/43/6b/d407935f3795b9bf4be9a410e328584eeb81954dc0a5293efa0a1d95376e/msl_loadlib-0.4.0-py2.py3-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "e330872e74f622361b859b75f05eb015", "sha256": "5d7eca7ab45d10a0e807b952300cbd33889ae0b0f94d3f621b6b6d54fd8a1ace" }, "downloads": -1, "filename": "msl_loadlib-0.4.0-py2.py3-none-win_amd64.whl", "has_sig": false, "md5_digest": "e330872e74f622361b859b75f05eb015", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8652571, "upload_time": "2018-02-28T03:12:35", "url": "https://files.pythonhosted.org/packages/27/95/01988f14ad83838f3eeb9c8c0523777be139f8a74c20e3bd8146cfe9d3dd/msl_loadlib-0.4.0-py2.py3-none-win_amd64.whl" }, { "comment_text": "", "digests": { "md5": "9a03d32cc69ecba8a22b471288a479b7", "sha256": "5e3e10e64e43c8d37c4858cfe14762fb5398fdfecc789256d7db89eb10d04780" }, "downloads": -1, "filename": "msl-loadlib-0.4.0.tar.gz", "has_sig": false, "md5_digest": "9a03d32cc69ecba8a22b471288a479b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30988, "upload_time": "2018-02-28T03:45:46", "url": "https://files.pythonhosted.org/packages/84/83/2985db77068911ee178a77f6ff4fa1b25381bcef4d41786c838258bd09a7/msl-loadlib-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "6ef21426394489fd60692dd8a044656b", "sha256": "1894e4f5523074a7d1e3e569fcf3877046dc86de46b5688e4615688d7ac12420" }, "downloads": -1, "filename": "msl_loadlib-0.4.1-py2.py3-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "6ef21426394489fd60692dd8a044656b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11870951, "upload_time": "2018-08-24T04:31:12", "url": "https://files.pythonhosted.org/packages/21/44/08c8a1d263f5a1cdc30e9c5f0a38a79a128fe717c1f6bd790bd8a92c2e72/msl_loadlib-0.4.1-py2.py3-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "42fb4ef73525ecaf8206cd950a21e12a", "sha256": "2b6c77d7100e79f335ffa2dbbbc9d77fbe81f75099bbc92796edf4ec355c38fe" }, "downloads": -1, "filename": "msl_loadlib-0.4.1-py2.py3-none-win_amd64.whl", "has_sig": false, "md5_digest": "42fb4ef73525ecaf8206cd950a21e12a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8202335, "upload_time": "2018-08-24T04:29:26", "url": "https://files.pythonhosted.org/packages/ce/93/17e416368f69bcd9112e32981f888f5fd15102d9cd26fe0fd11013e26c43/msl_loadlib-0.4.1-py2.py3-none-win_amd64.whl" }, { "comment_text": "", "digests": { "md5": "d4a7fa0dbff238dafac35eabdd150fcf", "sha256": "eabaaa66874b8ba52a289f919162708a664a13581a7c5bef00808be88a255fa3" }, "downloads": -1, "filename": "msl-loadlib-0.4.1.tar.gz", "has_sig": false, "md5_digest": "d4a7fa0dbff238dafac35eabdd150fcf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 893854, "upload_time": "2018-08-24T04:29:39", "url": "https://files.pythonhosted.org/packages/15/57/1b4472ce14c9439866562a2cba4b6f3bb00c521953ab1b7016104dc6da93/msl-loadlib-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "8e483c7bbeaa745406019a40bbcd23e0", "sha256": "b7b1141c2cb5722d04764adfc7543e6bb4897268ce9f5fd627a2f5f72c107a07" }, "downloads": -1, "filename": "msl_loadlib-0.5.0-py2.py3-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "8e483c7bbeaa745406019a40bbcd23e0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14016797, "upload_time": "2019-01-06T01:52:07", "url": "https://files.pythonhosted.org/packages/e0/86/f4003a80463aa4568e77c671ae75d84bc5c16ef53f3375fba8a2602b800a/msl_loadlib-0.5.0-py2.py3-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "0e75cd45c8cc931b3231c4ca9d225bd0", "sha256": "a8f03cbe96738edf3d8dbcefd875904e81baac73a15b74d3d59610c3ff483614" }, "downloads": -1, "filename": "msl_loadlib-0.5.0-py2.py3-none-win_amd64.whl", "has_sig": false, "md5_digest": "0e75cd45c8cc931b3231c4ca9d225bd0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8417429, "upload_time": "2019-01-06T01:51:08", "url": "https://files.pythonhosted.org/packages/62/45/0e74f202d2c660db7fe2d2b89daed8a4db92990216bef2c838a1bcb1699d/msl_loadlib-0.5.0-py2.py3-none-win_amd64.whl" }, { "comment_text": "", "digests": { "md5": "ed18263cc5975566fc7768b0048564a7", "sha256": "600132b9814be38c3bc4ac3313bd5148dcae092360b11cc3422d9933ba2bc352" }, "downloads": -1, "filename": "msl-loadlib-0.5.0.tar.gz", "has_sig": false, "md5_digest": "ed18263cc5975566fc7768b0048564a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 901369, "upload_time": "2019-01-06T01:51:13", "url": "https://files.pythonhosted.org/packages/9f/16/9f95447df2a85561a1ee4c0b56ced3415b75cf9aef5ff5a125618a586755/msl-loadlib-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "be006d90cf4a31afe67395bd9fa41bc2", "sha256": "a782827f9489e00815a50e4030162937f3328f3232b56873b27fa3ae8f7b8fd8" }, "downloads": -1, "filename": "msl_loadlib-0.6.0-py2.py3-none-manylinux1_i686.whl", "has_sig": false, "md5_digest": "be006d90cf4a31afe67395bd9fa41bc2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11007754, "upload_time": "2019-05-07T04:03:02", "url": "https://files.pythonhosted.org/packages/05/49/2d9278f3fe1c460bc137c63e9e20a9c68305c2a9b369f1a8c794ad1c03c4/msl_loadlib-0.6.0-py2.py3-none-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "444437cfe0acff1c9731bfafc751300e", "sha256": "261f33aa683b49f349ce05c4e28925dd3ad511fc2971469498b68183dd98ed56" }, "downloads": -1, "filename": "msl_loadlib-0.6.0-py2.py3-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "444437cfe0acff1c9731bfafc751300e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11005518, "upload_time": "2019-05-07T04:02:01", "url": "https://files.pythonhosted.org/packages/dc/e4/f2fd37b60ef010fd1d8b441646637915964378efb8bf4ef127d5b12b05c9/msl_loadlib-0.6.0-py2.py3-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "df5a63ccf5451247253d789e03e6b4e5", "sha256": "9004059a981b17d7962b746cd753f8e4680504cf07f6c9c18eba6aaaa5592482" }, "downloads": -1, "filename": "msl_loadlib-0.6.0-py2.py3-none-win32.whl", "has_sig": false, "md5_digest": "df5a63ccf5451247253d789e03e6b4e5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8296298, "upload_time": "2019-05-07T03:57:48", "url": "https://files.pythonhosted.org/packages/8a/5d/b225dbe28c8e39df52d7dec431a134b430c481b3a7886259af3f0b167382/msl_loadlib-0.6.0-py2.py3-none-win32.whl" }, { "comment_text": "", "digests": { "md5": "b2671d072d7452b0ff7c8cb50e844325", "sha256": "f7fe13a61c760de435cc70d5a5a439722eb2a92861d2aff9b665dbdf24cd4216" }, "downloads": -1, "filename": "msl_loadlib-0.6.0-py2.py3-none-win_amd64.whl", "has_sig": false, "md5_digest": "b2671d072d7452b0ff7c8cb50e844325", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8296303, "upload_time": "2019-05-07T03:59:33", "url": "https://files.pythonhosted.org/packages/78/92/90e98b176d1a128d65ccf5998f99ae4d4a07ac8c4a453a587ed85bdeceb2/msl_loadlib-0.6.0-py2.py3-none-win_amd64.whl" }, { "comment_text": "", "digests": { "md5": "853706e1ec9485f00899a0e284bbef7e", "sha256": "785370c22e5cf84b68b5668141129dfebee2094773e730dceb3bacc05ec69abb" }, "downloads": -1, "filename": "msl-loadlib-0.6.0.tar.gz", "has_sig": false, "md5_digest": "853706e1ec9485f00899a0e284bbef7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 904867, "upload_time": "2019-05-07T03:59:47", "url": "https://files.pythonhosted.org/packages/16/55/6837295e8d62f61c09bae366c0e8a0ada2963c26034343ea237dea42b105/msl-loadlib-0.6.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "be006d90cf4a31afe67395bd9fa41bc2", "sha256": "a782827f9489e00815a50e4030162937f3328f3232b56873b27fa3ae8f7b8fd8" }, "downloads": -1, "filename": "msl_loadlib-0.6.0-py2.py3-none-manylinux1_i686.whl", "has_sig": false, "md5_digest": "be006d90cf4a31afe67395bd9fa41bc2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11007754, "upload_time": "2019-05-07T04:03:02", "url": "https://files.pythonhosted.org/packages/05/49/2d9278f3fe1c460bc137c63e9e20a9c68305c2a9b369f1a8c794ad1c03c4/msl_loadlib-0.6.0-py2.py3-none-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "444437cfe0acff1c9731bfafc751300e", "sha256": "261f33aa683b49f349ce05c4e28925dd3ad511fc2971469498b68183dd98ed56" }, "downloads": -1, "filename": "msl_loadlib-0.6.0-py2.py3-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "444437cfe0acff1c9731bfafc751300e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11005518, "upload_time": "2019-05-07T04:02:01", "url": "https://files.pythonhosted.org/packages/dc/e4/f2fd37b60ef010fd1d8b441646637915964378efb8bf4ef127d5b12b05c9/msl_loadlib-0.6.0-py2.py3-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "df5a63ccf5451247253d789e03e6b4e5", "sha256": "9004059a981b17d7962b746cd753f8e4680504cf07f6c9c18eba6aaaa5592482" }, "downloads": -1, "filename": "msl_loadlib-0.6.0-py2.py3-none-win32.whl", "has_sig": false, "md5_digest": "df5a63ccf5451247253d789e03e6b4e5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8296298, "upload_time": "2019-05-07T03:57:48", "url": "https://files.pythonhosted.org/packages/8a/5d/b225dbe28c8e39df52d7dec431a134b430c481b3a7886259af3f0b167382/msl_loadlib-0.6.0-py2.py3-none-win32.whl" }, { "comment_text": "", "digests": { "md5": "b2671d072d7452b0ff7c8cb50e844325", "sha256": "f7fe13a61c760de435cc70d5a5a439722eb2a92861d2aff9b665dbdf24cd4216" }, "downloads": -1, "filename": "msl_loadlib-0.6.0-py2.py3-none-win_amd64.whl", "has_sig": false, "md5_digest": "b2671d072d7452b0ff7c8cb50e844325", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8296303, "upload_time": "2019-05-07T03:59:33", "url": "https://files.pythonhosted.org/packages/78/92/90e98b176d1a128d65ccf5998f99ae4d4a07ac8c4a453a587ed85bdeceb2/msl_loadlib-0.6.0-py2.py3-none-win_amd64.whl" }, { "comment_text": "", "digests": { "md5": "853706e1ec9485f00899a0e284bbef7e", "sha256": "785370c22e5cf84b68b5668141129dfebee2094773e730dceb3bacc05ec69abb" }, "downloads": -1, "filename": "msl-loadlib-0.6.0.tar.gz", "has_sig": false, "md5_digest": "853706e1ec9485f00899a0e284bbef7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 904867, "upload_time": "2019-05-07T03:59:47", "url": "https://files.pythonhosted.org/packages/16/55/6837295e8d62f61c09bae366c0e8a0ada2963c26034343ea237dea42b105/msl-loadlib-0.6.0.tar.gz" } ] }