joalla/discogs_client

Missing documentation for Master.versions.filter

Opened this issue · 3 comments

JOJ0 commented

I would like to add the filter possibility for Master versions to our docs. See below how it's done already concisely described by @AnssiAhola, which came up in a recent Discussions post.

Now while I'm at it, I want to investigate if there are maybe more objects that make use of the filter from the BasePaginatedResponse class...

Original Post

It's pretty hard to figure it out from the source code, but Master.versions is actually a PaginatedList under the hood which inherits BasePaginatedResponse so it has the filter() method and should call that specific api when invoked.

Example

master = client.master(1051980)
result = master.versions.filter(format="CD")
for release in result:
    print(release)

The filter() method supports all the parameters described in the API docs and can be passed in as kwargs

result = master.versions.filter(
    master_id=123,
    page=1,
    per_page=10,
    format="Vinyl",
    label="Scorpio Music",
    released=1992,
    country="Belgium",
    sort="released",
    sort_order="asc"
)

Hope that helps, Cheers!

Originally posted by @AnssiAhola in #155 (reply in thread)

JOJ0 commented

While investigating I played around with a graphical view of modules. This is the Master class. It didn't really help my investigation but it was fun to look at 😆

discogs_client models Master

Now that would be neat for the docs page 😅 , but I'm guessing that is an separate tool that generated that graph?

JOJ0 commented

Hi @AnssiAhola yes this would indeed be neat but as you've guessed it's from a separate tool and if we include it, it would mean "manual" maintenance of keeping this pictures up to date:

This is the oneliner I used to generate it (on macOS zsh). The main tool that generates it is pyreverse: https://pylint.pycqa.org/en/latest/pyreverse.html

export CLASS=discogs_client.models.Master;  pyreverse -ASmy -c ${CLASS} discogs_client; dot -Tpng ${CLASS}.dot > ${CLASS}.png; open -a Preview ${CLASS}.png