{ "info": { "author": "Randy Syring", "author_email": "randy.syring@level12.io", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7", "Topic :: Terminals :: Terminal Emulators/X Terminals" ], "description": "\n|license| |pypi| |coverage| |bugs| |code smells| |vulnerabilities|\n|duplicated lines|\n\nIntro\n-----\n\npy3270 is a Python interface to x3270, an IBM 3270 terminal emulator.\nIt provides an API to a x3270 or s3270 subprocess.\n\nExample\n--------\n\nThe x3270 executables need to be on your PATH!\n\nA brief example of usage:\n\n.. code:: python\n\n from py3270 import Emulator\n\n # use x3270 so you can see what is going on\n em = Emulator(visible=True)\n\n # or not (uses s3270)\n em = Emulator()\n\n em.connect('3270host.example.com')\n em.fill_field(17, 23, 'mylogin', 8)\n em.fill_field(18, 23, 'mypass', 8)\n em.send_enter()\n\n # if your host unlocks the keyboard before truly being ready you can use:\n em.wait_for_field()\n\n # maybe look for a status message\n if not em.string_found(1, 2, 'login succesful'):\n abort()\n\n # do something useful\n\n # disconnect from host and kill subprocess\n em.terminate()\n\nDocumentation\n--------------\n\nNone, sorry. Read the code, its pretty simple & self-explanatory :)\n\nMore information on x3270/s3270 can be found at:\n\n* http://x3270.bgp.nu/\n* http://x3270.bgp.nu/x3270-man.html\n* http://x3270.bgp.nu/s3270-man.html\n* http://x3270.bgp.nu/x3270-script.html\n\nQuestions & Comments\n---------------------\n\nPlease submit a issue or visit: http://groups.google.com/group/blazelibs\n\nCurrent Status\n---------------\n\nThe interface seems sound, but the Emulator class has only basic functionality.\nThere are more x3270 commands that the Emulator could have methods for. That\nbeing said, I believe most x3270 functionality can be supported at a lower-level\nby the use of Emulator.exec_command().\n\npy3270 is installable via `pip` with ``pip install py3270`` or `easy_install`\nwith ``easy_install py3270``.\n\n.. |license| image:: https://img.shields.io/badge/License-BSD%203--Clause-blue.svg\n :target: https://opensource.org/licenses/BSD-3-Clause\n :alt: BSD-3-Clause\n\n.. |pypi| image:: https://img.shields.io/pypi/v/py3270.svg\n :target: https://pypi.python.org/pypi/py3270\n :alt: Latest version released on PyPi\n\n.. |coverage| image:: https://sonarcloud.io/api/project_badges/measure?project=py3270&metric=coverage\n :target: https://sonarcloud.io/component_measures?id=py3270&metric=coverage\n :alt: Test coverage\n\n.. |bugs| image:: https://sonarcloud.io/api/project_badges/measure?project=py3270&metric=bugs\n :target: https://sonarcloud.io/component_measures?id=py3270&metric=bugs\n :alt: Bugs\n\n.. |code smells| image:: https://sonarcloud.io/api/project_badges/measure?project=py3270&metric=code_smells\n :target: https://sonarcloud.io/component_measures?id=py3270&metric=code_smells\n :alt: Code Smells\n\n.. |vulnerabilities| image:: https://sonarcloud.io/api/project_badges/measure?project=py3270&metric=vulnerabilities\n :target: https://sonarcloud.io/component_measures?id=py3270&metric=vulnerabilities\n :alt: Vulnerabilities\n\n.. |duplicated lines| image:: https://sonarcloud.io/api/project_badges/measure?project=py3270&metric=duplicated_lines_density\n :target: https://sonarcloud.io/component_measures?id=py3270&metric=duplicated_lines_density\n :alt: Duplicated Lines Density\n\n\nChange Log\n----------\n\n0.3.5 released 2018-10-23\n============================\n\n- Added explicit license\n- Reorganizing project structure\n- Fix exception handling in sockets\n- Fix exception in terminate command (wc3270)\n- Code styling and minor fixes\n\n0.3.4 released 2017-07-24\n============================\n\n- Fix BrokenPipeError issue WRT Python 2.7\n\n0.3.3 released 2016-01-21\n=========================\n\n- continued fix to broken version import (include version in manifest)\n\n0.3.2 released 2016-01-21\n=========================\n\n- fix broken version import in setup.py (broken in 0.3.0 and 0.3.1)\n\n0.3.1 released 2016-01-21\n=========================\n\n- fix testing support for Python 3\n- fix Windows support for Python 3\n- move to github, related updates to vcs-specific files\n\n0.3.0 released 2015-07-29\n=========================\n\n- Support Python 3\n\n0.2.0 released 2014-03-28\n=========================\n\n- Add Windows support, but not tested thoroughly.Consider Windows supportExperimental.\n- use x3270 executables from PATH instead of requiring ExamBase to be subclassed\n- fix buffering problems when writing to x3270 subprocess\n\n0.1.5 released 2013-06-17\n=========================\n\n- changed default timeout to 30 seconds\n- added send_pf7(), send_pf8()\n\n0.1.4 released 2012-03-17\n=========================\n\n- added is_connected() method\n\n0.1.3 released 2011-12-06\n=========================\n\n- had messed up a previous upload to pypi releasing a fixed 0.1.1 as 0.1.2, so\n need to go to next version number\n\n0.1.2 released 2011-12-06\n=========================\n\n- fix data parsing on Windows\n\n0.1.1 released 2011-12-05\n=========================\n\n- renamed Emulator to EmulatorBase to make it clearer that a subclass is needed\n- adjusted readme\n\n0.1.0 released 2011-12-01\n=========================\n\n- initial release\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/py3270/py3270", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "py3270", "package_url": "https://pypi.org/project/py3270/", "platform": "", "project_url": "https://pypi.org/project/py3270/", "project_urls": { "Homepage": "https://github.com/py3270/py3270" }, "release_url": "https://pypi.org/project/py3270/0.3.5/", "requires_dist": null, "requires_python": "", "summary": "A Python interface to x3270, an IBM 3270 terminal emulator", "version": "0.3.5" }, "last_serial": 4406147, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "1ac73c00429c82b5d19e267469ca8c13", "sha256": "eaaa0eb620482bcc919e922d23e092ecc8d26e854e4ae57c34d7472d3037b954" }, "downloads": -1, "filename": "py3270-0.1.0.tar.gz", "has_sig": false, "md5_digest": "1ac73c00429c82b5d19e267469ca8c13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6682, "upload_time": "2011-12-01T21:28:51", "url": "https://files.pythonhosted.org/packages/9a/03/930b0153baa224275c0a05814b9ef159b68d7e10470baadc86fa92a1620a/py3270-0.1.0.tar.gz" } ], "0.1.1": [], "0.1.2": [ { "comment_text": "", "digests": { "md5": "bb7ac7bdb4a94691dcce17264e223590", "sha256": "bfe64bd6c64849b03ae0b43108197c854b31b33a5c9c3bffb8d8fb423e1ab411" }, "downloads": -1, "filename": "py3270-0.1.2.tar.gz", "has_sig": false, "md5_digest": "bb7ac7bdb4a94691dcce17264e223590", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7062, "upload_time": "2011-12-05T17:38:23", "url": "https://files.pythonhosted.org/packages/19/0f/ce246a6de851ffe9bff9ccd60bbab32633f76f70ad4764d5f3df337c8e70/py3270-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "c86f7a2015f6f5abecea58564c800932", "sha256": "440351191390f6dd90b437224730f4b1c5c94ca67ff167d2a8035687ac4d1f0b" }, "downloads": -1, "filename": "py3270-0.1.3.tar.gz", "has_sig": false, "md5_digest": "c86f7a2015f6f5abecea58564c800932", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7202, "upload_time": "2011-12-06T15:48:28", "url": "https://files.pythonhosted.org/packages/95/0d/df76904db2c8ed25eb74a1667486206f2064bb555d1e1f53479a01d0a29e/py3270-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "c254ad582d60a88d95edd1fd7a5b46c7", "sha256": "b9866fded5aba185d3b4a59b50b1a04805da4bd9ab1fc6f9282c370202b00b79" }, "downloads": -1, "filename": "py3270-0.1.4.tar.gz", "has_sig": false, "md5_digest": "c254ad582d60a88d95edd1fd7a5b46c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7440, "upload_time": "2012-03-17T17:09:16", "url": "https://files.pythonhosted.org/packages/84/f5/af01c63c4ef5f423c1c74537b8b0e8b5effd21b2109071381f7c2d79b803/py3270-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "1a8616ef897d6af30140b9d89656f53d", "sha256": "98f1f422a3e81f3a78862904ed09ab7579117a0513876eaec031f08104505370" }, "downloads": -1, "filename": "py3270-0.1.5.tar.gz", "has_sig": false, "md5_digest": "1a8616ef897d6af30140b9d89656f53d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7571, "upload_time": "2013-06-17T20:12:35", "url": "https://files.pythonhosted.org/packages/a6/7a/3feb9259fe709261c680f2fcc50e093e39d0e7d19fc16204697e1efa89ab/py3270-0.1.5.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "2ece28e4eac8e2d0df1c4cc485d56fcc", "sha256": "e9a581ad68e5a965f5b4d19ab38780925eb6995601ddd9a24d18157e4c77b282" }, "downloads": -1, "filename": "py3270-0.2.0.tar.gz", "has_sig": false, "md5_digest": "2ece28e4eac8e2d0df1c4cc485d56fcc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8696, "upload_time": "2014-03-28T15:37:10", "url": "https://files.pythonhosted.org/packages/ce/cd/1bf95025635126ab38b12a5c4efa57636796781bb427fb66c841874f6a95/py3270-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "ec27e7115b26a6a7a1b20deedb4fb0ff", "sha256": "2e4e941b37dbd847c6a15ad0e4080d8e1ad5080992392d01ae66db875204e52c" }, "downloads": -1, "filename": "py3270-0.3.0.tar.gz", "has_sig": false, "md5_digest": "ec27e7115b26a6a7a1b20deedb4fb0ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9026, "upload_time": "2015-07-29T20:32:42", "url": "https://files.pythonhosted.org/packages/33/35/e93013f2fbf6475bd7bb022ea8218d536c4b25d4432dafa2a75d16355f23/py3270-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "8a6f51eae8546b2d02ea35eeda49878c", "sha256": "8fff67946ed76c8db8f6286721feb3b9606ed0ba0e246ef3cbb8432ca48119ce" }, "downloads": -1, "filename": "py3270-0.3.1.zip", "has_sig": false, "md5_digest": "8a6f51eae8546b2d02ea35eeda49878c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15169, "upload_time": "2016-01-21T21:08:25", "url": "https://files.pythonhosted.org/packages/5a/5c/63837e16ec27ae253931f099a2652fe0a5f5cd29c70c3d5ec436bd75b58e/py3270-0.3.1.zip" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "0db19548182b511cc3fffac63be260a7", "sha256": "12a894a439ad330c0433af33e5df3abb8f9e9858e636eb3b8de469641ff1d477" }, "downloads": -1, "filename": "py3270-0.3.2.zip", "has_sig": false, "md5_digest": "0db19548182b511cc3fffac63be260a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15276, "upload_time": "2016-01-21T21:36:42", "url": "https://files.pythonhosted.org/packages/82/42/7ccec6a18d3b3a6e9a0bba71967466a2b83350b582e355e5693020127020/py3270-0.3.2.zip" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "8ea28edcd867e9489df22cb7ce45d75d", "sha256": "070003ca273e6eebfda24cbd70227c979b381bb0b55daaa6f4bc5ff04cc02a65" }, "downloads": -1, "filename": "py3270-0.3.3.zip", "has_sig": false, "md5_digest": "8ea28edcd867e9489df22cb7ce45d75d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15552, "upload_time": "2016-01-21T21:49:57", "url": "https://files.pythonhosted.org/packages/c4/13/1a6cf2d593492dbfa66b2c26b75984626952735b9cff6cd8db8107f77d3c/py3270-0.3.3.zip" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "773dd596746ee09137c51ca4a0198655", "sha256": "b01eb98a4c7f7d5f2a86312b55a13239d1177ed04ab2b41becb40b8d65536c31" }, "downloads": -1, "filename": "py3270-0.3.4.tar.gz", "has_sig": false, "md5_digest": "773dd596746ee09137c51ca4a0198655", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11294, "upload_time": "2017-07-24T15:17:37", "url": "https://files.pythonhosted.org/packages/52/fa/91b5f354a8e3fe26cca3ab4d5762d0edea04c9865a5a8af0a0da530d5991/py3270-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "0aa4a95c03bafa5ca31fadce5672a142", "sha256": "f05b2cccbd9bb29f1cd8c40d89210fc06342aebd23d6df884d14e42439cfd849" }, "downloads": -1, "filename": "py3270-0.3.5.tar.gz", "has_sig": false, "md5_digest": "0aa4a95c03bafa5ca31fadce5672a142", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8289, "upload_time": "2018-10-23T11:53:10", "url": "https://files.pythonhosted.org/packages/70/75/eebdb5e367ed9811d113b2f8d5430a03bb9cf3ecc1cf8360c3013ae5d671/py3270-0.3.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0aa4a95c03bafa5ca31fadce5672a142", "sha256": "f05b2cccbd9bb29f1cd8c40d89210fc06342aebd23d6df884d14e42439cfd849" }, "downloads": -1, "filename": "py3270-0.3.5.tar.gz", "has_sig": false, "md5_digest": "0aa4a95c03bafa5ca31fadce5672a142", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8289, "upload_time": "2018-10-23T11:53:10", "url": "https://files.pythonhosted.org/packages/70/75/eebdb5e367ed9811d113b2f8d5430a03bb9cf3ecc1cf8360c3013ae5d671/py3270-0.3.5.tar.gz" } ] }