In [1]:
import sys;sys.path.append("..")
import pandas as pd
from pandas import DataFrame
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
%matplotlib inline
from IPython.core.display import display, HTML
display(HTML("<style>.container { width:100% !important; }</style>"))



In [2]:
from devml import (mkdata, stats, state, fetch_repo, ts)

In [3]:
df = mkdata.create_org_df(path="/Users/noahgift/Desktop/AtomicConductor/")


2018-02-06 19:48:46,354 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_ae
2018-02-06 19:48:46,356 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor_ae
2018-02-06 19:48:46,374 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:noahgift/devml.git (fetch)\norigin\tgit@github.com:noahgift/devml.git (push)\n'
2018-02-06 19:48:46,397 - devml.mkdata - INFO - Repo Name: b'conductor_ae'
2018-02-06 19:48:46,476 - devml.mkdata - INFO - Found 2324 Messages For Repo: b'conductor_ae'
2018-02-06 19:48:46,478 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-job-convertor
2018-02-06 19:48:46,479 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor-job-convertor
2018-02-06 19:48:46,497 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor_ae.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor_ae.git (push)\n'
2018-02-06 19:48:46,526 - devml.mkdata - INFO - Repo Name: b'conductor-job-convertor'
2018-02-06 19:48:46,552 - devml.mkdata - INFO - Found 67 Messages For Repo: b'conductor-job-convertor'
2018-02-06 19:48:46,555 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-computeprovider
2018-02-06 19:48:46,556 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor-computeprovider
2018-02-06 19:48:46,574 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor-job-convertor.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor-job-convertor.git (push)\n'
2018-02-06 19:48:46,601 - devml.mkdata - INFO - Repo Name: b'conductor-computeprovider'
2018-02-06 19:48:46,624 - devml.mkdata - INFO - Found 9 Messages For Repo: b'conductor-computeprovider'
2018-02-06 19:48:46,627 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/admin_client
2018-02-06 19:48:46,628 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/admin_client
2018-02-06 19:48:46,646 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor-computeprovider.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor-computeprovider.git (push)\n'
2018-02-06 19:48:46,669 - devml.mkdata - INFO - Repo Name: b'admin_client'
2018-02-06 19:48:46,702 - devml.mkdata - INFO - Found 323 Messages For Repo: b'admin_client'
2018-02-06 19:48:46,705 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-syncworker
2018-02-06 19:48:46,706 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor-syncworker
2018-02-06 19:48:46,724 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/admin_client.git (fetch)\norigin\tgit@github.com:AtomicConductor/admin_client.git (push)\n'
2018-02-06 19:48:46,752 - devml.mkdata - INFO - Repo Name: b'conductor-syncworker'
2018-02-06 19:48:46,780 - devml.mkdata - INFO - Found 120 Messages For Repo: b'conductor-syncworker'
2018-02-06 19:48:46,782 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/ups
2018-02-06 19:48:46,783 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/ups
2018-02-06 19:48:46,804 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor-syncworker.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor-syncworker.git (push)\n'
2018-02-06 19:48:46,831 - devml.mkdata - INFO - Repo Name: b'ups'
2018-02-06 19:48:46,856 - devml.mkdata - INFO - Found 4 Messages For Repo: b'ups'
2018-02-06 19:48:46,859 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_tools
2018-02-06 19:48:46,860 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor_tools
2018-02-06 19:48:46,880 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/ups.git (fetch)\norigin\tgit@github.com:AtomicConductor/ups.git (push)\n'
2018-02-06 19:48:46,908 - devml.mkdata - INFO - Repo Name: b'conductor_tools'
2018-02-06 19:48:46,935 - devml.mkdata - INFO - Found 26 Messages For Repo: b'conductor_tools'
2018-02-06 19:48:46,938 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/escalator
2018-02-06 19:48:46,939 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/escalator
2018-02-06 19:48:46,958 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor_tools.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor_tools.git (push)\n'
2018-02-06 19:48:46,983 - devml.mkdata - INFO - Repo Name: b'escalator'
2018-02-06 19:48:47,008 - devml.mkdata - INFO - Found 23 Messages For Repo: b'escalator'
2018-02-06 19:48:47,010 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/cio_appliance
2018-02-06 19:48:47,012 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/cio_appliance
2018-02-06 19:48:47,031 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/escalator.git (fetch)\norigin\tgit@github.com:AtomicConductor/escalator.git (push)\n'
2018-02-06 19:48:47,057 - devml.mkdata - INFO - Repo Name: b'cio_appliance'
2018-02-06 19:48:47,084 - devml.mkdata - INFO - Found 83 Messages For Repo: b'cio_appliance'
2018-02-06 19:48:47,087 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/python-common
2018-02-06 19:48:47,088 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/python-common
2018-02-06 19:48:47,105 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/cio_appliance.git (fetch)\norigin\tgit@github.com:AtomicConductor/cio_appliance.git (push)\n'
2018-02-06 19:48:47,131 - devml.mkdata - INFO - Repo Name: b'python-common'
2018-02-06 19:48:47,158 - devml.mkdata - INFO - Found 82 Messages For Repo: b'python-common'
2018-02-06 19:48:47,162 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-job-poller
2018-02-06 19:48:47,163 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor-job-poller
2018-02-06 19:48:47,181 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/python-common.git (fetch)\norigin\tgit@github.com:AtomicConductor/python-common.git (push)\n'
2018-02-06 19:48:47,207 - devml.mkdata - INFO - Repo Name: b'conductor-job-poller'
2018-02-06 19:48:47,233 - devml.mkdata - INFO - Found 25 Messages For Repo: b'conductor-job-poller'
2018-02-06 19:48:47,236 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/onboarding_app
2018-02-06 19:48:47,237 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/onboarding_app
2018-02-06 19:48:47,255 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor-job-poller.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor-job-poller.git (push)\n'
2018-02-06 19:48:47,282 - devml.mkdata - INFO - Repo Name: b'onboarding_app'
2018-02-06 19:48:47,310 - devml.mkdata - INFO - Found 114 Messages For Repo: b'onboarding_app'
2018-02-06 19:48:47,313 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/static_website
2018-02-06 19:48:47,314 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/static_website
2018-02-06 19:48:47,331 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/onboarding_app.git (fetch)\norigin\tgit@github.com:AtomicConductor/onboarding_app.git (push)\n'
2018-02-06 19:48:47,355 - devml.mkdata - INFO - Repo Name: b'static_website'
2018-02-06 19:48:47,383 - devml.mkdata - INFO - Found 171 Messages For Repo: b'static_website'
2018-02-06 19:48:47,386 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/fileio_service
2018-02-06 19:48:47,387 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/fileio_service
2018-02-06 19:48:47,406 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/static_website.git (fetch)\norigin\tgit@github.com:AtomicConductor/static_website.git (push)\n'
2018-02-06 19:48:47,431 - devml.mkdata - INFO - Repo Name: b'fileio_service'
2018-02-06 19:48:47,469 - devml.mkdata - INFO - Found 559 Messages For Repo: b'fileio_service'
2018-02-06 19:48:47,471 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-sns-invoke-nomad
2018-02-06 19:48:47,472 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor-sns-invoke-nomad
2018-02-06 19:48:47,488 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/fileio_service.git (fetch)\norigin\tgit@github.com:AtomicConductor/fileio_service.git (push)\n'
2018-02-06 19:48:47,509 - devml.mkdata - INFO - Repo Name: b'conductor-sns-invoke-nomad'
2018-02-06 19:48:47,535 - devml.mkdata - INFO - Found 23 Messages For Repo: b'conductor-sns-invoke-nomad'
2018-02-06 19:48:47,538 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/gke_python_template
2018-02-06 19:48:47,539 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/gke_python_template
2018-02-06 19:48:47,557 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor-sns-invoke-nomad.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor-sns-invoke-nomad.git (push)\n'
2018-02-06 19:48:47,582 - devml.mkdata - INFO - Repo Name: b'gke_python_template'
2018-02-06 19:48:47,609 - devml.mkdata - INFO - Found 12 Messages For Repo: b'gke_python_template'
2018-02-06 19:48:47,612 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-yesmad
2018-02-06 19:48:47,613 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor-yesmad
2018-02-06 19:48:47,632 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/gke_python_template.git (fetch)\norigin\tgit@github.com:AtomicConductor/gke_python_template.git (push)\n'
2018-02-06 19:48:47,657 - devml.mkdata - INFO - Repo Name: b'conductor-yesmad'
2018-02-06 19:48:47,680 - devml.mkdata - INFO - Found 13 Messages For Repo: b'conductor-yesmad'
2018-02-06 19:48:47,683 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/api_frontend
2018-02-06 19:48:47,684 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/api_frontend
2018-02-06 19:48:47,702 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor-yesmad.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor-yesmad.git (push)\n'
2018-02-06 19:48:47,728 - devml.mkdata - INFO - Repo Name: b'api_frontend'
2018-02-06 19:48:47,750 - devml.mkdata - INFO - Found 2 Messages For Repo: b'api_frontend'
2018-02-06 19:48:47,753 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-billing
2018-02-06 19:48:47,754 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor-billing
2018-02-06 19:48:47,772 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/api_frontend.git (fetch)\norigin\tgit@github.com:AtomicConductor/api_frontend.git (push)\n'
2018-02-06 19:48:47,796 - devml.mkdata - INFO - Repo Name: b'conductor-billing'
2018-02-06 19:48:47,823 - devml.mkdata - INFO - Found 41 Messages For Repo: b'conductor-billing'
2018-02-06 19:48:47,826 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-switchman
2018-02-06 19:48:47,827 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor-switchman
2018-02-06 19:48:47,846 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor-billing.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor-billing.git (push)\n'
2018-02-06 19:48:47,870 - devml.mkdata - INFO - Repo Name: b'conductor-switchman'
2018-02-06 19:48:47,897 - devml.mkdata - INFO - Found 112 Messages For Repo: b'conductor-switchman'
2018-02-06 19:48:47,899 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-preemption
2018-02-06 19:48:47,900 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor-preemption
2018-02-06 19:48:47,917 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor-switchman.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor-switchman.git (push)\n'
2018-02-06 19:48:47,943 - devml.mkdata - INFO - Repo Name: b'conductor-preemption'
2018-02-06 19:48:47,966 - devml.mkdata - INFO - Found 25 Messages For Repo: b'conductor-preemption'
2018-02-06 19:48:47,969 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-metastep
2018-02-06 19:48:47,970 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor-metastep
2018-02-06 19:48:47,988 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor-preemption.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor-preemption.git (push)\n'
2018-02-06 19:48:48,013 - devml.mkdata - INFO - Repo Name: b'conductor-metastep'
2018-02-06 19:48:48,036 - devml.mkdata - INFO - Found 17 Messages For Repo: b'conductor-metastep'
2018-02-06 19:48:48,039 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/Conductor_fe
2018-02-06 19:48:48,040 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/Conductor_fe
2018-02-06 19:48:48,058 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor-metastep.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor-metastep.git (push)\n'
2018-02-06 19:48:48,082 - devml.mkdata - INFO - Repo Name: b'Conductor_fe'
2018-02-06 19:48:48,107 - devml.mkdata - INFO - Found 70 Messages For Repo: b'Conductor_fe'
2018-02-06 19:48:48,110 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-platform
2018-02-06 19:48:48,111 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor-platform
2018-02-06 19:48:48,128 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/Conductor_fe.git (fetch)\norigin\tgit@github.com:AtomicConductor/Conductor_fe.git (push)\n'
2018-02-06 19:48:48,152 - devml.mkdata - INFO - Repo Name: b'conductor-platform'
2018-02-06 19:48:48,183 - devml.mkdata - INFO - Found 335 Messages For Repo: b'conductor-platform'
2018-02-06 19:48:48,185 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-job-trigger
2018-02-06 19:48:48,186 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor-job-trigger
2018-02-06 19:48:48,203 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor-platform.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor-platform.git (push)\n'
2018-02-06 19:48:48,228 - devml.mkdata - INFO - Repo Name: b'conductor-job-trigger'
2018-02-06 19:48:48,250 - devml.mkdata - INFO - Found 22 Messages For Repo: b'conductor-job-trigger'
2018-02-06 19:48:48,253 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/columbia
2018-02-06 19:48:48,254 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/columbia
2018-02-06 19:48:48,272 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor-job-trigger.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor-job-trigger.git (push)\n'
2018-02-06 19:48:48,297 - devml.mkdata - INFO - Repo Name: b'columbia'
2018-02-06 19:48:48,320 - devml.mkdata - INFO - Found 23 Messages For Repo: b'columbia'
2018-02-06 19:48:48,323 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-storage-api
2018-02-06 19:48:48,324 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor-storage-api
2018-02-06 19:48:48,341 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/columbia.git (fetch)\norigin\tgit@github.com:AtomicConductor/columbia.git (push)\n'
2018-02-06 19:48:48,365 - devml.mkdata - INFO - Repo Name: b'conductor-storage-api'
2018-02-06 19:48:48,392 - devml.mkdata - INFO - Found 202 Messages For Repo: b'conductor-storage-api'
2018-02-06 19:48:48,394 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_ee
2018-02-06 19:48:48,394 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor_ee
2018-02-06 19:48:48,408 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor-storage-api.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor-storage-api.git (push)\n'
2018-02-06 19:48:48,427 - devml.mkdata - INFO - Repo Name: b'conductor_ee'
2018-02-06 19:48:48,468 - devml.mkdata - INFO - Found 1086 Messages For Repo: b'conductor_ee'
2018-02-06 19:48:48,470 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/web_client
2018-02-06 19:48:48,470 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/web_client
2018-02-06 19:48:48,485 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor_ee.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor_ee.git (push)\n'
2018-02-06 19:48:48,506 - devml.mkdata - INFO - Repo Name: b'web_client'
2018-02-06 19:48:48,529 - devml.mkdata - INFO - Found 29 Messages For Repo: b'web_client'
2018-02-06 19:48:48,531 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_rmqcluster
2018-02-06 19:48:48,532 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor_rmqcluster
2018-02-06 19:48:48,551 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/web_client.git (fetch)\norigin\tgit@github.com:AtomicConductor/web_client.git (push)\n'
2018-02-06 19:48:48,577 - devml.mkdata - INFO - Repo Name: b'conductor_rmqcluster'
2018-02-06 19:48:48,600 - devml.mkdata - INFO - Found 7 Messages For Repo: b'conductor_rmqcluster'
2018-02-06 19:48:48,602 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_client
2018-02-06 19:48:48,603 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor_client
2018-02-06 19:48:48,625 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor_rmqcluster.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor_rmqcluster.git (push)\n'
2018-02-06 19:48:48,653 - devml.mkdata - INFO - Repo Name: b'conductor_client'
2018-02-06 19:48:48,694 - devml.mkdata - INFO - Found 744 Messages For Repo: b'conductor_client'
2018-02-06 19:48:48,696 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_datastore_lib
2018-02-06 19:48:48,697 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor_datastore_lib
2018-02-06 19:48:48,710 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor_client.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor_client.git (push)\n'
2018-02-06 19:48:48,729 - devml.mkdata - INFO - Repo Name: b'conductor_datastore_lib'
2018-02-06 19:48:48,750 - devml.mkdata - INFO - Found 18 Messages For Repo: b'conductor_datastore_lib'
2018-02-06 19:48:48,754 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/google-app-engine-python
2018-02-06 19:48:48,755 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/google-app-engine-python
2018-02-06 19:48:48,772 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor_datastore_lib.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor_datastore_lib.git (push)\n'
2018-02-06 19:48:48,794 - devml.mkdata - INFO - Repo Name: b'google-app-engine-python'
2018-02-06 19:48:48,814 - devml.mkdata - INFO - Found 1 Messages For Repo: b'google-app-engine-python'
2018-02-06 19:48:48,816 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/atlantis
2018-02-06 19:48:48,817 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/atlantis
2018-02-06 19:48:48,831 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/google-app-engine-python.git (fetch)\norigin\tgit@github.com:AtomicConductor/google-app-engine-python.git (push)\n'
2018-02-06 19:48:48,851 - devml.mkdata - INFO - Repo Name: b'atlantis'
2018-02-06 19:48:48,870 - devml.mkdata - INFO - Found 5 Messages For Repo: b'atlantis'
2018-02-06 19:48:48,873 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_inf
2018-02-06 19:48:48,873 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor_inf
2018-02-06 19:48:48,889 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/atlantis.git (fetch)\norigin\tgit@github.com:AtomicConductor/atlantis.git (push)\n'
2018-02-06 19:48:48,910 - devml.mkdata - INFO - Repo Name: b'conductor_inf'
2018-02-06 19:48:48,937 - devml.mkdata - INFO - Found 24 Messages For Repo: b'conductor_inf'
2018-02-06 19:48:48,939 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/gcp_scale
2018-02-06 19:48:48,941 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/gcp_scale
2018-02-06 19:48:48,960 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor_inf.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor_inf.git (push)\n'
2018-02-06 19:48:48,987 - devml.mkdata - INFO - Repo Name: b'gcp_scale'
2018-02-06 19:48:49,011 - devml.mkdata - INFO - Found 11 Messages For Repo: b'gcp_scale'
2018-02-06 19:48:49,014 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/neckbeard
2018-02-06 19:48:49,015 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/neckbeard
2018-02-06 19:48:49,032 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/gcp_scale.git (fetch)\norigin\tgit@github.com:AtomicConductor/gcp_scale.git (push)\n'
2018-02-06 19:48:49,062 - devml.mkdata - INFO - Repo Name: b'neckbeard'
2018-02-06 19:48:49,084 - devml.mkdata - INFO - Found 15 Messages For Repo: b'neckbeard'
2018-02-06 19:48:49,087 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/cicd-test
2018-02-06 19:48:49,088 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/cicd-test
2018-02-06 19:48:49,106 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/neckbeard.git (fetch)\norigin\tgit@github.com:AtomicConductor/neckbeard.git (push)\n'
2018-02-06 19:48:49,132 - devml.mkdata - INFO - Repo Name: b'cicd-test'
2018-02-06 19:48:49,156 - devml.mkdata - INFO - Found 22 Messages For Repo: b'cicd-test'
2018-02-06 19:48:49,159 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-serverless-central
2018-02-06 19:48:49,160 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor-serverless-central
2018-02-06 19:48:49,180 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/cicd-test.git (fetch)\norigin\tgit@github.com:AtomicConductor/cicd-test.git (push)\n'
2018-02-06 19:48:49,206 - devml.mkdata - INFO - Repo Name: b'conductor-serverless-central'
2018-02-06 19:48:49,232 - devml.mkdata - INFO - Found 27 Messages For Repo: b'conductor-serverless-central'
2018-02-06 19:48:49,235 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/jobspec-processor
2018-02-06 19:48:49,236 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/jobspec-processor
2018-02-06 19:48:49,255 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor-serverless-central.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor-serverless-central.git (push)\n'
2018-02-06 19:48:49,281 - devml.mkdata - INFO - Repo Name: b'jobspec-processor'
2018-02-06 19:48:49,308 - devml.mkdata - INFO - Found 114 Messages For Repo: b'jobspec-processor'
2018-02-06 19:48:49,311 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_api
2018-02-06 19:48:49,312 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor_api
2018-02-06 19:48:49,326 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/jobspec-processor.git (fetch)\norigin\tgit@github.com:AtomicConductor/jobspec-processor.git (push)\n'
2018-02-06 19:48:49,348 - devml.mkdata - INFO - Repo Name: b'conductor_api'
2018-02-06 19:48:49,376 - devml.mkdata - INFO - Found 401 Messages For Repo: b'conductor_api'
2018-02-06 19:48:49,378 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/terraform-aws-nomad
2018-02-06 19:48:49,379 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/terraform-aws-nomad
2018-02-06 19:48:49,393 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor_api.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor_api.git (push)\n'
2018-02-06 19:48:49,415 - devml.mkdata - INFO - Repo Name: b'terraform-aws-nomad'
2018-02-06 19:48:49,436 - devml.mkdata - INFO - Found 89 Messages For Repo: b'terraform-aws-nomad'
2018-02-06 19:48:49,439 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/cio_resource_controller
2018-02-06 19:48:49,439 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/cio_resource_controller
2018-02-06 19:48:49,454 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/terraform-aws-nomad.git (fetch)\norigin\tgit@github.com:AtomicConductor/terraform-aws-nomad.git (push)\n'
2018-02-06 19:48:49,474 - devml.mkdata - INFO - Repo Name: b'cio_resource_controller'
2018-02-06 19:48:49,505 - devml.mkdata - INFO - Found 8 Messages For Repo: b'cio_resource_controller'
2018-02-06 19:48:49,509 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/gae-setuptools
2018-02-06 19:48:49,510 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/gae-setuptools
2018-02-06 19:48:49,531 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/cio_resource_controller.git (fetch)\norigin\tgit@github.com:AtomicConductor/cio_resource_controller.git (push)\n'
2018-02-06 19:48:49,560 - devml.mkdata - INFO - Repo Name: b'gae-setuptools'
2018-02-06 19:48:49,582 - devml.mkdata - INFO - Found 18 Messages For Repo: b'gae-setuptools'
2018-02-06 19:48:49,585 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/terraform-modules
2018-02-06 19:48:49,586 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/terraform-modules
2018-02-06 19:48:49,605 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/gae-setuptools.git (fetch)\norigin\tgit@github.com:AtomicConductor/gae-setuptools.git (push)\n'
2018-02-06 19:48:49,630 - devml.mkdata - INFO - Repo Name: b'terraform-modules'
2018-02-06 19:48:49,660 - devml.mkdata - INFO - Found 32 Messages For Repo: b'terraform-modules'
2018-02-06 19:48:49,663 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-syncman
2018-02-06 19:48:49,664 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor-syncman
2018-02-06 19:48:49,681 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/terraform-modules.git (fetch)\norigin\tgit@github.com:AtomicConductor/terraform-modules.git (push)\n'
2018-02-06 19:48:49,707 - devml.mkdata - INFO - Repo Name: b'conductor-syncman'
2018-02-06 19:48:49,734 - devml.mkdata - INFO - Found 52 Messages For Repo: b'conductor-syncman'
2018-02-06 19:48:49,737 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/serverless-api
2018-02-06 19:48:49,738 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/serverless-api
2018-02-06 19:48:49,756 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor-syncman.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor-syncman.git (push)\n'
2018-02-06 19:48:49,785 - devml.mkdata - INFO - Repo Name: b'serverless-api'
2018-02-06 19:48:49,811 - devml.mkdata - INFO - Found 10 Messages For Repo: b'serverless-api'
2018-02-06 19:48:49,814 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/containers
2018-02-06 19:48:49,815 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/containers
2018-02-06 19:48:49,834 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/serverless-api.git (fetch)\norigin\tgit@github.com:AtomicConductor/serverless-api.git (push)\n'
2018-02-06 19:48:49,861 - devml.mkdata - INFO - Repo Name: b'containers'
2018-02-06 19:48:49,890 - devml.mkdata - INFO - Found 213 Messages For Repo: b'containers'
2018-02-06 19:48:49,892 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/jenkins
2018-02-06 19:48:49,893 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/jenkins
2018-02-06 19:48:49,908 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/containers.git (fetch)\norigin\tgit@github.com:AtomicConductor/containers.git (push)\n'
2018-02-06 19:48:49,927 - devml.mkdata - INFO - Repo Name: b'jenkins'
2018-02-06 19:48:49,951 - devml.mkdata - INFO - Found 91 Messages For Repo: b'jenkins'
2018-02-06 19:48:49,953 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/web_site
2018-02-06 19:48:49,954 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/web_site
2018-02-06 19:48:49,971 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/jenkins.git (fetch)\norigin\tgit@github.com:AtomicConductor/jenkins.git (push)\n'
2018-02-06 19:48:49,996 - devml.mkdata - INFO - Repo Name: b'web_site'
2018-02-06 19:48:50,019 - devml.mkdata - INFO - Found 5 Messages For Repo: b'web_site'
2018-02-06 19:48:50,021 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/infrastructure
2018-02-06 19:48:50,023 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/infrastructure
2018-02-06 19:48:50,039 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/web_site.git (fetch)\norigin\tgit@github.com:AtomicConductor/web_site.git (push)\n'
2018-02-06 19:48:50,065 - devml.mkdata - INFO - Repo Name: b'infrastructure'
2018-02-06 19:48:50,087 - devml.mkdata - INFO - Found 35 Messages For Repo: b'infrastructure'
2018-02-06 19:48:50,090 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/webapp_functional_automation_tests
2018-02-06 19:48:50,092 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/webapp_functional_automation_tests
2018-02-06 19:48:50,111 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/infrastructure.git (fetch)\norigin\tgit@github.com:AtomicConductor/infrastructure.git (push)\n'
2018-02-06 19:48:50,137 - devml.mkdata - INFO - Repo Name: b'webapp_functional_automation_tests'
2018-02-06 19:48:50,160 - devml.mkdata - INFO - Found 31 Messages For Repo: b'webapp_functional_automation_tests'
2018-02-06 19:48:50,162 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_pyrmq
2018-02-06 19:48:50,163 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor_pyrmq
2018-02-06 19:48:50,179 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/webapp_functional_automation_tests.git (fetch)\norigin\tgit@github.com:AtomicConductor/webapp_functional_automation_tests.git (push)\n'
2018-02-06 19:48:50,205 - devml.mkdata - INFO - Repo Name: b'conductor_pyrmq'
2018-02-06 19:48:50,227 - devml.mkdata - INFO - Found 11 Messages For Repo: b'conductor_pyrmq'
2018-02-06 19:48:50,230 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/accounts_service
2018-02-06 19:48:50,230 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/accounts_service
2018-02-06 19:48:50,246 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor_pyrmq.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor_pyrmq.git (push)\n'
2018-02-06 19:48:50,268 - devml.mkdata - INFO - Repo Name: b'accounts_service'
2018-02-06 19:48:50,294 - devml.mkdata - INFO - Found 157 Messages For Repo: b'accounts_service'
2018-02-06 19:48:50,297 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-projecttemplate
2018-02-06 19:48:50,298 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor-projecttemplate
2018-02-06 19:48:50,315 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/accounts_service.git (fetch)\norigin\tgit@github.com:AtomicConductor/accounts_service.git (push)\n'
2018-02-06 19:48:50,340 - devml.mkdata - INFO - Repo Name: b'conductor-projecttemplate'
2018-02-06 19:48:50,363 - devml.mkdata - INFO - Found 15 Messages For Repo: b'conductor-projecttemplate'
2018-02-06 19:48:50,367 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/terraform-aws-consul
2018-02-06 19:48:50,368 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/terraform-aws-consul
2018-02-06 19:48:50,386 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor-projecttemplate.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor-projecttemplate.git (push)\n'
2018-02-06 19:48:50,411 - devml.mkdata - INFO - Repo Name: b'terraform-aws-consul'
2018-02-06 19:48:50,434 - devml.mkdata - INFO - Found 12 Messages For Repo: b'terraform-aws-consul'
2018-02-06 19:48:50,437 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/importcentral
2018-02-06 19:48:50,437 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/importcentral
2018-02-06 19:48:50,455 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/terraform-aws-consul.git (fetch)\norigin\tgit@github.com:AtomicConductor/terraform-aws-consul.git (push)\n'
2018-02-06 19:48:50,478 - devml.mkdata - INFO - Repo Name: b'importcentral'
2018-02-06 19:48:50,498 - devml.mkdata - INFO - Found 10 Messages For Repo: b'importcentral'
2018-02-06 19:48:50,501 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_exrmq
2018-02-06 19:48:50,502 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor_exrmq
2018-02-06 19:48:50,520 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/importcentral.git (fetch)\norigin\tgit@github.com:AtomicConductor/importcentral.git (push)\n'
2018-02-06 19:48:50,546 - devml.mkdata - INFO - Repo Name: b'conductor_exrmq'
2018-02-06 19:48:50,568 - devml.mkdata - INFO - Found 17 Messages For Repo: b'conductor_exrmq'
2018-02-06 19:48:50,571 - devml.mkdata - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-storage-step-poller
2018-02-06 19:48:50,572 - devml.mkdata - INFO - Processing Repo: /Users/noahgift/Desktop/AtomicConductor/conductor-storage-step-poller
2018-02-06 19:48:50,589 - devml.mkdata - INFO - guid: b'origin\tgit@github.com:AtomicConductor/conductor_exrmq.git (fetch)\norigin\tgit@github.com:AtomicConductor/conductor_exrmq.git (push)\n'
2018-02-06 19:48:50,614 - devml.mkdata - INFO - Repo Name: b'conductor-storage-step-poller'
2018-02-06 19:48:50,638 - devml.mkdata - INFO - Found 15 Messages For Repo: b'conductor-storage-step-poller'
2018-02-06 19:48:50,641 - devml.mkdata - INFO - Found a total log entries: 8152
2018-02-06 19:48:50,706 - devml.mkdata - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor-storage-step-poller

