0001-factorize-WorklowStatusItem.compute-.-14510.patch
wcs/qommon/misc.py | ||
---|---|---|
520 | 520 |
for chunk in iter(read_chunk, ''): |
521 | 521 |
digest.update(chunk) |
522 | 522 |
return digest.hexdigest() |
523 | ||
524 | ||
525 |
def compute(expr, do_ezt=True, raises=False, context=None): |
|
526 |
if not isinstance(expr, basestring): |
|
527 |
return expr |
|
528 | ||
529 |
if not expr.startswith('=') and not do_ezt: |
|
530 |
return expr |
|
531 | ||
532 |
vars = get_publisher().substitutions.get_context_variables() |
|
533 |
vars.update(context or {}) |
|
534 | ||
535 |
if not expr.startswith('='): |
|
536 |
try: |
|
537 |
processor = ezt.Template(compress_whitespace=False) |
|
538 |
processor.parse(expr) |
|
539 |
fd = StringIO() |
|
540 |
processor.generate(fd, vars) |
|
541 |
return fd.getvalue() |
|
542 |
except ezt.EZTException: |
|
543 |
if raises: |
|
544 |
raise |
|
545 |
return expr |
|
546 | ||
547 |
try: |
|
548 |
return eval(expr[1:], get_publisher().get_global_eval_dict(), vars) |
|
549 |
except: |
|
550 |
if raises: |
|
551 |
raise |
|
552 |
return expr |
wcs/workflows.py | ||
---|---|---|
31 | 31 |
from quixote import get_request, redirect |
32 | 32 | |
33 | 33 |
from qommon import _ |
34 |
from qommon.misc import C_, get_as_datetime, file_digest |
|
34 |
from qommon.misc import C_, get_as_datetime, file_digest, compute
|
|
35 | 35 |
from qommon.storage import StorableObject, atomic_write |
36 | 36 |
from qommon.form import * |
37 | 37 |
from qommon.humantime import seconds2humanduration |
... | ... | |
1605 | 1605 | |
1606 | 1606 |
@classmethod |
1607 | 1607 |
def compute(cls, var, do_ezt=True, raises=False): |
1608 |
if not isinstance(var, basestring): |
|
1609 |
return var |
|
1610 | ||
1611 |
if not var.startswith('=') and not do_ezt: |
|
1612 |
return var |
|
1613 | ||
1614 |
vars = get_publisher().substitutions.get_context_variables() |
|
1615 |
if not var.startswith('='): |
|
1616 |
try: |
|
1617 |
processor = ezt.Template(compress_whitespace=False) |
|
1618 |
processor.parse(var) |
|
1619 |
fd = StringIO() |
|
1620 |
processor.generate(fd, vars) |
|
1621 |
return fd.getvalue() |
|
1622 |
except ezt.EZTException: |
|
1623 |
if raises: |
|
1624 |
raise |
|
1625 |
return var |
|
1626 | ||
1627 |
try: |
|
1628 |
return eval(var[1:], get_publisher().get_global_eval_dict(), vars) |
|
1629 |
except: |
|
1630 |
if raises: |
|
1631 |
raise |
|
1632 |
return var |
|
1608 |
return compute(var, do_ezt=do_ezt, raises=raises) |
|
1633 | 1609 | |
1634 | 1610 |
def get_substitution_variables(self, formdata): |
1635 | 1611 |
return {} |
wcs/wscalls.py | ||
---|---|---|
25 | 25 | |
26 | 26 |
from qommon import _ |
27 | 27 |
from qommon.misc import (simplify, http_get_page, http_post_request, |
28 |
get_variadic_url, JSONEncoder, json_loads) |
|
28 |
get_variadic_url, JSONEncoder, json_loads, compute)
|
|
29 | 29 |
from qommon.xml_storage import XmlStorableObject |
30 | 30 |
from qommon.form import (CompositeWidget, StringWidget, WidgetDict, |
31 | 31 |
ComputedExpressionWidget, RadiobuttonsWidget, CheckboxWidget) |
... | ... | |
60 | 60 |
qs = list(urlparse.parse_qsl(parsed.query)) |
61 | 61 |
for key, value in qs_data.iteritems(): |
62 | 62 |
try: |
63 |
value = WorkflowStatusItem.compute(value, raises=True)
|
|
63 |
value = compute(value, raises=True) |
|
64 | 64 |
value = str(value) |
65 | 65 |
except: |
66 | 66 |
get_publisher().notify_of_exception(sys.exc_info()) |
... | ... | |
72 | 72 |
url = urlparse.urlunparse(parsed[:4] + (qs,) + parsed[5:6]) |
73 | 73 | |
74 | 74 |
if request_signature_key: |
75 |
signature_key = WorkflowStatusItem.compute(request_signature_key)
|
|
75 |
signature_key = compute(request_signature_key) |
|
76 | 76 |
if signature_key: |
77 | 77 |
url = sign_url(url, signature_key) |
78 | 78 | |
... | ... | |
84 | 84 |
payload = {} |
85 | 85 |
for (key, value) in post_data.items(): |
86 | 86 |
try: |
87 |
payload[key] = WorkflowStatusItem.compute(value, raises=True)
|
|
87 |
payload[key] = compute(value, raises=True) |
|
88 | 88 |
except: |
89 | 89 |
get_publisher().notify_of_exception(sys.exc_info()) |
90 | 90 | |
91 |
- |