Add verbose output to the GitMIDI class
This commit is contained in:
parent
84e4cd4ef8
commit
d3b0131f50
52
git-sound.py
52
git-sound.py
@ -104,6 +104,9 @@ def gen_note(commit):
|
|||||||
|
|
||||||
class GitMIDI(MIDIFile):
|
class GitMIDI(MIDIFile):
|
||||||
def __setup_midi(self, track_title=None):
|
def __setup_midi(self, track_title=None):
|
||||||
|
if self.__verbose:
|
||||||
|
print("Preparing MIDI track…")
|
||||||
|
|
||||||
if track_title is None:
|
if track_title is None:
|
||||||
# TODO: Change this to something that connects to the repo
|
# TODO: Change this to something that connects to the repo
|
||||||
self.addTrackName(0, 0, "Sample Track")
|
self.addTrackName(0, 0, "Sample Track")
|
||||||
@ -112,20 +115,20 @@ class GitMIDI(MIDIFile):
|
|||||||
self.addTempo(0, 0, 120)
|
self.addTempo(0, 0, 120)
|
||||||
|
|
||||||
def __setup_repo(self):
|
def __setup_repo(self):
|
||||||
|
if self.__verbose:
|
||||||
|
print("Analyzing repository…")
|
||||||
|
|
||||||
repo = Repo(self.__repo_dir)
|
repo = Repo(self.__repo_dir)
|
||||||
self.branch_head = repo.heads[self.__branch].commit
|
self.branch_head = repo.heads[self.__branch].commit
|
||||||
|
|
||||||
def __init__(self, tracks=None, repository='.', branch='master'):
|
def __init__(self,
|
||||||
if tracks is None:
|
repository='.',
|
||||||
tracks = [("Sample Track", 120)]
|
branch='master',
|
||||||
|
verbose=False):
|
||||||
|
|
||||||
self.track_count = len(tracks)
|
MIDIFile.__init__(self, 1)
|
||||||
|
|
||||||
MIDIFile.__init__(self, self.track_count)
|
self.__verbose = verbose
|
||||||
|
|
||||||
self.__setup_midi()
|
|
||||||
|
|
||||||
self.mem_file = StringIO()
|
|
||||||
self.__written = False
|
self.__written = False
|
||||||
self.__repo_dir = repository
|
self.__repo_dir = repository
|
||||||
self.__repo = None
|
self.__repo = None
|
||||||
@ -133,7 +136,9 @@ class GitMIDI(MIDIFile):
|
|||||||
self.branch_head = None
|
self.branch_head = None
|
||||||
self.__repo_data = None
|
self.__repo_data = None
|
||||||
self.git_log = []
|
self.git_log = []
|
||||||
|
self.mem_file = StringIO()
|
||||||
|
|
||||||
|
self.__setup_midi()
|
||||||
self.__setup_repo()
|
self.__setup_repo()
|
||||||
|
|
||||||
def gen_repo_data(self, force=False):
|
def gen_repo_data(self, force=False):
|
||||||
@ -146,23 +151,34 @@ class GitMIDI(MIDIFile):
|
|||||||
if self.__repo_data and not force:
|
if self.__repo_data and not force:
|
||||||
return
|
return
|
||||||
|
|
||||||
self.git_log = []
|
if self.__verbose:
|
||||||
|
print("Reading repository log…")
|
||||||
|
|
||||||
|
self.__repo_data = []
|
||||||
counter = 0
|
counter = 0
|
||||||
to_process = [self.branch_head]
|
to_process = [self.branch_head]
|
||||||
|
|
||||||
while len(to_process) > 0:
|
while len(to_process) > 0:
|
||||||
counter += 1
|
counter += 1
|
||||||
|
|
||||||
if counter % 500 == 0:
|
# TODO: Make this 500 configurable
|
||||||
|
if counter % 500 == 0 and self.__verbose:
|
||||||
print("Done with {} commits".format(counter))
|
print("Done with {} commits".format(counter))
|
||||||
|
|
||||||
commit = to_process.pop()
|
commit = to_process.pop()
|
||||||
|
|
||||||
if not commit in self.git_log:
|
if not commit in self.__repo_data:
|
||||||
self.git_log.append(commit)
|
self.__repo_data.append(commit)
|
||||||
to_process += commit.parents
|
to_process += commit.parents
|
||||||
|
|
||||||
self.git_log.sort(key=lambda commit: commit.authored_date)
|
if self.__verbose:
|
||||||
|
print("{} commits found".format(counter))
|
||||||
|
print("Sorting commits…")
|
||||||
|
|
||||||
|
self.__repo_data.sort(key=lambda commit: commit.authored_date)
|
||||||
|
|
||||||
|
if self.__verbose:
|
||||||
|
print("Generating MIDI data…")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def repo_data(self):
|
def repo_data(self):
|
||||||
@ -208,7 +224,9 @@ if __name__ == '__main__':
|
|||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
repo_midi = GitMIDI(repository=args.repository, branch=args.branch)
|
repo_midi = GitMIDI(repository=args.repository,
|
||||||
|
branch=args.branch,
|
||||||
|
verbose=args.verbose)
|
||||||
|
|
||||||
except InvalidGitRepositoryError:
|
except InvalidGitRepositoryError:
|
||||||
print("{} is not a valid Git repository".format(
|
print("{} is not a valid Git repository".format(
|
||||||
@ -223,10 +241,6 @@ except IndexError:
|
|||||||
|
|
||||||
repo_midi.gen_repo_data()
|
repo_midi.gen_repo_data()
|
||||||
orig_log = repo_midi.git_log
|
orig_log = repo_midi.git_log
|
||||||
|
|
||||||
if args.verbose:
|
|
||||||
print("Generating MIDI data…")
|
|
||||||
|
|
||||||
log = map(gen_note, orig_log)
|
log = map(gen_note, orig_log)
|
||||||
|
|
||||||
if args.verbose:
|
if args.verbose:
|
||||||
|
Loading…
Reference in New Issue
Block a user