/faker_music

An add-on provider for the awesome Faker module to provide random and/or fake data in music-related categories.

Primary LanguagePythonMIT LicenseMIT

faker_music: music provider for Faker

An add-on provider for the Python Faker module to generate random and/or fake data for music-related categories.

Description

faker_music provides music-related fake data for testing purposes. The definition of "fake" in this context really means "random," as the musical data are real. Invocation of this module simply provides a random choice from the underlying real-world data.

No claims are made as to the accuracy or completeness of this data. However, suggestions/corrections/additional data are happily accepted.

Currently implemented:

  • Music genres
  • Musical instruments

Coming soon:

  • Composers
  • Performers

For future implementation:

  • Band names (existing)
  • Fake band name generator
  • Theory (notes/scales/chord-types/progressions)
  • ...?

Installation

From PyPi:

pip install faker_music

From source code:

git clone https://github.com/jeffwright13/faker_music/
cd faker_music && python setup.py install

Execution

Add as a provider to your Faker instance:

>>> from faker import Faker
>>> from faker_music import MusicProvider
>>> fake = Faker()
>>> fake.add_provider(MusicProvider)

Now you can start to generate data:

>>> fake.music_genre()
>>> fake.music_subgenre()
>>> fake.music_instrument()
>>> fake.music_instrument_category()

About faker_music Objects

The music_genre_object is a dictionary consisting of a 'genre' string, and an associated 'subgenre' list. The purpose is to provide data that ties together a given genre with all of it known subgenres.

For example:

>>> fake.music_genre_object()

{'genre': 'Singer/Songwriter',
 'subgenres': [
  'Alternative Folk',
  'Contemporary Folk',
  'Contemporary Singer/Songwriter',
  'Indie Folk',
  'Folk-Rock',
  'Love Song',
  'New Acoustic',
  'Traditional Folk']}

Similarly, The music_instrument_object is a dictionary consisting of an instrument 'category' string, and an associated 'instrument' list. The purpose is to provide data that ties together a given caegory with all of it known instruments.

For example:

>>> fake.music_instrument_object()

{'category': 'electronics',
 'instruments': [
  'Drum machine',
  'Electric guitar',
  'Keyboard',
  'Synthesizer',
  'Theremin',
  'Turntable']}

Data Sources

Original data for this project (stored in genres.py, instruments.py) was lifted from https://www.musicgenreslist.com and Wikipedia, and massaged into a format suitable for coding using the genre_parser.py and instrument_parser.py code found here.

Acknowlegements

  • I would like to thank the maintainer of the faker_airtravel repository, since I used its structure to create this one.
  • Big thanks also to Bob Belderbos for his expert guidance in getting this litte project off the ground.