In [4]:
df.head()


Out[4]:
author_email author_name id message repo commits
date
2018-02-02 15:28:39 francoislebel@gmail.com Francois Lebel c795b2994a4720ee788fb9c1286cd913bee82799 Fix variable name that didn't get refactored i... b'conductor_ae' 1
2018-02-02 11:43:15 francoislebel@gmail.com Francois Lebel 035c94554e16811ee4f95bb318aa12c383b35fac Fix variable name that didn't get refactored i... b'conductor_ae' 1
2018-02-01 16:42:59 lschlosser@atomicfiction.com Lawrence Schlosser ef1c7c0a83174d816d206cdb24567e0934579646 CT-104 Removed Role 0 requirement for global t... b'conductor_ae' 1
2018-01-29 16:57:14 will@conductortech.com Will McDonald 14d1bca7596bae3a3772d5c6b17a8842a617f54c CT-97 refactoring a bit now that the licensing... b'conductor_ae' 1
2018-01-29 16:05:33 will@conductortech.com Will McDonald 9f55784d6911cff37a0297bf999b37bc4690f4ea CT-97 fixing whitespace issue b'conductor_ae' 1

In [5]:
df_author_ud = stats.author_unique_active_days(df)
df_author_ud = df_author_ud[df_author_ud["active_ratio"] <1]

