{ "info": { "author": "Kai Chang", "author_email": "kaijchang@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "# SFPL\n\nPython Package for accessing account, book, and author data from the SFPL Website.\n\n## Status\n![travis](https://travis-ci.org/kajchang/SFPL.svg?branch=master)\n[![pypi](https://badge.fury.io/py/sfpl.svg)](https://pypi.org/project/sfpl/)\n\n## Installation\n\nFrom `pip`:\n\n`$ pip install sfpl`\n\nFrom source:\n\n`$ pip install git+git://github.com/kajchang/SFPL.git`\n\nOr clone / download this repository and `$ python setup.py install` or `$ pip install .`\n\n## Frameworks Used\n\n`requests` - Used for getting data from the SFPL website and managing login cookies.\n\n`bs4 + lxml` - Used for parsing information from HTML.\n\n## Features\n\n* Managing current checkouts and holds for your SFPL library account.\n\n* Searching for books by keyword, title, author, subject, and tag and searching for user-created book lists.\n\n* Following other library users and viewing their book lists.\n\n* Getting libary branch hours.\n\n### TODO\n\n* Better Book Status Messages\n\n## How to Use\n\nSearching for books on Python:\n\n```python\n>>> from sfpl import Search\n>>> python_search = Search('Python')\n>>> results = python_search.getResults(pages=2) # .getResults is a generator that yields / streams pages of results\n>>> for page in results:\n\t\tprint(page)\n[Python by Donaldson, Toby, Python by Johansen, Andrew, Python! by Moses, Brian, Python by McGrath, Mike, Python by Vo. T. H, Phuong]\n[Python by Romano, Fabrizio, Python by Phillips, Dusty, Python by Joshi, Prateek, Python by Lassoff, Mark, Python by Wayani, Rafiq]\n```\n\nSearching for books by J.K. Rowling:\n\n```python\n>>> from sfpl import Search\n>>> jk_search = Search('J.K. Rowling', _type='author')\n>>> results = jk_search.getResults()\n>>> first_page = next(results)\n>>> first_page[0].title\n\"Harry Potter and the Sorcerer's Stone\"\n>>> first_page[0].getDescription()\n\"For the first time, J. K. Rowling's beloved Harry Potter ...\"\n```\n\nSearching for book lists related to San Francisco:\n\n```python\n>>> from sfpl import Search\n>>> list_search = Search('San Francisco', _type='list')\n>>> results = list_search.getResults()\n>>> first_page = next(results)\n>>> first_page[0].title\n'Made in SF - San Francisco love for young readers'\n>>> for book in first_page[0].getBooks():\n\t\tprint(book)\nAl Capone Does My Shirts by Choldenko, Gennifer\nBook Scavenger by Bertman, Jennifer Chambliss\n...\n```\n\nGetting all your books on hold:\n\n```python\n>>> from sfpl import Account\n>>> my_account = Account('barcode', 'pin') # Replace with your barcode and pin.\n>>> my_holds = my_account.getHolds()\n>>> for book in my_holds:\n\t\tprint(book.title)\n'Python for Data Analysis'\n'Automate the Boring Stuff With Python'\n>>> for book in my_holds:\n\t\tprint(book.status)\n'#4 on 6 copies'\n'#7 on 3 copies'\n>>> for book in my_holds:\n\t\tprint(book.author)\n'McKinney, Wes'\n'Sweigart, Al'\n```\n\nSearching for books by J.K. Rowling but not about Harry Potter:\n\n```python\n>>> from sfpl import AdvancedSearch\n>>> search = AdvancedSearch(includeauthor='J.K. Rowling', excludekeyword='Harry Potter') # Search for books by J.K. Rowling but don't include 'Harry Potter'\n>>> results = search.getResults()\n>>> for book in results:\n\t\tprint(book.title)\n'Fantastic Beasts and Where to Find Them'\n'Fantastic Beasts and Where to Find Them : The Original Screenplay'\n'The Casual Vacancy'\n'Very Good Lives'\n'Una vacante imprevista'\n```\n\nGetting hours for a library branch:\n\n```python\n>>> from sfpl import Branch\n>>> branch = Branch('anza')\n>>> branch.getHours()\n{'Sun': '1 - 5', 'Mon': '12 - 6', 'Tue': '10 - 9', 'Wed': '1 - 9', 'Thu': '10 - 6', 'Fri': '1 - 6', 'Sat': '10 - 6'}\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kajchang/sfpl-scraper", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "sfpl", "package_url": "https://pypi.org/project/sfpl/", "platform": "", "project_url": "https://pypi.org/project/sfpl/", "project_urls": { "Homepage": "https://github.com/kajchang/sfpl-scraper" }, "release_url": "https://pypi.org/project/sfpl/1.5.1/", "requires_dist": [ "beautifulsoup4 (==4.6.3)", "requests (==2.22.0)", "lxml (==4.2.4)" ], "requires_python": "", "summary": "Unofficial Python API for SFPL", "version": "1.5.1" }, "last_serial": 5642066, "releases": { "1": [ { "comment_text": "", "digests": { "md5": "e558949a40ee676e10f7a9d17260d3b4", "sha256": "4142dca761645e499eae46fdecdb010d4d23a9ba8692436509c0b32fea4bc3c1" }, "downloads": -1, "filename": "sfpl-1-py3-none-any.whl", "has_sig": false, "md5_digest": "e558949a40ee676e10f7a9d17260d3b4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2462, "upload_time": "2018-06-07T23:26:45", "url": "https://files.pythonhosted.org/packages/6e/2d/25c48323471c3327a4261f2f4f5368afab5734c22d9ac45e0b974fc8bc3e/sfpl-1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "66c8b9e031e9f3201711bcca6b83f66f", "sha256": "9fac807593f33f81683e0d70ff1ce6713a6f3cd7db9b4864ee2416e1505df7eb" }, "downloads": -1, "filename": "sfpl-1.tar.gz", "has_sig": false, "md5_digest": "66c8b9e031e9f3201711bcca6b83f66f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2493, "upload_time": "2018-06-07T23:26:46", "url": "https://files.pythonhosted.org/packages/0e/6a/be9a848e17a86db9f213aff7849d08c1d2366d72c59d34a8ff01fe777c4e/sfpl-1.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "8d2d840065b37004526d37fbaf953004", "sha256": "06dadf95025565231567a73022b8e2017ec2eb5738f1b90732be49c55f69b056" }, "downloads": -1, "filename": "sfpl-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8d2d840065b37004526d37fbaf953004", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3270, "upload_time": "2018-06-19T03:22:57", "url": "https://files.pythonhosted.org/packages/e3/54/3eb34fa272fea81d89fa8a9ad5b505febbd794878b5484cbded6e8c5843d/sfpl-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4b3a8cba57f024494cfdd93cc6c93411", "sha256": "1e1b6dc56593031f417f3b0bb0c942440160f0bc9eef89dd6bea122a13a8ff5e" }, "downloads": -1, "filename": "sfpl-1.0.1.tar.gz", "has_sig": false, "md5_digest": "4b3a8cba57f024494cfdd93cc6c93411", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2910, "upload_time": "2018-06-19T03:22:58", "url": "https://files.pythonhosted.org/packages/68/6d/6a3c0a1ce6a6658fcb44ee8008bdffd378248a0d07e9a2ba34400e22b1e7/sfpl-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "de5b517c40a8d060565fb8a87ae0ce2d", "sha256": "bfce256c7252d29126e05d0a5e7d0f83448d1d46be9c34eb1c5cec7e0b96a7a0" }, "downloads": -1, "filename": "sfpl-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "de5b517c40a8d060565fb8a87ae0ce2d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3350, "upload_time": "2018-06-19T15:22:58", "url": "https://files.pythonhosted.org/packages/60/28/50a3bf3bb0346b8efda1b22bee07f29435ca276e9eac27f8c05f0f5df290/sfpl-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0dd4c9de911bc1f388c56ab838445b17", "sha256": "6b8dc79672e8b59e5d103007fd8f89e29f3e6bb1f22721117a6a821a38c92912" }, "downloads": -1, "filename": "sfpl-1.0.2.tar.gz", "has_sig": false, "md5_digest": "0dd4c9de911bc1f388c56ab838445b17", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2994, "upload_time": "2018-06-19T15:22:59", "url": "https://files.pythonhosted.org/packages/ac/88/3a39e01739ed1cfea7b7c2c54f29a4043b69e77a3626e532f1c096d0bb11/sfpl-1.0.2.tar.gz" } ], "1.1.10": [ { "comment_text": "", "digests": { "md5": "c790598e7527e31b1224f2ba37b511b5", "sha256": "6629cde574ca250045d59af98b0cf722879146959d7081b69555c235fa2b4c5a" }, "downloads": -1, "filename": "sfpl-1.1.10-py3-none-any.whl", "has_sig": false, "md5_digest": "c790598e7527e31b1224f2ba37b511b5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6039, "upload_time": "2018-06-26T02:49:35", "url": "https://files.pythonhosted.org/packages/48/3a/7e6740ff9eacf423d059e0846518e65535157621808a7dd53afb64d36c2a/sfpl-1.1.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "791c4a766e1eeb0bbc698571cce49633", "sha256": "dc1dfa1b50cb253dc71a15827497624d079a2c70722e1b18d7286df94becd409" }, "downloads": -1, "filename": "sfpl-1.1.10.tar.gz", "has_sig": false, "md5_digest": "791c4a766e1eeb0bbc698571cce49633", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6047, "upload_time": "2018-06-26T02:49:36", "url": "https://files.pythonhosted.org/packages/84/44/c75828baa58c5af03007bab3c54bb175a3fa9d677ad7ad1706de5a527fb9/sfpl-1.1.10.tar.gz" } ], "1.1.11": [ { "comment_text": "", "digests": { "md5": "a983f02c6cc60e33b841989e4a8f4e24", "sha256": "45343c07d01464b29adc11b55ef23b78d20a5f248814a00cd97bc3c3b2c19131" }, "downloads": -1, "filename": "sfpl-1.1.11-py3-none-any.whl", "has_sig": false, "md5_digest": "a983f02c6cc60e33b841989e4a8f4e24", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6552, "upload_time": "2018-06-27T04:52:25", "url": "https://files.pythonhosted.org/packages/33/a6/9584c3fc9ba101cf8393c3765260cabf6a49495c4043406c5c0d66fae862/sfpl-1.1.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f91307bc71fa353fc86fe0b965b29386", "sha256": "ff9280852ff58b48dca260b1673f8c1a7c90ef83c6bbb6f5b9b4097ce27edf70" }, "downloads": -1, "filename": "sfpl-1.1.11.tar.gz", "has_sig": false, "md5_digest": "f91307bc71fa353fc86fe0b965b29386", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7209, "upload_time": "2018-06-27T04:52:26", "url": "https://files.pythonhosted.org/packages/db/18/2604065fca096186c3cc2e75c94705537cad6d4deb71801b0b77b50ad865/sfpl-1.1.11.tar.gz" } ], "1.1.12.1": [ { "comment_text": "", "digests": { "md5": "85fb413604437ffbdaa7821363bab670", "sha256": "31c4c1ec037e309f25b76eee88293e29ac9b37be107c3191b0bcc8ed63cd7114" }, "downloads": -1, "filename": "sfpl-1.1.12.1-py3-none-any.whl", "has_sig": false, "md5_digest": "85fb413604437ffbdaa7821363bab670", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8656, "upload_time": "2018-06-30T17:23:40", "url": "https://files.pythonhosted.org/packages/68/ca/64e3b60a05c0070b0a42b06cc22d0ff324220154a6c57be80fc9ca207d35/sfpl-1.1.12.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cf1dfc2f33a9fde8f54d2923e5505e81", "sha256": "a736b9ae03249acf6003d6dffadc8ecda380097cc9a92e099a6622227fd781fc" }, "downloads": -1, "filename": "sfpl-1.1.12.1.tar.gz", "has_sig": false, "md5_digest": "cf1dfc2f33a9fde8f54d2923e5505e81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10272, "upload_time": "2018-06-30T17:23:41", "url": "https://files.pythonhosted.org/packages/f9/3b/d5f5a4fd63b85070f134d5bbc8fb4edb1f2db8adf5063d1740086c3302bf/sfpl-1.1.12.1.tar.gz" } ], "1.1.13": [ { "comment_text": "", "digests": { "md5": "a5d1026c6148cd3aeaec38cefd250036", "sha256": "6b819cecbcba6bbc0159017c0a33612bf61670f0b983d3dee70335169b7f094b" }, "downloads": -1, "filename": "sfpl-1.1.13-py3-none-any.whl", "has_sig": false, "md5_digest": "a5d1026c6148cd3aeaec38cefd250036", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8658, "upload_time": "2018-06-30T20:20:01", "url": "https://files.pythonhosted.org/packages/35/aa/a6cbfda9ebe3252d5382fc6ec567ec7d391848a01a2a09063fa8e73d3a27/sfpl-1.1.13-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "36c50e8717a459d50ccb20103a67406f", "sha256": "7c340c7516b6e8f1666f9d0f3ed5542521752640f87aef1a33ca1fa1b77d380a" }, "downloads": -1, "filename": "sfpl-1.1.13.tar.gz", "has_sig": false, "md5_digest": "36c50e8717a459d50ccb20103a67406f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10881, "upload_time": "2018-06-30T20:20:02", "url": "https://files.pythonhosted.org/packages/7c/90/66da6006ecac4751ce02777c2535389dab2e6503f55155ce7467f3a72dcc/sfpl-1.1.13.tar.gz" } ], "1.1.14": [ { "comment_text": "", "digests": { "md5": "dde713bc69fd50120f31ee08ab3cfc06", "sha256": "5198e177c680728861b3208a204e54d21631daaaa2e838ae5b1d43dc3ad35e73" }, "downloads": -1, "filename": "sfpl-1.1.14-py3-none-any.whl", "has_sig": false, "md5_digest": "dde713bc69fd50120f31ee08ab3cfc06", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9152, "upload_time": "2018-07-02T00:53:02", "url": "https://files.pythonhosted.org/packages/25/06/5274f88129c79668021147abdd23ce34c4097fce512bb6585d98ef35b31d/sfpl-1.1.14-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2db9fdfe566b6c2f228d7d31b003b832", "sha256": "f9b8e1af400cf24afbd212c66e24308f5e012cd5619d87ae308bf998c5e2c5cf" }, "downloads": -1, "filename": "sfpl-1.1.14.tar.gz", "has_sig": false, "md5_digest": "2db9fdfe566b6c2f228d7d31b003b832", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11592, "upload_time": "2018-07-02T00:53:03", "url": "https://files.pythonhosted.org/packages/1d/99/9b3802c418aebceb422978af66402b4c08e66243781f259eb550cefdb991/sfpl-1.1.14.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "392aded9be62753151ed6bfdaf43d5c8", "sha256": "a59cff8fbdba170c93fee527ed7213ed7fad0c42a2b54c2721a6ea2f3c370082" }, "downloads": -1, "filename": "sfpl-1.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "392aded9be62753151ed6bfdaf43d5c8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3765, "upload_time": "2018-06-21T00:31:51", "url": "https://files.pythonhosted.org/packages/9b/36/c09a26b0c9db350bc867c3e21b5acf50e25132ee1012191af3c49a3a92dd/sfpl-1.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0deabeda9396728d55bb27c93f1c8543", "sha256": "fc0d87e765a977ea8ccc4eb7b6324b902ed0d14b51e2a555a546e2d92c51f9c1" }, "downloads": -1, "filename": "sfpl-1.1.2.tar.gz", "has_sig": false, "md5_digest": "0deabeda9396728d55bb27c93f1c8543", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3537, "upload_time": "2018-06-21T00:31:52", "url": "https://files.pythonhosted.org/packages/fc/94/f96126205a340e9f49bea257b17e7d9eff6f7bb2a6ca2ac4e45e269a3fb4/sfpl-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "bf7295560865c48541413ab2ea321888", "sha256": "d379e1179b153ba6cfed25197a779c6aa18a84fce4d99f3853c2add89faaaad6" }, "downloads": -1, "filename": "sfpl-1.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "bf7295560865c48541413ab2ea321888", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3783, "upload_time": "2018-06-21T03:42:45", "url": "https://files.pythonhosted.org/packages/7b/18/78902c5ff74764890029e1d93e7d03fd4805b9c7c9899fc4da594557e65a/sfpl-1.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bef9dcaea86ddd6969464b76629ec087", "sha256": "e601ab3fdd56d6ba942ec33e75e0011833d29369a2f5a02ebf672a029f244645" }, "downloads": -1, "filename": "sfpl-1.1.3.tar.gz", "has_sig": false, "md5_digest": "bef9dcaea86ddd6969464b76629ec087", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3566, "upload_time": "2018-06-21T03:42:46", "url": "https://files.pythonhosted.org/packages/41/88/9c4a1aad98311f76d59a67a8631145edfcb429d0461a1955a6085ab7b633/sfpl-1.1.3.tar.gz" } ], "1.1.5": [ { "comment_text": "", "digests": { "md5": "1bb4205b7ae9e7221d02c82bcf2819bc", "sha256": "ac6d44ed74a452906861c90074da0ab1992debb0a568840960d7ead62e56373e" }, "downloads": -1, "filename": "sfpl-1.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "1bb4205b7ae9e7221d02c82bcf2819bc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4581, "upload_time": "2018-06-22T17:12:49", "url": "https://files.pythonhosted.org/packages/7e/1f/c9f620b3f9a9e5828860a2c26fcc0d439722b9192cc0418ebebdcb719ae7/sfpl-1.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "07cd1a0745c25e4e4e382714e0a1f59c", "sha256": "9c072f2da30340908e83d3b1a69a29c29a7fcbf69f28816c77d312c869f82011" }, "downloads": -1, "filename": "sfpl-1.1.5.tar.gz", "has_sig": false, "md5_digest": "07cd1a0745c25e4e4e382714e0a1f59c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4412, "upload_time": "2018-06-22T17:12:50", "url": "https://files.pythonhosted.org/packages/a8/50/09a49d0a12edbf4be93ae771af333e8223fcb6915398fd01770628ab7b5c/sfpl-1.1.5.tar.gz" } ], "1.1.6": [ { "comment_text": "", "digests": { "md5": "cf02082eff158236dd6b866bf6858a66", "sha256": "fe5da94a2cdbc71e0f0603fcbf88818d0d37d68322addb207ea6eca4ce77a80e" }, "downloads": -1, "filename": "sfpl-1.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "cf02082eff158236dd6b866bf6858a66", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4556, "upload_time": "2018-06-22T17:47:18", "url": "https://files.pythonhosted.org/packages/84/78/b9f908509ce2d19af527ce3394cfae0900fb4f901e7d93eced9a134a7097/sfpl-1.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6080cda353fb463dbd54bf3251b1e682", "sha256": "aadbdaddf238cd03e2d2baeca6bbbce609d14ac7e56d3d32ebedaa629b527c2b" }, "downloads": -1, "filename": "sfpl-1.1.6.tar.gz", "has_sig": false, "md5_digest": "6080cda353fb463dbd54bf3251b1e682", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4392, "upload_time": "2018-06-22T17:47:19", "url": "https://files.pythonhosted.org/packages/bf/dc/a913140750a7bc305406b015365d7e020001192cf4fe673a8eeb9f620fc5/sfpl-1.1.6.tar.gz" } ], "1.1.7": [ { "comment_text": "", "digests": { "md5": "ff69dad76591b927f70bbe947100ef45", "sha256": "ec8cdab3cd80b527b98b5f08b719a0e0d380edbc6175d165ec5834ba32f12c33" }, "downloads": -1, "filename": "sfpl-1.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "ff69dad76591b927f70bbe947100ef45", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4868, "upload_time": "2018-06-22T22:52:10", "url": "https://files.pythonhosted.org/packages/a9/12/b771b8d0cc28558238cbd8d39b18ba243ba5a6dcc208df9c0939bf4cf468/sfpl-1.1.7-py3-none-any.whl" } ], "1.1.8": [ { "comment_text": "", "digests": { "md5": "ec50043bc6d6ece01bf0ea09e23069ce", "sha256": "edf21d69ae0f20200ec59dc11162a3ad92920b02bfed9e39e5ca22967853d031" }, "downloads": -1, "filename": "sfpl-1.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "ec50043bc6d6ece01bf0ea09e23069ce", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4914, "upload_time": "2018-06-23T03:42:07", "url": "https://files.pythonhosted.org/packages/e9/93/d9853f70d9bf8cc787377e16985a9bec6aaf5aa828477c911157ff7bdf93/sfpl-1.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "111ba1dc5066c5e2329fc4ced4feeac9", "sha256": "ee373912fb57f2b36f1c11815f4bc025350391d87a3cdae8603f0bdc4487ba29" }, "downloads": -1, "filename": "sfpl-1.1.8.tar.gz", "has_sig": false, "md5_digest": "111ba1dc5066c5e2329fc4ced4feeac9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4763, "upload_time": "2018-06-23T03:42:08", "url": "https://files.pythonhosted.org/packages/e9/f5/6c87b727374e28119e9bc82056808c75b1f59b96290b0b3a18715b80a180/sfpl-1.1.8.tar.gz" } ], "1.1.9": [ { "comment_text": "", "digests": { "md5": "eff16977bdc02ea55c5e269206049b52", "sha256": "e6896254a77b67e7277d67d49adfdea61aebe69a2fbefe6a019b292305166d17" }, "downloads": -1, "filename": "sfpl-1.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "eff16977bdc02ea55c5e269206049b52", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5037, "upload_time": "2018-06-24T19:55:23", "url": "https://files.pythonhosted.org/packages/62/47/51a308bc0605849b8c03e69c909840e250943115e01c70e8a539df7e36be/sfpl-1.1.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5527ce009323c776ac36ef3a3c4e3f53", "sha256": "321738862361d512a83a6f46d4316abe27b26a48fc95153fb63fe67b548d702a" }, "downloads": -1, "filename": "sfpl-1.1.9.tar.gz", "has_sig": false, "md5_digest": "5527ce009323c776ac36ef3a3c4e3f53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4895, "upload_time": "2018-06-24T19:55:24", "url": "https://files.pythonhosted.org/packages/db/8b/a9db7c3c42197bff88fef60181d61ae9f6da7882715d5d59a341122947a2/sfpl-1.1.9.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "cf098cdca27955ce6daa77c5be21ce5d", "sha256": "5405bc1e5bc84be25466d35278f6bebef354f966060efc584fdddea8e980afcf" }, "downloads": -1, "filename": "sfpl-1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "cf098cdca27955ce6daa77c5be21ce5d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9372, "upload_time": "2018-07-10T03:52:07", "url": "https://files.pythonhosted.org/packages/8f/b6/12a7b9ab5ee06361ed892aec732aeafc8d182c7ab8ef3d22e3e9fd96ad52/sfpl-1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "582687385898dd205a16947a73b6a9ad", "sha256": "9bcbce5b9c18727e0106f4a2d55c04d31f543dda438019c307e5e894f403d837" }, "downloads": -1, "filename": "sfpl-1.2.tar.gz", "has_sig": false, "md5_digest": "582687385898dd205a16947a73b6a9ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10800, "upload_time": "2018-07-10T03:52:09", "url": "https://files.pythonhosted.org/packages/80/82/0bfd6308f153bc68ea46fe4d938d6d48f7307e18697e8d1b2639a565df70/sfpl-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "0a2bbd330315a434a9aa7e9009ee1622", "sha256": "2df93963f6b6713aebf353bc738d966aff311f4b2fff07470bdced509e9d0fce" }, "downloads": -1, "filename": "sfpl-1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "0a2bbd330315a434a9aa7e9009ee1622", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10316, "upload_time": "2018-07-13T03:10:03", "url": "https://files.pythonhosted.org/packages/d5/ca/ca028c66dc6a1d934dcc111d71ef273791ae70a6aa4bec69be7d77c71c5f/sfpl-1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3d0d60144fac14f4896c73945e8a8add", "sha256": "1c89dc86d272dc0d734d86fc5e37e0c13aa11610a32f53f7f5855fcd7128f8bf" }, "downloads": -1, "filename": "sfpl-1.3.tar.gz", "has_sig": false, "md5_digest": "3d0d60144fac14f4896c73945e8a8add", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11861, "upload_time": "2018-07-13T03:10:04", "url": "https://files.pythonhosted.org/packages/e7/ba/225a15fcdbe08279a2f6809849a7f406dd7ab4785b5965a446e5adaaf3a9/sfpl-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "ed2e80dfe68345a4ac83d9815785ba05", "sha256": "99bcb58b9a4ec407b21edd82b3590d1de7335b4d2bb5fc2a7e74de72d6849161" }, "downloads": -1, "filename": "sfpl-1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "ed2e80dfe68345a4ac83d9815785ba05", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10506, "upload_time": "2018-08-16T00:20:03", "url": "https://files.pythonhosted.org/packages/8c/5d/547dfe4124cdf3ba3e63d0f7676257d51b282ea4323fcdf7f837918a92d5/sfpl-1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4881732528f6aa6f29644fd69216e6e", "sha256": "a3d1e49169f6018c855d94d66c69ae04c9b7a661dffbd0d0f6e0681203eeb8ec" }, "downloads": -1, "filename": "sfpl-1.4.tar.gz", "has_sig": false, "md5_digest": "d4881732528f6aa6f29644fd69216e6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12020, "upload_time": "2018-08-16T00:20:05", "url": "https://files.pythonhosted.org/packages/22/8b/59c520045dee309fb197c2380dab9f3fb1ef0ec395e03da2ba042e1a5d2e/sfpl-1.4.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "c420e407da7e009cc1b61e1201e472ad", "sha256": "f2b7fd803c7bdd92518d1d1f0e9a4a2d250245dfc629d23c918eca41026a967e" }, "downloads": -1, "filename": "sfpl-1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "c420e407da7e009cc1b61e1201e472ad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11550, "upload_time": "2018-10-07T22:59:26", "url": "https://files.pythonhosted.org/packages/87/7c/f32e601f7fceb0a21edee5957ed4c38fa67cbb23d1d8a00a0057854dba37/sfpl-1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2acb747ab9c7cb0429481a2738f0204f", "sha256": "09026558b48772bb54b6c951a5c5e02e1ef676fbf942ec6fce2d953f9c0f3329" }, "downloads": -1, "filename": "sfpl-1.5.tar.gz", "has_sig": false, "md5_digest": "2acb747ab9c7cb0429481a2738f0204f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11279, "upload_time": "2018-10-07T22:59:28", "url": "https://files.pythonhosted.org/packages/58/42/457b9d8099728047e57bbac629a1c74842e7d973a7fdf725b0674ca080a1/sfpl-1.5.tar.gz" } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "5878f1a072c5485dc48669421f9a83fa", "sha256": "59b09e761db4b82f033ab1a58bf43a8d79621cc40c7870a65889882fa0cbb572" }, "downloads": -1, "filename": "sfpl-1.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5878f1a072c5485dc48669421f9a83fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11578, "upload_time": "2019-08-06T22:34:49", "url": "https://files.pythonhosted.org/packages/98/3b/4c8ad07d2b65d64795d66d72d660da468ab39ebea7c33fd3d726e45e02d4/sfpl-1.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f194f57ff8e2c62dfc16f785f1f1daab", "sha256": "4334d95f7b47f81b60f5a18934651185b44b39199aac88629b5e286e60e2d933" }, "downloads": -1, "filename": "sfpl-1.5.1.tar.gz", "has_sig": false, "md5_digest": "f194f57ff8e2c62dfc16f785f1f1daab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11695, "upload_time": "2019-08-06T22:34:51", "url": "https://files.pythonhosted.org/packages/36/65/6ae390d176326e40076859479aeecd9f406c6afb2fcdd9e20eddba4efab9/sfpl-1.5.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5878f1a072c5485dc48669421f9a83fa", "sha256": "59b09e761db4b82f033ab1a58bf43a8d79621cc40c7870a65889882fa0cbb572" }, "downloads": -1, "filename": "sfpl-1.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5878f1a072c5485dc48669421f9a83fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11578, "upload_time": "2019-08-06T22:34:49", "url": "https://files.pythonhosted.org/packages/98/3b/4c8ad07d2b65d64795d66d72d660da468ab39ebea7c33fd3d726e45e02d4/sfpl-1.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f194f57ff8e2c62dfc16f785f1f1daab", "sha256": "4334d95f7b47f81b60f5a18934651185b44b39199aac88629b5e286e60e2d933" }, "downloads": -1, "filename": "sfpl-1.5.1.tar.gz", "has_sig": false, "md5_digest": "f194f57ff8e2c62dfc16f785f1f1daab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11695, "upload_time": "2019-08-06T22:34:51", "url": "https://files.pythonhosted.org/packages/36/65/6ae390d176326e40076859479aeecd9f406c6afb2fcdd9e20eddba4efab9/sfpl-1.5.1.tar.gz" } ] }