{ "info": { "author": "Yiorgis Gozadinos", "author_email": "ggozad@jarn.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Plone", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "collective.ATClamAV\n===================\n\nIntroduction\n------------\n\n``collective.ATClamAV`` aims at providing antivirus integration to Plone\nsites. It does that by defining a validator that can be used with any content\ntype that uses File or Image field(s). The open-source `Clam Antivirus`_ is\nsupported which is available for all platforms.\n\nUsage\n-----\n\nTo start, you need to have ``clamd`` running on some host accessible by your\ninstances. ``collective.ATClamAV`` supports either UNIX socket connections or\nremote connections.\n\nInstall collective.ATClamAV and setup the host & port or the path to the\n``clamd`` socket in the control panel (default is a network connection to\n``clamd`` listening on *localhost* at port 3310). By default *Files* and\n*Images* are going to be checked for viruses when added or updated.\n\nAdding anti-virus protection to non-ATFile based content\n--------------------------------------------------------\nIn order to add anti-virus protection to your custom content types you only\nneed to add the *isVirusFree* validator to your FileField(s). For instance:\n\n::\n\n FileField('file',\n validators = (('isNonEmptyFile', V_REQUIRED),\n ('isVirusFree', V_REQUIRED),),\n widget = FileWidget(label=u'File'),\n )\n\nTesting\n-------\nBy default tests mock ``clamd`` and do not require it being installed. If you\nwant to test your ``clamd`` setup as well, run tests on all levels i.e.\n\n::\n\n ./bin/test -a2\n\nusing the provided buildout. Two ``plone.app.testing`` layers (with the mocker\nand without) are provided if you want to integrate the package in your own\ntests, see ``testing.py``.\n\nDevelopment\n-----------\nIf you want to get involved with the development of collective.ATClamAV please\nuse `github`_ to submit your patches/issues.\n\nCredits\n-------\nSome code was shamelessly borrowed from `pyClamd`_.\n\n.. _Clam Antivirus: http://www.clamav.net\n.. _github: https://github.com/ggozad/collective.ATClamAV\n.. _pyClamd: http://xael.org/norman/python/pyclamd\n\nChangelog\n=========\n\n1.2 - 2011-03-15\n----------------\n\n- Sent all data over the socket instead of only the first buffer.\n [hannosch]\n\n- Added error logging for failed scans.\n [hannosch]\n\n1.1 - 2011-02-15\n----------------\n\n- Disable virus validator during debug mode but log a warning. This allows\n local development to take place without having clamav installed.\n [hannosch]\n\n1.0 - 2011-01-11\n----------------\n\n- Reengineering to support images.\n [hannosch]\n\n- Improve coverage and use plone.app.testing.\n [ggozad]\n\n- Plone 4 compatibility.\n [ggozad, hannosch]\n\n- pep-8\n [ggozad]\n\n1.0b2\n-----\n\n- Added support for local UNIX sockets\n [ggozad]\n\n1.0b1\n-----\n\n- Initial release\n [ggozad]", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/collective.ATClamAV", "keywords": "plone antivirus archetypes", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "collective.ATClamAV", "package_url": "https://pypi.org/project/collective.ATClamAV/", "platform": "Any", "project_url": "https://pypi.org/project/collective.ATClamAV/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://pypi.python.org/pypi/collective.ATClamAV" }, "release_url": "https://pypi.org/project/collective.ATClamAV/1.2/", "requires_dist": null, "requires_python": null, "summary": "Provides ClamAV antivirus integration for Archetypes based content types", "version": "1.2" }, "last_serial": 1868379, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "27594d3b9d216049d7fee84b158a7560", "sha256": "e69c44a351199a97b09228425cb9c714b7958a0f70a50786ff2f084f495964ba" }, "downloads": -1, "filename": "collective.ATClamAV-1.0.zip", "has_sig": false, "md5_digest": "27594d3b9d216049d7fee84b158a7560", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33594, "upload_time": "2011-01-11T12:34:00", "url": "https://files.pythonhosted.org/packages/06/8f/b149ecda78e804676fe9d4d91bcfd319afd9db8927f622c798f24e24e5e2/collective.ATClamAV-1.0.zip" } ], "1.0b1": [ { "comment_text": "", "digests": { "md5": "77aff37452c602b69c84877d8ad60ae7", "sha256": "67f8f01866f113be98ab6dc77fbeb2304660aeb1a270f97313a8657abe37e07a" }, "downloads": -1, "filename": "collective.ATClamAV-1.0b1.tar.gz", "has_sig": false, "md5_digest": "77aff37452c602b69c84877d8ad60ae7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15869, "upload_time": "2009-12-01T16:35:06", "url": "https://files.pythonhosted.org/packages/09/25/cc8db48c20667b6f3c44f399ecc9500dec25a8a6cb00fd3d1a1e1ede348d/collective.ATClamAV-1.0b1.tar.gz" } ], "1.0b2": [ { "comment_text": "", "digests": { "md5": "f6ec2dd703b030a0acff6d7b89f34877", "sha256": "d29174fa71cb45daed01347aed42fa82ec7854ccd7e1f0f59037ad9f86945fb5" }, "downloads": -1, "filename": "collective.ATClamAV-1.0b2.tar.gz", "has_sig": false, "md5_digest": "f6ec2dd703b030a0acff6d7b89f34877", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16976, "upload_time": "2009-12-18T13:46:54", "url": "https://files.pythonhosted.org/packages/61/76/15bc034203565abefc57aac21809415034791fa1c89519f5698adc5947ec/collective.ATClamAV-1.0b2.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "bd292443d186cbbd63e9219f8c54ead9", "sha256": "6ef4aa7acb8755de7d4796652b781820b893794c29bfae3f6778ed07b767d7b6" }, "downloads": -1, "filename": "collective.ATClamAV-1.1.zip", "has_sig": false, "md5_digest": "bd292443d186cbbd63e9219f8c54ead9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33997, "upload_time": "2011-02-15T12:21:00", "url": "https://files.pythonhosted.org/packages/55/74/7434b9c9f5e63dca8b658722c809f7396e24839d8e2906ca717d4e3521cb/collective.ATClamAV-1.1.zip" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "8d0b2d6afe235bb230870508d079219e", "sha256": "e2476562b32abd7c3cb577600b022230164d6b635140903bb9d7b27487706213" }, "downloads": -1, "filename": "collective.ATClamAV-1.2.zip", "has_sig": false, "md5_digest": "8d0b2d6afe235bb230870508d079219e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34208, "upload_time": "2011-03-15T15:11:56", "url": "https://files.pythonhosted.org/packages/fe/d0/d1d7997755960b5c7d4b68f2b0e71fd710e3222c80ea3cf17b86f8754814/collective.ATClamAV-1.2.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8d0b2d6afe235bb230870508d079219e", "sha256": "e2476562b32abd7c3cb577600b022230164d6b635140903bb9d7b27487706213" }, "downloads": -1, "filename": "collective.ATClamAV-1.2.zip", "has_sig": false, "md5_digest": "8d0b2d6afe235bb230870508d079219e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34208, "upload_time": "2011-03-15T15:11:56", "url": "https://files.pythonhosted.org/packages/fe/d0/d1d7997755960b5c7d4b68f2b0e71fd710e3222c80ea3cf17b86f8754814/collective.ATClamAV-1.2.zip" } ] }