class sheet(object):
	""" sheet: Top level object. 
		Models the entire music sheet """
	def __init__(self, name):
		super(sheet, self).__init__()
		self.name = name
		self.bars = list()
		
	def add_bar(bar):
		self.bars.append(bar)

class stave(sheet):
	""" stave: sheet that is displayed in music theory representation"""
	def __init__(self):
		super(stave, self).__init__()


class tab(sheet):
	""" tab: sheet that is displayed with tab representation"""
	def __init__(self):
		super(tab, self).__init__()


class bar(object):
	""" bar: Models a measure.
		Compose the sheet as the temporal layer
			=> Where the notes are displayed on the sheet """
	def __init__(self, cycle=4):
		super(bar, self).__init__()
		self.cycle = cycle
		self.notes = dict()

	def add_note(self, note, start_time):
		"""
		note : note : note instance
		start_time : int : start time inside the measure
		"""
		self.notes[note] = start_time

class note(object):
	""" note: Models the unit in music representation 
		Drives visual representation
			=> What note must be displayed on the sheet
		"""
	def __init__(self, pitch, duration=1):
		super(bote, self).__init__()
		self.pitch = pitch
		self.duration = duration
class sheet(object):
	""" sheet: Top level object.
		Models the entire music sheet """
	def __init__(self, name):
		super(sheet, self).__init__()
		self.name = name
		self.bars = list()

class bar(object):
	""" bar: Models a measure.
		Compose the sheet as the temporal layer
			=> Where the notes are displayed on the sheet """
	def __init__(self, cycle=4):
		super(bar, self).__init__()
		self.cycle = cycle
		self.notes = dict()

	def add_note(self, note, start_time):
		"""
		note : note : note instance
		start_time : int : start time inside the measure
		"""
		self.notes[note] = start_time

class note(object):
	""" note: Models the unit in music representation
		Drives visual representation
			=> What note must be displayed on the sheet """
	def __init__(self, pitch, duration=1):
		super(bote, self).__init__()
		self.pitch = pitch
		self.duration = duration

CLEAN simplify useless dep and methods
CLEAN simplify useless dep and methods

  class sheet(object):
- 	""" sheet: Top level object. 
+ 	""" sheet: Top level object.
  		Models the entire music sheet """
  	def __init__(self, name):
  		super(sheet, self).__init__()
  		self.name = name
  		self.bars = list()
- 		
- 	def add_bar(bar):
- 		self.bars.append(bar)
- 
- class stave(sheet):
- 	""" stave: sheet that is displayed in music theory representation"""
- 	def __init__(self):
- 		super(stave, self).__init__()
- 
- 
- class tab(sheet):
- 	""" tab: sheet that is displayed with tab representation"""
- 	def __init__(self):
- 		super(tab, self).__init__()
- 
  
  class bar(object):
  	""" bar: Models a measure.
  		Compose the sheet as the temporal layer
  			=> Where the notes are displayed on the sheet """
  	def __init__(self, cycle=4):
  		super(bar, self).__init__()
  		self.cycle = cycle
  		self.notes = dict()
  
  	def add_note(self, note, start_time):
  		"""
  		note : note : note instance
  		start_time : int : start time inside the measure
  		"""
  		self.notes[note] = start_time
  
  class note(object):
- 	""" note: Models the unit in music representation 
+ 	""" note: Models the unit in music representation
  		Drives visual representation
- 			=> What note must be displayed on the sheet
+ 			=> What note must be displayed on the sheet """
- 		"""
  	def __init__(self, pitch, duration=1):
  		super(bote, self).__init__()
  		self.pitch = pitch
  		self.duration = duration
+ 
CLEAN simplify useless dep and methods
## Code Before:
class sheet(object):
	""" sheet: Top level object. 
		Models the entire music sheet """
	def __init__(self, name):
		super(sheet, self).__init__()
		self.name = name
		self.bars = list()
		
	def add_bar(bar):
		self.bars.append(bar)

class stave(sheet):
	""" stave: sheet that is displayed in music theory representation"""
	def __init__(self):
		super(stave, self).__init__()


class tab(sheet):
	""" tab: sheet that is displayed with tab representation"""
	def __init__(self):
		super(tab, self).__init__()


class bar(object):
	""" bar: Models a measure.
		Compose the sheet as the temporal layer
			=> Where the notes are displayed on the sheet """
	def __init__(self, cycle=4):
		super(bar, self).__init__()
		self.cycle = cycle
		self.notes = dict()

	def add_note(self, note, start_time):
		"""
		note : note : note instance
		start_time : int : start time inside the measure
		"""
		self.notes[note] = start_time

class note(object):
	""" note: Models the unit in music representation 
		Drives visual representation
			=> What note must be displayed on the sheet
		"""
	def __init__(self, pitch, duration=1):
		super(bote, self).__init__()
		self.pitch = pitch
		self.duration = duration
## Instruction:
CLEAN simplify useless dep and methods
## Code After:
class sheet(object):
	""" sheet: Top level object.
		Models the entire music sheet """
	def __init__(self, name):
		super(sheet, self).__init__()
		self.name = name
		self.bars = list()

class bar(object):
	""" bar: Models a measure.
		Compose the sheet as the temporal layer
			=> Where the notes are displayed on the sheet """
	def __init__(self, cycle=4):
		super(bar, self).__init__()
		self.cycle = cycle
		self.notes = dict()

	def add_note(self, note, start_time):
		"""
		note : note : note instance
		start_time : int : start time inside the measure
		"""
		self.notes[note] = start_time

class note(object):
	""" note: Models the unit in music representation
		Drives visual representation
			=> What note must be displayed on the sheet """
	def __init__(self, pitch, duration=1):
		super(bote, self).__init__()
		self.pitch = pitch
		self.duration = duration
