This repository has been archived by the owner on Oct 5, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 97d05b6
Showing
16 changed files
with
841 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Zope Foundation and Contributors |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
Zope Public License (ZPL) Version 2.1 | ||
|
||
A copyright notice accompanies this license document that identifies the | ||
copyright holders. | ||
|
||
This license has been certified as open source. It has also been designated as | ||
GPL compatible by the Free Software Foundation (FSF). | ||
|
||
Redistribution and use in source and binary forms, with or without | ||
modification, are permitted provided that the following conditions are met: | ||
|
||
1. Redistributions in source code must retain the accompanying copyright | ||
notice, this list of conditions, and the following disclaimer. | ||
|
||
2. Redistributions in binary form must reproduce the accompanying copyright | ||
notice, this list of conditions, and the following disclaimer in the | ||
documentation and/or other materials provided with the distribution. | ||
|
||
3. Names of the copyright holders must not be used to endorse or promote | ||
products derived from this software without prior written permission from the | ||
copyright holders. | ||
|
||
4. The right to distribute this software or to use it for any purpose does not | ||
give you the right to use Servicemarks (sm) or Trademarks (tm) of the | ||
copyright | ||
holders. Use of them is covered by separate agreement with the copyright | ||
holders. | ||
|
||
5. If any files are modified, you must cause the modified files to carry | ||
prominent notices stating that you changed the files and the date of any | ||
change. | ||
|
||
Disclaimer | ||
|
||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED | ||
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | ||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO | ||
EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | ||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | ||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, | ||
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
Introduction | ||
============ | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
############################################################################## | ||
# | ||
# Copyright (c) 2006 Zope Foundation and Contributors. | ||
# All Rights Reserved. | ||
# | ||
# This software is subject to the provisions of the Zope Public License, | ||
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. | ||
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED | ||
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS | ||
# FOR A PARTICULAR PURPOSE. | ||
# | ||
############################################################################## | ||
"""Bootstrap a buildout-based project | ||
Simply run this script in a directory containing a buildout.cfg. | ||
The script accepts buildout command-line options, so you can | ||
use the -c option to specify an alternate configuration file. | ||
$Id: bootstrap.py 105417 2009-11-01 15:15:20Z tarek $ | ||
""" | ||
|
||
import os, shutil, sys, tempfile, urllib2 | ||
from optparse import OptionParser | ||
|
||
tmpeggs = tempfile.mkdtemp() | ||
|
||
is_jython = sys.platform.startswith('java') | ||
|
||
# parsing arguments | ||
parser = OptionParser() | ||
parser.add_option("-v", "--version", dest="version", | ||
help="use a specific zc.buildout version") | ||
parser.add_option("-d", "--distribute", | ||
action="store_true", dest="distribute", default=False, | ||
help="Use Disribute rather than Setuptools.") | ||
|
||
parser.add_option("-c", None, action="store", dest="config_file", | ||
help=("Specify the path to the buildout configuration " | ||
"file to be used.")) | ||
|
||
options, args = parser.parse_args() | ||
|
||
# if -c was provided, we push it back into args for buildout' main function | ||
if options.config_file is not None: | ||
args += ['-c', options.config_file] | ||
|
||
if options.version is not None: | ||
VERSION = '==%s' % options.version | ||
else: | ||
VERSION = '' | ||
|
||
USE_DISTRIBUTE = options.distribute | ||
args = args + ['bootstrap'] | ||
|
||
to_reload = False | ||
try: | ||
import pkg_resources | ||
if not hasattr(pkg_resources, '_distribute'): | ||
to_reload = True | ||
raise ImportError | ||
except ImportError: | ||
ez = {} | ||
if USE_DISTRIBUTE: | ||
exec urllib2.urlopen('http://python-distribute.org/distribute_setup.py' | ||
).read() in ez | ||
ez['use_setuptools'](to_dir=tmpeggs, download_delay=0, no_fake=True) | ||
else: | ||
exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py' | ||
).read() in ez | ||
ez['use_setuptools'](to_dir=tmpeggs, download_delay=0) | ||
|
||
if to_reload: | ||
reload(pkg_resources) | ||
else: | ||
import pkg_resources | ||
|
||
if sys.platform == 'win32': | ||
def quote(c): | ||
if ' ' in c: | ||
return '"%s"' % c # work around spawn lamosity on windows | ||
else: | ||
return c | ||
else: | ||
def quote (c): | ||
return c | ||
|
||
cmd = 'from setuptools.command.easy_install import main; main()' | ||
ws = pkg_resources.working_set | ||
|
||
if USE_DISTRIBUTE: | ||
requirement = 'distribute' | ||
else: | ||
requirement = 'setuptools' | ||
|
||
if is_jython: | ||
import subprocess | ||
|
||
assert subprocess.Popen([sys.executable] + ['-c', quote(cmd), '-mqNxd', | ||
quote(tmpeggs), 'zc.buildout' + VERSION], | ||
env=dict(os.environ, | ||
PYTHONPATH= | ||
ws.find(pkg_resources.Requirement.parse(requirement)).location | ||
), | ||
).wait() == 0 | ||
|
||
else: | ||
assert os.spawnle( | ||
os.P_WAIT, sys.executable, quote (sys.executable), | ||
'-c', quote (cmd), '-mqNxd', quote (tmpeggs), 'zc.buildout' + VERSION, | ||
dict(os.environ, | ||
PYTHONPATH= | ||
ws.find(pkg_resources.Requirement.parse(requirement)).location | ||
), | ||
) == 0 | ||
|
||
ws.add_entry(tmpeggs) | ||
ws.require('zc.buildout' + VERSION) | ||
import zc.buildout.buildout | ||
zc.buildout.buildout.main(args) | ||
shutil.rmtree(tmpeggs) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
[buildout] | ||
extensions = mr.developer | ||
develop = . | ||
parts = zope2 instance test test-coverage z3c.coverage omelette py | ||
extends = http://dist.plone.org/release/3.3.5/versions.cfg | ||
versions = versions | ||
sources-dir = devel | ||
|
||
[sources] | ||
z3c.taskqueue = svn svn+ssh://gotcha@svn.zope.org/repos/main/Sandbox/gotcha/z3c.taskqueue | ||
|
||
[instance] | ||
recipe = plone.recipe.zope2instance | ||
zope2-location = ${zope2:location} | ||
user = admin:admin | ||
eggs = five.taskqueue | ||
zcml = five.taskqueue | ||
zope-conf-additional = | ||
<product-config five.taskqueue> | ||
autostart *@* | ||
</product-config> | ||
|
||
[test] | ||
recipe = zc.recipe.testrunner | ||
defaults = ['--tests-pattern', '^f?tests$'] | ||
extra-paths = ${zope2:location}/lib/python | ||
eggs = ${instance:eggs} | ||
|
||
[zope2] | ||
recipe = plone.recipe.zope2install | ||
url = ${versions:zope2-url} | ||
fake-zope-eggs = true | ||
skip-fake-eggs = docutils | ||
zope.testing | ||
zope.schema | ||
zope.exceptions | ||
zope.configuration | ||
zope.component | ||
zope.interface | ||
zope.location | ||
zope.proxy | ||
|
||
[py] | ||
recipe = zc.recipe.egg | ||
interpreter = python | ||
eggs = ${test:eggs} | ||
|
||
[test-coverage] | ||
recipe = zc.recipe.testrunner | ||
eggs = ${test:eggs} | ||
defaults = ['--coverage', '${buildout:directory}/coverage', '--auto-progress'] | ||
extra-paths = ${test:extra-paths} | ||
|
||
[z3c.coverage] | ||
recipe = zc.recipe.egg | ||
eggs = z3c.coverage | ||
scripts = coveragereport | ||
arguments = ('coverage', 'coverage/report') | ||
|
||
[omelette] | ||
recipe = collective.recipe.omelette | ||
eggs = ${test:eggs} | ||
products = | ||
packages = ${zope2:location}/lib/python ./ | ||
|
||
[versions] | ||
zope.component = 3.5.1 | ||
zope.configuration = 3.5.0 | ||
zope.container = 3.7.1 | ||
zope.location = 3.5 | ||
zope.site = 3.6.0 | ||
zope.schema = 3.6.1 | ||
zope.interface = 3.5.2 | ||
mr.developer = 1.7 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
Changelog | ||
========= | ||
|
||
0.1-alpha-1 (2010-09-27) | ||
------------------------ | ||
|
||
- Initial release |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
from setuptools import setup, find_packages | ||
import os | ||
|
||
version = '0.1-alpha-1' | ||
|
||
setup(name='five.taskqueue', | ||
version=version, | ||
description="Zope2 integration of z3c.taskqueue", | ||
long_description=open("README.txt").read() + "\n" + | ||
open(os.path.join("docs", "HISTORY.txt")).read(), | ||
classifiers=[ | ||
"Programming Language :: Python", | ||
], | ||
keywords='', | ||
author='', | ||
author_email='', | ||
url='', | ||
license='ZPL 2.1', | ||
packages=find_packages('src'), | ||
package_dir={'': 'src'}, | ||
namespace_packages=['five'], | ||
include_package_data=True, | ||
zip_safe=False, | ||
install_requires=[ | ||
'setuptools', | ||
'z3c.taskqueue', | ||
'five.dbevent', | ||
], | ||
entry_points=""" | ||
# -*- Entry points: -*- | ||
""", | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages | ||
try: | ||
__import__('pkg_resources').declare_namespace(__name__) | ||
except ImportError: | ||
from pkgutil import extend_path | ||
__path__ = extend_path(__path__, __name__) |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
<configure | ||
xmlns="http://namespaces.zope.org/zope" | ||
i18n_domain="five.taskqueue"> | ||
|
||
<include package="five.dbevent" /> | ||
|
||
<subscriber | ||
for="zope.app.appsetup.interfaces.IDatabaseOpenedWithRootEvent" | ||
handler=".startup.databaseOpened" | ||
/> | ||
|
||
<subscriber | ||
for="z3c.taskqueue.interfaces.ITaskService | ||
zope.container.interfaces.IObjectAddedEvent" | ||
handler=".service.setNameAndParent" | ||
/> | ||
|
||
</configure> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
import logging | ||
|
||
from ZPublisher.HTTPRequest import HTTPRequest | ||
from ZPublisher.HTTPResponse import HTTPResponse | ||
import ZPublisher | ||
|
||
from z3c.taskqueue.processor import BaseSimpleProcessor | ||
from z3c.taskqueue.processor import BaseMultiProcessor | ||
from z3c.taskqueue.processor import ERROR_MARKER | ||
|
||
log = logging.getLogger('z3c.taskqueue') | ||
|
||
|
||
class Response(HTTPResponse): | ||
"""override setBody to avoid that method result gets turned to a string.""" | ||
|
||
def setBody(self, body): | ||
self.body = body | ||
|
||
|
||
class Z2PublisherMixin(object): | ||
|
||
def call(self, method, args=(), errorValue=ERROR_MARKER): | ||
path = self.servicePath[:] + [method] | ||
response = Response() | ||
env = {'SERVER_NAME': 'dummy', | ||
'SERVER_PORT': '8080', | ||
'PATH_INFO': '/' + '/'.join(path)} | ||
request = HTTPRequest(None, env, response) | ||
request.args = args | ||
conn = self.db.open() | ||
root = conn.root() | ||
request['PARENTS'] = [root['Application']] | ||
try: | ||
try: | ||
ZPublisher.Publish.publish(request, 'Zope2', [None]) | ||
except Exception, error: | ||
# This thread should never crash, thus a blank except | ||
log.error('Processor: ``%s()`` caused an error!' % method) | ||
log.exception(error) | ||
return errorValue is ERROR_MARKER and error or errorValue | ||
finally: | ||
request.close() | ||
conn.close() | ||
return request.response.body | ||
|
||
|
||
class SimpleProcessor(Z2PublisherMixin, BaseSimpleProcessor): | ||
""" SimpleProcessor for Zope2 """ | ||
|
||
|
||
class MultiProcessor(Z2PublisherMixin, BaseMultiProcessor): | ||
""" SimpleProcessor for Zope2 """ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import sys | ||
|
||
from BTrees.IOBTree import IOBTree | ||
from OFS.SimpleItem import SimpleItem | ||
|
||
from z3c.taskqueue.baseservice import BaseTaskService | ||
|
||
|
||
class TaskService(BaseTaskService, SimpleItem): | ||
containerClass = IOBTree | ||
maxint = sys.maxint | ||
|
||
def getServicePath(self): | ||
path = [part for part in self.getPhysicalPath() if part] | ||
return path | ||
|
||
|
||
def setNameAndParent(object, event): | ||
object.__name__ = event.newName | ||
event.object.__parent__ = event.newParent |
Oops, something went wrong.