In [6]:
df_author_ud.sort_values(by="active_ratio",ascending=False,inplace=True)
df_author_ud.head(20)


Out[6]:
author_name active_days active_duration active_ratio
36 flebel 7 8 days 0.88
3 Fabricio Matías Quagliariello 31 50 days 0.62
42 kennedy behrman 15 25 days 0.60
33 colivares82 37 65 days 0.57
8 James Mayfield 305 621 days 0.49
44 kr.behrman@gmail.com 35 71 days 0.49
19 Noah Gift 49 106 days 0.46
17 Martin Rhoads 92 212 days 0.43
40 justinonstine 335 795 days 0.42
12 Julian Mann 64 168 days 0.38
4 Francois Lebel 109 290 days 0.38
15 Justin Stokman 58 160 days 0.36
26 Roman Naumenko 67 192 days 0.35
13 Justin 11 35 days 0.31
5 Greg Denton 60 211 days 0.28
16 Lawrence Schlosser 273 1015 days 0.27
2 Edgar Flores 78 313 days 0.25
24 Robert Jordan 92 375 days 0.25
32 caubert 7 31 days 0.23
29 Will McDonald 37 177 days 0.21

In [7]:
sns.barplot(y="author_name", x="active_ratio", data=df_author_ud.head(20))


Out[7]:
<matplotlib.axes._subplots.AxesSubplot at 0x1080abd68>

