{ "info": { "author": "Daniel Nouri, Thomas Clement Mogensen and contributors", "author_email": "singing-dancing@googlegroups.com", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Framework :: Plone :: 3.2", "Framework :: Plone :: 3.3", "Framework :: Plone :: 4.0", "Framework :: Plone :: 4.1", "Framework :: Zope2", "Framework :: Zope3", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "==================\ncollective.singing\n==================\n\nAbstract\n========\n\nSinging is a Zope 3 library for sending notifications and newsletters.\n\nYou can find the development version of collective.singing in the\n`GitHub repository\n`_.\n\nHistory\n=======\n\n0.7.6 (2019-10-22)\n------------------\n\n- support removing subscriptions that changed their email-address [fRiSi]\n\n\n0.7.5 (2017-03-03)\n------------------\n\n- make channel description an optional field so users can leave it empty\n if no description is needed\n [fRiSi]\n\n- Update README file to use github repo instead of svn.\n [ivanteoh]\n\n\n0.7.4 (2015-11-03)\n------------------\n\n- zc.queue should be less than 2.0.0a1 to not pull in ZODB4 and friends.\n [ale-rt]\n\n- fix TypeError on __cmp__ in AbstractPeriodicScheduler class.\n [ivanteoh]\n\n\n0.7.3 (2015-08-31)\n------------------\n\n- Made the last_trigger for the timed scheduler only record when there are newsletters sent.\n [arterrey]\n\n- Scheduler filter to send only to a channel option.\n [arterrey]\n\n- Cleanup flake8, changelog.\n [WouterVH]\n\n\n0.7.2 (2015-01-05)\n------------------\n\n- Add ``MANIFEST.in``.\n [WouterVH]\n\n- Added z3c.autoinclude-entrypoint to mark this as a Plone-plugin. This avoids\n the need to explicitly load the zcml-slug.\n [WouterVH]\n\n- Fixed ImportErrors when zope.app.intid is not available but only\n zope.intid.\n [maurits]\n\n- Added empty English translation, needed in corner cases with sites\n that support multiple languages.\n [maurits]\n\n- Added Italian translations.\n Refs https://bugs.launchpad.net/singing-dancing/+bug/466764\n [andrea-cecchi85]\n\n- Add IJob interface and let Job implements it.\n [toutpt]\n\n- Fix for plone 4.3\n [kiorky].\n\n\n0.7.1 (2010-12-03)\n------------------\n\n- Added ``keep_sent_messages`` flag on channels which, if set to\n ``False`` (the default), suppresses the behavior which would\n otherwise put sent messages into a persistent queue.\n\n If sent messages are dropped (as per this flag), an entry is instead\n written to the log to keep a minimal record of events.\n [malthe]\n\n\n0.7.0 (2010-11-04)\n-------------------\n\n- Moved z3c widget template registration for radio buttons and checkboxes\n from ``browser/configure.zcml`` into ``widgets.zcml`` because every version\n of z3c.form after 2.3.3 includes these template registrations and double\n registration raises ConfigurationConflictError. [saily]\n\n\n0.6.15 (2010-08-01)\n-------------------\n\n- import zope.app.container.interfaces; this helps for Plone 4\n compatibility.\n [maurits]\n\n- strange issue with equality of scheduler objects adressed.\n This seems to only be an issue in python 2.6.\n This should probably be released soon since it fixes a lot\n of bugs in the ForPloneFour branch of dancing.\n [tmog]\n\n- Norwegian translation. [regebro]\n\n\n0.6.14 (2010-04-07)\n-------------------\n\n- Update Dutch translation.\n [maurits]\n\n- Update French translation\n [toutpt]\n\n\n0.6.13 (2009-10-19)\n-------------------\n\n- API change! Added boolean \"subscribeable\" to IChannel.\n [tmog]\n\n- Added Brazilian translation\n [lucmult]\n\n\n0.6.12 (2009-06-11)\n-------------------\n\n- Optimization for clearing a MessageQueue. We now simple create a fresh\n queue instead of pull()'ing all items (pulling is quite expensive with\n CompositeQueue).\n [tmog]\n\n- Subscription creation date is now used as que when the subscription has\n no real cue. I.e. the first time a new subscription is used.\n I was amazed to find this was not already the case.\n [tmog]\n\n- Triggering a periodic scheduler that has a delta now always updates\n trickered_last by a product of that delta. This means the periodic\n schedulers now no longer suffer from the time \"drift\" that resulted\n from always saving the precise triggering time to their triggered_last\n attribute.\n [tmog]\n\n- Added caching of item formatting via plone.memoize.request.\n This really(!) speeds up message generation, especially when\n sending 'full' items from 'send as newsletter'.\n [tmog]\n\n\n0.6.11 (2009-03-11)\n-------------------\n\n- Added optional keyword argument 'override_vars' to IComposer.render and\n MessageAssemble.__call__ methods. This is to facilitate overriding of\n composer_vars. For example from the sendnewsletter.html form in\n collective.dancing. Send-outs stored in TimedScheduler will now\n also include 'override_vars'.\n [tmog]\n\n- Removed version pinning of zope.app.catalog to <= 3.6.0. This is\n handled through our external extends file now. See\n https://svn.plone.org/svn/collective/collective.dancing/buildout-extends/0.8.7.cfg\n and http://pypi.python.org/pypi/collective.dancing#installation\n [nouri]\n\n\n0.6.10 (2009-02-01)\n-------------------\n\n- Changed eventhandlers for subscriptions indexing to look for\n the Subscriptions object in 'channel._subscriptions' first.\n This allows for a property decorated 'subscriptions' function\n that keeps data in '_subscriptions'.\n [tmog]\n\n\n0.6.9 (2009-01-20)\n------------------\n\n- Pinned zope.app.catalog version to pre 3.6.0 to avoid issue in\n https://bugs.launchpad.net/singing-dancing/+bug/301082\n [tmog]\n\n\n0.6.8 (2009-01-02)\n------------------\n\n- MessageQueues are now collective.singing.queue.CompositeQueue - an\n optimized version of zc.queue.CompositeQueue. This offers a _much_\n faster __len__ and faster access to last queue element.\n Tests are stolen from zc.queue with added length checking everywhere.\n This maybe belongs directly in zc.queue, but adding stuff in zc namespace\n is not for me. ;-)\n [tmog]\n\n\n0.6.7 (2008-12-03)\n------------------\n\n- Part of Czech translation.\n [naro]\n\n- Some refactoring in order to allow for more customized subscription forms.\n [nouri]\n\n- Added french translation.\n\n\n0.6.6 (2008-11-13)\n------------------\n\n- Add the subscriber languages to subscription metadata at\n subscription time. [nouri]\n\n\n0.6.5 (2008-11-05)\n------------------\n\n- Used ``i18ndude`` to find all untranslated msgid's. Some line-numbers were\n corrected, but nothing changed in ``collective.singing``. There were some\n updates in collective.dancing, so all guy's please help updating\n collective.dancing's po files. [saily]\n\n- Add ``async`` module that allows to queue jobs for asynchronous\n execution. Creating this was necessary because ``zc.async`` is not\n available for all Zope versions that ``collective.dancing`` aims to\n work with. :-( [nouri]\n\n- Allow for more finer grained control of cue in\n ``IMessageAssemble.render_message``. This allows a preview function\n to request the cue to be used but not to be set when rendering a\n preview. [nouri]\n\n\n0.6.4 (2008-10-29)\n------------------\n\n- Added optional checking for channel attr 'sendable' to\n channel_lookup. Sending of a content item from the\n sendnewsletter view in dancing uses this feature, to be able\n to supress some channels. Also added vocabularies that contain\n only sendable or only subscribeable channels.\n [tmog]\n\n- Relabelled buttons on the stats page to use the term 'clear' rather\n than 'flush'. Also renamed related handlers and method. [russf]\n\n\n0.6.3 (2008-09-11)\n------------------\n\n- Register the SubscriptionSearchableText adapter so that the fulltext\n index is actually populated. [nouri]\n\n\n0.6.2 (2008-09-03)\n------------------\n\n- Add 'headers' argument to ``mail.create_html_mail`` to allow the\n injection of more e-mail headers. [nouri]\n\n\n0.6.1 (2008-08-28)\n------------------\n\n- Add zope.sendmail as a dependency so that we get the latest and\n greates release. [nouri]\n\n- IMailDelivery expects ``toaddrs`` to be a list of addresses. [nouri]\n\n- Use DumbWriters word wrapping to ensure that no text line\n is longer than plain_text_maxcols characters. [saily]\n\n- Using HTMLParser.anchorlist to append all links found in\n a message at the bottom of the text/plain message. [saily]\n\n\n0.6.0 (2008-08-21)\n------------------\n\n- Moved 'singing.scheduler.assemble_messages' and 'render_message'\n into their own IMessageAssemble adapter (on channel). This allows\n for easier hooking into these policy-riddled functions to make them\n work differently for different types of channels. Also, added a\n small flag that allows to ignore the subscriber's 'cue' completely.\n [nouri]\n\n\n0.5.0 (2008-07-29)\n------------------\n\n- Start depending on plone.z3cform>=0.3dev\n [nouri]\n\n\n0.4 (2008-07-23)\n----------------\n\n- Added optional checking for channel attr 'subscribeable' to\n channel_lookup. Subscription validaton and the subscribe portlet use\n this feature.\n [tmog]\n\n- Bringing versioning in line with\n http://peak.telecommunity.com/DevCenter/setuptools\n [stonor]\n\n- Added full_schema used on the edit page for Filtered Collectors. Now\n we can re-edit these ;-)\n [tmog]\n\n- Make call of MessageQueues.flush() more flexible to get a handy\n method to flush also new messages. this doesnt change any current\n behaviour.\n [jensens]\n\n- Added Polish translation by Barbara Struk\n [naro]\n\n\n0.3 (2008-06-03)\n----------------\n\n- Use zc.lockfile instead of the excessive use of transaction.commit()\n to lock the queue processing.\n [nouri]\n\n- Use email.Header module for message header formatting\n Refactored mail.py to create messages MIMEMultipart based\n [naro]\n\n- added Czech translation\n [naro]\n\n0.2 (2008-05-06)\n----------------\n\n- Commit after pulling a message from the queue.\n [nouri]\n\n- ITransform is now an adapter on the content being transformed\n instead of a utility. This allows us to use the content's URL\n when rewriting links.\n [tmog]\n\n- updated pot and danish translation.\n [bartholdy]\n\n- Add button to subscribe form to \"Send my subscription details\",\n for when subscribers forgot their secret.\n [nouri]\n\n- Cleaned up a bit in a few templates. Needed to structure\n view/Desvription in wizard. Got rid of annoying label filters in\n wizard-step.\n [bartholdy]", "description_content_type": "", "docs_url": "https://pythonhosted.org/collective.singing/", "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/collective.singing", "keywords": "zope plone notification newsletter", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "collective.singing", "package_url": "https://pypi.org/project/collective.singing/", "platform": "", "project_url": "https://pypi.org/project/collective.singing/", "project_urls": { "Homepage": "http://pypi.python.org/pypi/collective.singing" }, "release_url": "https://pypi.org/project/collective.singing/0.7.6/", "requires_dist": null, "requires_python": "", "summary": "A Zope 3 library for sending notifications and newsletters", "version": "0.7.6", "yanked": false, "yanked_reason": null }, "last_serial": 6012938, "releases": { "0.1dev-r62028": [ { "comment_text": "", "digests": { "md5": "377b66cfa864ad094faa6478c0ffb7ba", "sha256": "eec5b181b77a497810fc82a2ffe7877c67b7a2955317827a73961c6b75f6f65d" }, "downloads": -1, "filename": "collective.singing-0.1dev-r62028.tar.gz", "has_sig": false, "md5_digest": "377b66cfa864ad094faa6478c0ffb7ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37186, "upload_time": "2008-04-04T00:25:28", "upload_time_iso_8601": "2008-04-04T00:25:28Z", "url": "https://files.pythonhosted.org/packages/38/13/cc73d928733aa6c285a3a49e16cc560d68fd36b908085b8a856b9eb5fe14/collective.singing-0.1dev-r62028.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2": [ { "comment_text": "", "digests": { "md5": "759156e292839e1cc45b4f288db05ff0", "sha256": "eef0400b6d5d2f8ed2b9af5d5fcf8476b4ba3624337dd056c5db57b8534e4f54" }, "downloads": -1, "filename": "collective.singing-0.2.tar.gz", "has_sig": false, "md5_digest": "759156e292839e1cc45b4f288db05ff0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39827, "upload_time": "2008-05-06T11:00:35", "upload_time_iso_8601": "2008-05-06T11:00:35Z", "url": "https://files.pythonhosted.org/packages/97/8d/73b183fe8e2978738968605675d01ade59665f6088d675bfb789e4181669/collective.singing-0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2b1": [ { "comment_text": "", "digests": { "md5": "8cc8a70c9906e3b7792fa9f6f2a3ff16", "sha256": "a3ea4bbedf6065e78921e04cd4690ca58f1d3127132cb439f73a6893b637f132" }, "downloads": -1, "filename": "collective.singing-0.2b1.tar.gz", "has_sig": false, "md5_digest": "8cc8a70c9906e3b7792fa9f6f2a3ff16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43172, "upload_time": "2008-04-15T14:00:55", "upload_time_iso_8601": "2008-04-15T14:00:55Z", "url": "https://files.pythonhosted.org/packages/65/d8/75e31e542cb40fcf9401258858e95e115fa5dafc44da8457b0410edbb127/collective.singing-0.2b1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2b2": [ { "comment_text": "", "digests": { "md5": "6a1bc3516899bc8c73a55dfc98a9698c", "sha256": "54ac1d1b626301b69c39c6a9cf43209a44e520e3525f9f48e1574f4c30bb22fa" }, "downloads": -1, "filename": "collective.singing-0.2b2.tar.gz", "has_sig": false, "md5_digest": "6a1bc3516899bc8c73a55dfc98a9698c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43254, "upload_time": "2008-04-16T16:28:20", "upload_time_iso_8601": "2008-04-16T16:28:20Z", "url": "https://files.pythonhosted.org/packages/68/ef/3186f43989c5fc0b61a9a4dcf4be8ae96005999e5d5ee3fcbce3718c62c7/collective.singing-0.2b2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2b3": [ { "comment_text": "", "digests": { "md5": "363dfdd5ba7cbd5586b819bc6880418f", "sha256": "40c5bc9dea6ce0fad4308e6611e13da13f63468db57bc12144a7192bf08c4c6b" }, "downloads": -1, "filename": "collective.singing-0.2b3.tar.gz", "has_sig": false, "md5_digest": "363dfdd5ba7cbd5586b819bc6880418f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46145, "upload_time": "2008-04-18T09:44:01", "upload_time_iso_8601": "2008-04-18T09:44:01Z", "url": "https://files.pythonhosted.org/packages/19/70/550f4bba3050a8cddce0f4be54690fa84ebc2daaa12b084eb991041d4251/collective.singing-0.2b3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2b4": [ { "comment_text": "", "digests": { "md5": "c3e462b5679f29a98bdc3027b6c28fa8", "sha256": "7e5b5ce9b6e54c59ebdd3e90a7001c8ac0feaa19c1281a645149a8b89928edf9" }, "downloads": -1, "filename": "collective.singing-0.2b4.tar.gz", "has_sig": false, "md5_digest": "c3e462b5679f29a98bdc3027b6c28fa8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38265, "upload_time": "2008-04-22T11:51:03", "upload_time_iso_8601": "2008-04-22T11:51:03Z", "url": "https://files.pythonhosted.org/packages/bd/9f/96b6e63171094ba89d4c6734345774fe270964b97ebada1c511f209ce246/collective.singing-0.2b4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3": [ { "comment_text": "", "digests": { "md5": "e74a38b71a6fc5a8fec74198f102a65d", "sha256": "1186f699f41f671bac5de4d301068d1657293422a4f0b0aa41f970487c44b20e" }, "downloads": -1, "filename": "collective.singing-0.3.tar.gz", "has_sig": false, "md5_digest": "e74a38b71a6fc5a8fec74198f102a65d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41809, "upload_time": "2008-06-03T08:34:33", "upload_time_iso_8601": "2008-06-03T08:34:33Z", "url": "https://files.pythonhosted.org/packages/a5/99/f73ce3e66652176f56ddde25950988bca81e1e05989aa49b4edab1737896/collective.singing-0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3b1": [ { "comment_text": "", "digests": { "md5": "6d3aa47f9f3fa99b557416f2b603e924", "sha256": "8779ee2946b730815ad26479d2e64566d6986d6d70e1fa632345886f8f32e602" }, "downloads": -1, "filename": "collective.singing-0.3b1.tar.gz", "has_sig": false, "md5_digest": "6d3aa47f9f3fa99b557416f2b603e924", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40835, "upload_time": "2008-05-21T13:26:17", "upload_time_iso_8601": "2008-05-21T13:26:17Z", "url": "https://files.pythonhosted.org/packages/da/04/7a5ec1ca42403440c32058ff63e5cc9280c5c23f011e095994edf2277442/collective.singing-0.3b1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3b2": [ { "comment_text": "", "digests": { "md5": "35fcc58195518f9a6540bb204e2fc4ab", "sha256": "3c0c4b200c6730dd8476ec46671564ad78efd01899420b9e7197962c7c582e36" }, "downloads": -1, "filename": "collective.singing-0.3b2.tar.gz", "has_sig": false, "md5_digest": "35fcc58195518f9a6540bb204e2fc4ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42019, "upload_time": "2008-05-26T13:12:10", "upload_time_iso_8601": "2008-05-26T13:12:10Z", "url": "https://files.pythonhosted.org/packages/04/70/25646a383ee2e7d180574c10f2b0a309afe0bcbd6ecf051423d85b552a2a/collective.singing-0.3b2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4": [ { "comment_text": "", "digests": { "md5": "c3535b972aac602d4ca7e9e55ef6bd06", "sha256": "1b2f04ce1619503c6c038b22b0ce680957b71e938f379197818ed1284fa27f20" }, "downloads": -1, "filename": "collective.singing-0.4.tar.gz", "has_sig": false, "md5_digest": "c3535b972aac602d4ca7e9e55ef6bd06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46226, "upload_time": "2008-07-22T22:37:21", "upload_time_iso_8601": "2008-07-22T22:37:21Z", "url": "https://files.pythonhosted.org/packages/18/59/771fdca710deceed902d81ecd29a198295bc0cec4e1fb02ba115faff7224/collective.singing-0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4b1": [ { "comment_text": "", "digests": { "md5": "bd68595946843a600c93e8572e24c5c7", "sha256": "c05db2f3fecdcd3bdc7dc85401705c7f764e0f6dcdf46f1b52bcfac5377a02aa" }, "downloads": -1, "filename": "collective.singing-0.4b1.tar.gz", "has_sig": false, "md5_digest": "bd68595946843a600c93e8572e24c5c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45814, "upload_time": "2008-06-19T18:13:42", "upload_time_iso_8601": "2008-06-19T18:13:42Z", "url": "https://files.pythonhosted.org/packages/5f/08/8c5c7ba40fc1a670b0655660ca7e70791af797a189d3d7b121446d2f8629/collective.singing-0.4b1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4b2": [ { "comment_text": "", "digests": { "md5": "cbe0e73005320f9180a241823d0978e8", "sha256": "7c371c915da8e6ae6d8dcbe9c95bd4de79a19135ae15903f9b40aa8edfbc0009" }, "downloads": -1, "filename": "collective.singing-0.4b2.tar.gz", "has_sig": false, "md5_digest": "cbe0e73005320f9180a241823d0978e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45829, "upload_time": "2008-06-20T13:37:22", "upload_time_iso_8601": "2008-06-20T13:37:22Z", "url": "https://files.pythonhosted.org/packages/6c/29/0d112abc71d9b96a4d68cbc72d0af1b722074d86ff8885f118e9a10587d9/collective.singing-0.4b2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4dev-r66328": [], "0.5.0": [ { "comment_text": "", "digests": { "md5": "806ca9c00af79984fb253d08fce4ba84", "sha256": "55d1b18d6fa02016ef478deb46b345ac7e38c9c6953bf40ffff286a675f636f6" }, "downloads": -1, "filename": "collective.singing-0.5.0.tar.gz", "has_sig": false, "md5_digest": "806ca9c00af79984fb253d08fce4ba84", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46830, "upload_time": "2008-07-29T15:21:06", "upload_time_iso_8601": "2008-07-29T15:21:06Z", "url": "https://files.pythonhosted.org/packages/1d/7e/f807ce9bb5847d6d59a8cae34c2ec02d7307c202e9287036697937fa4670/collective.singing-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "3221b4fa95f28b0c546e00d709ef84a3", "sha256": "8d0e7f955174f2bd8e41293eb092e83901fa9456515792b1d4e11ed71b3e8593" }, "downloads": -1, "filename": "collective.singing-0.6.0.tar.gz", "has_sig": false, "md5_digest": "3221b4fa95f28b0c546e00d709ef84a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48038, "upload_time": "2008-08-21T17:30:12", "upload_time_iso_8601": "2008-08-21T17:30:12Z", "url": "https://files.pythonhosted.org/packages/b6/17/99168cfba8fdd891917777e709f1aa0ae86697b1109a6524d387dec5c1dd/collective.singing-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "6d2a6429da362cc50735a3e6c7164acd", "sha256": "a6c61d92cd9b4fc8cf8ea42089fe46827b352ed8bd2943421c502110de60c746" }, "downloads": -1, "filename": "collective.singing-0.6.1.tar.gz", "has_sig": false, "md5_digest": "6d2a6429da362cc50735a3e6c7164acd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48856, "upload_time": "2008-08-28T17:06:59", "upload_time_iso_8601": "2008-08-28T17:06:59Z", "url": "https://files.pythonhosted.org/packages/b6/3c/4f2d809ef6b816c8a49c3e51d2861eeaf0a215dfc44d7dc465786562d7a1/collective.singing-0.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.10": [ { "comment_text": "", "digests": { "md5": "34f2235674cd56ec60dcbf9953078c5b", "sha256": "83ea3c92c8995c8e7d260e7c50fe9307999e938146aa3a9f03d5c3d59ce944e1" }, "downloads": -1, "filename": "collective.singing-0.6.10.tar.gz", "has_sig": false, "md5_digest": "34f2235674cd56ec60dcbf9953078c5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63417, "upload_time": "2009-02-01T15:24:52", "upload_time_iso_8601": "2009-02-01T15:24:52Z", "url": "https://files.pythonhosted.org/packages/87/4c/dde40eb6747f0c72d29b88fa503969d3fb6542f6e7a8993af51d9fd90984/collective.singing-0.6.10.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.11": [ { "comment_text": "", "digests": { "md5": "30b765cf07cfc09084165b0777700799", "sha256": "c4d17f22229e8553b4a6c6d2213411dab9ec0e13c64226bfb37e86c5f84bf864" }, "downloads": -1, "filename": "collective.singing-0.6.11.tar.gz", "has_sig": false, "md5_digest": "30b765cf07cfc09084165b0777700799", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64559, "upload_time": "2009-03-11T17:17:46", "upload_time_iso_8601": "2009-03-11T17:17:46.038881Z", "url": "https://files.pythonhosted.org/packages/1f/42/ac31c7c89e8fe6dcef36406a5a4768bc2ed9d77a25696d25695de21530ea/collective.singing-0.6.11.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.12": [ { "comment_text": "", "digests": { "md5": "b8d8ed69d919ee4ced31cb29656272db", "sha256": "beb50df3eb7ecda1008c55ea6b83b58b387fd4233b3d9bd5f640b6d60e3052e4" }, "downloads": -1, "filename": "collective.singing-0.6.12.tar.gz", "has_sig": false, "md5_digest": "b8d8ed69d919ee4ced31cb29656272db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 78613, "upload_time": "2009-06-11T21:07:21", "upload_time_iso_8601": "2009-06-11T21:07:21.696371Z", "url": "https://files.pythonhosted.org/packages/e8/d2/22e9b4edd1bb404eb6b646db808fff3a16873e1075871f3bfcf5ac93c7d3/collective.singing-0.6.12.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.13": [ { "comment_text": "", "digests": { "md5": "3e33a8426a468ae77eba5573a585b53e", "sha256": "ceb5e969ef639dbffafc788613f35805d264f74d6151ff913f6a9859246f9622" }, "downloads": -1, "filename": "collective.singing-0.6.13.tar.gz", "has_sig": false, "md5_digest": "3e33a8426a468ae77eba5573a585b53e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75141, "upload_time": "2009-10-19T13:45:57", "upload_time_iso_8601": "2009-10-19T13:45:57.333991Z", "url": "https://files.pythonhosted.org/packages/07/ab/945bc41799aeb5a6c777c56a8c4fa054c87e5c10fe9e83813ff448450252/collective.singing-0.6.13.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.14": [ { "comment_text": "", "digests": { "md5": "163ecfbae1e7e2d3079969ec4fcf7bf3", "sha256": "d7441dadeb76f540634e9ff5abafe545ec20d09baa6b04196cc950517d61e879" }, "downloads": -1, "filename": "collective.singing-0.6.14.zip", "has_sig": false, "md5_digest": "163ecfbae1e7e2d3079969ec4fcf7bf3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 117749, "upload_time": "2010-04-10T08:34:31", "upload_time_iso_8601": "2010-04-10T08:34:31.352655Z", "url": "https://files.pythonhosted.org/packages/44/59/62a69b029be4ed9a0db2832cfbcb6a9c4f1561a705f3a278443d918d4b5c/collective.singing-0.6.14.zip", "yanked": false, "yanked_reason": null } ], "0.6.14-1": [ { "comment_text": "", "digests": { "md5": "192ef777a6dc6a1bd9af6087b386e163", "sha256": "1410021026564122d8b0912e09db2e090d6c8dca50e6bff9b2d5e69e358703de" }, "downloads": -1, "filename": "collective.singing-0.6.14-1.zip", "has_sig": false, "md5_digest": "192ef777a6dc6a1bd9af6087b386e163", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 118091, "upload_time": "2010-04-10T10:37:05", "upload_time_iso_8601": "2010-04-10T10:37:05.126811Z", "url": "https://files.pythonhosted.org/packages/53/e5/472b1ac191a5bbd058c5c84b041858b97797fc7a4d8198769252f5513eb8/collective.singing-0.6.14-1.zip", "yanked": false, "yanked_reason": null } ], "0.6.15": [ { "comment_text": "", "digests": { "md5": "50b04b00e682358ec9d1419ad1060328", "sha256": "8ce32e32d9292b6406de857fa89863c6a36e0d6e4958671ec4959b2013dca585" }, "downloads": -1, "filename": "collective.singing-0.6.15.tar.gz", "has_sig": false, "md5_digest": "50b04b00e682358ec9d1419ad1060328", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61151, "upload_time": "2010-08-01T09:23:28", "upload_time_iso_8601": "2010-08-01T09:23:28.626738Z", "url": "https://files.pythonhosted.org/packages/55/78/bce599fe3da0048f5ef0ebf6a4507342565f3c1efb47dce6de749a194c9d/collective.singing-0.6.15.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "b118fe185bc6dce0dd97734a16d017e5", "sha256": "4182f68cb47c5eff36f568523b589a1984904575c360fe6ebd47df97156035d1" }, "downloads": -1, "filename": "collective.singing-0.6.2.tar.gz", "has_sig": false, "md5_digest": "b118fe185bc6dce0dd97734a16d017e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49206, "upload_time": "2008-09-03T13:50:26", "upload_time_iso_8601": "2008-09-03T13:50:26Z", "url": "https://files.pythonhosted.org/packages/75/01/8f710c981d45497612b73e4d2b07a46a36150bdfdb55e29730d97590c11a/collective.singing-0.6.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "a7fbca2e264c8b8b57b802b389825338", "sha256": "e72f5e10f949c6606c068dcf6de103a862de5664b8ade97e640f515f615ce8a9" }, "downloads": -1, "filename": "collective.singing-0.6.3.tar.gz", "has_sig": false, "md5_digest": "a7fbca2e264c8b8b57b802b389825338", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49875, "upload_time": "2008-09-11T15:22:56", "upload_time_iso_8601": "2008-09-11T15:22:56Z", "url": "https://files.pythonhosted.org/packages/0d/a7/b3eaa24dfc5ee36832daf9afc65c8c465d6fc3071c889338ccbebc817852/collective.singing-0.6.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "81e8ea7a7a4bde87ba02bb98f9caa47b", "sha256": "7f8206bfbac5b65d3ffe4113b231c840b044e70eadb273ff074c8ce20001aa0e" }, "downloads": -1, "filename": "collective.singing-0.6.4.tar.gz", "has_sig": false, "md5_digest": "81e8ea7a7a4bde87ba02bb98f9caa47b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50980, "upload_time": "2008-10-29T09:07:28", "upload_time_iso_8601": "2008-10-29T09:07:28Z", "url": "https://files.pythonhosted.org/packages/12/fa/ea67e659cdffb05b843c65eaf3ff4e9bb6bf8833c0f77b5e06ed444d6040/collective.singing-0.6.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.5": [ { "comment_text": "", "digests": { "md5": "4a512669f590bca1ac934e6da0a6654e", "sha256": "535d663915a9a0342194f32953e4f432eda1327d26ad8a7b4184cbd0f93d2e1c" }, "downloads": -1, "filename": "collective.singing-0.6.5.tar.gz", "has_sig": false, "md5_digest": "4a512669f590bca1ac934e6da0a6654e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53359, "upload_time": "2008-11-05T16:01:00", "upload_time_iso_8601": "2008-11-05T16:01:00Z", "url": "https://files.pythonhosted.org/packages/b9/bc/6954d7cc8a33d5d3bfecccd91633a545f3a59fe087959b436fcf7a8319a8/collective.singing-0.6.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.6": [ { "comment_text": "", "digests": { "md5": "c1e2ed064a071dc364cad47ff0c3a483", "sha256": "4ff866e9cb2d22f99475cf1031dc8e3c48faa27509108fd085cfade0b2d15048" }, "downloads": -1, "filename": "collective.singing-0.6.6.tar.gz", "has_sig": false, "md5_digest": "c1e2ed064a071dc364cad47ff0c3a483", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55378, "upload_time": "2008-11-13T22:06:15", "upload_time_iso_8601": "2008-11-13T22:06:15Z", "url": "https://files.pythonhosted.org/packages/89/70/eb7c64b7cfc4faf1c48ed1271b83be51b0949efefb0d4997285ef08e0094/collective.singing-0.6.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.7": [ { "comment_text": "", "digests": { "md5": "f6a4b9cf015fe4fd22ba8942606026c6", "sha256": "b4aa688141c9d19cfad3c1eb5fc67b6b1dfaf63adacd0e58ead37daec23143c3" }, "downloads": -1, "filename": "collective.singing-0.6.7.tar.gz", "has_sig": false, "md5_digest": "f6a4b9cf015fe4fd22ba8942606026c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57218, "upload_time": "2008-12-03T19:39:12", "upload_time_iso_8601": "2008-12-03T19:39:12Z", "url": "https://files.pythonhosted.org/packages/ca/ee/b9550c09452b412eb4e7be89f71a326f1e21beddbcdfe116e0cf1b7ad51e/collective.singing-0.6.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.8": [ { "comment_text": "", "digests": { "md5": "87c111a3d43fee7a8b1f1e523d0c8e2c", "sha256": "60c3527fbb0a9163484606448f846d83a9700c7fb6a6220ee8f8e9364c4b2b3e" }, "downloads": -1, "filename": "collective.singing-0.6.8.tar.gz", "has_sig": false, "md5_digest": "87c111a3d43fee7a8b1f1e523d0c8e2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62972, "upload_time": "2009-01-02T11:56:39", "upload_time_iso_8601": "2009-01-02T11:56:39Z", "url": "https://files.pythonhosted.org/packages/4d/50/f459da881c70342ebaa30f1b0296412a681b52aedf4771448464e92a3fc6/collective.singing-0.6.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.9": [ { "comment_text": "", "digests": { "md5": "5ce81067ddec092783e3872038cf4deb", "sha256": "85fa510058917c4facadf0d30bceddaa0c97a870787bc404c71aa633ebb09a31" }, "downloads": -1, "filename": "collective.singing-0.6.9.tar.gz", "has_sig": false, "md5_digest": "5ce81067ddec092783e3872038cf4deb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63148, "upload_time": "2009-01-20T23:46:55", "upload_time_iso_8601": "2009-01-20T23:46:55Z", "url": "https://files.pythonhosted.org/packages/52/f7/0a4ef7adb1eb3ce5313289066ba3efc1ed4f416d1fa225ab4464dfb60c95/collective.singing-0.6.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "4a1dfcc7a816c42b7a0ba5cad8d386a6", "sha256": "3f79b89a27ac2b25cdef92d00691cefa11465324b539fa6089d34fbcf42a2d7d" }, "downloads": -1, "filename": "collective.singing-0.7.0.zip", "has_sig": false, "md5_digest": "4a1dfcc7a816c42b7a0ba5cad8d386a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 102581, "upload_time": "2010-11-04T15:12:13", "upload_time_iso_8601": "2010-11-04T15:12:13.859176Z", "url": "https://files.pythonhosted.org/packages/89/78/79dc89945b3a735e682fa455017881011a84aec6527cdb137ad8d2ccd532/collective.singing-0.7.0.zip", "yanked": false, "yanked_reason": null } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "ee6d0adfec51a50ac25abf07ac228f8d", "sha256": "0747075d0a9c2bfb2b3db76db7931e67b95683a756ee9e86deaf34978772589b" }, "downloads": -1, "filename": "collective.singing-0.7.1.tar.gz", "has_sig": false, "md5_digest": "ee6d0adfec51a50ac25abf07ac228f8d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63993, "upload_time": "2010-12-03T10:49:56", "upload_time_iso_8601": "2010-12-03T10:49:56.896870Z", "url": "https://files.pythonhosted.org/packages/2a/ef/b35ed8bd4358eda75e1f49f0347f22219fca0b8f0431d96339cc9a589e35/collective.singing-0.7.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "e418419df4028cec59fb032f589ead1a", "sha256": "701e8d6ebf485d9ce05cb3377e48ececa0e70e976c333234786bbd49ec1642f4" }, "downloads": -1, "filename": "collective.singing-0.7.2.zip", "has_sig": false, "md5_digest": "e418419df4028cec59fb032f589ead1a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 122943, "upload_time": "2015-01-05T20:23:00", "upload_time_iso_8601": "2015-01-05T20:23:00.792919Z", "url": "https://files.pythonhosted.org/packages/bc/0b/dca21b495e7c861b543bfe774d27f3fee94a5daa4e2133f7e63edc79b959/collective.singing-0.7.2.zip", "yanked": false, "yanked_reason": null } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "29b26fcaacac0d564c9e037d5e0d60c9", "sha256": "240190c8b7d0f146c80500c915dc74adccbebff33473b289017e78c7434a6e3e" }, "downloads": -1, "filename": "collective.singing-0.7.3.tar.gz", "has_sig": false, "md5_digest": "29b26fcaacac0d564c9e037d5e0d60c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74079, "upload_time": "2015-08-30T23:36:00", "upload_time_iso_8601": "2015-08-30T23:36:00.628794Z", "url": "https://files.pythonhosted.org/packages/43/21/ca393dd6611614f4f4629f4e42f7013f45d04ebbd9432815f9fe7f92cfdf/collective.singing-0.7.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.4": [ { "comment_text": "", "digests": { "md5": "96c1ee95efd773fd9450e97e4277c511", "sha256": "2a1c1de9f9535ea1084b7800e405e35c6f41ef89611c2893f728718d60d61fa1" }, "downloads": -1, "filename": "collective.singing-0.7.4.tar.gz", "has_sig": false, "md5_digest": "96c1ee95efd773fd9450e97e4277c511", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74312, "upload_time": "2015-11-02T23:09:55", "upload_time_iso_8601": "2015-11-02T23:09:55.074544Z", "url": "https://files.pythonhosted.org/packages/da/f2/a3e48c7e6d40fbc52fc6d5cdec507daa2b02b41a76b23aec50631b281d8e/collective.singing-0.7.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.5": [ { "comment_text": "", "digests": { "md5": "d0c9c11450d44ae363c336de558c6714", "sha256": "54275d8fea4b247dd49ee7a427bd3f30a2541e2e9489c4958a31f5ed246455dd" }, "downloads": -1, "filename": "collective.singing-0.7.5.tar.gz", "has_sig": false, "md5_digest": "d0c9c11450d44ae363c336de558c6714", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80281, "upload_time": "2017-03-03T13:02:55", "upload_time_iso_8601": "2017-03-03T13:02:55.741506Z", "url": "https://files.pythonhosted.org/packages/b2/e1/301019e9b961f82b99f31d7053e15415ccd1cdfa7428d6ed5f24e1e53bfc/collective.singing-0.7.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.6": [ { "comment_text": "", "digests": { "md5": "50f0dfb7f8b4e5c47b2237dd8921de5f", "sha256": "feec55322ae648d2bef482dffbebf5ae11b82193145e75a5234187246b096476" }, "downloads": -1, "filename": "collective.singing-0.7.6.tar.gz", "has_sig": false, "md5_digest": "50f0dfb7f8b4e5c47b2237dd8921de5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77349, "upload_time": "2019-10-22T13:56:00", "upload_time_iso_8601": "2019-10-22T13:56:00.140797Z", "url": "https://files.pythonhosted.org/packages/35/5f/372d884eff9bcfde3d83c854a4a485866606141397068a4adc5214c89a03/collective.singing-0.7.6.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "50f0dfb7f8b4e5c47b2237dd8921de5f", "sha256": "feec55322ae648d2bef482dffbebf5ae11b82193145e75a5234187246b096476" }, "downloads": -1, "filename": "collective.singing-0.7.6.tar.gz", "has_sig": false, "md5_digest": "50f0dfb7f8b4e5c47b2237dd8921de5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77349, "upload_time": "2019-10-22T13:56:00", "upload_time_iso_8601": "2019-10-22T13:56:00.140797Z", "url": "https://files.pythonhosted.org/packages/35/5f/372d884eff9bcfde3d83c854a4a485866606141397068a4adc5214c89a03/collective.singing-0.7.6.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }