class Song(DBObject.DBObject): Fields = (DBFields.IntField('artistid', unsigned=True, key=True), DBFields.IntField('albumid', unsigned=True, key=True), DBFields.VarCharField('title', length=128, indexlen=8, index=True), DBFields.SmallIntField('tracknum', unsigned=True), DBFields.SmallIntField('discnum', unsigned=True), DBFields.SecsIntField('length', index=True), DBFields.ByteIntField('filesize')) Aliases = {'song': 'title', 'name': 'title'}
class Album(DBObject.DBObject): Fields = (DBFields.AutoIncField('albumid'), DBFields.IntField('artistid', unsigned=True, equivKey=True), DBFields.VarCharField('name', length=128, indexlen=8, index=True), DBFields.VarCharField('genre', length=128, indexlen=8, index=True), DBFields.TimeIntField('released', index=True), DBFields.SmallIntField('year', unsigned=True, index=True), DBFields.SmallIntField('tracks', unsigned=True), DBFields.SmallIntField('discs', unsigned=True)) Aliases = {'album': 'name'}
class Artist(DBObject.DBObject): Fields = (DBFields.AutoIncField('artistid'), DBFields.VarCharField('name', length=128, equivKey=True), DBFields.SmallIntField('albums')) Aliases = {'artist': 'name'} def __init__(self, name): """Initialize the Artist object with the their name.""" # we must call the init of the base class before we can do anything. DBObject.__init__(self) self.name = name