In [8]:
df_author_ud.describe()


Out[8]:
active_days active_duration active_ratio
count 35.000000 35 35.000000
mean 60.028571 246 days 10:17:08.571428 0.272000
std 85.637913 253 days 18:57:26.948470 0.209689
min 2.000000 8 days 00:00:00 0.010000
25% 8.500000 85 days 12:00:00 0.100000
50% 31.000000 177 days 00:00:00 0.250000
75% 65.500000 285 days 12:00:00 0.400000
max 335.000000 1015 days 00:00:00 0.880000

In [9]:
stats.author_commit_count(df)


Out[9]:
author_name commits
0 James Mayfield 1390
1 justinonstine 1306
2 RobertAtomic 759
3 Lawrence Schlosser 710
4 Francois Lebel 581
5 Noah Gift 496
6 Martin Rhoads 416
7 Roman Naumenko 328
8 Robert Jordan 253
9 Greg Denton 240
10 Edgar Flores 193
11 Fabricio Matías Quagliariello 168
12 Julian Mann 151
13 Justin Stokman 146
14 kr.behrman@gmail.com 129
15 Justin Onstine 127
16 colivares82 106
17 Jenkins 90
18 Carlos Olivares 77
19 Will McDonald 74
20 Philip Carlson 59
21 kennedy behrman 58
22 Justin 48
23 Yevgeniy Brikman 46
24 Scott O 31
25 JUSTIN STOKMAN 27
26 flebel 22
27 caubert 18
28 Rimas Mocevicius 16
29 Chris Targett 14
30 mapaquin 14
31 gruntwork-ci 13
32 Josh Padnick 8
33 Matt Calhoun 7
34 kbehrman 7
35 jamesm-cio 5
36 conductor 3
37 gregatomic 2
38 kennedy.behrman@sqor.com 2
39 erjo 2
40 Raj Rajen 2
41 Jonah Meijers 2
42 Gustavo Orozco H 1
43 akplayle 1
44 WMDConductor 1
45 lschlosser 1
46 Rimas 1
47 sozawa 1

