{"id":37362,"name":"pytools","description":null,"url":"https://github.com/inducer/pytools","last_synced_at":"2025-09-05T07:25:03.076Z","repository":{"id":37743355,"uuid":"1575270","full_name":"inducer/pytools","owner":"inducer","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-29T19:41:36.000Z","size":1243,"stargazers_count":72,"open_issues_count":20,"forks_count":26,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-08-29T21:43:41.222Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://pypi.python.org/pypi/pytools","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/inducer.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2011-04-06T02:38:38.000Z","updated_at":"2025-08-29T19:41:36.000Z","dependencies_parsed_at":"2023-10-11T19:13:30.747Z","dependency_job_id":"bb5332f1-74f2-45df-9ba3-8fcc90c39aac","html_url":"https://github.com/inducer/pytools","commit_stats":{"total_commits":1034,"total_committers":36,"mean_commits":28.72222222222222,"dds":"0.35493230174081236","last_synced_commit":"56efa1b3b6dbeea414904880efc8f1d7e4fcb8c0"},"previous_names":[],"tags_count":141,"template":false,"template_full_name":null,"purl":"pkg:github/inducer/pytools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inducer%2Fpytools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inducer%2Fpytools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inducer%2Fpytools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inducer%2Fpytools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inducer","download_url":"https://codeload.github.com/inducer/pytools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inducer%2Fpytools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273725241,"owners_count":25156672,"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-05T02:00:09.113Z","response_time":402,"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":"inducer","name":"Andreas Klöckner","uuid":"352067","kind":"user","description":"","email":"","website":"http://andreask.cs.illinois.edu/aboutme","location":"Champaign, IL","twitter":null,"company":"Scientific Computing, CS@UIUC","icon_url":"https://avatars.githubusercontent.com/u/352067?v=4","repositories_count":225,"last_synced_at":"2025-08-30T20:58:20.540Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/inducer","funding_links":[],"total_stars":9415,"followers":1400,"following":13,"created_at":"2022-11-02T22:17:04.124Z","updated_at":"2025-08-30T20:58:20.540Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inducer","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inducer/repositories"},"packages":null,"commits":{"id":3603,"full_name":"inducer/pytools","default_branch":"main","committers":[{"name":"Andreas Kloeckner","email":"inform@tiker.net","login":"inducer","count":782},{"name":"Nicholas Christensen","email":"njchris2@illinois.edu","login":"nchristensen","count":92},{"name":"Matthias Diener","email":"mdiener@illinois.edu","login":"matthiasdiener","count":90},{"name":"Matt Wala","email":"wala1@illinois.edu","login":"mattwala","count":64},{"name":"Alexandru Fikl","email":"alexfikl@gmail.com","login":"alexfikl","count":64},{"name":"jdsteve2","email":"jdsteve2@illinois.edu","login":"jdsteve2","count":26},{"name":"Kaushik Kulkarni","email":"kaushikcfd@gmail.com","login":"kaushikcfd","count":22},{"name":"Andreas Kloeckner","email":"kloeckner@hpcgeek.ccv.brown.edu","login":null,"count":14},{"name":"Andreas Kloeckner","email":"kloeckner@haamster.(none)","login":null,"count":11},{"name":"Scott Field","email":"scott_field@brown.edu","login":null,"count":7},{"name":"Freddie Witherden","email":"freddie@witherden.org","login":"FreddieWitherden","count":6},{"name":"Andreas Kloeckner","email":"kloeckner@homer.dam.brown.edu","login":null,"count":5},{"name":"Thomas Gibson","email":"gibsonthomas1120@hotmail.com","login":"thomasgibson","count":4},{"name":"Dominic Kempf","email":"dominic.kempf@iwr.uni-heidelberg.de","login":"dokempf","count":4},{"name":"Andreas Stock","email":"astock@dam.brown.edu","login":null,"count":4},{"name":"Isuru Fernando","email":"isuruf@gmail.com","login":"isuruf","count":3},{"name":"Andreas Kloeckner","email":"kloeckner@teramite.(none)","login":null,"count":3},{"name":"scott","email":"balzani57@balzani57-laptop.(none)","login":null,"count":2},{"name":"HendrikRiedmann","email":"riedmann@dam.brown.edu","login":null,"count":2},{"name":"Andreas Kloeckner","email":"mathem@tiker.net","login":null,"count":2},{"name":"Andreas Kloeckner","email":"andreas@debtester.tiker.net","login":null,"count":2},{"name":"xywei","email":"wxy0516@gmail.com","login":"xywei","count":2},{"name":"Yichao Yu","email":"yyc1992@gmail.com","login":"yuyichao","count":2},{"name":"Addison A.","email":"70176208+a-alveyblanc","login":"a-alveyblanc","count":2},{"name":"Matt Smith","email":"mjsmith1@gmail.com","login":"majosm","count":1},{"name":"tfai","email":"tgf220@nyu.edu","login":null,"count":1},{"name":"Xueyu Zhu","email":"xzhu@tuck.ath.cx","login":null,"count":1},{"name":"Andreas Kloeckner","email":"kloeckner@walrus.dam.brown.edu","login":null,"count":1},{"name":"Andrew J. Hesford","email":"ajh@sideband.org","login":"ahesford","count":1},{"name":"Damien Drix","email":"damien.drix@gmail.com","login":"damiendr","count":1},{"name":"Ellis Hoag","email":"ellis.sparky.hoag@gmail.com","login":"ellishg","count":1},{"name":"Hao Gao","email":"gaohao95@gmail.com","login":"gaohao95","count":1},{"name":"Koen Dercksen","email":"mail@koendercksen.com","login":"KDercksen","count":1},{"name":"Kubilay Kocak","email":"koobs","login":"koobs","count":1},{"name":"Nikita Ofitserov","email":"himikof@gmail.com","login":"himikof","count":1}],"total_commits":1226,"total_committers":35,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":35.02857142857143,"dds":0.3621533442088092,"past_year_committers":[{"name":"Andreas Kloeckner","email":"inform@tiker.net","login":"inducer","count":78},{"name":"Alexandru Fikl","email":"alexfikl@gmail.com","login":"alexfikl","count":32},{"name":"Matthias Diener","email":"mdiener@illinois.edu","login":"matthiasdiener","count":22},{"name":"Addison A.","email":"70176208+a-alveyblanc","login":"a-alveyblanc","count":2},{"name":"Andrew J. Hesford","email":"ajh@sideband.org","login":"ahesford","count":1},{"name":"Matt Smith","email":"mjsmith1@gmail.com","login":"majosm","count":1}],"past_year_total_commits":136,"past_year_total_committers":6,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":22.666666666666668,"past_year_dds":0.42647058823529416,"last_synced_at":"2025-05-24T01:30:34.985Z","last_synced_commit":"c5ee9583e189c85b0fb2f4d39b9cf4f58d3566da","created_at":"2023-03-07T09:18:13.613Z","updated_at":"2025-05-24T01:30:44.066Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/inducer%2Fpytools/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-08-30T00:00:08.254Z","repositories_count":5479765,"commits_count":853310153,"contributors_count":31095234,"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":"inducer/pytools","html_url":"https://github.com/inducer/pytools","last_synced_at":"2025-09-04T13:02:16.094Z","status":null,"issues_count":15,"pull_requests_count":323,"avg_time_to_close_issue":13499890.6,"avg_time_to_close_pull_request":488256.4375,"issues_closed_count":10,"pull_requests_closed_count":288,"pull_request_authors_count":10,"issue_authors_count":9,"avg_comments_per_issue":2.8,"avg_comments_per_pull_request":1.21671826625387,"merged_pull_requests_count":257,"bot_issues_count":0,"bot_pull_requests_count":1,"past_year_issues_count":3,"past_year_pull_requests_count":89,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":193564.42465753425,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":73,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":3,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":0.9213483146067416,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":1,"past_year_merged_pull_requests_count":71,"created_at":"2023-05-10T14:49:09.114Z","updated_at":"2025-09-04T13:02:16.096Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/inducer%2Fpytools","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/inducer%2Fpytools/issues","issue_labels_count":{},"pull_request_labels_count":{"dependencies":1,"github_actions":1},"issue_author_associations_count":{"NONE":7,"CONTRIBUTOR":5,"OWNER":2,"COLLABORATOR":1},"pull_request_author_associations_count":{"CONTRIBUTOR":203,"OWNER":110,"COLLABORATOR":7,"NONE":3},"issue_authors":{"matthiasdiener":4,"mgorny":3,"inducer":2,"kloczek":1,"TheMindVirus":1,"animesh-workplace":1,"kaushikcfd":1,"dokempf":1,"fenom":1},"pull_request_authors":{"matthiasdiener":141,"inducer":110,"alexfikl":53,"kaushikcfd":7,"a-alveyblanc":4,"majosm":3,"ahesford":2,"nchristensen":1,"dependabot[bot]":1,"FreddieWitherden":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-05T00:00:10.444Z","repositories_count":10087320,"issues_count":31306968,"pull_requests_count":96469683,"authors_count":10696025,"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":{"dependencies":1,"github_actions":1},"past_year_issue_author_associations_count":{"NONE":2,"CONTRIBUTOR":1},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":48,"OWNER":40,"NONE":1},"past_year_issue_authors":{"matthiasdiener":1,"mgorny":1,"TheMindVirus":1},"past_year_pull_request_authors":{"inducer":40,"matthiasdiener":28,"alexfikl":15,"majosm":3,"a-alveyblanc":2,"dependabot[bot]":1},"maintainers":[{"login":"inducer","count":112,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/inducer"},{"login":"kaushikcfd","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kaushikcfd"}],"active_maintainers":[{"login":"inducer","count":40,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/inducer"}]},"events":{"total":{"CreateEvent":40,"IssuesEvent":3,"ReleaseEvent":14,"WatchEvent":5,"DeleteEvent":24,"IssueCommentEvent":57,"PushEvent":100,"PullRequestReviewEvent":84,"PullRequestReviewCommentEvent":91,"PullRequestEvent":89,"ForkEvent":1},"last_year":{"CreateEvent":40,"IssuesEvent":3,"ReleaseEvent":14,"WatchEvent":5,"DeleteEvent":24,"IssueCommentEvent":57,"PushEvent":100,"PullRequestReviewEvent":84,"PullRequestReviewCommentEvent":91,"PullRequestEvent":89,"ForkEvent":1}},"keywords":[],"dependencies":[{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2022-09-01T03:41:17.623Z","updated_at":"2022-09-01T03:41:17.623Z","repository_link":"https://github.com/inducer/pytools/blob/main/setup.py","dependencies":[{"id":3458580078,"package_name":"platformdirs","ecosystem":"pypi","requirements":"\u003e=2.2.0","direct":true,"kind":"runtime","optional":false},{"id":3458580079,"package_name":"dataclasses","ecosystem":"pypi","requirements":"\u003e=0.7","direct":true,"kind":"runtime","optional":false},{"id":3458580080,"package_name":"typing_extensions","ecosystem":"pypi","requirements":"\u003e=4.0","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/autopush.yml","sha":null,"kind":"manifest","created_at":"2023-02-09T20:15:17.266Z","updated_at":"2023-02-09T20:15:17.266Z","repository_link":"https://github.com/inducer/pytools/blob/main/.github/workflows/autopush.yml","dependencies":[{"id":7504563127,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/ci.yml","sha":null,"kind":"manifest","created_at":"2023-02-09T20:15:17.408Z","updated_at":"2023-02-09T20:15:17.408Z","repository_link":"https://github.com/inducer/pytools/blob/main/.github/workflows/ci.yml","dependencies":[{"id":7504565057,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7504565061,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]}],"score":8.077136638538454,"created_at":"2025-09-04T15:51:11.058Z","updated_at":"2025-10-07T08:15:22.666Z","avatar_url":"https://github.com/inducer.png","language":"Python","category":null,"sub_category":null,"monthly_downloads":0,"funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["code-generation","symbolic-computation","computer-algebra","expression-tree","term-rewriting","multidimensional-arrays","pycuda","isl","loop-optimization","polyhedral-model"],"project_url":"https://science.ecosyste.ms/api/v1/projects/37362","html_url":"https://science.ecosyste.ms/projects/37362","bibtex_url":"https://science.ecosyste.ms/projects/37362/export.bibtex","apalike_url":"https://science.ecosyste.ms/projects/37362/export.apalike"}