{ "info": { "author": "Antoine Nguyen", "author_email": "tonio@ngyn.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Communications :: Email :: Filters", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "sievelib\n========\n\n|travis| |codecov| |latest-version|\n\nClient-side Sieve and Managesieve library written in Python.\n\n* Sieve : An Email Filtering Language\n (`RFC 5228 `_)\n* ManageSieve : A Protocol for Remotely Managing Sieve Scripts\n (`RFC 5804 `_)\n\nInstallation\n------------\n\nTo install ``sievelib`` from PyPI::\n\n pip install sievelib\n\nTo install sievelib from git::\n\n git clone git@github.com:tonioo/sievelib.git\n cd sievelib\n python ./setup.py install\n\nSieve tools\n-----------\n\nWhat is supported\n^^^^^^^^^^^^^^^^^\n\nCurrently, the provided parser supports most of the functionalities\ndescribed in the RFC. The only exception concerns section\n*2.4.2.4. Encoding Characters Using \"encoded-character\"* which is not\nsupported.\n\nThe following extensions are also supported:\n\n* Copying Without Side Effects (`RFC 3894 `_)\n* Date and Index (`RFC 5260 `_)\n* Vacation (`RFC 5230 `_)\n\nExtending the parser\n^^^^^^^^^^^^^^^^^^^^\n\nIt is possible to extend the parser by adding new supported\ncommands. For example::\n\n import sievelib\n\n class MyCommand(sievelib.commands.ActionCommand):\n args_definition = [\n {\"name\": \"testtag\",\n \"type\": [\"tag\"],\n \"write_tag\": True,\n \"values\": [\":testtag\"],\n \"extra_arg\": {\"type\": \"number\",\n \"required\": False},\n \"required\": False},\n {\"name\": \"recipients\",\n \"type\": [\"string\", \"stringlist\"],\n \"required\": True}\n ]\n\n sievelib.commands.add_commands(MyCommand)\n\nBasic usage\n^^^^^^^^^^^\n\nThe parser can either be used from the command-line::\n\n $ cd sievelib\n $ python parser.py test.sieve\n Syntax OK\n $\n\nOr can be used from a python environment (or script/module)::\n\n >>> from sievelib.parser import Parser\n >>> p = Parser()\n >>> p.parse('require [\"fileinto\"];')\n True\n >>> p.dump()\n require (type: control)\n [\"fileinto\"]\n >>> \n >>> p.parse('require [\"fileinto\"]')\n False\n >>> p.error\n 'line 1: parsing error: end of script reached while semicolon expected'\n >>>\n\nSimple filters creation\n^^^^^^^^^^^^^^^^^^^^^^^\n\nSome high-level classes are provided with the ``factory`` module, they\nmake the generation of Sieve rules easier::\n\n >>> from sievelib.factory import FiltersSet\n >>> fs = FiltersSet(\"test\")\n >>> fs.addfilter(\"rule1\",\n ... [(\"Sender\", \":is\", \"toto@toto.com\"),],\n ... [(\"fileinto\", \"Toto\"),])\n >>> fs.tosieve()\n require [\"fileinto\"];\n\n # Filter: rule1\n if anyof (header :is \"Sender\" \"toto@toto.com\") {\n fileinto \"Toto\";\n }\n >>> \n\nAdditional documentation is available within source code.\n\nManageSieve tools\n-----------------\n\nWhat is supported\n^^^^^^^^^^^^^^^^^\n\nAll mandatory commands are supported. The ``RENAME`` extension is\nsupported, with a simulated behaviour for server that do not support\nit.\n\nFor the ``AUTHENTICATE`` command, supported mechanisms are ``DIGEST-MD5``,\n``PLAIN`` and ``LOGIN``.\n\nBasic usage\n^^^^^^^^^^^\n\nThe ManageSieve client is intended to be used from another python\napplication (there isn't any shell provided)::\n\n >>> from sievelib.managesieve import Client\n >>> c = Client(\"server.example.com\")\n >>> c.connect(\"user\", \"password\", starttls=False, authmech=\"DIGEST-MD5\")\n True\n >>> c.listscripts()\n (\"active_script\", [\"script1\", \"script2\"])\n >>> c.setactive(\"script1\")\n True\n >>> c.havespace(\"script3\", 45)\n True\n >>>\n\nAdditional documentation is available with source code.\n\n.. |latest-version| image:: https://badge.fury.io/py/sievelib.svg\n :target: https://badge.fury.io/py/sievelib\n.. |travis| image:: https://travis-ci.org/tonioo/sievelib.png?branch=master\n :target: https://travis-ci.org/tonioo/sievelib\n.. |codecov| image:: http://codecov.io/github/tonioo/sievelib/coverage.svg?branch=master\n :target: http://codecov.io/github/tonioo/sievelib?branch=master\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tonioo/sievelib", "keywords": "sieve,managesieve,parser,client", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "sievelib", "package_url": "https://pypi.org/project/sievelib/", "platform": "", "project_url": "https://pypi.org/project/sievelib/", "project_urls": { "Homepage": "https://github.com/tonioo/sievelib" }, "release_url": "https://pypi.org/project/sievelib/1.1.1/", "requires_dist": [ "future", "six" ], "requires_python": "", "summary": "Client-side SIEVE library", "version": "1.1.1" }, "last_serial": 3521084, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "e88d467bba999d8d5154de2d261f349d", "sha256": "2c67d78279b3bd725bbb562ca23fd2ccc7f161d706fa41c009fadcbefee35ac9" }, "downloads": -1, "filename": "sievelib-0.1.tar.gz", "has_sig": false, "md5_digest": "e88d467bba999d8d5154de2d261f349d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15288, "upload_time": "2011-05-26T17:31:25", "url": "https://files.pythonhosted.org/packages/08/6e/bed1373df9a5fda5e54857fbe768436396e6523e9076c94b87adb7eda04d/sievelib-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "412cc46a29e829a3e6ade4f416e73db1", "sha256": "1c73b410f5d2832d4810389886a3cf29a9055e7621cfd37a312d98232844ea1d" }, "downloads": -1, "filename": "sievelib-0.2.tar.gz", "has_sig": false, "md5_digest": "412cc46a29e829a3e6ade4f416e73db1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18091, "upload_time": "2011-07-02T16:22:20", "url": "https://files.pythonhosted.org/packages/be/d6/0963d14d7b22f5aaba6e0cdb16865a6faa9478c2a05c39a9b818cc73ca03/sievelib-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "a8d2c89b183bd21c18215c44c0df9d96", "sha256": "62b904d9de08f7758b864bbed7573e7a296e8b127fac3dc767cdb129378ed642" }, "downloads": -1, "filename": "sievelib-0.3.tar.gz", "has_sig": false, "md5_digest": "a8d2c89b183bd21c18215c44c0df9d96", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18338, "upload_time": "2011-09-19T17:40:07", "url": "https://files.pythonhosted.org/packages/8a/8f/3f9850f4db89d47c01eae7e98cdeda1a981a3e1b721a6de1137daa4ad0f8/sievelib-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "a8651782f55fb39f0b26f68ff75ba4de", "sha256": "f5423a3ef7158882637ee1689d17f184e4aa804f32479b5498757d12693a8054" }, "downloads": -1, "filename": "sievelib-0.4.tar.gz", "has_sig": false, "md5_digest": "a8651782f55fb39f0b26f68ff75ba4de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18360, "upload_time": "2012-05-04T16:50:25", "url": "https://files.pythonhosted.org/packages/a8/e5/ef737edecd74ecdbf5f0f3b12231b6cb3452032eb00207e7f9a96c07e64b/sievelib-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "a4e4fcfc6fbab7b8f565d869b429f2c1", "sha256": "74c6149e80b3cee644eabfb37fead829b892b2d691265921721570566fc1c924" }, "downloads": -1, "filename": "sievelib-0.5.tar.gz", "has_sig": false, "md5_digest": "a4e4fcfc6fbab7b8f565d869b429f2c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18420, "upload_time": "2012-07-14T17:16:53", "url": "https://files.pythonhosted.org/packages/6a/51/add4507f755c7c59c8ce92210d6886715631234542cd2b93044c3af52b3d/sievelib-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "e060838a274c9e04c61bd87a33ebfa4c", "sha256": "7c0db1b96e36392808055d0463813ab49707ea3b15dda18349b06cb0faeb407f" }, "downloads": -1, "filename": "sievelib-0.6.tar.gz", "has_sig": false, "md5_digest": "e060838a274c9e04c61bd87a33ebfa4c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20141, "upload_time": "2013-02-23T07:54:51", "url": "https://files.pythonhosted.org/packages/9b/99/2bcaf9366af2c5cd2866f22baecdbfce9d31142fc74cad140a398b783095/sievelib-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "a9a1b22ddbbd538326a4f4b1d3be5310", "sha256": "b559b6e5365a59725fc1701aafe2a99ebcc2b7aa26ca18c222d5e37b9cd5d1ef" }, "downloads": -1, "filename": "sievelib-0.7.tar.gz", "has_sig": false, "md5_digest": "a9a1b22ddbbd538326a4f4b1d3be5310", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19428, "upload_time": "2013-04-01T07:46:26", "url": "https://files.pythonhosted.org/packages/0a/ab/6e6cd95567e11c24c57d101abce2e03b54147d6c32c47e6900929eed0d3d/sievelib-0.7.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "0bcf3cf7b166944c609b71f0ac69ca0a", "sha256": "7ba226cdd797390a1547ef56171686dc87a8061593c6c716edb61a7b994730bf" }, "downloads": -1, "filename": "sievelib-0.8.tar.gz", "has_sig": false, "md5_digest": "0bcf3cf7b166944c609b71f0ac69ca0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19831, "upload_time": "2013-11-29T12:24:44", "url": "https://files.pythonhosted.org/packages/0e/82/822c086e4b2ed5c1b4f0119860c32792e5830d3f2bb5e46bac1459e24caa/sievelib-0.8.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "f173ea5fb17a2acd8705fcee12c3346d", "sha256": "114a8bd9707ad8c8754181500a0391cf65edc2d8bc9df0e9c2731aa1de8a7572" }, "downloads": -1, "filename": "sievelib-0.9.tar.gz", "has_sig": false, "md5_digest": "f173ea5fb17a2acd8705fcee12c3346d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25343, "upload_time": "2015-10-21T07:47:40", "url": "https://files.pythonhosted.org/packages/e5/0b/77c17effe0daa79edb7222781ba33e19d1677a9638349e9215e115daddf6/sievelib-0.9.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "6a819a1fa0151a69a3204468d2e2935d", "sha256": "7d15d90da30a744d59061fc7d0fa0424b078413278ce3f866aa765b8b5a023f5" }, "downloads": -1, "filename": "sievelib-0.9.1.tar.gz", "has_sig": false, "md5_digest": "6a819a1fa0151a69a3204468d2e2935d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25384, "upload_time": "2015-10-21T09:47:30", "url": "https://files.pythonhosted.org/packages/7f/e6/bbead7ff661cfd25d2dd58660f7a7d6c35a530ed5ba76fb3970b91581882/sievelib-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "535c325030ab629281cf3cde0b8c9266", "sha256": "71abebdc069a2597f2d0354348c1afc967ec6bebe0d6e7228489d8efea56060b" }, "downloads": -1, "filename": "sievelib-0.9.2.tar.gz", "has_sig": false, "md5_digest": "535c325030ab629281cf3cde0b8c9266", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25710, "upload_time": "2015-10-21T12:17:30", "url": "https://files.pythonhosted.org/packages/5d/d5/87eadeec74f04e3a86c57a7e64ac9dfc4ddae439acf9456117a7b81a2c0d/sievelib-0.9.2.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "8ba59012f309e52da7b14bf3eafa711b", "sha256": "121e1adf3b04fd4893b2f3ca278171320cdede5da7abf923406888db657b8180" }, "downloads": -1, "filename": "sievelib-1.0.0.tar.gz", "has_sig": false, "md5_digest": "8ba59012f309e52da7b14bf3eafa711b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27384, "upload_time": "2017-10-27T13:37:32", "url": "https://files.pythonhosted.org/packages/6f/d3/207a9da2ffdc6841791280ad8069fdbd9a34331d7a356b59c6e96148b82f/sievelib-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "563b04880c482d5eb00290c43a71e027", "sha256": "ff573d3aecdb22eff92f74c1da9632ca909df10c1cded354b7f1d3981c37a764" }, "downloads": -1, "filename": "sievelib-1.1.0.tar.gz", "has_sig": false, "md5_digest": "563b04880c482d5eb00290c43a71e027", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27978, "upload_time": "2017-12-01T16:13:34", "url": "https://files.pythonhosted.org/packages/88/1b/5a258490afd6f75d88ae2248198ae348e314ab361d948b1c6a95b032207e/sievelib-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "2a359883082bb1c3448dbe8761029878", "sha256": "b6fe5d4239dab278def5eab9ece95463ea241c99b9ba6dc8ac452394a83f697b" }, "downloads": -1, "filename": "sievelib-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2a359883082bb1c3448dbe8761029878", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 33237, "upload_time": "2018-01-25T16:32:07", "url": "https://files.pythonhosted.org/packages/14/fd/3676ef3b06be6385cf69d34470254ac1f80cbd0f58a3830d742c471d1cfa/sievelib-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab0185afb19ae255ff17598cf9dc8d3d", "sha256": "8d46d1c883c1e40faadab69e9b755b3fd4d48ee0942edaf0bfd23be449e1524c" }, "downloads": -1, "filename": "sievelib-1.1.1-py3.6.egg", "has_sig": false, "md5_digest": "ab0185afb19ae255ff17598cf9dc8d3d", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 72581, "upload_time": "2018-01-25T16:32:09", "url": "https://files.pythonhosted.org/packages/76/2f/8848e7ca2cf939f794beff576bb2c2c26dd24ab620fa19d8b6e592fe9bde/sievelib-1.1.1-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "27ce47f2ee291e29d5b81fa796d26c75", "sha256": "bf1e684881483e33d4c37687d147ebbe85bd09fc3b0b6c7366aac992b97581ea" }, "downloads": -1, "filename": "sievelib-1.1.1.tar.gz", "has_sig": false, "md5_digest": "27ce47f2ee291e29d5b81fa796d26c75", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29647, "upload_time": "2018-01-25T16:32:10", "url": "https://files.pythonhosted.org/packages/0d/ac/8d1a4d9f9c87a2e0aa7aef57111040e08e41ceea0fe6fc1b2aafded024ee/sievelib-1.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2a359883082bb1c3448dbe8761029878", "sha256": "b6fe5d4239dab278def5eab9ece95463ea241c99b9ba6dc8ac452394a83f697b" }, "downloads": -1, "filename": "sievelib-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2a359883082bb1c3448dbe8761029878", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 33237, "upload_time": "2018-01-25T16:32:07", "url": "https://files.pythonhosted.org/packages/14/fd/3676ef3b06be6385cf69d34470254ac1f80cbd0f58a3830d742c471d1cfa/sievelib-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab0185afb19ae255ff17598cf9dc8d3d", "sha256": "8d46d1c883c1e40faadab69e9b755b3fd4d48ee0942edaf0bfd23be449e1524c" }, "downloads": -1, "filename": "sievelib-1.1.1-py3.6.egg", "has_sig": false, "md5_digest": "ab0185afb19ae255ff17598cf9dc8d3d", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 72581, "upload_time": "2018-01-25T16:32:09", "url": "https://files.pythonhosted.org/packages/76/2f/8848e7ca2cf939f794beff576bb2c2c26dd24ab620fa19d8b6e592fe9bde/sievelib-1.1.1-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "27ce47f2ee291e29d5b81fa796d26c75", "sha256": "bf1e684881483e33d4c37687d147ebbe85bd09fc3b0b6c7366aac992b97581ea" }, "downloads": -1, "filename": "sievelib-1.1.1.tar.gz", "has_sig": false, "md5_digest": "27ce47f2ee291e29d5b81fa796d26c75", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29647, "upload_time": "2018-01-25T16:32:10", "url": "https://files.pythonhosted.org/packages/0d/ac/8d1a4d9f9c87a2e0aa7aef57111040e08e41ceea0fe6fc1b2aafded024ee/sievelib-1.1.1.tar.gz" } ] }