In [10]:
df2 = df_author_ud.merge(stats.author_commit_count(df))

In [11]:
df2.sort_values(by="commits", ascending=False,inplace=True)
df2.head(25)


Out[11]:
author_name active_days active_duration active_ratio commits
4 James Mayfield 305 621 days 0.49 1390
8 justinonstine 335 795 days 0.42 1306
20 RobertAtomic 186 926 days 0.20 759
15 Lawrence Schlosser 273 1015 days 0.27 710
10 Francois Lebel 109 290 days 0.38 581
6 Noah Gift 49 106 days 0.46 496
7 Martin Rhoads 92 212 days 0.43 416
12 Roman Naumenko 67 192 days 0.35 328
17 Robert Jordan 92 375 days 0.25 253
14 Greg Denton 60 211 days 0.28 240
16 Edgar Flores 78 313 days 0.25 193
1 Fabricio Matías Quagliariello 31 50 days 0.62 168
9 Julian Mann 64 168 days 0.38 151
11 Justin Stokman 58 160 days 0.36 146
5 kr.behrman@gmail.com 35 71 days 0.49 129
23 Justin Onstine 13 102 days 0.13 127
3 colivares82 37 65 days 0.57 106
21 Jenkins 21 105 days 0.20 90
19 Will McDonald 37 177 days 0.21 74
22 Philip Carlson 39 202 days 0.19 59
2 kennedy behrman 15 25 days 0.60 58
13 Justin 11 35 days 0.31 48
29 Yevgeniy Brikman 8 196 days 0.04 46
27 Scott O 16 281 days 0.06 31
25 JUSTIN STOKMAN 11 100 days 0.11 27

In [12]:
df2['commits/active_day'] = df2["commits"]/df2["active_days"]
df2.sort_values(by="commits/active_day", ascending=False,inplace=True)
df2.head(25)


Out[12]:
author_name active_days active_duration active_ratio commits commits/active_day
6 Noah Gift 49 106 days 0.46 496 10.122449
23 Justin Onstine 13 102 days 0.13 127 9.769231
29 Yevgeniy Brikman 8 196 days 0.04 46 5.750000
1 Fabricio Matías Quagliariello 31 50 days 0.62 168 5.419355
10 Francois Lebel 109 290 days 0.38 581 5.330275
12 Roman Naumenko 67 192 days 0.35 328 4.895522
4 James Mayfield 305 621 days 0.49 1390 4.557377
7 Martin Rhoads 92 212 days 0.43 416 4.521739
13 Justin 11 35 days 0.31 48 4.363636
21 Jenkins 21 105 days 0.20 90 4.285714
20 RobertAtomic 186 926 days 0.20 759 4.080645
14 Greg Denton 60 211 days 0.28 240 4.000000
8 justinonstine 335 795 days 0.42 1306 3.898507
2 kennedy behrman 15 25 days 0.60 58 3.866667
5 kr.behrman@gmail.com 35 71 days 0.49 129 3.685714
28 gruntwork-ci 4 114 days 0.04 13 3.250000
0 flebel 7 8 days 0.88 22 3.142857
3 colivares82 37 65 days 0.57 106 2.864865
26 mapaquin 5 54 days 0.09 14 2.800000
17 Robert Jordan 92 375 days 0.25 253 2.750000
15 Lawrence Schlosser 273 1015 days 0.27 710 2.600733
18 caubert 7 31 days 0.23 18 2.571429
11 Justin Stokman 58 160 days 0.36 146 2.517241
16 Edgar Flores 78 313 days 0.25 193 2.474359
25 JUSTIN STOKMAN 11 100 days 0.11 27 2.454545

In [13]:
df3 = df_author_ud.merge(stats.author_commit_count(df))
df3 = df3[df3["active_days"] >12]
df3.loc[df3.author_name == "Noah Gift", 'active_duration'] = df3.loc[df3.author_name == "Noah Gift", 'active_duration']-pd.Timedelta('40 days')
df3.loc[df3.author_name == "kr.behrman@gmail.com", 'active_duration'] = df3.loc[df3.author_name == "kr.behrman@gmail.com", 'active_duration']-pd.Timedelta('29 days')
df3["active_ratio"] = \
        round(df3["active_days"]/df3["active_duration"].dt.days, 2)
df3['commits/active_day'] = df3["commits"]/df3["active_days"]
df3.sort_values(by="active_ratio", ascending=False,inplace=True)
df3.head(25)


Out[13]:
author_name active_days active_duration active_ratio commits commits/active_day
5 kr.behrman@gmail.com 35 42 days 0.83 129 3.685714
6 Noah Gift 49 66 days 0.74 496 10.122449
1 Fabricio Matías Quagliariello 31 50 days 0.62 168 5.419355
2 kennedy behrman 15 25 days 0.60 58 3.866667
3 colivares82 37 65 days 0.57 106 2.864865
4 James Mayfield 305 621 days 0.49 1390 4.557377
7 Martin Rhoads 92 212 days 0.43 416 4.521739
8 justinonstine 335 795 days 0.42 1306 3.898507
9 Julian Mann 64 168 days 0.38 151 2.359375
10 Francois Lebel 109 290 days 0.38 581 5.330275
11 Justin Stokman 58 160 days 0.36 146 2.517241
12 Roman Naumenko 67 192 days 0.35 328 4.895522
14 Greg Denton 60 211 days 0.28 240 4.000000
15 Lawrence Schlosser 273 1015 days 0.27 710 2.600733
16 Edgar Flores 78 313 days 0.25 193 2.474359
17 Robert Jordan 92 375 days 0.25 253 2.750000
19 Will McDonald 37 177 days 0.21 74 2.000000
20 RobertAtomic 186 926 days 0.20 759 4.080645
21 Jenkins 21 105 days 0.20 90 4.285714
22 Philip Carlson 39 202 days 0.19 59 1.512821
23 Justin Onstine 13 102 days 0.13 127 9.769231
27 Scott O 16 281 days 0.06 31 1.937500

