{ "info": { "author": "Taehoon Kim", "author_email": "carpedm20@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.1", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Korail2\n=======\n\n|PyPi version| |PyPi downloads| |PyPi status| |PyPi license|\n\nKorail (www.letskorail.com) wrapper for Python.\n\nThis project was inspired from\n`korail `__ of\n`devxoul `__.\n\nDocumentation\n-------------\n\nThe documentation is available at\n`here `__\n\nInstalling\n----------\n\nTo install korail2, simply:\n\n::\n\n $ pip install korail2\n\nOr, you can use:\n\n::\n\n $ easy_install korail2\n\nOr, you can also install manually:\n\n::\n\n $ git clone git://github.com/carpedm20/korail2.git\n $ cd korail2\n $ python setup.py install\n\nUsing\n-----\n\n1. Login\n~~~~~~~~\n\nFirst, you need to create a Korail object.\n\n.. code:: python\n\n >>> from korail2 import *\n >>> korail = Korail(\"12345678\", YOUR_PASSWORD) # with membership number\n >>> korail = Korail(\"carpedm20@gmail.com\", YOUR_PASSWORD) # with email\n >>> korail = Korail(\"010-9964-xxxx\", YOUR_PASSWORD) # with phone number\n\nIf you do not want login automatically,\n\n.. code:: python\n\n >>> korail = Korail(\"12345678\", YOUR_PASSWORD, auto_login=False)\n >>> korail.login()\n True\n\nWhen you want change ID using existing object,\n\n.. code:: python\n\n >>> korail.login(ANOTHER_ID, ANOTHER_PASSWORD)\n True\n\n2. Search train\n~~~~~~~~~~~~~~~\n\nYou can search train schedules ``search_train`` and\n``search_train_allday`` methods.\n\n- ``search_train`` returns 10 results max. Faster than\n ``search_train_allday``.\n- ``search_train_allday`` returns all results after the time.\n- ``search_train_allday`` uses ``search_train`` repeatedly.\n\n``search_train`` and ``search_train_allday`` methods take these\narguments:\n\n- dep : A departure station in Korean ex) '\uc11c\uc6b8'\n- arr : A arrival station in Korean ex) '\ubd80\uc0b0'\n- date : (optional) A departure date in ``yyyyMMdd`` format\n- time : (optional) A departure time in ``hhmmss`` format\n- train\\_type: (optional) A type of train. You can use constants of\n TrainType class here. default value is TrainType.ALL.\n\n - 00: TrainType.KTX - KTX\n - 01: TrainType.SAEMAEUL - \uc0c8\ub9c8\uc744\ud638\n - 02: TrainType.MUGUNGHWA - \ubb34\uad81\ud654\ud638\n - 03: TrainType.TONGGEUN - \ud1b5\uadfc\uc5f4\ucc28\n - 04: TrainType.NURIRO - \ub204\ub9ac\ub85c\n - 05: TrainType.ALL - \uc804\uccb4\n - 06: TrainType.AIRPORT - \uacf5\ud56d\uc9c1\ud1b5\n - 07: TrainType.KTX\\_SANCHEON - KTX-\uc0b0\ucc9c\n - 08: TrainType.ITX\\_SAEMAEUL - ITX-\uc0c8\ub9c8\uc744\n - 09: TrainType.ITX\\_CHEONGCHUN - ITX-\uccad\ucd98\n\n- (optional) passengers=None : List of Passenger Objects. None means 1\n AdultPassenger.\n- (optional) include\\_no\\_seats=False : When True, a result includes\n trains which has no seats.\n\nBelow is a sample usage of ``search_train``:\n\n.. code:: python\n\n >>> dep = '\uc11c\uc6b8'\n >>> arr = '\ub3d9\ub300\uad6c'\n >>> date = '20140815'\n >>> time = '144000'\n >>> trains = korail.search_train(dep, arr, date, time)\n [[KTX] 8\uc6d4 3\uc77c, \uc11c\uc6b8~\ubd80\uc0b0(11:00~13:42) \ud2b9\uc2e4,\uc77c\ubc18\uc2e4 \uc608\uc57d\uac00\ub2a5,\n [ITX-\uc0c8\ub9c8\uc744] 8\uc6d4 3\uc77c, \uc11c\uc6b8~\ubd80\uc0b0(11:04~16:00) \uc77c\ubc18\uc2e4 \uc608\uc57d\uac00\ub2a5,\n [KTX] 8\uc6d4 3\uc77c, \uc11c\uc6b8~\ubd80\uc0b0(12:00~14:43) \ud2b9\uc2e4,\uc77c\ubc18\uc2e4 \uc608\uc57d\uac00\ub2a5,\n [KTX] 8\uc6d4 3\uc77c, \uc11c\uc6b8~\ubd80\uc0b0(12:30~15:13) \ud2b9\uc2e4,\uc77c\ubc18\uc2e4 \uc608\uc57d\uac00\ub2a5,\n [KTX] 8\uc6d4 3\uc77c, \uc11c\uc6b8~\ubd80\uc0b0(12:40~15:45) \ud2b9\uc2e4,\uc77c\ubc18\uc2e4 \uc608\uc57d\uac00\ub2a5,\n [KTX] 8\uc6d4 3\uc77c, \uc11c\uc6b8~\ubd80\uc0b0(12:55~15:26) \ud2b9\uc2e4,\uc77c\ubc18\uc2e4 \uc608\uc57d\uac00\ub2a5,\n [KTX] 8\uc6d4 3\uc77c, \uc11c\uc6b8~\ubd80\uc0b0(13:00~15:37) \ud2b9\uc2e4,\uc77c\ubc18\uc2e4 \uc608\uc57d\uac00\ub2a5,\n [KTX] 8\uc6d4 3\uc77c, \uc11c\uc6b8~\ubd80\uc0b0(13:10~15:58) \ud2b9\uc2e4,\uc77c\ubc18\uc2e4 \uc608\uc57d\uac00\ub2a5]\n\nWhen you want to see sold-out trains.\n\n.. code:: python\n\n >>> trains = korail.search_train(dep, arr, date, time, include_no_seats=True)\n [[KTX] 8\uc6d4 3\uc77c, \uc11c\uc6b8~\ubd80\uc0b0(11:00~13:42) \ud2b9\uc2e4,\uc77c\ubc18\uc2e4 \uc608\uc57d\uac00\ub2a5,\n [ITX-\uc0c8\ub9c8\uc744] 8\uc6d4 3\uc77c, \uc11c\uc6b8~\ubd80\uc0b0(11:04~16:00) \uc77c\ubc18\uc2e4 \uc608\uc57d\uac00\ub2a5,\n [\ubb34\uad81\ud654\ud638] 8\uc6d4 3\uc77c, \uc11c\uc6b8~\ubd80\uc0b0(11:08~16:54) \uc785\uc11d \uc5ed\ubc1c\ub9e4\uc911,\n [ITX-\uc0c8\ub9c8\uc744] 8\uc6d4 3\uc77c, \uc11c\uc6b8~\ubd80\uc0b0(11:50~16:50) \uc785\uc11d \uc5ed\ubc1c\ub9e4\uc911,\n [KTX] 8\uc6d4 3\uc77c, \uc11c\uc6b8~\ubd80\uc0b0(12:00~14:43) \ud2b9\uc2e4,\uc77c\ubc18\uc2e4 \uc608\uc57d\uac00\ub2a5,\n [KTX] 8\uc6d4 3\uc77c, \uc11c\uc6b8~\ubd80\uc0b0(12:30~15:13) \ud2b9\uc2e4,\uc77c\ubc18\uc2e4 \uc608\uc57d\uac00\ub2a5,\n [KTX] 8\uc6d4 3\uc77c, \uc11c\uc6b8~\ubd80\uc0b0(12:40~15:45) \ud2b9\uc2e4,\uc77c\ubc18\uc2e4 \uc608\uc57d\uac00\ub2a5,\n [KTX] 8\uc6d4 3\uc77c, \uc11c\uc6b8~\ubd80\uc0b0(12:55~15:26) \ud2b9\uc2e4,\uc77c\ubc18\uc2e4 \uc608\uc57d\uac00\ub2a5,\n [KTX] 8\uc6d4 3\uc77c, \uc11c\uc6b8~\ubd80\uc0b0(13:00~15:37) \ud2b9\uc2e4,\uc77c\ubc18\uc2e4 \uc608\uc57d\uac00\ub2a5,\n [KTX] 8\uc6d4 3\uc77c, \uc11c\uc6b8~\ubd80\uc0b0(13:10~15:58) \ud2b9\uc2e4,\uc77c\ubc18\uc2e4 \uc608\uc57d\uac00\ub2a5]\n\n2-1. About ``passengers`` argument\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n``passengers`` is a list(or tuple) of Passeger Objects. By this, you can\nsearch for multiple passengers. There are 3 types of Passengers now,\nAdultPassenger, ChildPassenger and SeniorPassenger.\n\n.. code:: python\n\n # for 1 adult, 1 child\n >>> psgrs = [AdultPassenger(), ChildPassenger()]\n\n # for 2 adults, 1 child\n >>> psgrs = [AdultPassenger(2), ChildPassenger(1)]\n # ditto. They are being added each other by same group.\n >>> psgrs = [AdultPassenger(), AdultPassenger(), ChildPassenger()]\n\n # for 2 adults, 1 child, 1 senior\n >>> psgrs = [AdultPassenger(2), ChildPassenger(), SeniorPassenger()]\n\n # for 1 adult, It supports negative count or zero count. \n # But it uses passengers which the sum is greater than zero.\n >>> psgrs = [AdultPassenger(2), AdultPassenger(-1)]\n >>> psgrs = [AdultPassenger(), SeniorPassenger(0)]\n\n # Nothing\n >>> psgrs = [AdultPassenger(0), SeniorPassenger(0)]\n\n # then search or reserve train\n >>> trains = korail.search_train(dep, arr, date, time, passengers=psgrs)\n ...\n >>> korail.reserve(trains[0], psgrs)\n ...\n\n3. Make a reservation\n~~~~~~~~~~~~~~~~~~~~~\n\nYou can get your tickets with ``tickets`` method.\n\n.. code:: python\n\n >>> trains = korail.search_train(dep, arr, date, time)\n >>> seat = korail.reserve(trains[0])\n >>> seat\n [KTX] 8\uc6d4 23\uc77c, \uc11c\uc6b8~\ub3d9\ub300\uad6c(15:30~17:19) 42500\uc6d0(1\uc11d), \uad6c\uc785\uae30\ud55c 8\uc6d4 18\uc77c 14:05\n\nMultiple.\n\n.. code:: python\n\n >>> trains = korail.search_train(dep, arr, date, time)\n >>> seat = korail.reserve(trains[0], passengers=psgrs)\n >>> seat\n [KTX] 8\uc6d4 23\uc77c, \uc11c\uc6b8~\ub3d9\ub300\uad6c(15:30~17:19) 42500\uc6d0(3\uc11d), \uad6c\uc785\uae30\ud55c 8\uc6d4 18\uc77c 14:05\n\nWhen tickets are not enough much for passengers, it raises SoldOutError.\n\nIf you want to select priority of seat grade, general or special, There\nare 4 options in ReserveOption class.\n\n- GENERAL\\_FIRST : Economic than Comfortable.\n- GENERAL\\_ONLY : Reserve only general seats. You are poorman ;-)\n- SPECIAL\\_FIRST : Comfortable than Economic.\n- SPECIAL\\_ONLY : Richman.\n\n.. code:: python\n\n >>> korail.reserve(trains[0], psgrs, ReserveOption.GENERAL_ONLY)\n\n4. Show reservations\n~~~~~~~~~~~~~~~~~~~~\n\nYou can get your tickes with ``tickets`` method.\n\n.. code:: python\n\n >>> reservations = korail.reservations()\n >>> reservations\n [[KTX] 8\uc6d4 23\uc77c, \uc11c\uc6b8~\ub3d9\ub300\uad6c(14:55~16:45) 42500\uc6d0(1\uc11d), \uad6c\uc785\uae30\ud55c 8\uc6d4 18\uc77c 14:03,\n [\ubb34\uad81\ud654\ud638] 8\uc6d4 23\uc77c, \uc11c\uc6b8~\ub3d9\ub300\uad6c(15:03~18:48) 21100\uc6d0(1\uc11d), \uad6c\uc785\uae30\ud55c 8\uc6d4 18\uc77c 14:03,\n [KTX] 8\uc6d4 23\uc77c, \uc11c\uc6b8~\ub3d9\ub300\uad6c(15:30~17:19) 42500\uc6d0(1\uc11d), \uad6c\uc785\uae30\ud55c 8\uc6d4 18\uc77c 14:05]\n\n5. Cancel reservation\n~~~~~~~~~~~~~~~~~~~~~\n\nYou can also cancel your reservation using Reservation Object from\nreservations() call.\n\n.. code:: python\n\n >>> korail.cancel(reservations[0])\n\n6. Get tickets already paid\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nYou can see your ticket list with ``tickets`` method. You can get the\nlist of paid tickes with ``tickets`` method.\n\n.. code:: python\n\n >>> korail = Korail(\"12345678\", YOUR_PASSWORD, want_feedback=True)\n >>> tickets = korail.tickets()\n \uc815\uc0c1\ubc1c\ub9e4\ucc98\ub9ac,\uc815\uc0c1\ubc1c\uad8c\ucc98\ub9ac # You can see these feedbacks when `want_feedback` is True.\n >>> print tickets\n [[KTX] 8\uc6d4 10\uc77c, \ub3d9\ub300\uad6c~\uc6b8\uc0b0(09:26~09:54) => 5\ud638 4A, 13900\uc6d0]\n\nHow do I get the Korail API\n---------------------------\n\n1. Extract Korail apk from mobile phone\n2. Decompile apk using `dex2jar `__\n3. Read a jar code using `jdgui `__\n4. Edit a smaili code\n5. Recompile a new Korail apk using\n `apktool `__\n6. Key signing with ``motizen-sign``\n7. Upload and run a new Korail apk\n8. Capture packets and analyze the API\n\nTodo\n----\n\n1. Implement payment API\n\nLicense\n-------\n\nSource codes are distributed under BSD license.\n\nAuthor\n------\n\nTaehoon Kim / [@carpedm20](http://carpedm20.github.io/about/) Hanson Kim\n/ [@sng2c](https://github.com/sng2c)\n\n.. |PyPi version| image:: https://pypip.in/v/korail2/badge.png?style=flat\n :target: https://pypi.python.org/pypi/korail2\n.. |PyPi downloads| image:: https://pypip.in/d/korail2/badge.png?style=flat\n :target: https://pypi.python.org/pypi/korail2\n.. |PyPi status| image:: https://pypip.in/status/korail2/badge.svg?style=flat\n :target: https://pypi.python.org/pypi/korail2\n.. |PyPi license| image:: https://pypip.in/license/korail2/badge.svg?style=flat\n :target: https://pypi.python.org/pypi/korail2", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/carpedm20/korail2", "keywords": "Korail", "license": "BSD License", "maintainer": "", "maintainer_email": "", "name": "korail2", "package_url": "https://pypi.org/project/korail2/", "platform": "", "project_url": "https://pypi.org/project/korail2/", "project_urls": { "Homepage": "http://github.com/carpedm20/korail2" }, "release_url": "https://pypi.org/project/korail2/0.3.0/", "requires_dist": null, "requires_python": "", "summary": "Korail(www.letskorail.com) wrapper for Python", "version": "0.3.0" }, "last_serial": 5608969, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "c344745eb3d7cc5050b91755a71c5cb2", "sha256": "39cfbfcda04e15e437ce6bb3fd6f2ed33564cb5fe55c76084a8ecfc2fcddc03a" }, "downloads": -1, "filename": "korail2-0.0.1.tar.gz", "has_sig": false, "md5_digest": "c344745eb3d7cc5050b91755a71c5cb2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8023, "upload_time": "2014-08-02T23:10:34", "url": "https://files.pythonhosted.org/packages/ca/f2/ec4a5634c3b300e13f1b1cf5d2fd1a6565d38db2c917e01fe85f88313430/korail2-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "002483b3310975afd2c9fbfb60a0623f", "sha256": "a7f656ead145df3497e9ea994011dea6f7651110c4e989e58b0cb71a622b464f" }, "downloads": -1, "filename": "korail2-0.0.2.tar.gz", "has_sig": false, "md5_digest": "002483b3310975afd2c9fbfb60a0623f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8589, "upload_time": "2014-08-06T06:48:10", "url": "https://files.pythonhosted.org/packages/de/fd/c017f4e707339c66d9bd0c04aafdc0bee3a72ddff04ad28c0796c99cbbe9/korail2-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "4d2fc1ae150692b7568bd1aa38efb7aa", "sha256": "4ff9891b98de2f48abf1482e3555be3b35d21e8144e29d80b28465b2b166ce77" }, "downloads": -1, "filename": "korail2-0.0.3.tar.gz", "has_sig": false, "md5_digest": "4d2fc1ae150692b7568bd1aa38efb7aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8807, "upload_time": "2014-08-11T14:01:47", "url": "https://files.pythonhosted.org/packages/90/c7/00d1f422d48c82ab3aa82840ca083ac23fd26eff48f16c334b9871138f92/korail2-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "5169899bfd556a8996665113577be342", "sha256": "8634aee423a5f0b2cda3e326ccc371eb55b68a8eefde5c6b0a49d7b0514e0d67" }, "downloads": -1, "filename": "korail2-0.0.4.tar.gz", "has_sig": false, "md5_digest": "5169899bfd556a8996665113577be342", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9798, "upload_time": "2014-08-14T14:52:36", "url": "https://files.pythonhosted.org/packages/ef/9e/e1fdd88ad66125316a4f813a0371670c7c6f7e64d94c529560f814e244ab/korail2-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "4a09e04571f06bac6ff15f8852f2e8fe", "sha256": "325f4d5b3118b164c8d66381b631445d788720b5606bf703ccc380d1e9751869" }, "downloads": -1, "filename": "korail2-0.0.5.tar.gz", "has_sig": false, "md5_digest": "4a09e04571f06bac6ff15f8852f2e8fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12425, "upload_time": "2014-08-25T05:38:37", "url": "https://files.pythonhosted.org/packages/97/e4/b227bbb6160d31c1f62420b4a64e40b065c7b0cf12709e64fd11cffd8467/korail2-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "99a0c9826181086f3a76a52103649803", "sha256": "1ead01822f4e4014c9adb19ff41bc03c7b42633b5998e3505359665feafab077" }, "downloads": -1, "filename": "korail2-0.0.6.tar.gz", "has_sig": false, "md5_digest": "99a0c9826181086f3a76a52103649803", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13263, "upload_time": "2014-08-27T23:18:21", "url": "https://files.pythonhosted.org/packages/6e/bd/0f718b80b91a39886a8a3f54171ef3455c693e9b740c14f51235104234a6/korail2-0.0.6.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "bbf8d4e26b4c98bd048e0816f6976d1e", "sha256": "1e529f656174d2bb00f0ff676146107d7025d6ab7999625ce25daf7e0ce1d90a" }, "downloads": -1, "filename": "korail2-0.1.0.tar.gz", "has_sig": false, "md5_digest": "bbf8d4e26b4c98bd048e0816f6976d1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15791, "upload_time": "2015-09-07T04:53:21", "url": "https://files.pythonhosted.org/packages/e0/41/18c20e1d9e557cb16f2ccd4ffaaf19790f727723d19d8cfbded258e3da30/korail2-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "03c2e31bf08e7798c44545107bf965d9", "sha256": "e5cb162f14651a2a7b032622d8ba4c36f6c9f81967f9b28fbca57685247e26ba" }, "downloads": -1, "filename": "korail2-0.2.0.tar.gz", "has_sig": false, "md5_digest": "03c2e31bf08e7798c44545107bf965d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16219, "upload_time": "2015-09-24T14:40:51", "url": "https://files.pythonhosted.org/packages/ec/f3/66012ab06cde0cdea868e24faa2e3463f0a79002b56c909fd922466e7dc6/korail2-0.2.0.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "ff60c3de08f43513e729ca4806222c55", "sha256": "dad36c3f3d6fd3c37986a32d7298ce91500d076fa7ac769afc926cdd05a11565" }, "downloads": -1, "filename": "korail2-0.2.5.tar.gz", "has_sig": false, "md5_digest": "ff60c3de08f43513e729ca4806222c55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16224, "upload_time": "2015-09-29T10:53:38", "url": "https://files.pythonhosted.org/packages/84/0b/688877f1722d931052dbfee47ee421e72136c1cf3dac8bfdf491df00a7f6/korail2-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "d0040ef1f3aa333ebadac234ff9d2b1d", "sha256": "e59159c475a10b2d384f6ed24ffa9bab3181e6e5940451e3c1446d0c8b566180" }, "downloads": -1, "filename": "korail2-0.2.6-py2-none-any.whl", "has_sig": false, "md5_digest": "d0040ef1f3aa333ebadac234ff9d2b1d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 18266, "upload_time": "2017-01-12T08:28:58", "url": "https://files.pythonhosted.org/packages/74/64/7a5d614b1b24a537f2d485d0019f2529e0124471720286e4ade81ee3fefc/korail2-0.2.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "387c207c4a4ce6bc99e29bee7adbe802", "sha256": "a6a8cadeffa30ae39e258312a29caa264f4715cdb750f2eda8b729fd7c0452a6" }, "downloads": -1, "filename": "korail2-0.2.6.tar.gz", "has_sig": false, "md5_digest": "387c207c4a4ce6bc99e29bee7adbe802", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16310, "upload_time": "2017-01-12T08:29:01", "url": "https://files.pythonhosted.org/packages/b6/8e/283119414134db9050a5d9d877a461b69e96bfa13530a03060862127a3b9/korail2-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "c6d46a75719ea1af0e37498836927bfb", "sha256": "b8577e97a0d42109c96ba301cdae23b58095a3a937d43634670bfa1624425f3f" }, "downloads": -1, "filename": "korail2-0.2.7.tar.gz", "has_sig": false, "md5_digest": "c6d46a75719ea1af0e37498836927bfb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16419, "upload_time": "2017-04-21T15:00:49", "url": "https://files.pythonhosted.org/packages/6e/c4/74e0671cfc8a16f2c3796187d863e8da8acd287987383d1ddaa77d38bdf5/korail2-0.2.7.tar.gz" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "eb1d61b3c5e41ef7ebd75c831b88c560", "sha256": "a2a310fa5db8dca4cb4c44ec66b10e53f493bb8e21b52c58f092faea441d0d4e" }, "downloads": -1, "filename": "korail2-0.2.8.tar.gz", "has_sig": false, "md5_digest": "eb1d61b3c5e41ef7ebd75c831b88c560", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16444, "upload_time": "2017-11-01T14:07:28", "url": "https://files.pythonhosted.org/packages/cd/0e/9b91e1608ee32ef8c60bc2b3ac5275c945c6f5277aa021668217856fa40b/korail2-0.2.8.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "424525d675a15bab8ef816e2df933b25", "sha256": "62efa029b1a689bfb278f8bc4392ad4231e060c630302879e9b23d381c796e1e" }, "downloads": -1, "filename": "korail2-0.3.0.tar.gz", "has_sig": false, "md5_digest": "424525d675a15bab8ef816e2df933b25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18865, "upload_time": "2019-07-30T17:34:26", "url": "https://files.pythonhosted.org/packages/99/c6/c8f58d77c9b41f99b9be5cd0fb5c01b43828004272d4667d1736aab59ee0/korail2-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "424525d675a15bab8ef816e2df933b25", "sha256": "62efa029b1a689bfb278f8bc4392ad4231e060c630302879e9b23d381c796e1e" }, "downloads": -1, "filename": "korail2-0.3.0.tar.gz", "has_sig": false, "md5_digest": "424525d675a15bab8ef816e2df933b25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18865, "upload_time": "2019-07-30T17:34:26", "url": "https://files.pythonhosted.org/packages/99/c6/c8f58d77c9b41f99b9be5cd0fb5c01b43828004272d4667d1736aab59ee0/korail2-0.3.0.tar.gz" } ] }