SchmidtDSE/afscgap

Switch query to builder pattern

Closed this issue · 1 comments

Part of pyOpenSci/software-submission#93, thanks @ocefpaf. Example syntax desired:

query = afscgap.query()
query.filterCommonName(eq='Pacific cod')
query.filterYear(min=2021)
results = query.execute()

or

results = afscgap.query() \
  .filterCommonName(eq='Pacific cod') \
  .filterYear(min=2021) \
  .execute()

This achieves parity with other scientific python packages in terms of patterns.

I really like the new syntax:

        query = afscgap.Query(requestor=self._mock_requestor)
        query.filter_year(eq=2021)
        query.filter_latitude(eq={'$gte': 56.99, '$lte': 57.04})
        query.filter_longitude(eq={'$gte': -143.96, '$lte': -144.01})
        query.set_filter_incomplete(True)
        results = list(query.execute())