In [14]:
df4 = df3[df3["active_days"] >12]
sns.barplot(y="author_name", x="active_ratio", data=df4.head(20))


Out[14]:
<matplotlib.axes._subplots.AxesSubplot at 0x116219b00>

In [15]:
from devml import code_counts
counts_df = code_counts.create_org_df("/Users/noahgift/Desktop/AtomicConductor")


2018-02-06 19:53:10,811 - devml.code_counts - INFO - original cwd /Users/noahgift/src/devml/notebooks
2018-02-06 19:53:10,812 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_ae
2018-02-06 19:53:10,813 - devml.code_counts - INFO - Processing path
2018-02-06 19:53:10,814 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor_ae]
2018-02-06 19:55:41,495 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor_ae
2018-02-06 19:55:41,497 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-job-convertor
2018-02-06 19:55:41,497 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:41,498 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor-job-convertor]
2018-02-06 19:55:41,641 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor-job-convertor
2018-02-06 19:55:41,643 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-computeprovider
2018-02-06 19:55:41,644 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:41,645 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor-computeprovider]
2018-02-06 19:55:42,075 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor-computeprovider
2018-02-06 19:55:42,077 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/admin_client
2018-02-06 19:55:42,078 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:42,079 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/admin_client]
2018-02-06 19:55:42,243 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/admin_client
2018-02-06 19:55:42,246 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-syncworker
2018-02-06 19:55:42,246 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:42,247 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor-syncworker]
2018-02-06 19:55:42,623 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor-syncworker
2018-02-06 19:55:42,625 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/ups
2018-02-06 19:55:42,626 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:42,626 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/ups]
2018-02-06 19:55:42,713 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/ups
2018-02-06 19:55:42,716 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_tools
2018-02-06 19:55:42,716 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:42,717 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor_tools]
2018-02-06 19:55:43,049 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor_tools
2018-02-06 19:55:43,051 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/escalator
2018-02-06 19:55:43,051 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:43,052 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/escalator]
2018-02-06 19:55:43,316 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/escalator
2018-02-06 19:55:43,318 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/cio_appliance
2018-02-06 19:55:43,319 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:43,320 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/cio_appliance]
2018-02-06 19:55:43,394 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/cio_appliance
2018-02-06 19:55:43,397 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/python-common
2018-02-06 19:55:43,397 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:43,398 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/python-common]
2018-02-06 19:55:43,843 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/python-common
2018-02-06 19:55:43,845 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-job-poller
2018-02-06 19:55:43,845 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:43,846 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor-job-poller]
2018-02-06 19:55:43,944 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor-job-poller
2018-02-06 19:55:43,946 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/onboarding_app
2018-02-06 19:55:43,947 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:43,948 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/onboarding_app]
2018-02-06 19:55:43,965 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/onboarding_app
2018-02-06 19:55:43,967 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/static_website
2018-02-06 19:55:43,968 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:43,969 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/static_website]
2018-02-06 19:55:44,008 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/static_website
2018-02-06 19:55:44,011 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/fileio_service
2018-02-06 19:55:44,012 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:44,013 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/fileio_service]
2018-02-06 19:55:44,135 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/fileio_service
2018-02-06 19:55:44,137 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-sns-invoke-nomad
2018-02-06 19:55:44,138 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:44,139 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor-sns-invoke-nomad]
2018-02-06 19:55:44,246 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor-sns-invoke-nomad
2018-02-06 19:55:44,249 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/gke_python_template
2018-02-06 19:55:44,250 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:44,250 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/gke_python_template]
2018-02-06 19:55:45,495 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/gke_python_template
2018-02-06 19:55:45,497 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-yesmad
2018-02-06 19:55:45,498 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:45,499 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor-yesmad]
2018-02-06 19:55:45,625 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor-yesmad
2018-02-06 19:55:45,627 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/api_frontend
2018-02-06 19:55:45,628 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:45,629 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/api_frontend]
2018-02-06 19:55:45,648 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/api_frontend
2018-02-06 19:55:45,651 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-billing
2018-02-06 19:55:45,652 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:45,653 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor-billing]
2018-02-06 19:55:46,408 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor-billing
2018-02-06 19:55:46,409 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-switchman
2018-02-06 19:55:46,410 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:46,411 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor-switchman]
2018-02-06 19:55:46,931 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor-switchman
2018-02-06 19:55:46,932 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-preemption
2018-02-06 19:55:46,933 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:46,934 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor-preemption]
2018-02-06 19:55:47,150 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor-preemption
2018-02-06 19:55:47,152 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-metastep
2018-02-06 19:55:47,153 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:47,154 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor-metastep]
2018-02-06 19:55:47,264 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor-metastep
2018-02-06 19:55:47,267 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/Conductor_fe
2018-02-06 19:55:47,267 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:47,268 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/Conductor_fe]
2018-02-06 19:55:47,289 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/Conductor_fe
2018-02-06 19:55:47,292 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-platform
2018-02-06 19:55:47,293 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:47,294 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor-platform]
2018-02-06 19:55:47,878 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor-platform
2018-02-06 19:55:47,879 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-job-trigger
2018-02-06 19:55:47,880 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:47,881 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor-job-trigger]
2018-02-06 19:55:47,949 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor-job-trigger
2018-02-06 19:55:47,951 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/columbia
2018-02-06 19:55:47,952 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:47,953 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/columbia]
2018-02-06 19:55:47,972 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/columbia
2018-02-06 19:55:47,975 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-storage-api
2018-02-06 19:55:47,976 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:47,977 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor-storage-api]
2018-02-06 19:55:48,257 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor-storage-api
2018-02-06 19:55:48,259 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_ee
2018-02-06 19:55:48,259 - devml.code_counts - INFO - Processing path
2018-02-06 19:55:48,260 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor_ee]
2018-02-06 19:56:21,292 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor_ee
2018-02-06 19:56:21,294 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/web_client
2018-02-06 19:56:21,295 - devml.code_counts - INFO - Processing path
2018-02-06 19:56:21,295 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/web_client]
2018-02-06 19:56:21,320 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/web_client
2018-02-06 19:56:21,322 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_rmqcluster
2018-02-06 19:56:21,323 - devml.code_counts - INFO - Processing path
2018-02-06 19:56:21,324 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor_rmqcluster]
2018-02-06 19:56:21,344 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor_rmqcluster
2018-02-06 19:56:21,347 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_client
2018-02-06 19:56:21,348 - devml.code_counts - INFO - Processing path
2018-02-06 19:56:21,349 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor_client]
2018-02-06 20:01:08,154 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor_client
2018-02-06 20:01:08,156 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_datastore_lib
2018-02-06 20:01:08,157 - devml.code_counts - INFO - Processing path
2018-02-06 20:01:08,158 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor_datastore_lib]
2018-02-06 20:01:08,175 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor_datastore_lib
2018-02-06 20:01:08,178 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/google-app-engine-python
2018-02-06 20:01:08,178 - devml.code_counts - INFO - Processing path
2018-02-06 20:01:08,179 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/google-app-engine-python]
2018-02-06 20:05:46,002 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/google-app-engine-python
2018-02-06 20:05:46,004 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/atlantis
2018-02-06 20:05:46,005 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:46,006 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/atlantis]
2018-02-06 20:05:46,029 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/atlantis
2018-02-06 20:05:46,032 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_inf
2018-02-06 20:05:46,033 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:46,034 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor_inf]
2018-02-06 20:05:46,301 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor_inf
2018-02-06 20:05:46,303 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/gcp_scale
2018-02-06 20:05:46,304 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:46,305 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/gcp_scale]
2018-02-06 20:05:46,695 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/gcp_scale
2018-02-06 20:05:46,697 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/neckbeard
2018-02-06 20:05:46,698 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:46,699 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/neckbeard]
2018-02-06 20:05:46,723 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/neckbeard
2018-02-06 20:05:46,726 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/cicd-test
2018-02-06 20:05:46,727 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:46,728 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/cicd-test]
2018-02-06 20:05:46,760 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/cicd-test
2018-02-06 20:05:46,763 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-serverless-central
2018-02-06 20:05:46,764 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:46,765 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor-serverless-central]
2018-02-06 20:05:46,973 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor-serverless-central
2018-02-06 20:05:46,975 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/jobspec-processor
2018-02-06 20:05:46,975 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:46,976 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/jobspec-processor]
2018-02-06 20:05:47,193 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/jobspec-processor
2018-02-06 20:05:47,195 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_api
2018-02-06 20:05:47,196 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:47,197 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor_api]
2018-02-06 20:05:47,290 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor_api
2018-02-06 20:05:47,291 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/terraform-aws-nomad
2018-02-06 20:05:47,292 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:47,293 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/terraform-aws-nomad]
2018-02-06 20:05:47,371 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/terraform-aws-nomad
2018-02-06 20:05:47,373 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/cio_resource_controller
2018-02-06 20:05:47,374 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:47,375 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/cio_resource_controller]
2018-02-06 20:05:47,393 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/cio_resource_controller
2018-02-06 20:05:47,394 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/gae-setuptools
2018-02-06 20:05:47,395 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:47,396 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/gae-setuptools]
2018-02-06 20:05:47,437 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/gae-setuptools
2018-02-06 20:05:47,439 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/terraform-modules
2018-02-06 20:05:47,440 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:47,441 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/terraform-modules]
2018-02-06 20:05:47,681 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/terraform-modules
2018-02-06 20:05:47,683 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-syncman
2018-02-06 20:05:47,683 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:47,684 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor-syncman]
2018-02-06 20:05:47,827 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor-syncman
2018-02-06 20:05:47,829 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/serverless-api
2018-02-06 20:05:47,830 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:47,831 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/serverless-api]
2018-02-06 20:05:47,902 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/serverless-api
2018-02-06 20:05:47,904 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/containers
2018-02-06 20:05:47,905 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:47,905 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/containers]
2018-02-06 20:05:48,567 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/containers
2018-02-06 20:05:48,569 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/jenkins
2018-02-06 20:05:48,570 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:48,571 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/jenkins]
2018-02-06 20:05:48,634 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/jenkins
2018-02-06 20:05:48,635 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/web_site
2018-02-06 20:05:48,636 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:48,637 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/web_site]
2018-02-06 20:05:48,652 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/web_site
2018-02-06 20:05:48,655 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/infrastructure
2018-02-06 20:05:48,655 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:48,656 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/infrastructure]
2018-02-06 20:05:48,740 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/infrastructure
2018-02-06 20:05:48,742 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/webapp_functional_automation_tests
2018-02-06 20:05:48,743 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:48,743 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/webapp_functional_automation_tests]
2018-02-06 20:05:51,925 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/webapp_functional_automation_tests
2018-02-06 20:05:51,926 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_pyrmq
2018-02-06 20:05:51,927 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:51,928 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor_pyrmq]
2018-02-06 20:05:52,055 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor_pyrmq
2018-02-06 20:05:52,057 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/accounts_service
2018-02-06 20:05:52,058 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:52,058 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/accounts_service]
2018-02-06 20:05:52,094 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/accounts_service
2018-02-06 20:05:52,096 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-projecttemplate
2018-02-06 20:05:52,097 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:52,098 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor-projecttemplate]
2018-02-06 20:05:52,161 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor-projecttemplate
2018-02-06 20:05:52,163 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/terraform-aws-consul
2018-02-06 20:05:52,164 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:52,165 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/terraform-aws-consul]
2018-02-06 20:05:52,198 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/terraform-aws-consul
2018-02-06 20:05:52,200 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/importcentral
2018-02-06 20:05:52,201 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:52,202 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/importcentral]
2018-02-06 20:05:52,232 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/importcentral
2018-02-06 20:05:52,234 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor_exrmq
2018-02-06 20:05:52,235 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:52,236 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor_exrmq]
2018-02-06 20:05:52,255 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor_exrmq
2018-02-06 20:05:52,258 - devml.code_counts - INFO - Found repo: /Users/noahgift/Desktop/AtomicConductor/conductor-storage-step-poller
2018-02-06 20:05:52,259 - devml.code_counts - INFO - Processing path
2018-02-06 20:05:52,260 - devml.code_counts - INFO - Running lines/python cmd: [git ls-files | grep py | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep '^author '; done | sort -f | uniq -ic | sort -n] at path [/Users/noahgift/Desktop/AtomicConductor/conductor-storage-step-poller]
2018-02-06 20:05:52,391 - devml.code_counts - INFO - Changing back to original cwd: /Users/noahgift/src/devml/notebooks from /Users/noahgift/Desktop/AtomicConductor/conductor-storage-step-poller

