{"id":64403,"name":"improv","description":"Adaptive Platform for Neuroscience Experiments","url":"https://github.com/project-improv/improv","last_synced_at":"2025-09-08T13:11:00.939Z","repository":{"id":38775703,"uuid":"148823779","full_name":"project-improv/improv","owner":"project-improv","description":"Adaptive Platform for Neuroscience Experiments","archived":false,"fork":false,"pushed_at":"2025-06-11T19:27:45.000Z","size":15651,"stargazers_count":40,"open_issues_count":20,"forks_count":13,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-06-11T21:11:21.185Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://project-improv.github.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/project-improv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-09-14T17:55:04.000Z","updated_at":"2025-03-08T01:48:07.000Z","dependencies_parsed_at":"2023-09-23T15:49:10.398Z","dependency_job_id":"57fa965e-5132-4947-b695-9ad2904ea4c8","html_url":"https://github.com/project-improv/improv","commit_stats":{"total_commits":887,"total_committers":22,"mean_commits":40.31818181818182,"dds":0.8218714768883878,"last_synced_commit":"5d3e09788584ab2885cbc9576a8f9408140215cd"},"previous_names":["pearsonlab/improv"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/project-improv/improv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-improv%2Fimprov","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-improv%2Fimprov/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-improv%2Fimprov/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-improv%2Fimprov/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/project-improv","download_url":"https://codeload.github.com/project-improv/improv/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-improv%2Fimprov/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274189439,"owners_count":25237960,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"project-improv","name":"project-improv","uuid":"113712549","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/113712549?v=4","repositories_count":1,"last_synced_at":"2023-03-07T12:50:54.211Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/project-improv","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-17T10:49:03.833Z","updated_at":"2023-03-07T12:50:54.308Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/project-improv","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/project-improv/repositories"},"packages":[{"id":2766147,"name":"improv","ecosystem":"pypi","description":"Platform for adaptive neuroscience experiments","homepage":null,"licenses":"MIT License  Copyright (c) 2019 Pearson Lab at Duke University  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ","normalized_licenses":["Other"],"repository_url":"https://github.com/project-improv/improv","keywords_array":["neuroscience","adaptive","closed loop"],"namespace":null,"versions_count":5,"first_release_published_at":"2023-08-26T20:00:44.941Z","latest_release_published_at":"2024-01-15T20:39:23.000Z","latest_release_number":"0.2.2","last_synced_at":"2025-09-01T16:20:43.429Z","created_at":"2022-04-10T11:18:19.481Z","updated_at":"2025-09-01T16:20:43.429Z","registry_url":"https://pypi.org/project/improv/","install_command":"pip install improv --index-url https://pypi.org/simple","documentation_url":"https://improv.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 3 - Alpha","Intended Audience :: Science/Research","License :: OSI Approved :: MIT License","Operating System :: MacOS :: MacOS X","Operating System :: Microsoft :: Windows","Operating System :: POSIX","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.7","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Programming Language :: Python :: Implementation :: CPython"],"normalized_name":"improv","project_status":null},"repo_metadata":{"uuid":"148823779","full_name":"project-improv/improv","owner":"project-improv","description":"Adaptive Platform for Neuroscience Experiments","archived":false,"fork":false,"pushed_at":"2023-11-02T22:19:13.000Z","size":11563,"stargazers_count":28,"open_issues_count":36,"forks_count":9,"subscribers_count":4,"default_branch":"dev","last_synced_at":"2023-11-02T23:24:45.105Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/project-improv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-09-14T17:55:04.000Z","updated_at":"2023-11-02T23:24:45.106Z","dependencies_parsed_at":"2023-09-23T15:49:10.398Z","dependency_job_id":"57fa965e-5132-4947-b695-9ad2904ea4c8","html_url":"https://github.com/project-improv/improv","commit_stats":{"total_commits":887,"total_committers":22,"mean_commits":40.31818181818182,"dds":0.8218714768883878,"last_synced_commit":"5d3e09788584ab2885cbc9576a8f9408140215cd"},"previous_names":["pearsonlab/improv"],"tags_count":1,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-improv%2Fimprov","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-improv%2Fimprov/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-improv%2Fimprov/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-improv%2Fimprov/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/project-improv","download_url":"https://codeload.github.com/project-improv/improv/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":172188354,"owners_count":9793173,"icon_url":"https://github.com/github.png","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"project-improv","name":"project-improv","uuid":"113712549","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/113712549?v=4","repositories_count":1,"last_synced_at":"2023-03-07T12:50:54.211Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/project-improv","created_at":"2022-11-17T10:49:03.833Z","updated_at":"2023-03-07T12:50:54.308Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/project-improv","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/project-improv/repositories"},"tags":[{"name":"v1.0.0","sha":"a56511584b9a30cb71e73784a7150475a7c8e00c","kind":"commit","published_at":"2021-01-06T21:22:02.000Z","download_url":"https://codeload.github.com/project-improv/improv/tar.gz/v1.0.0","html_url":"https://github.com/project-improv/improv/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-improv%2Fimprov/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-improv%2Fimprov/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2023-11-20T10:00:42.533Z","dependent_packages_count":0,"downloads":31,"downloads_period":"last-month","dependent_repos_count":4,"rankings":{"downloads":47.808846758421346,"dependent_repos_count":7.540962840269394,"dependent_packages_count":9.995259271770403,"stargazers_count":11.700275795094035,"forks_count":11.421908737584568,"docker_downloads_count":null,"average":17.69345068062795},"purl":"pkg:pypi/improv","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/improv","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/improv","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/improv/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2023-05-24T06:33:04.774Z","issues_count":28,"pull_requests_count":77,"avg_time_to_close_issue":40711670.5,"avg_time_to_close_pull_request":8076935.833333333,"issues_closed_count":6,"pull_requests_closed_count":72,"pull_request_authors_count":12,"issue_authors_count":7,"avg_comments_per_issue":0.7142857142857143,"avg_comments_per_pull_request":0.6363636363636364,"merged_pull_requests_count":53,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":24,"past_year_pull_requests_count":37,"past_year_avg_time_to_close_issue":3670797.0,"past_year_avg_time_to_close_pull_request":1116736.09375,"past_year_issues_closed_count":3,"past_year_pull_requests_closed_count":32,"past_year_pull_request_authors_count":8,"past_year_issue_authors_count":5,"past_year_avg_comments_per_issue":0.5416666666666666,"past_year_avg_comments_per_pull_request":1.2162162162162162,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":23},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/improv/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/improv/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/improv/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/improv/related_packages","maintainers":[{"uuid":"hawkwings31","login":"hawkwings31","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://pypi.org/user/hawkwings31/","role":null,"created_at":"2023-02-24T11:08:43.847Z","updated_at":"2023-02-24T11:08:43.847Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/hawkwings31/packages"},{"uuid":"jmxpearson","login":"jmxpearson","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://pypi.org/user/jmxpearson/","role":"Owner","created_at":"2024-02-17T15:24:27.495Z","updated_at":"2024-02-17T15:24:27.495Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/jmxpearson/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":726140,"maintainers_count":308800,"namespaces_count":0,"keywords_count":238245,"github":"pypi","metadata":{"funded_packages_count":50579},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-09-08T05:32:36.857Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},{"id":11650890,"name":"github.com/project-improv/improv","ecosystem":"go","description":null,"homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/project-improv/improv","keywords_array":[],"namespace":null,"versions_count":2,"first_release_published_at":"2023-12-31T22:42:26.000Z","latest_release_published_at":"2024-01-15T20:25:00.000Z","latest_release_number":"v0.2.2","last_synced_at":"2025-08-21T08:34:53.856Z","created_at":"2025-05-17T09:45:16.005Z","updated_at":"2025-08-21T08:34:53.856Z","registry_url":"https://pkg.go.dev/github.com/project-improv/improv","install_command":"go get github.com/project-improv/improv","documentation_url":"https://pkg.go.dev/github.com/project-improv/improv#section-documentation","metadata":{},"repo_metadata":{"id":38775703,"uuid":"148823779","full_name":"project-improv/improv","owner":"project-improv","description":"Adaptive Platform for Neuroscience Experiments","archived":false,"fork":false,"pushed_at":"2024-11-19T01:18:07.000Z","size":15525,"stargazers_count":38,"open_issues_count":17,"forks_count":12,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-11-19T02:24:33.904Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://project-improv.github.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/project-improv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-14T17:55:04.000Z","updated_at":"2024-09-28T20:05:50.000Z","dependencies_parsed_at":"2023-09-23T15:49:10.398Z","dependency_job_id":"57fa965e-5132-4947-b695-9ad2904ea4c8","html_url":"https://github.com/project-improv/improv","commit_stats":{"total_commits":887,"total_committers":22,"mean_commits":40.31818181818182,"dds":0.8218714768883878,"last_synced_commit":"5d3e09788584ab2885cbc9576a8f9408140215cd"},"previous_names":["pearsonlab/improv"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-improv%2Fimprov","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-improv%2Fimprov/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-improv%2Fimprov/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-improv%2Fimprov/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/project-improv","download_url":"https://codeload.github.com/project-improv/improv/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254688926,"owners_count":22112516,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"repo_metadata_updated_at":"2025-05-17T09:47:02.697Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.851632464451134,"dependent_packages_count":5.483686164721906,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.66765931458652},"purl":"pkg:golang/github.com/project-improv/improv","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/project-improv/improv","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/project-improv/improv","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/project-improv/improv/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2023-11-20T10:00:53.342Z","issues_count":47,"pull_requests_count":96,"avg_time_to_close_issue":16760261.88235294,"avg_time_to_close_pull_request":7012214.674157304,"issues_closed_count":17,"pull_requests_closed_count":89,"pull_request_authors_count":17,"issue_authors_count":10,"avg_comments_per_issue":0.7446808510638298,"avg_comments_per_pull_request":1.0833333333333333,"merged_pull_requests_count":67,"bot_issues_count":0,"bot_pull_requests_count":1,"past_year_issues_count":41,"past_year_pull_requests_count":35,"past_year_avg_time_to_close_issue":2788927.3333333335,"past_year_avg_time_to_close_pull_request":1613040.9642857143,"past_year_issues_closed_count":12,"past_year_pull_requests_closed_count":28,"past_year_pull_request_authors_count":12,"past_year_issue_authors_count":7,"past_year_avg_comments_per_issue":0.6341463414634146,"past_year_avg_comments_per_pull_request":2.7142857142857144,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":1,"past_year_merged_pull_requests_count":22,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-improv%2Fimprov/issues","maintainers":[{"login":"draelos","count":36,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/draelos"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fproject-improv%2Fimprov/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fproject-improv%2Fimprov/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fproject-improv%2Fimprov/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fproject-improv%2Fimprov/related_packages","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":1954233,"maintainers_count":0,"namespaces_count":741771,"keywords_count":109320,"github":"golang","metadata":{"funded_packages_count":49342},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2025-09-08T05:47:38.872Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}}],"commits":{"id":595791,"full_name":"project-improv/improv","default_branch":"dev","committers":[{"name":"Anne Draelos","email":"hawkwings","login":"hawkwings","count":158},{"name":"saraliszeski","email":"75336173+saraliszeski","login":"saraliszeski","count":146},{"name":"cyzhou1028","email":"christopher.y.zhou@duke.edu","login":null,"count":132},{"name":"draelos","email":"","login":null,"count":96},{"name":"Chaichontat Sriworarat","email":"chaichontat.s@duke.edu","login":null,"count":77},{"name":"eaogorman","email":"eao21@duke.edu","login":null,"count":56},{"name":"eaogorman","email":"eaogorman@github.com","login":null,"count":48},{"name":"Daniel Sprague","email":"dys9@duke.edu","login":null,"count":48},{"name":"John Pearson","email":"jmxpearson@gmail.com","login":null,"count":24},{"name":"NICOLE MOISEYEV","email":"nicole.moiseyev3400@gmail.com","login":null,"count":24},{"name":"Annie Do","email":"vi.do@duke.edu","login":null,"count":24},{"name":"Anne Draelos","email":"424969+draelos","login":"draelos","count":18},{"name":"RaymondChenDuke","email":"rc284@duke.edu","login":null,"count":10},{"name":"Tony","email":"44306764+Tonynanra","login":"Tonynanra","count":10},{"name":"Sara Liszeski","email":"sara.liszeski@duke.edu","login":null,"count":4},{"name":"Shiyang Pan","email":"59814624+WaAaaAterfall","login":"WaAaaAterfall","count":3},{"name":"Chang Li","email":"99964254+MarleneLi","login":"MarleneLi","count":2},{"name":"eaogorman","email":"eogorman13@gmail.com","login":null,"count":2},{"name":"dobaongocvi","email":"vbd9@duke.edu","login":null,"count":2},{"name":"chaichontat","email":"34997334+chaichontat","login":"chaichontat","count":1},{"name":"Kushal Kolar","email":"kushalkolar@gmail.com","login":"kushalkolar","count":1},{"name":"Daniel Sprague","email":"42728889+dysprague","login":"dysprague","count":1}],"total_commits":887,"total_committers":22,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":40.31818181818182,"dds":0.8218714768883878,"past_year_committers":[{"name":"John Pearson","email":"jmxpearson@gmail.com","login":null,"count":24},{"name":"Tony","email":"44306764+Tonynanra","login":"Tonynanra","count":10},{"name":"draelos","email":"","login":null,"count":5},{"name":"Shiyang Pan","email":"59814624+WaAaaAterfall","login":"WaAaaAterfall","count":3},{"name":"Chang Li","email":"99964254+MarleneLi","login":"MarleneLi","count":2},{"name":"Anne Draelos","email":"424969+draelos","login":"draelos","count":2},{"name":"cyzhou1028","email":"christopher.y.zhou@duke.edu","login":null,"count":1},{"name":"Kushal Kolar","email":"kushalkolar@gmail.com","login":"kushalkolar","count":1},{"name":"Elizabeth (Liz) A. O'Gorman","email":"eao21@duke.edu","login":null,"count":1}],"past_year_total_commits":49,"past_year_total_committers":9,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":5.444444444444445,"past_year_dds":0.5102040816326531,"last_synced_at":"2023-10-25T17:21:55.334Z","last_synced_commit":"5d3e09788584ab2885cbc9576a8f9408140215cd","created_at":"2023-03-09T06:34:04.268Z","updated_at":"2023-10-25T17:21:55.335Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-improv%2Fimprov/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-08-22T00:00:16.844Z","repositories_count":5479765,"commits_count":853308191,"contributors_count":31095157,"owners_count":906558,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"project-improv/improv","html_url":"https://github.com/project-improv/improv","last_synced_at":"2025-08-31T16:39:36.700Z","status":null,"issues_count":63,"pull_requests_count":128,"avg_time_to_close_issue":21149946.3,"avg_time_to_close_pull_request":5705613.470588235,"issues_closed_count":50,"pull_requests_closed_count":119,"pull_request_authors_count":20,"issue_authors_count":11,"avg_comments_per_issue":1.1587301587301586,"avg_comments_per_pull_request":1.25,"merged_pull_requests_count":89,"bot_issues_count":0,"bot_pull_requests_count":2,"past_year_issues_count":5,"past_year_pull_requests_count":11,"past_year_avg_time_to_close_issue":1856442.0,"past_year_avg_time_to_close_pull_request":26114.571428571428,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":7,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":4,"past_year_avg_comments_per_issue":0.6,"past_year_avg_comments_per_pull_request":0.9090909090909091,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":1,"past_year_merged_pull_requests_count":1,"created_at":"2023-05-14T15:52:00.696Z","updated_at":"2025-09-03T05:36:35.189Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-improv%2Fimprov","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-improv%2Fimprov/issues","issue_labels_count":{"enhancement":4,"wontfix":1},"pull_request_labels_count":{"dependencies":3,"github_actions":2},"issue_author_associations_count":{"CONTRIBUTOR":41,"COLLABORATOR":16,"NONE":4},"pull_request_author_associations_count":{"CONTRIBUTOR":90,"COLLABORATOR":29,"NONE":27},"issue_authors":{"jmxpearson":27,"draelos":16,"kushalkolar":5,"rwschonberg":4,"clewis7":2,"eaogorman":2,"Tonynanra":1,"chaichontat":1,"cyzhou1028":1,"raymondhechen":1,"WaAaaAterfall":1},"pull_request_authors":{"jmxpearson":31,"draelos":29,"rwschonberg":19,"chaichontat":12,"dysprague":9,"cyzhou1028":7,"WaAaaAterfall":6,"eaogorman":5,"saraliszeski":4,"myniax1024":3,"clewis7":3,"kushalkolar":3,"dependabot[bot]":3,"ameliacang7":3,"MarleneLi":3,"edwin-ma26":2,"pgupta29":1,"nicolemoiseyev":1,"Tonynanra":1,"aman723":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-08T00:00:17.013Z","repositories_count":10165670,"issues_count":31989241,"pull_requests_count":100238337,"authors_count":10729070,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":2,"CONTRIBUTOR":1},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":11,"NONE":4,"COLLABORATOR":1},"past_year_issue_authors":{"clewis7":2,"jmxpearson":1},"past_year_pull_request_authors":{"rwschonberg":11,"clewis7":2,"edwin-ma26":2,"draelos":1},"maintainers":[{"login":"draelos","count":45,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/draelos"}],"active_maintainers":[{"login":"draelos","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/draelos"}]},"events":{"total":{"IssuesEvent":3,"WatchEvent":1,"DeleteEvent":1,"IssueCommentEvent":10,"PushEvent":26,"PullRequestReviewEvent":22,"PullRequestReviewCommentEvent":57,"PullRequestEvent":4,"ForkEvent":2,"CreateEvent":4},"last_year":{"IssuesEvent":3,"WatchEvent":1,"DeleteEvent":1,"IssueCommentEvent":10,"PushEvent":26,"PullRequestReviewEvent":22,"PullRequestReviewCommentEvent":57,"PullRequestEvent":4,"ForkEvent":2,"CreateEvent":4}},"keywords":[],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/CI.yaml","sha":null,"kind":"manifest","created_at":"2023-07-13T11:31:28.010Z","updated_at":"2023-07-13T11:31:28.010Z","repository_link":"https://github.com/project-improv/improv/blob/main/.github/workflows/CI.yaml","dependencies":[{"id":11404426626,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":11404426632,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":11404426636,"package_name":"coverallsapp/github-action","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":11404426640,"package_name":"psf/black","ecosystem":"actions","requirements":"stable","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/deploy.yml","sha":null,"kind":"manifest","created_at":"2023-07-13T11:31:28.081Z","updated_at":"2023-07-13T11:31:28.081Z","repository_link":"https://github.com/project-improv/improv/blob/main/.github/workflows/deploy.yml","dependencies":[{"id":11404426906,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":11404426907,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":11404426908,"package_name":"peaceiris/actions-gh-pages","ecosystem":"actions","requirements":"v3.6.1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"docs/requirements.txt","sha":null,"kind":"manifest","created_at":"2023-07-13T11:31:28.235Z","updated_at":"2023-07-13T11:31:28.235Z","repository_link":"https://github.com/project-improv/improv/blob/main/docs/requirements.txt","dependencies":[{"id":11404426960,"package_name":"jupyter-book","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11404426961,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11404426962,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-07-13T11:31:28.377Z","updated_at":"2023-07-13T11:31:28.377Z","repository_link":"https://github.com/project-improv/improv/blob/main/pyproject.toml","dependencies":[{"id":11404428197,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11404428202,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11404428204,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11404428207,"package_name":"pyarrow","ecosystem":"pypi","requirements":"==9.0.0","direct":true,"kind":"runtime","optional":false},{"id":11404428211,"package_name":"PyQt5","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11404428213,"package_name":"lmdb","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11404428216,"package_name":"pyyaml","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11404428219,"package_name":"textual","ecosystem":"pypi","requirements":"==0.15.0","direct":true,"kind":"runtime","optional":false},{"id":11404428222,"package_name":"pyzmq","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11404428224,"package_name":"psutil","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11404428227,"package_name":"h5py","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]}],"score":10.796304928224641,"created_at":"2025-09-08T11:18:34.005Z","updated_at":"2025-10-07T08:24:45.835Z","avatar_url":"https://github.com/project-improv.png","language":"Python","category":null,"sub_category":null,"monthly_downloads":31,"funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["transformation"],"project_url":"https://science.ecosyste.ms/api/v1/projects/64403","html_url":"https://science.ecosyste.ms/projects/64403"}