{"id":358091,"url":"https://github.com/mdolab/pyoptsparse/","last_synced_at":"2026-06-22T23:01:36.435Z","repository":{"id":38866140,"uuid":"117873909","full_name":"mdolab/pyoptsparse","owner":"mdolab","description":"pyOptSparse is an object-oriented framework for formulating and solving nonlinear constrained optimization problems in an efficient, reusable, and portable manner.","archived":false,"fork":false,"pushed_at":"2026-06-16T06:02:32.000Z","size":2761,"stargazers_count":265,"open_issues_count":39,"forks_count":121,"subscribers_count":20,"default_branch":"main","last_synced_at":"2026-06-16T08:13:40.014Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://mdolab-pyoptsparse.readthedocs-hosted.com/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mdolab.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":".zenodo.json","notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-01-17T18:10:32.000Z","updated_at":"2026-06-03T16:49:33.000Z","dependencies_parsed_at":"2024-05-07T15:49:42.014Z","dependency_job_id":"faf17b86-9b32-4ef8-9282-ae1a6c9b27a3","html_url":"https://github.com/mdolab/pyoptsparse","commit_stats":{"total_commits":664,"total_committers":54,"mean_commits":"12.296296296296296","dds":0.6867469879518072,"last_synced_commit":"eee3f7029095491fe2b1dd794b3a5586fc56fb07"},"previous_names":[],"tags_count":57,"template":false,"template_full_name":null,"purl":"pkg:github/mdolab/pyoptsparse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdolab%2Fpyoptsparse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdolab%2Fpyoptsparse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdolab%2Fpyoptsparse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdolab%2Fpyoptsparse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdolab","download_url":"https://codeload.github.com/mdolab/pyoptsparse/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdolab%2Fpyoptsparse/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34507160,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-18T02:00:06.871Z","response_time":128,"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":"mdolab","name":"MDO Lab","uuid":"26934866","kind":"organization","description":"Multidisciplinary Design Optimization Laboratory at the University of Michigan","email":null,"website":"mdolab.engin.umich.edu","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/26934866?v=4","repositories_count":21,"last_synced_at":"2023-02-27T07:30:48.317Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/mdolab","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-10T16:51:40.990Z","updated_at":"2023-02-27T07:30:48.332Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdolab","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdolab/repositories"},"packages":[],"commits":{"id":28852,"full_name":"mdolab/pyoptsparse","default_branch":"main","total_commits":723,"total_committers":54,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":13.38888888888889,"dds":0.7095435684647302,"past_year_total_commits":27,"past_year_total_committers":8,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":3.375,"past_year_dds":0.6666666666666667,"last_synced_at":"2026-06-02T15:46:13.008Z","last_synced_commit":"812cad70980df5989ef50f27cfc96e07ad59799a","created_at":"2023-03-07T16:39:00.368Z","updated_at":"2026-06-02T15:45:38.121Z","committers":[{"name":"Neil Wu","email":"neilwu@umich.edu","login":"nwu63","count":210},{"name":"kenway","email":"kenway@localhost","login":null,"count":155},{"name":"John Jasa","email":"johnjasa11@gmail.com","login":"johnjasa","count":59},{"name":"lambe","email":"lambe@localhost","login":null,"count":37},{"name":"kmarsteller","email":"keith.g.marsteller@nasa.gov","login":"kmarsteller","count":29},{"name":"Ella Wu","email":"602725+ewu63","login":"ewu63","count":24},{"name":"Nicolas Bons","email":"nbons@umich.edu","login":"nbons","count":22},{"name":"Rob Falck","email":"robfalck@gmail.com","login":"robfalck","count":14},{"name":"Eirikur Jonsson","email":"36180221+eirikurj","login":"eirikurj","count":14},{"name":"Sabet Seraj","email":"48863473+sseraj","login":"sseraj","count":13},{"name":"Graeme Kennedy","email":"graeme.kennedy@ae.gatech.edu","login":"gjkennedy","count":13},{"name":"Shugo Kaneko","email":"49300827+kanekosh","login":"kanekosh","count":11},{"name":"Kenneth-T-Moore","email":"kenneth.t.moore-1@nasa.gov","login":"Kenneth-T-Moore","count":10},{"name":"Marco Mangano","email":"36549388+marcomangano","login":"marcomangano","count":10},{"name":"Alasdair Gray","email":"alachris@umich.edu","login":"A-CGray","count":10},{"name":"mader","email":"mader@localhost","login":null,"count":10},{"name":"swryan","email":"stephen.w.ryan@gmail.com","login":"swryan","count":10},{"name":"Justin Gray","email":"justin.s.gray@gmail.com","login":"JustinSGray","count":6},{"name":"Bret Naylor","email":"naylor.b@gmail.com","login":"naylor-b","count":6},{"name":"frza","email":"frza@dtu.dk","login":"fzahle","count":5},{"name":"gkennedy","email":"gkennedy@localhost","login":null,"count":4},{"name":"Kenneth Moore","email":"KenMooreZ1@gmail.com","login":null,"count":4},{"name":"Benjamin Brelje","email":"benjamin.brelje@gmail.com","login":"bbrelje","count":3},{"name":"Phil Chiu","email":"whophil","login":"whophil","count":3},{"name":"Joaquim R. R. A. Martins","email":"jrram@umich.edu","login":"jrram","count":3},{"name":"Drayton Munster","email":"drayton.w.munster@nasa.gov","login":"dwmunster","count":3},{"name":"Ping He","email":"friedenhe@gmail.com","login":"friedenhe","count":3},{"name":"elee","email":"elee@localhost","login":null,"count":2},{"name":"Eytan Adler","email":"63426601+eytanadler","login":"eytanadler","count":2},{"name":"Gaetan Kenway","email":"gaetank@gmail.com","login":"gkenway","count":2},{"name":"Jack Myers","email":"jackhmyers97@gmail.com","login":"jackm97","count":2},{"name":"Laurentww","email":"35997691+Laurentww","login":"Laurentww","count":2},{"name":"alexishonzik","email":"44992497+alexishonzik","login":"alexishonzik","count":1},{"name":"cmader","email":"cmader@umich.edu","login":null,"count":1},{"name":"jjasa","email":"jjasa@localhost","login":null,"count":1},{"name":"lvzhoujie","email":"lvzhoujie@localhost","login":null,"count":1},{"name":"swryan","email":"swryan@localhost","login":null,"count":1},{"name":"Nischint Rajmohan","email":"nrajmohan@aerioncorp.com","login":null,"count":1},{"name":"S Ryan","email":"S Ryan@localhost","login":null,"count":1},{"name":"achase90","email":"achase90@gmail.com","login":"achase90","count":1},{"name":"Yicong Fu","email":"fuyicong1996@gmail.com","login":"aaronyicongfu","count":1},{"name":"Xiaosong Du","email":"51827072+Xiaosong2105","login":"Xiaosong2105","count":1},{"name":"crecine","email":"51181861+crecine","login":"crecine","count":1},{"name":"hschilling","email":"hschilling@nasa.gov","login":"hschilling","count":1},{"name":"lvzhoujie","email":"lvzhoujie@gmail.com","login":"lvzhoujie","count":1},{"name":"mpdutta","email":"mpdutta@umich.edu","login":"mpdutta","count":1},{"name":"nischintu","email":"nischintu","login":"nischintu","count":1},{"name":"Alexandre Payot","email":"18074599+payoto","login":"payoto","count":1},{"name":"Andrew Ellis","email":"andrew.ellis7228@gmail.com","login":"andrewellis55","count":1},{"name":"Andrew Ning","email":"aning@byu.edu","login":"andrewning","count":1},{"name":"Anil Yildirim","email":"anily@umich.edu","login":"anilyil","count":1},{"name":"ArshSaja","email":"63115167+ArshSaja","login":"ArshSaja","count":1},{"name":"Daniel Hill","email":"dhill2522@gmail.com","login":"dhill2522","count":1},{"name":"Daniel Ingraham","email":"d.j.ingraham@gmail.com","login":"dingraha","count":1}],"past_year_committers":[{"name":"Alasdair Gray","email":"alachris@umich.edu","login":"A-CGray","count":9},{"name":"Ella Wu","email":"602725+ewu63","login":"ewu63","count":7},{"name":"Shugo Kaneko","email":"49300827+kanekosh","login":"kanekosh","count":6},{"name":"mpdutta","email":"mpdutta@umich.edu","login":"mpdutta","count":1},{"name":"Rob Falck","email":"rfalck@nasa.gov","login":"robfalck","count":1},{"name":"Phil Chiu","email":"whophil","login":"whophil","count":1},{"name":"Graeme Kennedy","email":"graeme.kennedy@ae.gatech.edu","login":"gjkennedy","count":1},{"name":"Eirikur Jonsson","email":"36180221+eirikurj","login":"eirikurj","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdolab%2Fpyoptsparse/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-06-04T00:00:08.235Z","repositories_count":6253456,"commits_count":883969618,"contributors_count":35043229,"owners_count":1162726,"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":{"table":{"full_name":"mdolab/pyoptsparse","html_url":"https://github.com/mdolab/pyoptsparse","last_synced_at":"2026-03-22T03:12:07.097Z","status":"active","issues_count":81,"pull_requests_count":188,"avg_time_to_close_issue":16686331.578947369,"avg_time_to_close_pull_request":1296293.4424242424,"issues_closed_count":57,"pull_requests_closed_count":165,"pull_request_authors_count":25,"issue_authors_count":35,"avg_comments_per_issue":1.9506172839506173,"avg_comments_per_pull_request":3.2819148936170213,"merged_pull_requests_count":145,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":11,"past_year_pull_requests_count":60,"past_year_avg_time_to_close_issue":1377044.2,"past_year_avg_time_to_close_pull_request":839257.6666666666,"past_year_issues_closed_count":5,"past_year_pull_requests_closed_count":45,"past_year_pull_request_authors_count":10,"past_year_issue_authors_count":6,"past_year_avg_comments_per_issue":1.8181818181818181,"past_year_avg_comments_per_pull_request":2.7333333333333334,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":34,"created_at":"2023-05-10T21:03:30.310Z","updated_at":"2026-03-22T03:12:07.097Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdolab%2Fpyoptsparse","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdolab%2Fpyoptsparse/issues","issue_labels_count":{"table":{"enhancement":10,"bug":6,"installation":5,"documentation":4,"maintenance":3,"stale":3,"discussion":1,"wontfix":1}},"pull_request_labels_count":{"table":{"bug":2,"enhancement":1}},"issue_author_associations_count":{"table":{"CONTRIBUTOR":33,"NONE":29,"COLLABORATOR":15,"MEMBER":4}},"pull_request_author_associations_count":{"table":{"CONTRIBUTOR":101,"COLLABORATOR":63,"MEMBER":12,"NONE":12}},"issue_authors":{"table":{"nwu63":18,"ewu63":12,"A-CGray":4,"kanekosh":3,"robfalck":3,"eirikurj":3,"qwefhajk":2,"Tarnarmour":2,"kmodexc":2,"NAnand-TUD":2,"eng-jamal2023":2,"whophil":2,"jackm97":2,"swryan":2,"Zcaic":2,"zfrederi":1,"rnpatel3":1,"mcmehrtens":1,"sseraj":1,"KarthikComposites":1,"AbhijithMoni":1,"xalthzz":1,"alicebain":1,"ehariton":1,"jylambert":1,"rcruzf99":1,"bustinov":1,"Kenneth-T-Moore":1,"joanibal":1,"EVElove444":1,"cfrontin":1,"haizhou0410":1,"shuxue-q":1,"popstar0426":1,"payoto":1}},"pull_request_authors":{"table":{"ewu63":47,"nwu63":37,"kanekosh":17,"A-CGray":12,"whophil":11,"marcomangano":10,"eirikurj":9,"sseraj":7,"gjkennedy":5,"awccopp":4,"robfalck":4,"swryan":4,"eytanadler":3,"dingraha":2,"andrewellis55":2,"jackm97":2,"Laurentww":2,"crecine":2,"jkirk5":2,"ArshSaja":1,"lamkina":1,"Kenneth-T-Moore":1,"Copilot":1,"mpdutta":1,"friedenhe":1}},"host":{"table":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-03-31T00:00:10.865Z","repositories_count":14014229,"issues_count":34563967,"pull_requests_count":113051727,"authors_count":11212624,"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":{"table":{"enhancement":1,"bug":1,"installation":1,"documentation":1}},"past_year_pull_request_labels_count":{"table":{}},"past_year_issue_author_associations_count":{"table":{"COLLABORATOR":4,"MEMBER":3,"CONTRIBUTOR":2,"NONE":2}},"past_year_pull_request_author_associations_count":{"table":{"COLLABORATOR":22,"CONTRIBUTOR":17,"MEMBER":10,"NONE":5}},"past_year_issue_authors":{"table":{"ewu63":4,"A-CGray":3,"eirikurj":1,"EVElove444":1,"robfalck":1,"zfrederi":1}},"past_year_pull_request_authors":{"table":{"ewu63":19,"kanekosh":11,"A-CGray":10,"whophil":5,"dingraha":2,"eirikurj":2,"jkirk5":2,"Copilot":1,"mpdutta":1,"robfalck":1}},"maintainers":[{"table":{"login":"ewu63","count":59,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ewu63"}},{"table":{"login":"A-CGray","count":16,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/A-CGray"}},{"table":{"login":"nwu63","count":12,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nwu63"}},{"table":{"login":"kanekosh","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kanekosh"}},{"table":{"login":"sseraj","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/sseraj"}},{"table":{"login":"eytanadler","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/eytanadler"}},{"table":{"login":"friedenhe","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/friedenhe"}}],"active_maintainers":[{"table":{"login":"ewu63","count":23,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ewu63"}},{"table":{"login":"A-CGray","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/A-CGray"}},{"table":{"login":"kanekosh","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kanekosh"}}]}},"events":{"total":{"ReleaseEvent":4,"DeleteEvent":20,"MemberEvent":5,"PullRequestEvent":53,"ForkEvent":14,"IssuesEvent":23,"WatchEvent":35,"IssueCommentEvent":142,"PushEvent":150,"PullRequestReviewCommentEvent":53,"PullRequestReviewEvent":114,"CreateEvent":19},"last_year":{"ReleaseEvent":3,"DeleteEvent":18,"MemberEvent":1,"PullRequestEvent":41,"ForkEvent":7,"IssuesEvent":19,"WatchEvent":20,"IssueCommentEvent":101,"PushEvent":121,"PullRequestReviewCommentEvent":35,"PullRequestReviewEvent":90,"CreateEvent":15}},"keywords":[],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/windows-build.yml","sha":null,"kind":"manifest","created_at":"2023-01-30T19:01:10.010Z","updated_at":"2023-01-30T19:01:10.010Z","repository_link":"https://github.com/mdolab/pyoptsparse/blob/main/.github/workflows/windows-build.yml","dependencies":[{"id":7253336673,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7253336674,"package_name":"conda-incubator/setup-miniconda","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"doc/requirements.txt","sha":null,"kind":"manifest","created_at":"2023-01-30T19:01:10.077Z","updated_at":"2023-01-30T19:01:10.077Z","repository_link":"https://github.com/mdolab/pyoptsparse/blob/main/doc/requirements.txt","dependencies":[{"id":7253336708,"package_name":"sphinx_mdolab_theme","ecosystem":"pypi","requirements":"\u003e=1.2","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2023-01-30T19:01:10.113Z","updated_at":"2023-01-30T19:01:10.113Z","repository_link":"https://github.com/mdolab/pyoptsparse/blob/main/setup.py","dependencies":[{"id":7253336709,"package_name":"sqlitedict","ecosystem":"pypi","requirements":"\u003e=1.6","direct":true,"kind":"runtime","optional":false},{"id":7253336710,"package_name":"numpy","ecosystem":"pypi","requirements":"\u003e=1.16","direct":true,"kind":"runtime","optional":false},{"id":7253336711,"package_name":"scipy","ecosystem":"pypi","requirements":"\u003e1.2","direct":true,"kind":"runtime","optional":false},{"id":7253336712,"package_name":"mdolab-baseclasses","ecosystem":"pypi","requirements":"\u003e=1.3.1","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-09-23T11:04:03.510Z","updated_at":"2023-09-23T11:04:03.510Z","repository_link":"https://github.com/mdolab/pyoptsparse/blob/main/pyproject.toml","dependencies":[]},{"ecosystem":"conda","filepath":".github/environment.yml","sha":null,"kind":"manifest","created_at":"2024-05-07T15:49:33.526Z","updated_at":"2024-05-07T15:49:33.526Z","repository_link":"https://github.com/mdolab/pyoptsparse/blob/main/.github/environment.yml","dependencies":[{"id":17964698583,"package_name":"build","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":17964698626,"package_name":"compilers","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":17964698627,"package_name":"ipopt","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":17964698632,"package_name":"mdolab-baseclasses","ecosystem":"conda","requirements":"\u003e=1.3.1","direct":true,"kind":"runtime","optional":false},{"id":17964699333,"package_name":"meson","ecosystem":"conda","requirements":"\u003e=1.3.2","direct":true,"kind":"runtime","optional":false},{"id":17964700907,"package_name":"numpy","ecosystem":"conda","requirements":"\u003e=1.21","direct":true,"kind":"runtime","optional":false},{"id":17964700908,"package_name":"parameterized","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":17964700942,"package_name":"pip","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":17964700944,"package_name":"pkg-config","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":17964701009,"package_name":"python","ecosystem":"conda","requirements":"\u003e=3.9","direct":true,"kind":"runtime","optional":false},{"id":17964701010,"package_name":"scipy","ecosystem":"conda","requirements":"\u003e=1.7","direct":true,"kind":"runtime","optional":false},{"id":17964701011,"package_name":"setuptools","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":17964701012,"package_name":"sqlitedict","ecosystem":"conda","requirements":"\u003e=1.6","direct":true,"kind":"runtime","optional":false},{"id":17964701043,"package_name":"swig","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":17964701044,"package_name":"testflo","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false}]}],"score":9.706011747970496,"created_at":"2025-04-11T10:21:45.946Z","updated_at":"2026-06-22T23:01:36.435Z","avatar_url":"https://github.com/mdolab.png","language":"Python","codemeta":null,"publiccode":null,"project_url":"https://summary.ecosyste.ms/api/v1/projects/358091","html_url":"https://summary.ecosyste.ms/projects/358091"}