{"id":60783,"name":"python-intermediate-development","description":"\"Intermediate Research Software Development Skills (Python)\" Lesson Material","url":"https://github.com/carpentries-incubator/python-intermediate-development","last_synced_at":"2025-09-08T12:20:58.985Z","repository":{"id":40412698,"uuid":"257930838","full_name":"carpentries-incubator/python-intermediate-development","owner":"carpentries-incubator","description":"\"Intermediate Research Software Development Skills (Python)\" Lesson Material","archived":false,"fork":false,"pushed_at":"2025-08-19T01:58:44.000Z","size":245175,"stargazers_count":56,"open_issues_count":50,"forks_count":73,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-08-19T03:35:03.186Z","etag":null,"topics":["beta","carpentry-lesson","intermediate","lesson","python","software-design","software-development","software-engineering-research","training","training-materials"],"latest_commit_sha":null,"homepage":"https://carpentries-incubator.github.io/python-intermediate-development/","language":"TeX","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/carpentries-incubator.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.md","codeowners":null,"security":null,"support":null,"governance":"GOVERNANCE.md","roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["carpentries"],"custom":["https://give.communityin.org/TheCarpentries"]}},"created_at":"2020-04-22T14:47:31.000Z","updated_at":"2025-07-31T07:52:16.000Z","dependencies_parsed_at":"2023-02-14T17:15:22.387Z","dependency_job_id":"e26d2f8d-a640-4f44-bf95-0fb6915199f9","html_url":"https://github.com/carpentries-incubator/python-intermediate-development","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/carpentries-incubator/python-intermediate-development","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-incubator%2Fpython-intermediate-development","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-incubator%2Fpython-intermediate-development/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-incubator%2Fpython-intermediate-development/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-incubator%2Fpython-intermediate-development/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carpentries-incubator","download_url":"https://codeload.github.com/carpentries-incubator/python-intermediate-development/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-incubator%2Fpython-intermediate-development/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274182416,"owners_count":25236730,"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":"carpentries-incubator","name":"carpentries-incubator","uuid":"53264631","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/53264631?v=4","repositories_count":107,"last_synced_at":"2023-02-27T03:40:27.694Z","metadata":{"has_sponsors_listing":false,"funding":{"github":["carpentries"],"custom":["https://give.communityin.org/TheCarpentries"]}},"html_url":"https://github.com/carpentries-incubator","funding_links":["https://github.com/sponsors/carpentries","https://give.communityin.org/TheCarpentries"],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-10T13:05:59.233Z","updated_at":"2023-02-27T03:40:27.711Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carpentries-incubator","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carpentries-incubator/repositories"},"packages":[],"commits":{"id":8043218,"full_name":"carpentries-incubator/python-intermediate-development","default_branch":"main","committers":[{"name":"Aleksandra Nenadic","email":"a.nenadic@manchester.ac.uk","login":"anenadic","count":755},{"name":"Steve Crouch","email":"s.crouch@software.ac.uk","login":"steve-crouch","count":192},{"name":"Thomas Kiley","email":"thomas.kiley@ukaea.uk","login":"thomaskileyukaea","count":183},{"name":"James Graham","email":"j.graham@software.ac.uk","login":"jag1g13","count":108},{"name":"bielsnohr","email":"matthew.bluteau@gmail.com","login":"bielsnohr","count":87},{"name":"Toby Hodges","email":"tbyhdgs@gmail.com","login":"tobyhodges","count":38},{"name":"Sven van der Burg","email":"s.vanderburg@esciencecenter.nl","login":"svenvanderburg","count":34},{"name":"JacalynLaird","email":"65177670+JacalynLaird","login":"JacalynLaird","count":19},{"name":"Sarah Stevens","email":"sarah.stevens@wisc.edu","login":"sstevens2","count":18},{"name":"Matthew Bluteau","email":"matthew.bluteau@ukaea.uk","login":"m-bluteau","count":7},{"name":"Sam Mangham","email":"mangham@gmail.com","login":"smangham","count":7},{"name":"Douglas Lowe","email":"10961945+douglowe","login":"douglowe","count":6},{"name":"Frank Löffler","email":"frank.loeffler@uni-jena.de","login":"knarrff","count":6},{"name":"Sander van Rijn","email":"s.vanrijn@esciencecenter.nl","login":"sjvrijn","count":5},{"name":"Giulia Crocioni","email":"55382553+gcroci2","login":"gcroci2","count":4},{"name":"Albert Bogdanowicz","email":"albert.bogdanowicz@astrazeneca.com","login":null,"count":2},{"name":"Daniel S. Katz","email":"d.katz@ieee.org","login":"danielskatz","count":2},{"name":"Renato Alves","email":"alves.rjc@gmail.com","login":"unode","count":2},{"name":"Thomas Neep (Advanced Research Computing)","email":"t.j.neep@bham.ac.uk","login":"tomneep","count":2},{"name":"jreeve-nv","email":"jennifer.reeve@netvalue.nz","login":"jreeve-nv","count":1},{"name":"gkmurphy","email":"127712154+gkmurphy","login":"gkmurphy","count":1},{"name":"Yuriy Sverchkov","email":"sverchkov","login":"sverchkov","count":1},{"name":"Simon Hartley (Advanced Research Computing)","email":"s.hartley@bham.ac.uk","login":"shartleybham-acuk","count":1},{"name":"Martin Robinson","email":"martinjrobins@gmail.com","login":"martinjrobins","count":1},{"name":"Kristian Zarębski","email":"kristian.zarebski@ukaea.uk","login":"kzscisoft","count":1},{"name":"Jonathan Guyer","email":"guyer@nist.gov","login":"guyer","count":1},{"name":"John Nonweiler","email":"john.nonweiler@ukaea.uk","login":"johnnonweiler","count":1},{"name":"David Young","email":"d.r.young@qub.ac.uk","login":"thespacedoctor","count":1},{"name":"Dani Bodor","email":"d.bodor@esciencecenter.nl","login":"DaniBodor","count":1},{"name":"Dan Short","email":"66615563+DanShort12","login":"DanShort12","count":1},{"name":"Christian Knüpfer","email":"christian.knuepfer@uni-jena.de","login":"cknuepfer","count":1},{"name":"Chris Endemann","email":"endemann@wisc.edu","login":"qualiaMachine","count":1}],"total_commits":1490,"total_committers":32,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":46.5625,"dds":0.49328859060402686,"past_year_committers":[{"name":"Aleksandra Nenadic","email":"a.nenadic@manchester.ac.uk","login":"anenadic","count":54},{"name":"bielsnohr","email":"matthew.bluteau@gmail.com","login":"bielsnohr","count":28},{"name":"Sven van der Burg","email":"s.vanderburg@esciencecenter.nl","login":"svenvanderburg","count":24},{"name":"Frank Löffler","email":"frank.loeffler@uni-jena.de","login":"knarrff","count":6},{"name":"Thomas Neep (Advanced Research Computing)","email":"t.j.neep@bham.ac.uk","login":"tomneep","count":2},{"name":"Sander van Rijn","email":"s.vanrijn@esciencecenter.nl","login":"sjvrijn","count":2},{"name":"Matthew Bluteau","email":"matthew.bluteau@ukaea.uk","login":"m-bluteau","count":2},{"name":"tobyhodges","email":"tobyhodges","login":"tobyhodges","count":1},{"name":"jreeve-nv","email":"jennifer.reeve@netvalue.nz","login":"jreeve-nv","count":1},{"name":"Steve Crouch","email":"s.crouch@software.ac.uk","login":"steve-crouch","count":1},{"name":"Simon Hartley (Advanced Research Computing)","email":"s.hartley@bham.ac.uk","login":"shartleybham-acuk","count":1},{"name":"John Nonweiler","email":"john.nonweiler@ukaea.uk","login":"johnnonweiler","count":1},{"name":"Douglas Lowe","email":"10961945+douglowe","login":"douglowe","count":1},{"name":"Dani Bodor","email":"d.bodor@esciencecenter.nl","login":"DaniBodor","count":1},{"name":"Christian Knüpfer","email":"christian.knuepfer@uni-jena.de","login":"cknuepfer","count":1}],"past_year_total_commits":126,"past_year_total_committers":15,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":8.4,"past_year_dds":0.5714285714285714,"last_synced_at":"2025-05-21T17:35:40.179Z","last_synced_commit":"2c5c285b676c10ce3e07f1d983757d240cfb92df","created_at":"2024-12-29T12:55:58.846Z","updated_at":"2025-05-21T17:35:40.231Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-incubator%2Fpython-intermediate-development/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-08T00:00:16.827Z","repositories_count":5482748,"commits_count":854068090,"contributors_count":31125167,"owners_count":908074,"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":"carpentries-incubator/python-intermediate-development","html_url":"https://github.com/carpentries-incubator/python-intermediate-development","last_synced_at":"2025-08-31T07:46:41.521Z","status":null,"issues_count":105,"pull_requests_count":87,"avg_time_to_close_issue":13513101.83116883,"avg_time_to_close_pull_request":2775126.075,"issues_closed_count":77,"pull_requests_closed_count":80,"pull_request_authors_count":18,"issue_authors_count":15,"avg_comments_per_issue":1.5333333333333332,"avg_comments_per_pull_request":0.9655172413793104,"merged_pull_requests_count":71,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":29,"past_year_pull_requests_count":48,"past_year_avg_time_to_close_issue":3957966.8571428573,"past_year_avg_time_to_close_pull_request":1969747.4390243902,"past_year_issues_closed_count":7,"past_year_pull_requests_closed_count":41,"past_year_pull_request_authors_count":13,"past_year_issue_authors_count":9,"past_year_avg_comments_per_issue":0.6206896551724138,"past_year_avg_comments_per_pull_request":1.3125,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":39,"created_at":"2024-12-29T12:56:08.671Z","updated_at":"2025-09-03T02:40:17.564Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-incubator%2Fpython-intermediate-development","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/carpentries-incubator%2Fpython-intermediate-development/issues","issue_labels_count":{"help wanted":7,"pilot":7,"ukaea-rse-team":4,"enhancement":3,"could-have":3,"should-have":2,"good first issue":2,"improvement":2,"wontfix":1,"documentation":1,"type: template and tools":1,"bug":1,"sprint":1},"pull_request_labels_count":{"type: template and tools":3,"improvement":1},"issue_author_associations_count":{"COLLABORATOR":122,"CONTRIBUTOR":20,"NONE":12},"pull_request_author_associations_count":{"COLLABORATOR":98,"CONTRIBUTOR":27,"NONE":18,"MEMBER":1},"issue_authors":{"anenadic":54,"bielsnohr":24,"steve-crouch":24,"svenvanderburg":22,"gpfrancis":6,"sjvrijn":5,"jag1g13":3,"mhagdorn":3,"thomaskileyukaea":2,"carlosug":1,"sstevens2":1,"matt-graham":1,"johnnonweiler":1,"krishnakumarg1984":1,"p-j-smith":1,"knarrff":1,"jhidding":1,"f-hafner":1,"fiveop":1,"tomneep":1},"pull_request_authors":{"anenadic":53,"knarrff":14,"svenvanderburg":14,"bielsnohr":12,"steve-crouch":7,"thespacedoctor":5,"sjvrijn":4,"unode":4,"douglowe":4,"carpentries-bot":3,"gcroci2":3,"tomneep":2,"DaniBodor":2,"cknuepfer":2,"jag1g13":2,"fmichonneau":2,"hsaunders1904":1,"smangham":1,"martinjrobins":1,"olexandr-konovalov":1,"thomaskileyukaea":1,"sihart25":1,"wk9874":1,"kzscisoft":1,"emmasimp":1,"k-collie":1,"jreeve-nv":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-08T00:00:17.013Z","repositories_count":10165784,"issues_count":31999265,"pull_requests_count":100269215,"authors_count":10729006,"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":{"pilot":3,"ukaea-rse-team":3,"could-have":2,"documentation":1,"type: template and tools":1,"bug":1},"past_year_pull_request_labels_count":{"type: template and tools":3,"improvement":1},"past_year_issue_author_associations_count":{"COLLABORATOR":35,"NONE":5,"CONTRIBUTOR":1},"past_year_pull_request_author_associations_count":{"COLLABORATOR":32,"CONTRIBUTOR":19,"NONE":12,"MEMBER":1},"past_year_issue_authors":{"svenvanderburg":13,"bielsnohr":12,"anenadic":5,"steve-crouch":4,"fiveop":1,"jhidding":1,"johnnonweiler":1,"knarrff":1,"matt-graham":1,"sjvrijn":1,"tomneep":1},"past_year_pull_request_authors":{"knarrff":14,"svenvanderburg":10,"anenadic":9,"bielsnohr":8,"carpentries-bot":3,"tomneep":2,"sjvrijn":2,"steve-crouch":2,"douglowe":2,"cknuepfer":2,"DaniBodor":2,"hsaunders1904":1,"wk9874":1,"thomaskileyukaea":1,"k-collie":1,"kzscisoft":1,"olexandr-konovalov":1,"smangham":1,"sihart25":1},"maintainers":[{"login":"anenadic","count":107,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/anenadic"},{"login":"bielsnohr","count":36,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bielsnohr"},{"login":"steve-crouch","count":31,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/steve-crouch"},{"login":"svenvanderburg","count":24,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/svenvanderburg"},{"login":"gpfrancis","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gpfrancis"},{"login":"thespacedoctor","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/thespacedoctor"},{"login":"douglowe","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/douglowe"},{"login":"unode","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/unode"},{"login":"matt-graham","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/matt-graham"},{"login":"olexandr-konovalov","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/olexandr-konovalov"},{"login":"smangham","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/smangham"},{"login":"martinjrobins","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/martinjrobins"}],"active_maintainers":[{"login":"svenvanderburg","count":23,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/svenvanderburg"},{"login":"bielsnohr","count":20,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bielsnohr"},{"login":"anenadic","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/anenadic"},{"login":"steve-crouch","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/steve-crouch"},{"login":"douglowe","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/douglowe"},{"login":"olexandr-konovalov","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/olexandr-konovalov"},{"login":"matt-graham","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/matt-graham"},{"login":"smangham","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/smangham"}]},"events":{"total":{"CreateEvent":32,"ReleaseEvent":1,"IssuesEvent":57,"WatchEvent":6,"DeleteEvent":27,"MemberEvent":3,"IssueCommentEvent":102,"PushEvent":171,"PullRequestReviewCommentEvent":23,"PullRequestEvent":60,"PullRequestReviewEvent":38,"ForkEvent":15},"last_year":{"CreateEvent":32,"ReleaseEvent":1,"IssuesEvent":57,"WatchEvent":6,"DeleteEvent":27,"MemberEvent":3,"IssueCommentEvent":102,"PushEvent":171,"PullRequestReviewCommentEvent":23,"PullRequestEvent":60,"PullRequestReviewEvent":38,"ForkEvent":15}},"keywords":["beta","carpentry-lesson","intermediate","lesson","python","software-design","software-development","software-engineering-research","training","training-materials"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/template.yml","sha":null,"kind":"manifest","created_at":"2023-02-14T17:15:22.154Z","updated_at":"2023-02-14T17:15:22.154Z","repository_link":"https://github.com/carpentries-incubator/python-intermediate-development/blob/main/.github/workflows/template.yml","dependencies":[{"id":7664796037,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7664796038,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7664796040,"package_name":"actions/checkout","ecosystem":"actions","requirements":"master","direct":true,"kind":"composite","optional":false},{"id":7664796042,"package_name":"r-lib/actions/setup-r","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7664796045,"package_name":"actions/cache","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/website.yml","sha":null,"kind":"manifest","created_at":"2023-02-14T17:15:22.228Z","updated_at":"2023-02-14T17:15:22.228Z","repository_link":"https://github.com/carpentries-incubator/python-intermediate-development/blob/main/.github/workflows/website.yml","dependencies":[{"id":7664796445,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7664796452,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7664796453,"package_name":"actions/checkout","ecosystem":"actions","requirements":"master","direct":true,"kind":"composite","optional":false},{"id":7664796454,"package_name":"r-lib/actions/setup-r","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7664796455,"package_name":"actions/cache","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"rubygems","filepath":"Gemfile","sha":null,"kind":"manifest","created_at":"2023-02-14T17:15:22.302Z","updated_at":"2023-02-14T17:15:22.302Z","repository_link":"https://github.com/carpentries-incubator/python-intermediate-development/blob/main/Gemfile","dependencies":[{"id":7664796720,"package_name":"github-pages","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":7664797054,"package_name":"webrick","ecosystem":"rubygems","requirements":"\u003e= 1.6.1","direct":true,"kind":"runtime","optional":false}]}],"score":8.129174996911793,"created_at":"2025-09-04T15:51:37.642Z","updated_at":"2025-10-07T08:23:51.219Z","avatar_url":"https://github.com/carpentries-incubator.png","language":"TeX","category":null,"sub_category":null,"monthly_downloads":0,"funding_links":["https://github.com/sponsors/carpentries","https://give.communityin.org/TheCarpentries"],"readme_doi_urls":["https://doi.org/10.5281/zenodo.6532056"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["carpentries-incubator","english","carpentries","pre-alpha","alpha","helpwanted-list","bootstrapping","software-carpentry","github-pages","jekyll"],"project_url":"https://science.ecosyste.ms/api/v1/projects/60783","html_url":"https://science.ecosyste.ms/projects/60783","bibtex_url":"https://science.ecosyste.ms/projects/60783/export.bibtex","apalike_url":"https://science.ecosyste.ms/projects/60783/export.apalike"}