def __init__(self): super(FindTransactionsRequestFilter, self).__init__( { 'addresses': (f.Array | f.FilterRepeater(f.Required | Trytes(result_type=Address)) | f.Optional(default=[])), 'approvees': (f.Array | f.FilterRepeater(f.Required | Trytes(result_type=TransactionHash)) | f.Optional(default=[])), 'bundles': (f.Array | f.FilterRepeater(f.Required | Trytes(result_type=TransactionHash)) | f.Optional(default=[])), 'tags': (f.Array | f.FilterRepeater(f.Required | Trytes(result_type=Tag)) | f.Optional(default=[])), }, # Technically, all of the parameters for this command are # optional, so long as at least one of them is present and not # empty. allow_missing_keys=True, )
def __init__(self): super(GetPrivateKeysRequestFilter, self).__init__( { # Optional Parameters 'count': f.Type(int) | f.Min(1) | f.Optional(default=1), 'index': f.Type(int) | f.Min(0) | f.Optional(default=0), 'securityLevel': f.Type(int) | f.Min(1) | f.Optional(default=AddressGenerator.DEFAULT_SECURITY_LEVEL), # Required Parameters 'seed': f.Required | Trytes(result_type=Seed), }, allow_missing_keys={ 'count', 'index', 'securityLevel', }, )
def __init__(self): super(GetNewAddressesRequestFilter, self).__init__( { # Everything except ``seed`` is optional. 'checksum': f.Type(bool) | f.Optional(default=False), 'count': f.Type(int) | f.Min(1), 'index': f.Type(int) | f.Min(0) | f.Optional(default=0), 'securityLevel': f.Type(int) | f.Min(1) | f.Max(self.MAX_SECURITY_LEVEL) | f.Optional(default=AddressGenerator.DEFAULT_SECURITY_LEVEL), 'seed': f.Required | Trytes(result_type=Seed), }, allow_missing_keys={ 'checksum', 'count', 'index', 'securityLevel', }, )
def __init__(self) -> None: super(FindTransactionsResponseFilter, self).__init__({ 'hashes': f.FilterRepeater( f.ByteString(encoding='ascii') | Trytes(TransactionHash)) | f.Optional(default=[]), })
def __init__(self): super(GetInclusionStatesRequestFilter, self).__init__( { # Required parameters. 'transactions': ( f.Required | f.Array | f.FilterRepeater( f.Required | Trytes(result_type=TransactionHash) | f.Unicode(encoding='ascii', normalize=False) ) ), # Optional parameters. 'tips': ( f.Array | f.FilterRepeater( f.Required | Trytes(result_type=TransactionHash) | f.Unicode(encoding='ascii', normalize=False) ) | f.Optional(default=[]) ), }, allow_missing_keys = { 'tips', }, )
def __init__(self) -> None: super(GetAccountDataRequestFilter, self).__init__( { # Required parameters. 'seed': f.Required | Trytes(Seed), # Optional parameters. 'stop': f.Type(int) | f.Min(0), 'start': f.Type(int) | f.Min(0) | f.Optional(0), 'inclusionStates': f.Type(bool) | f.Optional(False), 'security_level': SecurityLevel }, allow_missing_keys={ 'stop', 'start', 'inclusionStates', 'security_level' }, )
def __init__(self) -> None: super(GetDigestsRequestFilter, self).__init__( { # Optional Parameters 'count': f.Type(int) | f.Min(1) | f.Optional(default=1), 'index': f.Type(int) | f.Min(0) | f.Optional(default=0), 'securityLevel': SecurityLevel, # Required Parameters 'seed': f.Required | Trytes(Seed), }, allow_missing_keys={ 'count', 'index', 'securityLevel', }, )
def __init__(self): super(GetAccountDataRequestFilter, self).__init__( { # Required parameters. 'seed': f.Required | Trytes(result_type=Seed), # Optional parameters. 'stop': f.Type(int) | f.Min(0), 'start': f.Type(int) | f.Min(0) | f.Optional(0), 'inclusionStates': f.Type(bool) | f.Optional(False), }, allow_missing_keys={ 'stop', 'inclusionStates', 'start', }, )
def __init__(self) -> None: super(GetTransfersRequestFilter, self).__init__( { # Required parameters. 'seed': f.Required | Trytes(Seed), # Optional parameters. 'stop': f.Type(int) | f.Min(0), 'start': f.Type(int) | f.Min(0) | f.Optional(0), 'inclusionStates': f.Type(bool) | f.Optional(False), }, allow_missing_keys={ 'stop', 'inclusionStates', 'start', }, )
def __init__(self): super(GetNewAddressesRequestFilter, self).__init__( { # Everything except ``seed`` is optional. 'checksum': f.Type(bool) | f.Optional(default=False), 'count': f.Type(int) | f.Min(1), 'index': f.Type(int) | f.Min(0) | f.Optional(default=0), 'securityLevel': SecurityLevel, 'seed': f.Required | Trytes(Seed), }, allow_missing_keys={ 'checksum', 'count', 'index', 'securityLevel', }, )
def SecurityLevel(): """ Generates a filter chain for validating a security level. :return: :py:class:`filters.FilterChain` object. """ return (f.Type(int) | f.Min(1) | f.Max(3) | f.Optional(default=AddressGenerator.DEFAULT_SECURITY_LEVEL))
def __init__(self): super(GetNewAddressesRequestFilter, self).__init__( { # ``count`` and ``index`` are optional. 'count': f.Type(int) | f.Min(1), 'index': f.Type(int) | f.Min(0) | f.Optional(default=0), 'seed': f.Required | Trytes(result_type=Seed), }, allow_missing_keys={ 'count', 'index', }, )
def __init__(self): super(GetBalancesRequestFilter, self).__init__( { 'addresses': f.Required | f.Array | f.FilterRepeater( f.Required | AddressNoChecksum() | f.Unicode(encoding='ascii', normalize=False), ), 'threshold': f.Type(int) | f.Min(0) | f.Max(100) | f.Optional(default=100), }, allow_missing_keys={ 'threshold', }, )
def _run(self, context): # type: (TaskContext) -> Optional[Mapping] params =\ context.filter_kwargs({ 'retries': { 'max': f.Type(int) | f.Optional(default=self.max_retries) | f.Min(1), }, }) if self.request.retries < params['retries']['max']: raise self.retry() return {'count': self.request.retries}
def __init__(self): super(GetInputsRequestFilter, self).__init__( { # These arguments are optional. 'stop': f.Type(int) | f.Min(0), 'start': f.Type(int) | f.Min(0) | f.Optional(0), 'threshold': f.Type(int) | f.Min(0), # These arguments are required. 'seed': f.Required | Trytes(result_type=Seed), }, allow_missing_keys={ 'stop', 'start', 'threshold', })
def __init__(self): super(GetBalancesRequestFilter, self).__init__( { 'addresses': (f.Required | f.Array | f.FilterRepeater(f.Required | Trytes(result_type=Address))), 'threshold': (f.Type(int) | f.Min(0) | f.Max(100) | f.Optional(default=100)), }, allow_missing_keys={ 'threshold', }, )
def __init__(self) -> None: super(GetInclusionStatesRequestFilter, self).__init__( { # Required parameters. 'transactions': StringifiedTrytesArray(TransactionHash) | f.Required, # Optional parameters. 'tips': StringifiedTrytesArray(TransactionHash) | f.Optional(default=[]), }, allow_missing_keys={ 'tips', }, )
def filter_kwargs(self, filters): # type: (Dict[Text, Dict[Text, f.FilterCompatible]]) -> Dict[Text, dict] """ Extracts and filters values from the trigger kwargs. :param filters: Keys are the names of triggers to extract params from. Values are dicts used to configure FilterMapper instances. Note: The FilterMapper instances are configured with: - ``allow_missing_keys = True`` - ``allow_extra_keys = True`` Example:: task_params = context.filter_kwargs({ 't_createApplicant': { 'eflId': f.Required | f.ext.Model(Questionnaire), }, 'scoring': { 'model'; f.Required | f.Unicode, }, }) :raise: - ``ValueError`` if the trigger kwargs fail validation. """ # Configure the inner filters, used to process each value # inside ``trigger_kwargs``. map_ = { item_key: f.Optional(default={}) | f.FilterMapper(filter_map) for item_key, filter_map in iteritems(filters) } filter_ =\ f.FilterRunner( # Configure the outer filter, used to apply the inner # filters to the ``trigger_kwargs`` dict. starting_filter = f.FilterMapper( filter_map = map_, allow_missing_keys = True, allow_extra_keys = True, ), incoming_data = self.trigger_kwargs or {}, ) if not filter_.is_valid(): raise with_context( exc=ValueError( 'Invalid trigger kwargs: {errors}'.format( errors=filter_.errors, ), ), context={ 'filter_errors': filter_.get_errors(with_context=True), }, ) return filter_.cleaned_data