_flatten.py
38 lines
| 1.1 KiB
| text/x-python
|
PythonLexer
Gregory Szorc
|
r37193 | ############################################################################## | ||
# | ||||
# Copyright (c) 2002 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. | ||||
# | ||||
############################################################################## | ||||
"""Adapter-style interface registry | ||||
See Adapter class. | ||||
""" | ||||
Gregory Szorc
|
r37195 | |||
from __future__ import absolute_import | ||||
from .interface import Declaration | ||||
Gregory Szorc
|
r37193 | |||
def _flatten(implements, include_None=0): | ||||
try: | ||||
r = implements.flattened() | ||||
except AttributeError: | ||||
if implements is None: | ||||
r=() | ||||
else: | ||||
r = Declaration(implements).flattened() | ||||
if not include_None: | ||||
return r | ||||
r = list(r) | ||||
r.append(None) | ||||
return r | ||||