Skip to content

Commit

Permalink
Began adding the Events entity
Browse files Browse the repository at this point in the history
Signed-off-by: Shadab Zafar <[email protected]>
  • Loading branch information
dufferzafar committed Jun 11, 2015
1 parent a2a11dc commit 0d6a487
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 1 deletion.
16 changes: 16 additions & 0 deletions musicbrainzngs/mbxml.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ def parse_message(message):
"artist": parse_artist,
"label": parse_label,
"place": parse_place,
"event": parse_event,
"release": parse_release,
"release-group": parse_release_group,
"series": parse_series,
Expand All @@ -153,6 +154,7 @@ def parse_message(message):
"artist-list": parse_artist_list,
"label-list": parse_label_list,
"place-list": parse_place_list,
"event-list": parse_event_list,
"release-list": parse_release_list,
"release-group-list": parse_release_group_list,
"series-list": parse_series_list,
Expand Down Expand Up @@ -275,6 +277,20 @@ def parse_place(place):

return result

def parse_event_list(el):
return [parse_event(e) for e in el]

def parse_event(event):
result = {}
attribs = ["id", "type"]
elements = ["name", "time"]
inner_els = {"life-span": parse_lifespan}

result.update(parse_attributes(attribs, event))
result.update(parse_elements(elements, inner_els, event))

return result

def parse_label_list(ll):
return [parse_label(l) for l in ll]

Expand Down
12 changes: 11 additions & 1 deletion musicbrainzngs/musicbrainz.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@

# Constants for validation.

RELATABLE_TYPES = ['area', 'artist', 'label', 'place', 'recording', 'release', 'release-group', 'series', 'url', 'work']
RELATABLE_TYPES = ['area', 'artist', 'label', 'place', 'event', 'recording', 'release', 'release-group', 'series', 'url', 'work']
RELATION_INCLUDES = [entity + '-rels' for entity in RELATABLE_TYPES]
TAG_INCLUDES = ["tags", "user-tags"]
RATING_INCLUDES = ["ratings", "user-ratings"]
Expand All @@ -51,6 +51,7 @@
"aliases", "annotation"
] + RELATION_INCLUDES + TAG_INCLUDES + RATING_INCLUDES,
'place' : ["aliases", "annotation"] + RELATION_INCLUDES + TAG_INCLUDES,
'event' : ["aliases"] + RELATION_INCLUDES,
'recording': [
"artists", "releases", # Subqueries
"discids", "media", "artist-credits", "isrcs",
Expand Down Expand Up @@ -825,6 +826,15 @@ def get_place_by_id(id, includes=[], release_status=[], release_type=[]):
release_status, release_type)
return _do_mb_query("place", id, includes, params)

@_docstring('event')
def get_event_by_id(id, includes=[], release_status=[], release_type=[]):
"""Get the event with the MusicBrainz `id` as a dict with an 'event' key.

This comment has been minimized.

Copy link
@JonnyJD

JonnyJD Jun 11, 2015

It would be nice to list the keys of the event dict like done for get_releases_by_discid().
I know, this isn't done for other entities yet and this is also not done in the WS/2 wiki, but it certainly helps.

The only upstream "documentation" is this:
https://github.com/metabrainz/mmd-schema/blob/master/schema/musicbrainz_mmd-2.0.rng

EDIT: See also alastair#171

*Available includes*: {includes}"""
params = _check_filter_and_make_params("event", includes,
release_status, release_type)
return _do_mb_query("event", id, includes, params)

@_docstring('recording')
def get_recording_by_id(id, includes=[], release_status=[], release_type=[]):
"""Get the recording with the MusicBrainz `id` as a dict
Expand Down

0 comments on commit 0d6a487

Please sign in to comment.