|
9 | 9 | # stdlib imports |
10 | 10 | import sys |
11 | 11 |
|
12 | | -from Acquisition import aq_base |
13 | | -from Acquisition.interfaces import IAcquirer |
| 12 | + |
14 | 13 | from zope.schema import interfaces as sch_interfaces |
15 | 14 | from zope.schema.fieldproperty import FieldProperty |
16 | 15 | from zope.schema.fieldproperty import FieldPropertyStoredThroughField |
17 | 16 | from zope.schema.fieldproperty import createFieldProperties |
18 | 17 |
|
19 | 18 | __docformat__ = "restructuredtext en" |
20 | 19 |
|
21 | | -class AcquisitionFieldProperty(FieldProperty): |
22 | | - """ |
23 | | - A field property that supports acquisition. Returned objects |
24 | | - will be ``__of__`` the instance, and set objects will always be the unwrapped |
25 | | - base. |
26 | | - """ |
27 | | - |
28 | | - def __get__(self, instance, klass): |
29 | | - result = super().__get__(instance, klass) |
30 | | - # pylint:disable-next=no-value-for-parameter |
31 | | - if instance is not None and IAcquirer.providedBy(result): # even defaults get wrapped |
32 | | - result = result.__of__(instance) |
33 | | - return result |
| 20 | +try: |
| 21 | + from Acquisition import aq_base |
| 22 | + from Acquisition.interfaces import IAcquirer |
| 23 | +except ModuleNotFoundError: |
| 24 | + pass |
| 25 | +else: |
| 26 | + class AcquisitionFieldProperty(FieldProperty): |
| 27 | + """ |
| 28 | + A field property that supports acquisition. Returned objects |
| 29 | + will be ``__of__`` the instance, and set objects will always be the unwrapped |
| 30 | + base. |
| 31 | + """ |
| 32 | + |
| 33 | + def __get__(self, instance, klass): |
| 34 | + result = super().__get__(instance, klass) |
| 35 | + # pylint:disable-next=no-value-for-parameter |
| 36 | + if instance is not None and IAcquirer.providedBy(result): # even defaults get wrapped |
| 37 | + result = result.__of__(instance) |
| 38 | + return result |
34 | 39 |
|
35 | | - def __set__(self, instance, value): |
36 | | - super().__set__(instance, aq_base(value)) |
| 40 | + def __set__(self, instance, value): |
| 41 | + super().__set__(instance, aq_base(value)) |
37 | 42 |
|
38 | 43 | class UnicodeConvertingFieldProperty(FieldProperty): |
39 | 44 | """ |
|
0 commit comments