3 Ú¯a³ ã @ s„ d Z ddlZddlmZ ddlmZ ddlZddlmZ ddl m Z ejeƒZ G dd„ dejƒZG d d „ d eƒZG dd„ deƒZdS ) a0 Client annotated ACME challenges. Please use names such as ``achall`` to distinguish from variables "of type" :class:`acme.challenges.Challenge` (denoted by ``chall``) and :class:`.ChallengeBody` (denoted by ``challb``):: from acme import challenges from acme import messages from certbot import achallenges chall = challenges.DNS(token='foo') challb = messages.ChallengeBody(chall=chall) achall = achallenges.DNS(chall=challb, domain='example.com') Note, that all annotated challenges act as a proxy objects:: achall.token == challb.token é N)ÚAny)ÚType)Ú challenges)Ú Challengec @ s2 e Zd ZU dZdZeZee e e dœdd„ZdS )ÚAnnotatedChallengez°Client annotated challenge. Wraps around server provided challenge and annotates with data useful for the client. :ivar ~.challb: Wrapped `~.ChallengeBody`. Úchallb)ÚnameÚreturnc C s t | j|ƒS )N)Úgetattrr )Úselfr © r ú!/usr/lib/python3.6/achallenges.pyÚ__getattr__, s zAnnotatedChallenge.__getattr__N)r )Ú__name__Ú __module__Ú__qualname__Ú__doc__Ú __slots__ÚNotImplementedZ _acme_typer r Ústrr r r r r r r s r c @ s&