def outputs(self, upstream_affordances=None, downstream_affordances=None): upstream_affordances, downstream_affordances = \ self._normalized_affordances(upstream_affordances, downstream_affordances) outputs = _frozenusetset(self._outputs(upstream_affordances= upstream_affordances, downstream_affordances= downstream_affordances)) if self.tokens_passthrough(upstream_affordances= upstream_affordances, downstream_affordances= downstream_affordances): outputs = upstream_affordances.outputs.union_product(outputs) if self.opaque_passthrough(upstream_affordances= upstream_affordances, downstream_affordances= downstream_affordances): outputs = outputs.union_product((('__',),)) if outputs.isfinite: return _frozenusetset(output for output in outputs if downstream_affordances.inputs .any_lte(output)) else: return outputs
def inputs(self, upstream_affordances=None, downstream_affordances=None): upstream_affordances, downstream_affordances = \ self._normalized_affordances(upstream_affordances, downstream_affordances) inputs = _frozenusetset(self._inputs(upstream_affordances= upstream_affordances, downstream_affordances= downstream_affordances)) if inputs.isfinite: return _frozenusetset(input_ for input_ in inputs if upstream_affordances.outputs .any_gte(input_)) else: return upstream_affordances.outputs
from ... import digest as _digest from .. import _std as _std_http _DIGEST_USER_OPTIONAL_TOKENS = ('qop', 'digest_algorithm', 'client_nonce', 'opaque', 'server_nonce_use_count') _DIGEST_USER_REQUIRED_TOKENS = ('user', 'realm', 'server_nonce', 'digest_uri', 'digest') _DIGEST_USER_TOKENSETS = \ _frozenusetset(_chain(_DIGEST_USER_REQUIRED_TOKENS, optional_tokens) for optional_tokens in _chain((), *(_combinations(_DIGEST_USER_OPTIONAL_TOKENS, n + 1) for n in range(len(_DIGEST_USER_OPTIONAL_TOKENS))))) class HttpDigestClerk(_std_http.HttpStandardClerk): """An authentication clerk for HTTP Digest authentication""" __metaclass__ = _abc.ABCMeta _DIGEST_USER_OPTIONAL_TOKENS = _DIGEST_USER_OPTIONAL_TOKENS _DIGEST_USER_REQUIRED_TOKENS = _DIGEST_USER_REQUIRED_TOKENS