{ "info": { "author": "mapix", "author_email": "mapix.me@gmail.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3" ], "description": "BPOLICY\n=======\n\nA collection of basic policies for resources anti-spammer.\n\n.. image:: http://img3.douban.com/view/biz/raw/public/f477075ba610e94.jpg\n :height: 240px\n :width: 300 px\n\nInstall from Pypi\n-----------------\n::\n\n pip install bpolicy\n\n\nBasic Example\n-------------\n::\n\n import memcache\n from bpolicy.consts import MINUTE, HOUR\n from bpolicy import RatedPolicyFactory, ClockPolicyFactory, GenerationedPolicyFactory\n from bpolicy import chained_policy, silent_check\n\n store = memcache.Client(['127.0.0.1:9013'])\n rated_factory = RatedPolicyFactory(quota=10, interval=1 * MINUTE)\n clock_factory = ClockPolicyFactory(start_time=time(hour=1), end_time=time(hour=6), discount=0.3)\n generationed_factory = GenerationedPolicyFactory(quota=10, interval=1 * HOUR, discount=0.5, max_keep_traking=3)\n\n\n def check_policy(identity):\n return silent_check(chained_policy('hello', [generationed_factory, clock_factory, rated_factory], store), identity)\n\n\n identity = \"88.88.23.1\"\n for i in range(100):\n if check_policy(identity):\n print(\"success\")\n else:\n print(\"banded\")", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mapix/bpolicy", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "bpolicy", "package_url": "https://pypi.org/project/bpolicy/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/bpolicy/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/mapix/bpolicy" }, "release_url": "https://pypi.org/project/bpolicy/0.3.3/", "requires_dist": null, "requires_python": null, "summary": "A collection of basic policies for resources anti-spammer", "version": "0.3.3" }, "last_serial": 2213623, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "297252d90fa1fa7a6b4598dd2011a61b", "sha256": "13603335c780e5a5d501a82e81edab2df700e32607e0ab538c4eab6e113d2fbf" }, "downloads": -1, "filename": "bpolicy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "297252d90fa1fa7a6b4598dd2011a61b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 164913, "upload_time": "2015-02-27T07:27:53", "url": "https://files.pythonhosted.org/packages/59/4f/a433d950e789342eea41f0e66795d4e570061242d786653de269818c2115/bpolicy-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c6e8bc27315bd8ccccc1facfc3617840", "sha256": "9fec43136b27e5db24f9fc00294461772cdbec974f036d85a7d3c439c75ba093" }, "downloads": -1, "filename": "bpolicy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "c6e8bc27315bd8ccccc1facfc3617840", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 166495, "upload_time": "2015-02-27T15:43:29", "url": "https://files.pythonhosted.org/packages/9e/db/b9115dad88108bccf87fd2283532c2d4ddfcf972d283c8b2df6356a31fcb/bpolicy-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "2b8d89443960891ec1a658ec639019f7", "sha256": "f1d1694512b6dac29e8ed46ddcebd1c47af391f88fb6b09b3c3baa53eb99a72f" }, "downloads": -1, "filename": "bpolicy-0.1.2.tar.gz", "has_sig": false, "md5_digest": "2b8d89443960891ec1a658ec639019f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 166753, "upload_time": "2015-02-28T03:56:43", "url": "https://files.pythonhosted.org/packages/47/31/db569cbf5130423a49dee046906e7f52ddf00b1de0716fb911b008b16f66/bpolicy-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "3a70c7f3f6319e412168bd4a66292b52", "sha256": "393549438e124501fcdf55303ef3f6b84af0a7fb8eaa2c08fd2fb385a0b67e44" }, "downloads": -1, "filename": "bpolicy-0.1.3.tar.gz", "has_sig": false, "md5_digest": "3a70c7f3f6319e412168bd4a66292b52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 166742, "upload_time": "2015-02-28T03:58:07", "url": "https://files.pythonhosted.org/packages/4a/dd/78c24a39c8badd95dd070b4f9ba669b0201ded3990fcab08a3261b76a48e/bpolicy-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "647391b07c44951abbeb86e1bffe9aa7", "sha256": "13c9d9ee5d7f50bc18876cd9a00339541b9103a5c621bd2fe32009068390c62a" }, "downloads": -1, "filename": "bpolicy-0.1.4.tar.gz", "has_sig": false, "md5_digest": "647391b07c44951abbeb86e1bffe9aa7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 166792, "upload_time": "2015-03-03T05:40:34", "url": "https://files.pythonhosted.org/packages/47/92/5f592fca2f952ceef5e2416619a99f9fe9161c9b1b42cceb8152f8968a10/bpolicy-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "691372009a3dae645a630cc6d7f1ab51", "sha256": "4c8dab16ee8f418efda82b94d20ec55ccd13d00bfeb911b9f9535379f014adb7" }, "downloads": -1, "filename": "bpolicy-0.1.5.tar.gz", "has_sig": false, "md5_digest": "691372009a3dae645a630cc6d7f1ab51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 166836, "upload_time": "2015-03-04T03:50:04", "url": "https://files.pythonhosted.org/packages/ea/01/b6af16c1bd2785a062944a801fa5d4e0ff8994b868be09608aaccdf70cd2/bpolicy-0.1.5.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "9536beb1be64ace58673e253efee1a56", "sha256": "d8b665258735ccc783583350cabcf3d1caf8879497e1e2578f231df78f5f9301" }, "downloads": -1, "filename": "bpolicy-0.2.0.tar.gz", "has_sig": false, "md5_digest": "9536beb1be64ace58673e253efee1a56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5289, "upload_time": "2015-06-13T15:14:42", "url": "https://files.pythonhosted.org/packages/39/e3/d89f814a8c0b5781f2f27e94c564c4b8ab6a691694e38956d69048a78a4a/bpolicy-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "055228a40af2186e39527acd9383183b", "sha256": "33d25bc9b0389e955bf9a17d144c16c74a8856e9353437d65b6032a4978dce43" }, "downloads": -1, "filename": "bpolicy-0.2.1.tar.gz", "has_sig": false, "md5_digest": "055228a40af2186e39527acd9383183b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5337, "upload_time": "2016-03-14T09:53:52", "url": "https://files.pythonhosted.org/packages/21/c3/55495e592fb58b0bbef92b3ae2a0c9184bc021f77af478046abb6b0aeb0a/bpolicy-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "93571489b4827c5473bbb2c78a7ffbd5", "sha256": "a4c9068f8dd1c03659baffd2310fc3fb6f081756ce78290f69e3a3b333ad6cc0" }, "downloads": -1, "filename": "bpolicy-0.3.0.tar.gz", "has_sig": false, "md5_digest": "93571489b4827c5473bbb2c78a7ffbd5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5405, "upload_time": "2016-07-08T08:12:25", "url": "https://files.pythonhosted.org/packages/3c/a6/59a18179a030eb9994a7ef2d55e95f7fa42a8b17dc3019fb88bf43b02d94/bpolicy-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "c1aec6766357019819aed917464e2565", "sha256": "ddb2527ecbf93e0361f86dfcb15213233362ff9e5abb99aaf91dc6c9f47782c6" }, "downloads": -1, "filename": "bpolicy-0.3.1.tar.gz", "has_sig": false, "md5_digest": "c1aec6766357019819aed917464e2565", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5452, "upload_time": "2016-07-08T08:32:19", "url": "https://files.pythonhosted.org/packages/a8/04/98b1ebedcdeb5ff9600c94f8e4741e35cdd39cfa5114357240d2bd060b77/bpolicy-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "e9eb2517389b0e3d78b30bb913a52136", "sha256": "9bfca3e5d6334ded1975530c2979129f36c146c4bc532fcca59011ab24b45a82" }, "downloads": -1, "filename": "bpolicy-0.3.2.tar.gz", "has_sig": false, "md5_digest": "e9eb2517389b0e3d78b30bb913a52136", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5515, "upload_time": "2016-07-08T08:36:58", "url": "https://files.pythonhosted.org/packages/37/3c/1b38fec417f798fe295e87fa009fe7bcbcc83ff7d1fa021acd5ef4282f3d/bpolicy-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "c3a64c79401b42aedbcc979b9a498daa", "sha256": "12948b12d8b23bd47b2f86165a9e52d9f39a003d8f82829cb49fc542a9328ea8" }, "downloads": -1, "filename": "bpolicy-0.3.3.tar.gz", "has_sig": false, "md5_digest": "c3a64c79401b42aedbcc979b9a498daa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5474, "upload_time": "2016-07-11T06:16:18", "url": "https://files.pythonhosted.org/packages/96/c7/88006a687fca8ac1657ccf1a6d9ea97712afadb9bd2f748e660de68b5c4f/bpolicy-0.3.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c3a64c79401b42aedbcc979b9a498daa", "sha256": "12948b12d8b23bd47b2f86165a9e52d9f39a003d8f82829cb49fc542a9328ea8" }, "downloads": -1, "filename": "bpolicy-0.3.3.tar.gz", "has_sig": false, "md5_digest": "c3a64c79401b42aedbcc979b9a498daa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5474, "upload_time": "2016-07-11T06:16:18", "url": "https://files.pythonhosted.org/packages/96/c7/88006a687fca8ac1657ccf1a6d9ea97712afadb9bd2f748e660de68b5c4f/bpolicy-0.3.3.tar.gz" } ] }