{ "info": { "author": "Hector Velarde", "author_email": "hector.velarde@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Plone", "Framework :: Plone :: 4.3", "Framework :: Plone :: 5.1", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Logging" ], "description": ".. image:: https://raw.githubusercontent.com/collective/collective.fingerpointing/master/docs/fingerpointing.png\n :align: left\n :alt: Finger Pointing\n :height: 100px\n :width: 100px\n\n***************\nFinger Pointing\n***************\n\n.. contents:: Table of Contents\n\nLife, the Universe, and Everything\n==================================\n\nFinger Pointing is a basic audit logger that helps you keep record of events like user login/logout and content types objects life cycle.\nAll events are logged into the standard Zope log and, optionally, to a dedicated audit log file.\n\nOther features included:\n\n- configurable via control panel configlet\n- log entries can be easily visualized by users with permissions to do so\n- support for Cloudflare's ``CF-Connecting-IP`` request header to log real client IP addresses\n- support for automatic log rotation based on audit log file size\n\nMostly Harmless\n===============\n\n.. image:: http://img.shields.io/pypi/v/collective.fingerpointing.svg\n :target: https://pypi.python.org/pypi/collective.fingerpointing\n\n.. image:: https://img.shields.io/travis/collective/collective.fingerpointing/master.svg\n :target: http://travis-ci.org/collective/collective.fingerpointing\n\n.. image:: https://img.shields.io/coveralls/collective/collective.fingerpointing/master.svg\n :target: https://coveralls.io/r/collective/collective.fingerpointing\n\nGot an idea? Found a bug? Let us know by `opening a support ticket`_.\n\n.. _`opening a support ticket`: https://github.com/collective/collective.fingerpointing/issues\n\nKnown Issues\n------------\n\nRunning your site behind a CDN may result in inconsistent IP addresses being logged.\n\nDon't Panic\n===========\n\nInstallation\n------------\n\nTo enable this package in a buildout-based installation:\n\nEdit your buildout.cfg and add the following to it:\n\n.. code-block:: ini\n\n [buildout]\n ...\n eggs =\n collective.fingerpointing\n\nBy default, Finger Pointing logs audit events to the Zope event log only.\nTo enable logging to a separate file use the following configuration:\n\n.. code-block:: ini\n\n [instance]\n zope-conf-additional +=\n \n audit-log ${buildout:directory}/var/log/audit.log\n audit-log-max-size 10240\n audit-log-old-files 30\n \n\naudit-log\n The filename of the audit log. Add file name to create Finger Pointing audit file.\naudit-log-max-size\n Maximum size of audit log file (in bytes). Adding this max size enables log rotation.\naudit-log-old-files\n Number of previous log files to retain when log rotation is enabled. Defaults to 1.\n\nAfter updating the configuration you need to run ''bin/buildout'', which will take care of updating your system.\n\nGo to the 'Site Setup' page in a Plone site and click on the 'Add-ons' link.\n\nCheck the box next to Finger Pointing and click the 'Activate' button.\n\nUsage\n-----\n\nGo to 'Site Setup' and select 'Finger Pointing' and enable the events you want to keep an eye on.\n\n.. figure:: https://raw.githubusercontent.com/collective/collective.fingerpointing/master/docs/controlpanel.png\n :align: center\n :height: 600px\n :width: 768px\n\n The Finger Pointing control panel configlet.\n\nFinger Pointing will start logging the selected events:\n\n.. code-block:: console\n\n # bin/instance fg\n 2016-09-26 15:23:36 INFO ZServer HTTP server started at Mon Sep 26 15:23:36 2016\n Hostname: 0.0.0.0\n Port: 8080\n 2016-09-26 15:23:41 INFO collective.fingerpointing Logging audit information to /home/hvelarde/collective/fingerpointing/var/log/audit.log\n 2016-09-26 15:23:49 INFO Plone OpenID system packages not installed, OpenID support not available\n 2016-09-26 15:23:56 INFO Zope Ready to handle requests\n 2016-09-26 15:24:19 INFO collective.fingerpointing user=admin ip=127.0.0.1 action=logout\n 2016-09-26 15:24:28 INFO collective.fingerpointing user=admin ip=127.0.0.1 action=login\n\nThese events are also logged in `var/log/audit.log`:\n\n.. code-block:: console\n\n 2016-09-26 15:24:19,717 - INFO - user=admin ip=127.0.0.1 action=logout\n 2016-09-26 15:24:28,415 - INFO - user=admin ip=127.0.0.1 action=login\n\nAn audit log view is available in the user menu to users with the `collective.fingerpointing: View Audit Log` permission:\n\n.. figure:: https://raw.githubusercontent.com/collective/collective.fingerpointing/master/docs/audit-log-view.png\n :align: left\n :alt: Finger Pointing\n :height: 480px\n :width: 768px\n\n The Finger Pointing audit log view.\n\nIf you didn't specify a Finger Pointing audit log file name, you'll see a warning.\nHowever, audit events will be normally logged to the Zope event log:\n\n.. code-block:: console\n\n # bin/instance fg\n 2016-09-26 15:58:32 INFO ZServer HTTP server started at Mon Sep 26 15:58:32 2016\n Hostname: 0.0.0.0\n Port: 8080\n 2016-09-26 15:58:35 WARNING collective.fingerpointing No audit log file specified; audit log view will be disabled\n 2016-09-26 15:58:40 INFO Plone OpenID system packages not installed, OpenID support not available\n 2016-09-26 15:58:45 INFO Zope Ready to handle requests\n 2016-09-26 15:58:48 INFO collective.fingerpointing user=admin ip=127.0.0.1 action=logout\n 2016-09-26 15:58:54 INFO collective.fingerpointing user=admin ip=127.0.0.1 action=login\n\nShare and Enjoy\n===============\n\nThis package would not have been possible without the contribution of the following people:\n\n- H\u00e9ctor Velarde\n- Ren\u00e9 Jochum \n- Harald Friessnegger (Webmeisterei GmbH)\n- Jens Klein (jens@bluedynamics.com)\n- Font Awesome (`icon`_)\n\nYou can find an updated list of package contributors on `GitHub`_.\n\n.. _`GitHub`: https://github.com/collective/collective.fingerpointing/contributors\n.. _`icon`: http://fontawesome.io/icon/hand-o-right/\n\nChangelog\n=========\n\n1.8 (2018-10-11)\n----------------\n\n- Avoid ``TypeError`` when View Audit Log (fixes `#91 `_).\n [jianaijun]\n\n- Update Chinese Simplified translation.\n [jianaijun]\n\n\n1.7 (2018-04-23)\n----------------\n\n- Drop support for Plone 5.0.\n [hvelarde]\n\n- Avoid ``ComponentLookupError`` when adding a Plone site (fixes `#85 `_).\n [hvelarde]\n\n- Do not fail while logging uninstall profile information.\n [hvelarde]\n\n- Fix uninstall of control panel configlet under Plone 5.1.\n [hvelarde]\n\n\n1.6 (2018-03-28)\n----------------\n\n- Avoid ``TypeError`` on PAS events (fixes `#78 `_).\n [hvelarde]\n\n\n1.6rc2 (2018-03-22)\n-------------------\n\n- Fix profile version number.\n [hvelarde]\n\n\n1.6rc1 (2018-03-22)\n-------------------\n\n- Update i18n, Brazilian Portuguese and Spanish translations.\n [hvelarde]\n\n- Code clean up and refactor, avoid ``UnicodeEncodeError`` on registry subscriber (refs. `#74 `_).\n [hvelarde]\n\n- Log Generic Setup profile imports; this is useful to audit add-on installs/uninstalls (implements `#32 `_).\n [hvelarde]\n\n- Do label `Size` translatable, completed french translations.\n [gbastien]\n\n\n1.5rc1 (2017-11-24)\n-------------------\n\n- Update i18n, Brazilian Portuguese, German and Spanish translations.\n [hvelarde, jensens]\n\n- Lock-file is now container save and it's close more robust.\n [jensens]\n\n- Refactor logger module in order to improve testability.\n [jensens]\n\n- Add search on audit logs and pagination (implements `#17 `_).\n [jensens]\n\n\n1.4b3 (2017-11-21)\n------------------\n\n- Fix object location for lifecycle logger by subscribing to ``IObjectAddedEvent`` (fixes `#66 `_).\n [jensens]\n\n- Do not fail on startup if plone.app.iterate is not installed (fixes `#64 `_).\n [jensens]\n\n- Reviewed and updated German translations.\n [jensens]\n\n\n1.4b2 (2017-09-20)\n------------------\n\n- Add French translations.\n [gbastien]\n\n\n1.4b1 (2017-06-26)\n------------------\n\n- Fix `AttributeError` when logging activity from anonymous users (fixes `#57 `_).\n [keul]\n\n- Add support for ``HTTP_X_FORWARDED_FOR`` request header to log real client IP addresses.\n [keul]\n\n\n1.3b2 (2017-05-25)\n------------------\n\n- Avoid possible ``ConfigurationConflictError`` on upgrade step registration.\n [hvelarde]\n\n\n1.3b1 (2017-05-25)\n------------------\n\n- Add support for Cloudflare's ``CF-Connecting-IP`` request header to log real client IP addresses.\n [hvelarde]\n\n- We now use plone.api to get the id of the user instead of the ``AUTHENTICATED_USER`` key on the request.\n Also, we now use the ``getClientAddr()`` function to get remote IP address.\n These changes simplify testing.\n\n- Add support for logging workflow transitions.\n [hvelarde]\n\n- Avoid ComponentLookupError when plonectl adduser.\n [jianaijun]\n\n\n1.2b1 (2016-09-28)\n------------------\n\n.. Warning::\n Starting with this version you need to explicitly configure the package to use a separate audit.log file.\n Check the documentation to find out how to do so.\n\n- Make log rotating configurable using the `zope-conf-additional` option.\n Note that now, by default, rotating is disabled.\n [rene, hvelarde]\n\n\n1.1b1 (2016-07-07)\n------------------\n\n- Drop support for Plone 4.2.\n [hvelarde]\n\n- Log deletion of groups too.\n If you are using Plone < 4.3.8 you may need to update versions of `Products.PlonePAS` and `Products.PluggableAuthService`.\n [fRiSi]\n\n\n1.0b4 (2016-07-07)\n------------------\n\n- Avoid UnicodeEncodeError with log messages.\n [jianaijun, rodfersou]\n\n- Support automatic rotation of audit log files at timed intervals;\n a new file is created every day and up to 30 backup files are maintained (closes `#9`_).\n [hvelarde]\n\n- Use object representation to log life cycle events;\n this fixes an issue with Archetypes-based objects being dumped to the log (refs. `#8`_ and fixes `#38`_).\n [hvelarde]\n\n- Package is now compatible with Plone 5.0 and Plone 5.1.\n [hvelarde]\n\n\n1.0b3 (2016-04-19)\n------------------\n\n- Added Chinese Simplified translation. [jianaijun]\n\n- Package no longer rises `AttributeError` when running interactive console (`bin/instance debug`) (fixes `#30`_).\n [hvelarde]\n\n- Clean up audit log messages.\n [hvelarde]\n\n- Disable rendering of left and right columns in audit log view.\n [hvelarde]\n\n- Audit log entries are now shown in reverse order (newer entries first).\n [hvelarde]\n\n\n1.0b2 (2016-03-18)\n------------------\n\n- Log to audit.log even if Zope's `event-log-level` is above INFO (fixes `#25`_).\n [fRiSi]\n\n- Add German translations.\n [fRiSi]\n\n- Fix output of the audit log view.\n [pcdummy, hvelarde]\n\n- Add Brazilian Portuguese and Spanish translations.\n [hvelarde]\n\n- The \"View Audit log\" action appears now before the \"Log out\" one (fixes `#18`_).\n [pcdummy, hvelarde]\n\n- Use main_template for the audit log view.\n [pcdummy]\n\n- Avoid `TypeError` while running third party tests (fixes `#2`_).\n [hvelarde]\n\n\n1.0b1 (2016-03-09)\n------------------\n\n- Add a view for the audit.log file `@@fingerpointing-audit-log` and link it to portal_actions.\n [pcdummy, hvelarde]\n\n- Make control panel configlet accesible to Site Administrator role (closes `#15`_).\n [hvelarde]\n\n- Avoid ``ComponentLookupError`` when removing a Plone site (fixes `#4`_).\n [hvelarde]\n\n- Remove unused plone.directives.form dependency which pulled in Grok packages.\n [vangheem]\n\n- Audit information is now logged into a file named `audit.log` instead of inside the standard `event.log`.\n [pcdummy]\n\n- Package is now compatible with Plone 5.\n [hvelarde]\n\n- Ignore errors caused by subscribers trying to access nonexistent registry records when package is still not installed (fixes `#1`_).\n [hvelarde]\n\n\n1.0a1 (2015-06-08)\n------------------\n\n- Initial release.\n\n.. _`#1`: https://github.com/collective/collective.fingerpointing/issues/1\n.. _`#2`: https://github.com/collective/collective.fingerpointing/issues/2\n.. _`#4`: https://github.com/collective/collective.fingerpointing/issues/4\n.. _`#8`: https://github.com/collective/collective.fingerpointing/issues/8\n.. _`#9`: https://github.com/collective/collective.fingerpointing/issues/9\n.. _`#15`: https://github.com/collective/collective.fingerpointing/issues/15\n.. _`#18`: https://github.com/collective/collective.fingerpointing/issues/18\n.. _`#25`: https://github.com/collective/collective.fingerpointing/issues/25\n.. _`#30`: https://github.com/collective/collective.fingerpointing/issues/30\n.. _`#38`: https://github.com/collective/collective.fingerpointing/issues/38\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/collective/collective.fingerpointing", "keywords": "plone events subscribers log audit security", "license": "", "maintainer": "", "maintainer_email": "", "name": "collective.fingerpointing", "package_url": "https://pypi.org/project/collective.fingerpointing/", "platform": "", "project_url": "https://pypi.org/project/collective.fingerpointing/", "project_urls": { "Homepage": "https://github.com/collective/collective.fingerpointing" }, "release_url": "https://pypi.org/project/collective.fingerpointing/1.8/", "requires_dist": [ "file-read-backwards", "plone.api (>=1.5.1)", "plone.app.registry", "plone.registry", "Products.CMFCore", "Products.CMFPlone (>=4.3)", "Products.GenericSetup", "Products.PlonePAS (>=5.0.9)", "Products.PluggableAuthService (>=1.11.0)", "setuptools", "six", "zc.lockfile (>=1.2.1)", "zope.component", "zope.globalrequest", "zope.i18nmessageid", "zope.interface", "zope.lifecycleevent", "zope.schema", "AccessControl; extra == 'test'", "plone.app.dexterity; extra == 'test'", "plone.app.iterate; extra == 'test'", "plone.app.robotframework; extra == 'test'", "plone.app.testing[robot]; extra == 'test'", "plone.browserlayer; extra == 'test'", "plone.testing; extra == 'test'", "robotsuite; extra == 'test'", "testfixtures; extra == 'test'", "zope.component; extra == 'test'", "zope.event; extra == 'test'" ], "requires_python": "", "summary": "Keep track of different events and write them down to an audit log.", "version": "1.8" }, "last_serial": 4365900, "releases": { "1.0a1": [ { "comment_text": "", "digests": { "md5": "28d86611295241673fa875c68560cfdc", "sha256": "3cde144f00986edc2cd0a1e9a28e47838b2a2a5c7b8dfef4eb27de1fd0d09c38" }, "downloads": -1, "filename": "collective.fingerpointing-1.0a1.tar.gz", "has_sig": false, "md5_digest": "28d86611295241673fa875c68560cfdc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 91811, "upload_time": "2015-06-08T15:11:15", "url": "https://files.pythonhosted.org/packages/af/22/8776b2647a16702e064f241177daf1d4f00a81369ae6bd6c55d216ab313e/collective.fingerpointing-1.0a1.tar.gz" } ], "1.0b1": [ { "comment_text": "", "digests": { "md5": "e4112944d3928bde79068d0b9d2cc8eb", "sha256": "5779ec0887d4da0b0d8b28f32be2a7f37e5ffffe0c64b98c96a12ba11e97e4a4" }, "downloads": -1, "filename": "collective.fingerpointing-1.0b1.zip", "has_sig": false, "md5_digest": "e4112944d3928bde79068d0b9d2cc8eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 166801, "upload_time": "2016-03-09T16:09:54", "url": "https://files.pythonhosted.org/packages/c1/dd/88ba2f483801222ab0d855f5338bbb7e950fd3282c84ad3eb229d64224e5/collective.fingerpointing-1.0b1.zip" } ], "1.0b2": [ { "comment_text": "", "digests": { "md5": "3460842510429f9559c65b44b4f91c0f", "sha256": "bbdfbe883233d135c366bdf55ef4d23d91bc56ff7fdc0082cbffd46b32eb99b1" }, "downloads": -1, "filename": "collective.fingerpointing-1.0b2.tar.gz", "has_sig": false, "md5_digest": "3460842510429f9559c65b44b4f91c0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69826, "upload_time": "2016-03-18T14:14:09", "url": "https://files.pythonhosted.org/packages/e2/72/a16d07231baf199a93de74ad169035284cdd80bd1d4941f987e95a3e5920/collective.fingerpointing-1.0b2.tar.gz" } ], "1.0b3": [ { "comment_text": "", "digests": { "md5": "3cec497ecfff53d41fe18d3b3ad5beaf", "sha256": "453f3234e4ff302f5721374328e81a62ec4d764dff2cd2939b77d58a41949fed" }, "downloads": -1, "filename": "collective.fingerpointing-1.0b3.tar.gz", "has_sig": false, "md5_digest": "3cec497ecfff53d41fe18d3b3ad5beaf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 71094, "upload_time": "2016-04-19T13:25:05", "url": "https://files.pythonhosted.org/packages/e6/68/9425b7fdfa4227dda409677d5d1e07ca7cded5e9116b3382aa08937d88bf/collective.fingerpointing-1.0b3.tar.gz" } ], "1.0b4": [ { "comment_text": "", "digests": { "md5": "7e536552ea2d0eab20b4427b1204f187", "sha256": "0ddf2860d163af0a7ed83ff88775055419076f2d75d26cdbb6bb5fb37bc49c65" }, "downloads": -1, "filename": "collective.fingerpointing-1.0b4.tar.gz", "has_sig": false, "md5_digest": "7e536552ea2d0eab20b4427b1204f187", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72521, "upload_time": "2016-07-07T16:39:26", "url": "https://files.pythonhosted.org/packages/d9/dc/bf3ad91e18cf3b773b4700c2ebe03607a15ca7fcf6d8c5a9f4634b256c4e/collective.fingerpointing-1.0b4.tar.gz" } ], "1.1b1": [ { "comment_text": "", "digests": { "md5": "0f7e95d877927585d0c2e27d17813657", "sha256": "8d6d1b2069844fdb19db183dc11dd94de4cce2599de3bae4f80ae6228c2b4829" }, "downloads": -1, "filename": "collective.fingerpointing-1.1b1.tar.gz", "has_sig": false, "md5_digest": "0f7e95d877927585d0c2e27d17813657", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72879, "upload_time": "2016-07-07T17:16:59", "url": "https://files.pythonhosted.org/packages/ef/77/2f147c4b82276e33ba0f5613f3c8696499b91643e21437bfaedd5a43f456/collective.fingerpointing-1.1b1.tar.gz" } ], "1.2b1": [ { "comment_text": "", "digests": { "md5": "8b8b3e8f76627076f1b321ee3089f3f2", "sha256": "9674a2aafe4df4d0b7c3fe8ebc0ce377edd32ccad4f5948440ed38506cc514b3" }, "downloads": -1, "filename": "collective.fingerpointing-1.2b1-py2-none-any.whl", "has_sig": false, "md5_digest": "8b8b3e8f76627076f1b321ee3089f3f2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 46904, "upload_time": "2016-09-28T17:52:06", "url": "https://files.pythonhosted.org/packages/8a/a1/8f5b86fb4a9969bd08b1bdc916dafe0e54c83d569f4964caef0ec7471e4c/collective.fingerpointing-1.2b1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ff0c033f618fa53b6c1aa4400bebc0b7", "sha256": "99f00ffb3441a778bca27bf09a991fef418b19c9ad747199ee97af17871c0efd" }, "downloads": -1, "filename": "collective.fingerpointing-1.2b1.tar.gz", "has_sig": false, "md5_digest": "ff0c033f618fa53b6c1aa4400bebc0b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74234, "upload_time": "2016-09-28T17:52:09", "url": "https://files.pythonhosted.org/packages/44/28/4c796e17145bc8c573c75f6c3e9618ad6bedf9c5822b9ee82dd877d82fd8/collective.fingerpointing-1.2b1.tar.gz" } ], "1.3b1": [ { "comment_text": "", "digests": { "md5": "d6d4fbb3c17b3cd673dad53bbe4e5975", "sha256": "9f412eb1e8b39117694fb1860c661749f3192d46cc69d069714f6e6b19498c52" }, "downloads": -1, "filename": "collective.fingerpointing-1.3b1.tar.gz", "has_sig": false, "md5_digest": "d6d4fbb3c17b3cd673dad53bbe4e5975", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72478, "upload_time": "2017-05-25T18:20:15", "url": "https://files.pythonhosted.org/packages/f2/8c/4cdbd582ca3aca1c7b5fcf646b366909175839abb3f66a25eb119a6b1ca7/collective.fingerpointing-1.3b1.tar.gz" } ], "1.3b2": [ { "comment_text": "", "digests": { "md5": "6c6167b24d161a81c9baf7e735df14b1", "sha256": "222f0f8ce768ac336f6a4060083135814d74ae2503cd45f4260a05fdf3401282" }, "downloads": -1, "filename": "collective.fingerpointing-1.3b2.tar.gz", "has_sig": false, "md5_digest": "6c6167b24d161a81c9baf7e735df14b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72539, "upload_time": "2017-05-25T19:15:59", "url": "https://files.pythonhosted.org/packages/a1/67/0812827784856b5377e8637b60f3669595a99be98a12d84dd3bcb40dc961/collective.fingerpointing-1.3b2.tar.gz" } ], "1.4b1": [ { "comment_text": "", "digests": { "md5": "7421c3a9775c18895a66fb5aa153f59a", "sha256": "c35a36cbb6656322a8321e82e54da5a8dd338d2ca61eeb1a60fcf991fcc30c80" }, "downloads": -1, "filename": "collective.fingerpointing-1.4b1.tar.gz", "has_sig": false, "md5_digest": "7421c3a9775c18895a66fb5aa153f59a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72690, "upload_time": "2017-06-26T21:10:09", "url": "https://files.pythonhosted.org/packages/9d/0f/a7113f2d39e1a49ad8c30aa4a67ba123213cdf52f959440d94b6807cedba/collective.fingerpointing-1.4b1.tar.gz" } ], "1.4b2": [ { "comment_text": "", "digests": { "md5": "20e20bfca11b6e28b92601ce805a9939", "sha256": "1461beea9394eb9a1ea76d104d85369380df53f8eeead8cedc108835bbe938c5" }, "downloads": -1, "filename": "collective.fingerpointing-1.4b2.tar.gz", "has_sig": false, "md5_digest": "20e20bfca11b6e28b92601ce805a9939", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73405, "upload_time": "2017-09-20T12:21:32", "url": "https://files.pythonhosted.org/packages/22/d0/fcc786cab76f613f4e1b4462f8f198da8baf045ed9915305bec9aac778fa/collective.fingerpointing-1.4b2.tar.gz" } ], "1.4b3": [ { "comment_text": "", "digests": { "md5": "5002d16a009a480ee33c71a15ded48bb", "sha256": "1b62d5f076c9b2978c33323a6b45cd73b6448f6ae173ba73c74714e4c6961773" }, "downloads": -1, "filename": "collective.fingerpointing-1.4b3.tar.gz", "has_sig": false, "md5_digest": "5002d16a009a480ee33c71a15ded48bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73899, "upload_time": "2017-11-21T14:00:25", "url": "https://files.pythonhosted.org/packages/7e/8c/d50747d649c284914c88db62f2b5ef422452de612acca3a246d819b86855/collective.fingerpointing-1.4b3.tar.gz" } ], "1.5rc1": [ { "comment_text": "", "digests": { "md5": "baa2a92a09a527b06520fdce170c8e9b", "sha256": "b8599608145b858443fc544bed13b20be37dd4bb65d6b8a29ea1f174ac4d84cb" }, "downloads": -1, "filename": "collective.fingerpointing-1.5rc1.tar.gz", "has_sig": false, "md5_digest": "baa2a92a09a527b06520fdce170c8e9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76201, "upload_time": "2017-11-24T13:04:09", "url": "https://files.pythonhosted.org/packages/32/c2/bf246c682b37ae926c92a700f9c0ddf51d07e4ae888ab57eda90100f94ca/collective.fingerpointing-1.5rc1.tar.gz" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "06d7a041553a7d9938e2c76c4e970668", "sha256": "1918ed78b782970334ee5800ef5165fd5a948260a08ce2aee6bba206714703ea" }, "downloads": -1, "filename": "collective.fingerpointing-1.6-py2-none-any.whl", "has_sig": false, "md5_digest": "06d7a041553a7d9938e2c76c4e970668", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 61286, "upload_time": "2018-03-28T22:45:53", "url": "https://files.pythonhosted.org/packages/64/a4/0b843905e7870a335154687b9113679fd7fc9544ba3cbc15b80dba719485/collective.fingerpointing-1.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6342584692933a13c5ac12bc2874abd3", "sha256": "e587efcaca473e58075ac0782714e52f01e5e22d7c3c99aa2123963af1ccfbc0" }, "downloads": -1, "filename": "collective.fingerpointing-1.6.tar.gz", "has_sig": false, "md5_digest": "6342584692933a13c5ac12bc2874abd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77688, "upload_time": "2018-03-28T22:45:55", "url": "https://files.pythonhosted.org/packages/c2/c8/5e6ead5ba626369e4c48ceb4fb4545228527f8cfed854540e769a49330d0/collective.fingerpointing-1.6.tar.gz" } ], "1.6rc1": [ { "comment_text": "", "digests": { "md5": "402e0637a10ca706f80c1f64b781fce8", "sha256": "811e35519652864080894bee1e7020920d1da88096f5d2cb39ee79326793ca17" }, "downloads": -1, "filename": "collective.fingerpointing-1.6rc1-py2-none-any.whl", "has_sig": false, "md5_digest": "402e0637a10ca706f80c1f64b781fce8", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 61204, "upload_time": "2018-03-22T13:55:14", "url": "https://files.pythonhosted.org/packages/3f/97/a64d8433c8198ed1ed3e79bebf610f5ea6685b583aa8bc99d904749ec81d/collective.fingerpointing-1.6rc1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8d7c8bcf60c0c6d3809742142102e4e4", "sha256": "62358c0d8477756a045380747f20b7c96262a0094700489f24716a2bca318890" }, "downloads": -1, "filename": "collective.fingerpointing-1.6rc1.tar.gz", "has_sig": false, "md5_digest": "8d7c8bcf60c0c6d3809742142102e4e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77672, "upload_time": "2018-03-22T13:55:17", "url": "https://files.pythonhosted.org/packages/b4/9d/a8fa1721cac4756e18fc4264224d7ce9e3fc08a87a07bdbbf285a7c3931a/collective.fingerpointing-1.6rc1.tar.gz" } ], "1.6rc2": [ { "comment_text": "", "digests": { "md5": "c6cb7eabf9a2054f75cbd13c58eeffb4", "sha256": "1634958c129295290471b6f0d2e04747f6dbbfe6f542096734c51447d147fedf" }, "downloads": -1, "filename": "collective.fingerpointing-1.6rc2-py2-none-any.whl", "has_sig": false, "md5_digest": "c6cb7eabf9a2054f75cbd13c58eeffb4", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 61241, "upload_time": "2018-03-22T15:38:15", "url": "https://files.pythonhosted.org/packages/b9/1f/6d1d0a00cbe5501256cf1f4a49d340c7858a9fd2ec727bc82ef44e2864d1/collective.fingerpointing-1.6rc2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f8c4772baba493e428f0b4b9f6ec1a6f", "sha256": "21fb427900b3468b0c51753428e524138d81b715c202fdecc2ff751d6c536577" }, "downloads": -1, "filename": "collective.fingerpointing-1.6rc2.tar.gz", "has_sig": false, "md5_digest": "f8c4772baba493e428f0b4b9f6ec1a6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77667, "upload_time": "2018-03-22T15:38:18", "url": "https://files.pythonhosted.org/packages/e2/5b/cc0ce9dd890d84c4d2fe6c09f9cb7dca9eaebb7faa73e3bff420d2e1515a/collective.fingerpointing-1.6rc2.tar.gz" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "7372cb65cd18fdc7c48c3db283280216", "sha256": "a096957768d5efd777428960b04024ba675fe65530574e4ceb547b895be0ef5c" }, "downloads": -1, "filename": "collective.fingerpointing-1.7-py2-none-any.whl", "has_sig": false, "md5_digest": "7372cb65cd18fdc7c48c3db283280216", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 62146, "upload_time": "2018-04-23T22:34:39", "url": "https://files.pythonhosted.org/packages/01/d3/eadcd2ed9b22ce8a425b1edd14a8bc5e70104db617837dc639732c0d7126/collective.fingerpointing-1.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "44739f73c62f1a23f96ddef8a1b0257b", "sha256": "e45dac11b51b815173d3d5fca7b0c32a10a390ecb1496eadb868b6a7ede07d6d" }, "downloads": -1, "filename": "collective.fingerpointing-1.7.tar.gz", "has_sig": false, "md5_digest": "44739f73c62f1a23f96ddef8a1b0257b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 78309, "upload_time": "2018-04-23T22:34:41", "url": "https://files.pythonhosted.org/packages/6a/16/d294005d63a57faea78e7474aa02dc4878c9ea7c552de7f6287982813984/collective.fingerpointing-1.7.tar.gz" } ], "1.8": [ { "comment_text": "", "digests": { "md5": "1a2818e0c58129be7251d21fd1c92e0b", "sha256": "7b0625e7e8f566985d83a6a252097ee0101c7305f3531c0b8c457b314406bada" }, "downloads": -1, "filename": "collective.fingerpointing-1.8-py2-none-any.whl", "has_sig": false, "md5_digest": "1a2818e0c58129be7251d21fd1c92e0b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 62452, "upload_time": "2018-10-11T20:44:47", "url": "https://files.pythonhosted.org/packages/25/b9/542863602954bbe041293c75be5f85a6bc76ef695bffb06720fd8d027448/collective.fingerpointing-1.8-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4137f047ff291c309a6088b8f92d4049", "sha256": "19c4007e9dc17e6b08447a405b58d05194cdcff5d26ef5b0a44b4017a28e6f45" }, "downloads": -1, "filename": "collective.fingerpointing-1.8.tar.gz", "has_sig": false, "md5_digest": "4137f047ff291c309a6088b8f92d4049", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 78756, "upload_time": "2018-10-11T20:44:49", "url": "https://files.pythonhosted.org/packages/e2/9d/26a30381bec108b8b01f1a2441ca3f1477c069ec2bae150ff19359e0816e/collective.fingerpointing-1.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1a2818e0c58129be7251d21fd1c92e0b", "sha256": "7b0625e7e8f566985d83a6a252097ee0101c7305f3531c0b8c457b314406bada" }, "downloads": -1, "filename": "collective.fingerpointing-1.8-py2-none-any.whl", "has_sig": false, "md5_digest": "1a2818e0c58129be7251d21fd1c92e0b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 62452, "upload_time": "2018-10-11T20:44:47", "url": "https://files.pythonhosted.org/packages/25/b9/542863602954bbe041293c75be5f85a6bc76ef695bffb06720fd8d027448/collective.fingerpointing-1.8-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4137f047ff291c309a6088b8f92d4049", "sha256": "19c4007e9dc17e6b08447a405b58d05194cdcff5d26ef5b0a44b4017a28e6f45" }, "downloads": -1, "filename": "collective.fingerpointing-1.8.tar.gz", "has_sig": false, "md5_digest": "4137f047ff291c309a6088b8f92d4049", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 78756, "upload_time": "2018-10-11T20:44:49", "url": "https://files.pythonhosted.org/packages/e2/9d/26a30381bec108b8b01f1a2441ca3f1477c069ec2bae150ff19359e0816e/collective.fingerpointing-1.8.tar.gz" } ] }