In [19]:
counts_df.groupby("author_name").describe()


Out[19]:
line_count_python
count mean std min 25% 50% 75% max
author_name
Chris Targett 1.0 81.000000 NaN 81.0 81.00 81.0 81.00 81.0
Edgar Flores 4.0 831.000000 984.307201 7.0 331.75 530.5 1029.75 2256.0
Francois Lebel 15.0 85303.066667 329391.067539 5.0 11.50 59.0 468.00 1275980.0
Greg Denton 2.0 478.000000 599.626550 54.0 266.00 478.0 690.00 902.0
James Mayfield 7.0 457.142857 554.093081 21.0 66.00 99.0 728.50 1491.0
Jenkins 1.0 613.000000 NaN 613.0 613.00 613.0 613.00 613.0
Julian Mann 1.0 22.000000 NaN 22.0 22.00 22.0 22.00 22.0
Justin 2.0 299.000000 414.364574 6.0 152.50 299.0 445.50 592.0
Justin Onstine 3.0 326.000000 506.479022 7.0 34.00 61.0 485.50 910.0
Lawrence Schlosser 4.0 6381.750000 5233.727504 1424.0 2098.25 6363.0 10646.50 11377.0
Martin Rhoads 3.0 1460.666667 874.853893 650.0 997.00 1344.0 1866.00 2388.0
Noah Gift 13.0 515.461538 460.949675 7.0 156.00 490.0 655.00 1697.0
Robert Jordan 11.0 737.545455 746.024445 10.0 212.00 440.0 1028.50 2422.0
RobertAtomic 4.0 286811.250000 569847.292189 7.0 188.50 2832.0 289454.75 1141574.0
Roman Naumenko 12.0 117.333333 132.787139 1.0 66.00 81.0 114.50 512.0
Scott O 1.0 383.000000 NaN 383.0 383.00 383.0 383.00 383.0
Will McDonald 5.0 85.000000 113.817837 1.0 1.00 64.0 81.00 278.0
conductor 1.0 11.000000 NaN 11.0 11.00 11.0 11.00 11.0
erjo 1.0 3.000000 NaN 3.0 3.00 3.0 3.00 3.0
flebel 5.0 45.000000 68.084506 1.0 6.00 26.0 27.00 165.0
justinonstine 6.0 3213.166667 3977.561234 25.0 583.25 2132.5 3686.25 10718.0
kbehrman 1.0 2.000000 NaN 2.0 2.00 2.0 2.00 2.0
kennedy behrman 1.0 54.000000 NaN 54.0 54.00 54.0 54.00 54.0
kennedy.behrman@sqor.com 1.0 5.000000 NaN 5.0 5.00 5.0 5.00 5.0
kr.behrman@gmail.com 8.0 613.000000 1087.445105 7.0 69.50 181.5 419.75 3177.0
lschlosser 1.0 73.000000 NaN 73.0 73.00 73.0 73.00 73.0

In [78]:
lines_df = counts_df.groupby("author_name").sum()
lines_df


Out[78]:
line_count_python
author_name
Chris Targett 81
Edgar Flores 3324
Francois Lebel 1279546
Greg Denton 956
James Mayfield 3200
Jenkins 613
Julian Mann 22
Justin 598
Justin Onstine 978
Lawrence Schlosser 25527
Martin Rhoads 4382
Noah Gift 6701
Robert Jordan 8113
RobertAtomic 1147245
Roman Naumenko 1408
Scott O 383
Will McDonald 425
conductor 11
erjo 3
flebel 225
justinonstine 19279
kbehrman 2
kennedy behrman 54
kennedy.behrman@sqor.com 5
kr.behrman@gmail.com 4904
lschlosser 73

In [155]:
lines_df = pd.DataFrame(counts_df.groupby("author_name", as_index=False).sum())

In [156]:
df5 = df4.merge(lines_df)

In [157]:
lines_df


Out[157]:
author_name line_count_python
0 Chris Targett 81
1 Edgar Flores 3324
2 Francois Lebel 1279546
3 Greg Denton 956
4 James Mayfield 3200
5 Jenkins 613
6 Julian Mann 22
7 Justin 598
8 Justin Onstine 978
9 Lawrence Schlosser 25527
10 Martin Rhoads 4382
11 Noah Gift 6701
12 Robert Jordan 8113
13 RobertAtomic 1147245
14 Roman Naumenko 1408
15 Scott O 383
16 Will McDonald 425
17 conductor 11
18 erjo 3
19 flebel 225
20 justinonstine 19279
21 kbehrman 2
22 kennedy behrman 54
23 kennedy.behrman@sqor.com 5
24 kr.behrman@gmail.com 4904
25 lschlosser 73

In [158]:
val = counts_df.groupby("author_name").median()
val = val.to_dict()['line_count_python']
median_lines_df = pd.DataFrame(list(val.items()), columns=["author_name", "median_lines_python_repo"])
median_lines_df.head()


Out[158]:
author_name median_lines_python_repo
0 Chris Targett 81.0
1 Edgar Flores 530.5
2 Francois Lebel 59.0
3 Greg Denton 478.0
4 James Mayfield 99.0

In [159]:
val = counts_df.groupby("author_name").count()
val = val.to_dict()['line_count_python']
count_repo_df = pd.DataFrame(list(val.items()), columns=["author_name", "repos"])
count_repo_df.head()


Out[159]:
author_name repos
0 Chris Targett 1
1 Edgar Flores 4
2 Francois Lebel 15
3 Greg Denton 2
4 James Mayfield 7

In [160]:
#count_repo_df['median_lines_python_per_repo'] = count_repo_df.index
count_repo_df["median/repo"] = median_lines_df["median_lines_python_repo"]
count_repo_df["median_est_total_lines"] = round(median_lines_df["median_lines_python_repo"]*count_repo_df["repos"],2)

In [164]:
df6 = df5.merge(count_repo_df)
df6


Out[164]:
author_name active_days active_duration active_ratio commits commits/active_day line_count_python repos median/repo median_est_total_lines
0 kr.behrman@gmail.com 35 42 days 0.83 129 3.685714 4904 8 181.5 1452.0
1 Noah Gift 49 66 days 0.74 496 10.122449 6701 13 490.0 6370.0
2 kennedy behrman 15 25 days 0.60 58 3.866667 54 1 54.0 54.0
3 James Mayfield 305 621 days 0.49 1390 4.557377 3200 7 99.0 693.0
4 Martin Rhoads 92 212 days 0.43 416 4.521739 4382 3 1344.0 4032.0
5 justinonstine 335 795 days 0.42 1306 3.898507 19279 6 2132.5 12795.0
6 Julian Mann 64 168 days 0.38 151 2.359375 22 1 22.0 22.0
7 Francois Lebel 109 290 days 0.38 581 5.330275 1279546 15 59.0 885.0
8 Roman Naumenko 67 192 days 0.35 328 4.895522 1408 12 81.0 972.0
9 Greg Denton 60 211 days 0.28 240 4.000000 956 2 478.0 956.0
10 Lawrence Schlosser 273 1015 days 0.27 710 2.600733 25527 4 6363.0 25452.0
11 Edgar Flores 78 313 days 0.25 193 2.474359 3324 4 530.5 2122.0
12 Robert Jordan 92 375 days 0.25 253 2.750000 8113 11 440.0 4840.0
13 Will McDonald 37 177 days 0.21 74 2.000000 425 5 64.0 320.0
14 RobertAtomic 186 926 days 0.20 759 4.080645 1147245 4 2832.0 11328.0
15 Jenkins 21 105 days 0.20 90 4.285714 613 1 613.0 613.0
16 Justin Onstine 13 102 days 0.13 127 9.769231 978 3 61.0 183.0
17 Scott O 16 281 days 0.06 31 1.937500 383 1 383.0 383.0

In [178]:
df6["median_per_day"] = df6["median_est_total_lines"]/df6["active_days"]
df6.sort_values(by="median_per_day", inplace=True, ascending=False)
df6


Out[178]:
author_name active_days active_duration active_ratio commits commits/active_day line_count_python repos median/repo median_est_total_lines median_per_day
1 Noah Gift 49 66 days 0.74 496 10.122449 6701 13 490.0 6370.0 130.000000
10 Lawrence Schlosser 273 1015 days 0.27 710 2.600733 25527 4 6363.0 25452.0 93.230769
14 RobertAtomic 186 926 days 0.20 759 4.080645 1147245 4 2832.0 11328.0 60.903226
12 Robert Jordan 92 375 days 0.25 253 2.750000 8113 11 440.0 4840.0 52.608696
4 Martin Rhoads 92 212 days 0.43 416 4.521739 4382 3 1344.0 4032.0 43.826087
0 kr.behrman@gmail.com 35 42 days 0.83 129 3.685714 4904 8 181.5 1452.0 41.485714
5 justinonstine 335 795 days 0.42 1306 3.898507 19279 6 2132.5 12795.0 38.194030
15 Jenkins 21 105 days 0.20 90 4.285714 613 1 613.0 613.0 29.190476
11 Edgar Flores 78 313 days 0.25 193 2.474359 3324 4 530.5 2122.0 27.205128
17 Scott O 16 281 days 0.06 31 1.937500 383 1 383.0 383.0 23.937500
9 Greg Denton 60 211 days 0.28 240 4.000000 956 2 478.0 956.0 15.933333
8 Roman Naumenko 67 192 days 0.35 328 4.895522 1408 12 81.0 972.0 14.507463
16 Justin Onstine 13 102 days 0.13 127 9.769231 978 3 61.0 183.0 14.076923
13 Will McDonald 37 177 days 0.21 74 2.000000 425 5 64.0 320.0 8.648649
7 Francois Lebel 109 290 days 0.38 581 5.330275 1279546 15 59.0 885.0 8.119266
2 kennedy behrman 15 25 days 0.60 58 3.866667 54 1 54.0 54.0 3.600000
3 James Mayfield 305 621 days 0.49 1390 4.557377 3200 7 99.0 693.0 2.272131
6 Julian Mann 64 168 days 0.38 151 2.359375 22 1 22.0 22.0 0.343750

In [182]:
sns.distplot(df6["median_per_day"], bins=6)


Out[182]:
<matplotlib.axes._subplots.AxesSubplot at 0x11d7dbda0>

In [173]:
sns.lmplot(x="commits",y="median_est_total_lines", data=df6)


Out[173]:
<seaborn.axisgrid.FacetGrid at 0x11d04d908>

Heatmap Correlation of Features


In [163]:
import matplotlib.pyplot as plt
plt.subplots(figsize=(10,10))
sns.heatmap(df6.corr(), annot=True)


Out[163]:
<matplotlib.axes._subplots.AxesSubplot at 0x116955b38>

In [ ]: