Skip to content
This repository was archived by the owner on Aug 26, 2024. It is now read-only.

make process.extract accept {dict, list}-like choices - #69

Merged
acslater00 merged 1 commit into
seatgeek:masterfrom
nathantypanski:process-dict-like
Feb 19, 2015
Merged

make process.extract accept {dict, list}-like choices#69
acslater00 merged 1 commit into
seatgeek:masterfrom
nathantypanski:process-dict-like

Conversation

@nathantypanski

Copy link
Copy Markdown
Contributor

Previously, process.extract expected lists or dictionaries, and tested
this with isinstance() calls. In keeping with the spirit of Python (duck
typing and all that), this change enables one to use extract() on any
dict-like object for dict-like results, or any list-like object for
list-like results.

So now we can (and, indeed, I've added tests for these uses) call
extract() on things like:

  • a generator of strings ("any iterable")
  • a UserDict
  • custom user-made classes that "look like" dicts
    (or, really, anything with a .items() method that
    behaves like a dict)
  • plain old lists and dicts

The behavior is exactly the same for previous use cases of
lists-and-dicts.

This change goes along nicely with PR #68, since those docs suggest
dict-like behavior is valid, and this change makes that true.

Previously, process.extract expected lists or dictionaries, and tested
this with isinstance() calls. In keeping with the spirit of Python (duck
typing and all that), this change enables one to use extract() on any
dict-like object for dict-like results, or any list-like object for
list-like results.

So now we can (and, indeed, I've added tests for these uses) call
extract() on things like:

- a generator of strings ("any iterable")
- a UserDict
- custom user-made classes that "look like" dicts
  (or, really, anything with a .items() method that behaves like a dict)
- plain old lists and dicts

The behavior is exactly the same for previous use cases of
lists-and-dicts.

This change goes along nicely with PR seatgeek#68, since those docs suggest
dict-like behavior is valid, and this change makes that true.
@erwaller

erwaller commented Jan 5, 2015

Copy link
Copy Markdown
Member

@acslater00 how does this look?

@josegonzalez

Copy link
Copy Markdown
Contributor

@acslater00 bump

acslater00 pushed a commit that referenced this pull request Feb 19, 2015
make process.extract accept {dict, list}-like choices
@acslater00
acslater00 merged commit 89e27f3 into seatgeek:master Feb 19, 2015
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants