mage.api_resources.abstract.filterable_api_resource module

class mage.api_resources.abstract.filterable_api_resource.Filter(cls=None, **params)

Bases: mage.api_resources.abstract.filterable_api_resource.ListFilter, mage.api_resources.abstract.filterable_api_resource.SearchFilter

This class is the generic filter class. Choosing certain methods like SearchFilter.sort limits future method calls to SearchFilter while other calls like ListFilter.contains limits to ListFilter.

auto_paging_iter()

Refer to ListObject.auto_paging_iter.

class mage.api_resources.abstract.filterable_api_resource.FilterBase(cls=None, **params)

Bases: object

This class contains the common filters shared between list and search. Actions default to list.

between(**kwargs)

Filter by a range of values. Alias for range.

Example

>>> import mage
>>> mage.connect()
>>> list(mage.AssessmentRun.between(score=[60, 70]))
eq(**kwargs)

Filters on equalty.

Example

>>> import mage
>>> mage.connect()
>>> mage.Assessment.eq(name='My Test')[0]
gt(**kwargs)

Filters greater than a value.

Example

>>> import mage
>>> mage.connect()
>>> list(mage.AssessmentRun.gt(score=60))
gte(**kwargs)

Filters greater than or equal to a value.

Example

>>> import mage
>>> mage.connect()
>>> list(mage.AssessmentRun.gte(score=60))
limit(count)

Limits the results returned from the query to a maximum number of records.

Parameters

count (int) – Max number of results to return

Example

>>> import mage
>>> mage.connect()
>>> list(mage.Finding.limit(10))
lt(**kwargs)

Filters less than a value.

Example

>>> import mage
>>> mage.connect()
>>> list(mage.AssessmentRun.lt(score=60))
lte(**kwargs)

Filters less than or equal to a value.

Example

>>> import mage
>>> mage.connect()
>>> list(mage.AssessmentRun.lte(score=60))
ne(**kwargs)

Filters on unequalty.

Example

>>> import mage
>>> mage.connect()
>>> mage.Assessment.ne(name='My Test')
classmethod normalize_list_filters(params)
classmethod normalize_search_filters(params)
range(**kwargs)

Filter by a range of values. Alias for between.

Example

>>> import mage
>>> mage.connect()
>>> list(mage.AssessmentRun.range(score=[60, 70]))
select(*params, **kwparams)

Select specific fields to return from the query.

Parameters
  • *params – array of strings

  • **kwparams – Filter instances to select nested fields

Example

>>> import mage
>>> mage.connect()
>>> mage.AssessmentRun.select('id', 'score').last()[0]
class mage.api_resources.abstract.filterable_api_resource.FilterableAPIResource

Bases: object

Inherit this class to provide filtering on queries.

classmethod begins_with(**kwargs)

Refer to ListFilter.begins_with.

classmethod between(**kwargs)

Refer to FilterBase.between. Alias: FilterBase.range.

classmethod contains(**kwargs)

Refer to ListFilter.contains.

classmethod eq(**kwargs)

Refer to FilterBase.eq.

classmethod first(count=1, field=None)

Refer to SearchFilter.first.

classmethod gt(**kwargs)

Refer to FilterBase.gt.

classmethod gte(**kwargs)

Refer to FilterBase.gte.

classmethod last(count=1, field=None)

Refer to SearchFilter.last.

classmethod limit(count)

Refer to FilterBase.limit.

classmethod lt(**kwargs)

Refer to FilterBase.lt.

classmethod lte(**kwargs)

Refer to FilterBase.lte.

classmethod match(**kwargs)

Refer to SearchFilter.match.

classmethod match_phrase(**kwargs)

Refer to SearchFilter.match_phrase.

classmethod match_phrase_prefix(**kwargs)

Refer to SearchFilter.match_phrase_prefix.

classmethod ne(**kwargs)

Refer to FilterBase.ne.

classmethod not_contains(**kwargs)

Refer to ListFilter.not_contains.

classmethod range(**kwargs)

Refer to FilterBase.range. Alias: FilterBase.between.

classmethod regexp(**kwargs)

Refer to SearchFilter.regexp.

classmethod select(*params, **kwparams)

Refer to FilterBase.select.

classmethod sort(field='created_at')

Refer to SearchFilter.sort.

classmethod sort_desc(field='created_at')

Refer to SearchFilter.sort_desc.

classmethod wildcard(**kwargs)

Refer to SearchFilter.wildcard.

class mage.api_resources.abstract.filterable_api_resource.ListFilter(cls=None, **params)

Bases: mage.api_resources.abstract.filterable_api_resource.FilterBase

auto_paging_iter()

Refer to ListObject.auto_paging_iter.

begins_with(**kwargs)

Filters based on the start of a string.

Reference https://docs.amazonaws.cn/en_us/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Conditions.html.

Example

>>> import mage
>>> mage.connect()
>>> list(mage.Asset.begins_with(asset_identifier='www.'))
contains(**kwargs)

Reference https://docs.amazonaws.cn/en_us/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Conditions.html.

Example

>>> import mage
>>> mage.connect()
>>> list(mage.Assessment.contains(name='web'))
not_contains(**kwargs)

Reference https://docs.amazonaws.cn/en_us/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Conditions.html.

Example

>>> import mage
>>> mage.connect()
>>> list(mage.Assessment.not_contains(name='database'))
class mage.api_resources.abstract.filterable_api_resource.SearchFilter(cls=None, **params)

Bases: mage.api_resources.abstract.filterable_api_resource.FilterBase

auto_paging_iter()

Refer to ListObject.auto_paging_iter.

first(count=1, field=None)

Sorts ascending and limits the results.

Parameters
  • count (int, optional) – Maximum number of records to return

  • field (str, optional) – Field to sort on

Example

>>> import mage
>>> mage.connect()
>>> mage.AssessmentRun.first(10).search()
last(count=1, field=None)

Sorts descending and limits the results.

Parameters
  • count (int, optional) – Maximum number of records to return

  • field (str, optional) – Field to sort on

Example

>>> import mage
>>> mage.connect()
>>> list(mage.AssessmentRun.last(10))
match(**kwargs)

Filters case insensitive text.

Reference https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query.html.

Example

>>> import mage
>>> mage.connect()
>>> mage.Assessment.match(name='web')
match_phrase(**kwargs)

Reference https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query-phrase.html.

match_phrase_prefix(**kwargs)

Reference https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query-phrase-prefix.html.

regexp(**kwargs)

Filters results with regular expressions. Attempting to match across spaces won’t work because the expression is tested word by word.

Reference https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-regexp-query.html

Example

>>> import mage
>>> mage.connect()
>>> list(mage.Asset.regexp(asset_identifier='.*.example.com').select('asset_identifier'))
sort(field=None)

Sorts ascending.

Parameters

field (str, optional) – Field to sort on

Example

>>> import mage
>>> mage.connect()
>>> mage.AssessmentRun.sort().search()
sort_desc(field=None)

Sorts descending.

Parameters

field (str, optional) – Field to sort on

Example

>>> import mage
>>> mage.connect()
>>> mage.AssessmentRun.sort_desc().search()
wildcard(**kwargs)

Filters with single (?) or multiple (*) wildcards, matching single words. Use lowercase text.

Reference https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-wildcard-query.html.

Example

>>> import mage
>>> mage.connect()
>>> list(mage.Asset.regexp(asset_identifier='*.example.com').select('asset_identifier'))