Refactor search and read methods for better performance #45
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Simplify signature of
Model.search: argumentsorder,limitandoffsetbecome keyword-only, and undocumented argumentreverseis abandoned.New:
Model.searchreturns aRecordListwhich is lazily evaluated. API method is called only when needed: if attributes are read or methods are called. It will usesearch_readAPI method when it's adequate.New: extracting a part of a lazy
RecordListwill not call API method, for simple use cases likeenv['account.move'].search([])[10:90]. It will setoffsetandlimiton the prepared search instead.Remove undocumented
Env._web.Refactor code for
readfield formatter.Refactor
RecordandRecordListconstructors: get rid of__new__and simplify.Add private method
Record._invalidate_cacheto implementRecord.refresh.