{"id":128679,"name":null,"description":"Pytest plugin to check for files left open at the end of a test run","url":"https://github.com/astropy/pytest-openfiles","last_synced_at":"2025-09-09T11:10:12.204Z","repository":{"id":45214418,"uuid":"104253678","full_name":"astropy/pytest-openfiles","owner":"astropy","description":"Pytest plugin to check for files left open at the end of a test run","archived":true,"fork":false,"pushed_at":"2024-06-05T21:24:37.000Z","size":590,"stargazers_count":9,"open_issues_count":0,"forks_count":10,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-08-28T17:51:20.680Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/astropy.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.rst","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},"funding":{"github":"numfocus","custom":"https://numfocus.org/donate-to-astropy"}},"created_at":"2017-09-20T18:33:47.000Z","updated_at":"2024-12-16T02:34:52.000Z","dependencies_parsed_at":"2024-04-12T10:22:13.951Z","dependency_job_id":"7fa870a9-2f43-40ed-b018-35bac4885333","html_url":"https://github.com/astropy/pytest-openfiles","commit_stats":{"total_commits":532,"total_committers":34,"mean_commits":"15.647058823529411","dds":0.7875939849624061,"last_synced_commit":"67a59ac8c31866b067a7cb9bc8075b72e00d06e5"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/astropy/pytest-openfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astropy","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/sbom","scorecard":{"id":213736,"data":{"date":"2025-08-11","repo":{"name":"github.com/astropy/pytest-openfiles","commit":"67a59ac8c31866b067a7cb9bc8075b72e00d06e5"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":3,"reason":"Found 6/16 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci_workflows.yml:1","Warn: no topLevel permission defined: .github/workflows/publish.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci_workflows.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/astropy/pytest-openfiles/ci_workflows.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci_workflows.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/astropy/pytest-openfiles/ci_workflows.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/astropy/pytest-openfiles/publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/astropy/pytest-openfiles/publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/astropy/pytest-openfiles/publish.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/ci_workflows.yml:52","Warn: pipCommand not pinned by hash: .github/workflows/publish.yml:25","Warn: pipCommand not pinned by hash: .github/workflows/publish.yml:39","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   3 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.rst:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE.rst:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 22 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T01:13:46.211Z","repository_id":45214418,"created_at":"2025-08-17T01:13:46.212Z","updated_at":"2025-08-17T01:13:46.212Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274288509,"owners_count":25257717,"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-09T02:00:10.223Z","response_time":80,"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":"astropy","name":"The Astropy Project","uuid":"847984","kind":"organization","description":"","email":null,"website":"http://www.astropy.org","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/847984?v=4","repositories_count":88,"last_synced_at":"2024-04-14T17:23:44.091Z","metadata":{"has_sponsors_listing":false,"funding":{"github":"numfocus","custom":"https://numfocus.org/donate-to-astropy"}},"html_url":"https://github.com/astropy","funding_links":["https://github.com/sponsors/numfocus","https://numfocus.org/donate-to-astropy"],"total_stars":7267,"followers":258,"following":0,"created_at":"2022-11-02T16:32:44.044Z","updated_at":"2024-04-14T17:23:56.477Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astropy","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astropy/repositories"},"packages":[{"id":5284775,"name":"pytest-openfiles","ecosystem":"conda","description":"This package provides a plugin for the pytest framework that allows developers to detect whether any file handles or other file-like objects were inadvertently left open at the end of a unit test.","homepage":"https://github.com/astropy/pytest-openfiles","licenses":"BSD-3-Clause","normalized_licenses":["BSD-3-Clause"],"repository_url":"https://github.com/astropy/pytest-openfiles","keywords_array":[],"namespace":null,"versions_count":6,"first_release_published_at":"2018-02-15T21:47:26.000Z","latest_release_published_at":"2020-04-30T01:06:20.000Z","latest_release_number":"0.5.0","last_synced_at":"2025-08-12T05:47:16.544Z","created_at":"2022-10-03T15:41:15.305Z","updated_at":"2025-08-12T05:47:16.544Z","registry_url":"https://anaconda.org/anaconda/pytest-openfiles","install_command":"conda install -c anaconda pytest-openfiles","documentation_url":null,"metadata":{},"repo_metadata":{"uuid":"104253678","full_name":"astropy/pytest-openfiles","owner":"astropy","description":"Pytest plugin to check for files left open at the end of a test run","archived":false,"fork":false,"pushed_at":"2023-02-17T14:44:18.000Z","size":582,"stargazers_count":6,"open_issues_count":2,"forks_count":9,"subscribers_count":14,"default_branch":"main","last_synced_at":"2023-03-21T11:58:35.551Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"logo_url":null,"metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.rst","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-20T18:33:47.000Z","updated_at":"2023-02-06T09:16:39.000Z","dependencies_parsed_at":"2023-02-14T17:46:21.973Z","dependency_job_id":null,"html_url":"https://github.com/astropy/pytest-openfiles","commit_stats":null,"repository_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles","tags_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags","manifests_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/manifests","owner_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astropy","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":108921946,"host_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names"},"owner_record":{"login":"astropy","name":"The Astropy Project","uuid":"847984","kind":"organization","description":"","email":null,"website":"http://www.astropy.org","location":null,"twitter":null,"company":null,"avatar_url":"https://avatars.githubusercontent.com/u/847984?v=4","repositories_count":72,"last_synced_at":"2023-02-19T23:11:56.142Z","metadata":{"has_sponsors_listing":false},"owner_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astropy"},"tags":[{"name":"v0.5.0","sha":"84e93594a3eade8d7a66d5eebec6ece3a952a1d5","kind":"tag","published_at":"2020-04-16T15:34:27.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.5.0","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.5.0"},{"name":"v0.4.0","sha":"f77332241de7e2017c52ea52887095f6c79967e4","kind":"tag","published_at":"2019-07-20T13:07:12.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.4.0","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.4.0"},{"name":"v0.3.2","sha":"44ec55b7f899e7de171d3856d6a6076b17ebf797","kind":"tag","published_at":"2019-01-07T15:21:45.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.2","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.2"},{"name":"v0.3.2rc","sha":"6a8c991c60a15e9744c23bf4bb6fd6f12823d5d9","kind":"tag","published_at":"2019-01-07T15:15:18.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.2rc","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.2rc"},{"name":"v0.3.1","sha":"74c9c94894656313016052ddaef89bdcae56a14f","kind":"tag","published_at":"2018-11-26T14:38:10.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.1","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.1"},{"name":"v0.3.1rc","sha":"a6ae52217d7ef1429df50e375fbe75db30d8457d","kind":"tag","published_at":"2018-11-16T15:05:08.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.1rc","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.1rc"},{"name":"v0.3.0","sha":"ab582ab1cd68e9f5bf80de1bfdf6c80b3fc065e6","kind":"tag","published_at":"2018-04-20T17:49:11.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.0","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.0"},{"name":"v0.2.0","sha":"99fec8cb7412064a5ee384de7f7b8dd590c1daf3","kind":"tag","published_at":"2017-12-07T20:39:04.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.2.0","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.2.0"},{"name":"v0.1","sha":"24c055e8fb4247ecd2dffd390901a2cce13d7e0a","kind":"tag","published_at":"2017-10-10T15:34:09.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.1","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.1"}]},"repo_metadata_updated_at":"2023-03-22T07:24:21.146Z","dependent_packages_count":1,"downloads":null,"downloads_period":null,"dependent_repos_count":91,"rankings":{"downloads":null,"dependent_repos_count":19.408897014015842,"dependent_packages_count":30.65204143814747,"stargazers_count":55.728214503351616,"forks_count":52.46800731261426,"docker_downloads_count":null,"average":39.564290067032296},"purl":"pkg:conda/pytest-openfiles","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/pytest-openfiles","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/pytest-openfiles","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/pytest-openfiles/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2023-08-08T20:22:01.471Z","issues_count":22,"pull_requests_count":26,"avg_time_to_close_issue":48514036.85,"avg_time_to_close_pull_request":3646852.3846153845,"issues_closed_count":20,"pull_requests_closed_count":26,"pull_request_authors_count":8,"issue_authors_count":11,"avg_comments_per_issue":2.2727272727272725,"avg_comments_per_pull_request":1.4230769230769231,"merged_pull_requests_count":23,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":3,"past_year_pull_requests_count":2,"past_year_avg_time_to_close_issue":756650.0,"past_year_avg_time_to_close_pull_request":1242629.0,"past_year_issues_closed_count":2,"past_year_pull_requests_closed_count":2,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.3333333333333333,"past_year_avg_comments_per_pull_request":5.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/pytest-openfiles/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/pytest-openfiles/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/pytest-openfiles/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/pytest-openfiles/related_packages","maintainers":[],"registry":{"name":"anaconda.org","url":"https://anaconda.org","ecosystem":"conda","default":true,"packages_count":4335,"maintainers_count":0,"namespaces_count":0,"keywords_count":2930,"github":"Anaconda","metadata":{"kind":"anaconda","key":"Main","api":"https://repo.ananconda.com","funded_packages_count":613},"icon_url":"https://github.com/Anaconda.png","created_at":"2022-10-03T15:37:08.736Z","updated_at":"2025-09-09T06:53:26.632Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/namespaces"}},{"id":2885668,"name":"pytest-openfiles","ecosystem":"pypi","description":"Pytest plugin for detecting inadvertent open file handles","homepage":"https://github.com/astropy/pytest-openfiles","licenses":"BSD","normalized_licenses":["BSD-3-Clause"],"repository_url":"https://github.com/astropy/pytest-openfiles","keywords_array":["detect","open","file","handle","psutil","pytest","py.test"],"namespace":null,"versions_count":8,"first_release_published_at":"2017-10-10T15:01:42.000Z","latest_release_published_at":"2024-06-05T21:14:35.000Z","latest_release_number":"0.6.0","last_synced_at":"2025-08-28T12:24:21.277Z","created_at":"2022-04-10T12:19:54.119Z","updated_at":"2025-08-28T12:44:50.390Z","registry_url":"https://pypi.org/project/pytest-openfiles/","install_command":"pip install pytest-openfiles --index-url https://pypi.org/simple","documentation_url":"https://pytest-openfiles.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 3 - Alpha","Framework :: Pytest","Intended Audience :: Developers","License :: OSI Approved :: BSD License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.7","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Programming Language :: Python :: Implementation :: CPython","Topic :: Software Development :: Testing","Topic :: Utilities"],"normalized_name":"pytest-openfiles","project_status":null},"repo_metadata":{"id":45214418,"uuid":"104253678","full_name":"astropy/pytest-openfiles","owner":"astropy","description":"Pytest plugin to check for files left open at the end of a test run","archived":true,"fork":false,"pushed_at":"2024-06-05T21:24:37.000Z","size":590,"stargazers_count":9,"open_issues_count":0,"forks_count":10,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-08-05T07:43:51.870Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/astropy.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.rst","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},"funding":{"github":"numfocus","custom":"https://numfocus.org/donate-to-astropy"}},"created_at":"2017-09-20T18:33:47.000Z","updated_at":"2024-12-16T02:34:52.000Z","dependencies_parsed_at":"2024-04-12T10:22:13.951Z","dependency_job_id":"7fa870a9-2f43-40ed-b018-35bac4885333","html_url":"https://github.com/astropy/pytest-openfiles","commit_stats":{"total_commits":532,"total_committers":34,"mean_commits":"15.647058823529411","dds":0.7875939849624061,"last_synced_commit":"67a59ac8c31866b067a7cb9bc8075b72e00d06e5"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/astropy/pytest-openfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astropy","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/sbom","scorecard":{"id":213736,"data":{"date":"2025-08-11","repo":{"name":"github.com/astropy/pytest-openfiles","commit":"67a59ac8c31866b067a7cb9bc8075b72e00d06e5"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":3,"reason":"Found 6/16 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci_workflows.yml:1","Warn: no topLevel permission defined: .github/workflows/publish.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci_workflows.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/astropy/pytest-openfiles/ci_workflows.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci_workflows.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/astropy/pytest-openfiles/ci_workflows.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/astropy/pytest-openfiles/publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/astropy/pytest-openfiles/publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/astropy/pytest-openfiles/publish.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/ci_workflows.yml:52","Warn: pipCommand not pinned by hash: .github/workflows/publish.yml:25","Warn: pipCommand not pinned by hash: .github/workflows/publish.yml:39","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   3 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.rst:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE.rst:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 22 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T01:13:46.211Z","repository_id":45214418,"created_at":"2025-08-17T01:13:46.212Z","updated_at":"2025-08-17T01:13:46.212Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272498359,"owners_count":24944820,"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-08-28T02:00:10.768Z","response_time":74,"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_record":{"login":"astropy","name":"The Astropy Project","uuid":"847984","kind":"organization","description":"","email":null,"website":"http://www.astropy.org","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/847984?v=4","repositories_count":88,"last_synced_at":"2024-04-14T17:23:44.091Z","metadata":{"has_sponsors_listing":false,"funding":{"github":"numfocus","custom":"https://numfocus.org/donate-to-astropy"}},"html_url":"https://github.com/astropy","funding_links":["https://github.com/sponsors/numfocus","https://numfocus.org/donate-to-astropy"],"total_stars":7267,"followers":258,"following":0,"created_at":"2022-11-02T16:32:44.044Z","updated_at":"2024-04-14T17:23:56.477Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astropy","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astropy/repositories"},"tags":[{"name":"v0.6.0","sha":"e14e151812e472ebd48578c55b5aad7f974792da","kind":"commit","published_at":"2024-06-05T21:05:29.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.6.0","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/astropy/pytest-openfiles@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.6.0/manifests"},{"name":"v0.5.0","sha":"84e93594a3eade8d7a66d5eebec6ece3a952a1d5","kind":"tag","published_at":"2020-04-16T15:34:27.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.5.0","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/astropy/pytest-openfiles@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.5.0/manifests"},{"name":"v0.4.0","sha":"f77332241de7e2017c52ea52887095f6c79967e4","kind":"tag","published_at":"2019-07-20T13:07:12.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.4.0","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/astropy/pytest-openfiles@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.4.0/manifests"},{"name":"v0.3.2","sha":"44ec55b7f899e7de171d3856d6a6076b17ebf797","kind":"tag","published_at":"2019-01-07T15:21:45.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.2","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/astropy/pytest-openfiles@v0.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.3.2/manifests"},{"name":"v0.3.2rc","sha":"6a8c991c60a15e9744c23bf4bb6fd6f12823d5d9","kind":"tag","published_at":"2019-01-07T15:15:18.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.2rc","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.2rc","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/astropy/pytest-openfiles@v0.3.2rc","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.3.2rc","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.3.2rc/manifests"},{"name":"v0.3.1","sha":"74c9c94894656313016052ddaef89bdcae56a14f","kind":"tag","published_at":"2018-11-26T14:38:10.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.1","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/astropy/pytest-openfiles@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.3.1/manifests"},{"name":"v0.3.1rc","sha":"a6ae52217d7ef1429df50e375fbe75db30d8457d","kind":"tag","published_at":"2018-11-16T15:05:08.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.1rc","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.1rc","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/astropy/pytest-openfiles@v0.3.1rc","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.3.1rc","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.3.1rc/manifests"},{"name":"v0.3.0","sha":"ab582ab1cd68e9f5bf80de1bfdf6c80b3fc065e6","kind":"tag","published_at":"2018-04-20T17:49:11.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.0","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/astropy/pytest-openfiles@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"99fec8cb7412064a5ee384de7f7b8dd590c1daf3","kind":"tag","published_at":"2017-12-07T20:39:04.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.2.0","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/astropy/pytest-openfiles@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.2.0/manifests"},{"name":"v0.1","sha":"24c055e8fb4247ecd2dffd390901a2cce13d7e0a","kind":"tag","published_at":"2017-10-10T15:34:09.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.1","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/astropy/pytest-openfiles@v0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags/v0.1/manifests"}]},"repo_metadata_updated_at":"2025-08-28T12:44:50.390Z","dependent_packages_count":28,"downloads":34143,"downloads_period":"last-month","dependent_repos_count":3424,"rankings":{"downloads":1.0063689379987721,"dependent_repos_count":0.17706414978514426,"dependent_packages_count":0.4295222668335112,"stargazers_count":20.327587563649065,"forks_count":11.421908737584568,"docker_downloads_count":1.1416129527317374,"average":5.750677434763799},"purl":"pkg:pypi/pytest-openfiles","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/pytest-openfiles","docker_dependents_count":49,"docker_downloads_count":13249,"usage_url":"https://repos.ecosyste.ms/usage/pypi/pytest-openfiles","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/pytest-openfiles/dependencies","status":null,"funding_links":["https://github.com/sponsors/numfocus","https://numfocus.org/donate-to-astropy"],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-28T12:44:50.207Z","issues_count":22,"pull_requests_count":26,"avg_time_to_close_issue":49408594.45454545,"avg_time_to_close_pull_request":3646852.3846153845,"issues_closed_count":22,"pull_requests_closed_count":26,"pull_request_authors_count":8,"issue_authors_count":11,"avg_comments_per_issue":2.2727272727272725,"avg_comments_per_pull_request":1.4230769230769231,"merged_pull_requests_count":23,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/issues","maintainers":[{"login":"pllim","count":16,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pllim"},{"login":"astrofrog","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/astrofrog"},{"login":"bsipocz","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bsipocz"},{"login":"hamogu","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hamogu"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pytest-openfiles/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pytest-openfiles/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pytest-openfiles/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pytest-openfiles/related_packages","maintainers":[{"uuid":"robitaille","login":"robitaille","name":null,"email":null,"url":null,"packages_count":71,"html_url":"https://pypi.org/user/robitaille/","role":null,"created_at":"2023-01-26T16:37:29.253Z","updated_at":"2023-01-26T16:37:29.253Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/robitaille/packages"},{"uuid":"bsipocz","login":"bsipocz","name":null,"email":null,"url":null,"packages_count":21,"html_url":"https://pypi.org/user/bsipocz/","role":null,"created_at":"2023-01-26T16:37:29.202Z","updated_at":"2023-01-26T16:37:29.202Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/bsipocz/packages"},{"uuid":"saimon","login":"saimon","name":null,"email":null,"url":null,"packages_count":25,"html_url":"https://pypi.org/user/saimon/","role":null,"created_at":"2023-01-26T16:37:29.381Z","updated_at":"2023-01-26T16:37:29.381Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/saimon/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":726499,"maintainers_count":308863,"namespaces_count":0,"keywords_count":238369,"github":"pypi","metadata":{"funded_packages_count":50594},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-09-09T06:31:19.922Z","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":5301255,"name":"pytest-openfiles","ecosystem":"conda","description":"This package provides a plugin for the pytest framework that allows developers to detect whether any file handles or other file-like objects were inadvertently left open at the end of a unit test.","homepage":"https://github.com/astropy/pytest-openfiles","licenses":"BSD-3-Clause","normalized_licenses":["BSD-3-Clause"],"repository_url":"https://github.com/astropy/pytest-openfiles","keywords_array":[],"namespace":null,"versions_count":5,"first_release_published_at":"2022-10-03T16:10:29.939Z","latest_release_published_at":"2020-06-11T21:05:15.000Z","latest_release_number":"0.5.0","last_synced_at":"2025-08-28T12:24:14.126Z","created_at":"2022-10-03T16:10:29.908Z","updated_at":"2025-08-28T12:24:14.126Z","registry_url":"https://anaconda.org/conda-forge/pytest-openfiles","install_command":"conda install -c conda-forge pytest-openfiles","documentation_url":null,"metadata":{},"repo_metadata":{"uuid":"104253678","full_name":"astropy/pytest-openfiles","owner":"astropy","description":"Pytest plugin to check for files left open at the end of a test run","archived":false,"fork":false,"pushed_at":"2023-02-17T14:44:18.000Z","size":582,"stargazers_count":6,"open_issues_count":2,"forks_count":9,"subscribers_count":14,"default_branch":"main","last_synced_at":"2023-03-22T07:24:24.874Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"logo_url":null,"metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.rst","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-20T18:33:47.000Z","updated_at":"2023-02-06T09:16:39.000Z","dependencies_parsed_at":"2023-02-14T17:46:21.973Z","dependency_job_id":null,"html_url":"https://github.com/astropy/pytest-openfiles","commit_stats":null,"repository_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles","tags_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags","manifests_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/manifests","owner_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astropy","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":108921946,"host_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names"},"owner_record":{"login":"astropy","name":"The Astropy Project","uuid":"847984","kind":"organization","description":"","email":null,"website":"http://www.astropy.org","location":null,"twitter":null,"company":null,"avatar_url":"https://avatars.githubusercontent.com/u/847984?v=4","repositories_count":72,"last_synced_at":"2023-02-19T23:11:56.142Z","metadata":{"has_sponsors_listing":false},"owner_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astropy"},"tags":[{"name":"v0.5.0","sha":"84e93594a3eade8d7a66d5eebec6ece3a952a1d5","kind":"tag","published_at":"2020-04-16T15:34:27.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.5.0","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.5.0"},{"name":"v0.4.0","sha":"f77332241de7e2017c52ea52887095f6c79967e4","kind":"tag","published_at":"2019-07-20T13:07:12.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.4.0","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.4.0"},{"name":"v0.3.2","sha":"44ec55b7f899e7de171d3856d6a6076b17ebf797","kind":"tag","published_at":"2019-01-07T15:21:45.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.2","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.2"},{"name":"v0.3.2rc","sha":"6a8c991c60a15e9744c23bf4bb6fd6f12823d5d9","kind":"tag","published_at":"2019-01-07T15:15:18.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.2rc","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.2rc"},{"name":"v0.3.1","sha":"74c9c94894656313016052ddaef89bdcae56a14f","kind":"tag","published_at":"2018-11-26T14:38:10.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.1","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.1"},{"name":"v0.3.1rc","sha":"a6ae52217d7ef1429df50e375fbe75db30d8457d","kind":"tag","published_at":"2018-11-16T15:05:08.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.1rc","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.1rc"},{"name":"v0.3.0","sha":"ab582ab1cd68e9f5bf80de1bfdf6c80b3fc065e6","kind":"tag","published_at":"2018-04-20T17:49:11.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.0","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.0"},{"name":"v0.2.0","sha":"99fec8cb7412064a5ee384de7f7b8dd590c1daf3","kind":"tag","published_at":"2017-12-07T20:39:04.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.2.0","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.2.0"},{"name":"v0.1","sha":"24c055e8fb4247ecd2dffd390901a2cce13d7e0a","kind":"tag","published_at":"2017-10-10T15:34:09.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.1","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.1"}]},"repo_metadata_updated_at":"2023-03-22T07:28:45.882Z","dependent_packages_count":7,"downloads":null,"downloads_period":null,"dependent_repos_count":91,"rankings":{"downloads":null,"dependent_repos_count":3.632915814162383,"dependent_packages_count":8.009381705673936,"stargazers_count":58.33624432356904,"forks_count":46.12505614052597,"docker_downloads_count":null,"average":29.025899495982834},"purl":"pkg:conda/pytest-openfiles","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/pytest-openfiles","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/pytest-openfiles","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/pytest-openfiles/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2023-08-08T20:22:01.471Z","issues_count":22,"pull_requests_count":26,"avg_time_to_close_issue":48514036.85,"avg_time_to_close_pull_request":3646852.3846153845,"issues_closed_count":20,"pull_requests_closed_count":26,"pull_request_authors_count":8,"issue_authors_count":11,"avg_comments_per_issue":2.2727272727272725,"avg_comments_per_pull_request":1.4230769230769231,"merged_pull_requests_count":23,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":3,"past_year_pull_requests_count":2,"past_year_avg_time_to_close_issue":756650.0,"past_year_avg_time_to_close_pull_request":1242629.0,"past_year_issues_closed_count":2,"past_year_pull_requests_closed_count":2,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.3333333333333333,"past_year_avg_comments_per_pull_request":5.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/pytest-openfiles/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/pytest-openfiles/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/pytest-openfiles/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/pytest-openfiles/related_packages","maintainers":[],"registry":{"name":"conda-forge.org","url":"https://conda-forge.org","ecosystem":"conda","default":false,"packages_count":20636,"maintainers_count":0,"namespaces_count":0,"keywords_count":13420,"github":"conda-forge","metadata":{"kind":"conda-forge","key":"CondaForge","api":"https://conda.anaconda.org","funded_packages_count":2190},"icon_url":"https://github.com/conda-forge.png","created_at":"2022-10-03T15:37:08.743Z","updated_at":"2025-09-09T06:53:47.128Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/namespaces"}},{"id":76104,"name":"py-pytest-openfiles","ecosystem":"spack","description":"A plugin for the pytest framework that allows developers to detect\nwhether any file handles or other file-like objects were inadvertently\nleft open at the end of a unit test\n","homepage":"https://github.com/astropy/pytest-openfiles","licenses":"[]","normalized_licenses":["Other"],"repository_url":"https://github.com/astropy/pytest-openfiles","keywords_array":[],"namespace":null,"versions_count":1,"first_release_published_at":"2022-04-05T09:28:04.090Z","latest_release_published_at":"2022-04-05T09:28:04.090Z","latest_release_number":"0.5.0","last_synced_at":"2025-08-28T12:24:15.561Z","created_at":"2022-04-05T09:28:04.062Z","updated_at":"2025-08-28T12:24:15.561Z","registry_url":"https://packages.spack.io/package.html?name=py-pytest-openfiles","install_command":"spack install py-pytest-openfiles","documentation_url":null,"metadata":{},"repo_metadata":{"uuid":"104253678","full_name":"astropy/pytest-openfiles","owner":"astropy","description":"Pytest plugin to check for files left open at the end of a test run","archived":false,"fork":false,"pushed_at":"2023-02-17T14:44:18.000Z","size":582,"stargazers_count":6,"open_issues_count":2,"forks_count":9,"subscribers_count":13,"default_branch":"main","last_synced_at":"2023-03-13T22:13:32.451Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"logo_url":null,"metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.rst","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-20T18:33:47.000Z","updated_at":"2023-02-06T09:16:39.000Z","dependencies_parsed_at":"2023-02-14T17:46:21.973Z","dependency_job_id":null,"html_url":"https://github.com/astropy/pytest-openfiles","commit_stats":null,"repository_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles","tags_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/tags","manifests_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/manifests","owner_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astropy","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":108921946,"host_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names"},"owner_record":{"login":"astropy","name":"The Astropy Project","uuid":"847984","kind":"organization","description":"","email":null,"website":"http://www.astropy.org","location":null,"twitter":null,"company":null,"avatar_url":"https://avatars.githubusercontent.com/u/847984?v=4","repositories_count":72,"last_synced_at":"2023-02-19T23:11:56.142Z","metadata":{"has_sponsors_listing":false},"owner_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astropy"},"tags":[{"name":"v0.5.0","sha":"84e93594a3eade8d7a66d5eebec6ece3a952a1d5","kind":"tag","published_at":"2020-04-16T15:34:27.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.5.0","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.5.0"},{"name":"v0.4.0","sha":"f77332241de7e2017c52ea52887095f6c79967e4","kind":"tag","published_at":"2019-07-20T13:07:12.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.4.0","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.4.0"},{"name":"v0.3.2","sha":"44ec55b7f899e7de171d3856d6a6076b17ebf797","kind":"tag","published_at":"2019-01-07T15:21:45.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.2","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.2"},{"name":"v0.3.2rc","sha":"6a8c991c60a15e9744c23bf4bb6fd6f12823d5d9","kind":"tag","published_at":"2019-01-07T15:15:18.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.2rc","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.2rc"},{"name":"v0.3.1","sha":"74c9c94894656313016052ddaef89bdcae56a14f","kind":"tag","published_at":"2018-11-26T14:38:10.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.1","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.1"},{"name":"v0.3.1rc","sha":"a6ae52217d7ef1429df50e375fbe75db30d8457d","kind":"tag","published_at":"2018-11-16T15:05:08.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.1rc","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.1rc"},{"name":"v0.3.0","sha":"ab582ab1cd68e9f5bf80de1bfdf6c80b3fc065e6","kind":"tag","published_at":"2018-04-20T17:49:11.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.3.0","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.3.0"},{"name":"v0.2.0","sha":"99fec8cb7412064a5ee384de7f7b8dd590c1daf3","kind":"tag","published_at":"2017-12-07T20:39:04.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.2.0","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.2.0"},{"name":"v0.1","sha":"24c055e8fb4247ecd2dffd390901a2cce13d7e0a","kind":"tag","published_at":"2017-10-10T15:34:09.000Z","download_url":"https://codeload.github.com/astropy/pytest-openfiles/tar.gz/v0.1","html_url":"https://github.com/astropy/pytest-openfiles/releases/tag/v0.1"}]},"repo_metadata_updated_at":"2023-03-20T19:58:01.405Z","dependent_packages_count":1,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":0.0,"dependent_packages_count":57.27386411004586,"stargazers_count":28.456301236626373,"forks_count":24.037793525079895,"average":27.441989717938032},"purl":"pkg:spack/py-pytest-openfiles","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/spack/py-pytest-openfiles","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/spack/py-pytest-openfiles","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/spack/py-pytest-openfiles/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2023-08-08T20:22:01.471Z","issues_count":22,"pull_requests_count":26,"avg_time_to_close_issue":48514036.85,"avg_time_to_close_pull_request":3646852.3846153845,"issues_closed_count":20,"pull_requests_closed_count":26,"pull_request_authors_count":8,"issue_authors_count":11,"avg_comments_per_issue":2.2727272727272725,"avg_comments_per_pull_request":1.4230769230769231,"merged_pull_requests_count":23,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":3,"past_year_pull_requests_count":2,"past_year_avg_time_to_close_issue":756650.0,"past_year_avg_time_to_close_pull_request":1242629.0,"past_year_issues_closed_count":2,"past_year_pull_requests_closed_count":2,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.3333333333333333,"past_year_avg_comments_per_pull_request":5.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/packages/py-pytest-openfiles/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/packages/py-pytest-openfiles/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/packages/py-pytest-openfiles/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/packages/py-pytest-openfiles/related_packages","maintainers":[{"uuid":"adamjstewart","login":"adamjstewart","name":null,"email":null,"url":"https://github.com/adamjstewart","packages_count":2170,"html_url":null,"role":null,"created_at":"2022-11-14T16:54:54.208Z","updated_at":"2022-11-14T16:54:54.208Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/maintainers/adamjstewart/packages"}],"registry":{"name":"spack.io","url":"https://packages.spack.io","ecosystem":"spack","default":true,"packages_count":8772,"maintainers_count":926,"namespaces_count":0,"keywords_count":3681,"github":"spack","metadata":{"funded_packages_count":405},"icon_url":"https://github.com/spack.png","created_at":"2022-04-04T15:19:23.514Z","updated_at":"2025-09-09T06:56:19.886Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/spack.io/namespaces"}}],"commits":{"id":26000,"full_name":"astropy/pytest-openfiles","default_branch":"main","committers":[{"name":"Thomas Robitaille","email":"thomas.robitaille@gmail.com","login":null,"count":113},{"name":"Michael Droettboom","email":"mdboom@gmail.com","login":null,"count":110},{"name":"Erik M. Bray","email":"embray@stsci.edu","login":null,"count":82},{"name":"Dan D'Avella","email":"ddavella@stsci.edu","login":null,"count":39},{"name":"Matt Davis","email":"jiffyclub.programatic@gmail.com","login":null,"count":36},{"name":"Erik Tollerud","email":"erik.tollerud@gmail.com","login":null,"count":28},{"name":"Dan D'Avella","email":"drdavella@gmail.com","login":null,"count":15},{"name":"Stuart Mumford","email":"stuart@cadair.com","login":null,"count":15},{"name":"Brigitta Sipocz","email":"bsipocz@gmail.com","login":null,"count":15},{"name":"P. L. Lim","email":"2090236+pllim","login":"pllim","count":14},{"name":"Adam Ginsburg (keflavich)","email":"keflavich@gmail.com","login":null,"count":10},{"name":"Marten van Kerkwijk","email":"mhvk@astro.utoronto.ca","login":null,"count":7},{"name":"Pey Lian Lim","email":"lim@stsci.edu","login":null,"count":7},{"name":"Joseph Jon Booker","email":"joe@neoturbine.net","login":null,"count":6},{"name":"Michael Seifert","email":"michaelseifert04@yahoo.de","login":null,"count":5},{"name":"Erik Bray","email":"erik.m.bray@gmail.com","login":null,"count":4},{"name":"Simon Conseil","email":"contact@saimon.org","login":null,"count":4},{"name":"Christoph Deil","email":"Deil.Christoph@gmail.com","login":null,"count":3},{"name":"ktchrn","email":"ktchernyshyov@pha.jhu.edu","login":null,"count":3},{"name":"Curtis McCully","email":"cmccully@lcogt.net","login":null,"count":2},{"name":"Adrian Price-Whelan","email":"adrian.prw@gmail.com","login":null,"count":1},{"name":"Todd","email":"toddrme2178@gmail.com","login":"toddrme2178","count":1},{"name":"Orion Poplawski","email":"orion@cora.nwra.com","login":"opoplawski","count":1},{"name":"Bruno Oliveira","email":"nicoddemus@gmail.com","login":null,"count":1},{"name":"Daniel Hahler","email":"git@thequod.de","login":null,"count":1},{"name":"Derek Homeier","email":"dhomeie@gwdg.de","login":null,"count":1},{"name":"Julien Woillez","email":"jwoillez@gmail.com","login":null,"count":1},{"name":"Larry Bradley","email":"larry.bradley@gmail.com","login":null,"count":1},{"name":"Matteo Bachetti","email":"matteo@matteobachetti.it","login":null,"count":1},{"name":"Ole Streicher","email":"debian@liska.ath.cx","login":null,"count":1},{"name":"Prasanth Nair","email":"prasanthhn@gmail.com","login":null,"count":1},{"name":"Pratik151","email":"pratikpatel15133@gmail.com","login":null,"count":1},{"name":"Tomáš Chvátal","email":"tomas.chvatal@gmail.com","login":null,"count":1},{"name":"mbachett","email":"matteo.bachetti@irap.omp.eu","login":null,"count":1}],"total_commits":532,"total_committers":34,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":15.647058823529411,"dds":0.7875939849624061,"past_year_committers":[{"name":"P. L. Lim","email":"2090236+pllim","login":"pllim","count":3}],"past_year_total_commits":3,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":3.0,"past_year_dds":0.0,"last_synced_at":"2025-07-05T06:16:47.629Z","last_synced_commit":"67a59ac8c31866b067a7cb9bc8075b72e00d06e5","created_at":"2023-03-07T16:28:44.385Z","updated_at":"2025-07-05T06:16:47.630Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-03T00:00:08.276Z","repositories_count":5480019,"commits_count":853389012,"contributors_count":31098138,"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":"astropy/pytest-openfiles","html_url":"https://github.com/astropy/pytest-openfiles","last_synced_at":"2025-08-28T12:44:50.207Z","status":"error","issues_count":22,"pull_requests_count":26,"avg_time_to_close_issue":49408594.45454545,"avg_time_to_close_pull_request":3646852.3846153845,"issues_closed_count":22,"pull_requests_closed_count":26,"pull_request_authors_count":8,"issue_authors_count":11,"avg_comments_per_issue":2.2727272727272725,"avg_comments_per_pull_request":1.4230769230769231,"merged_pull_requests_count":23,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-10T11:04:50.204Z","updated_at":"2025-09-01T17:42:44.618Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/astropy%2Fpytest-openfiles/issues","issue_labels_count":{"bug":2,"enhancement":2,"question":1},"pull_request_labels_count":{"bug":3,"enhancement":2,"docs":2,"Build wheels":1,"merge-when-ci-passes":1},"issue_author_associations_count":{"MEMBER":14,"NONE":5,"CONTRIBUTOR":3},"pull_request_author_associations_count":{"MEMBER":13,"CONTRIBUTOR":13},"issue_authors":{"pllim":11,"astrofrog":2,"mcallaghan-bsm":1,"mhvk":1,"stscieisenhamer":1,"hamogu":1,"saimn":1,"seifertm":1,"MiguelLatorre":1,"drdavella":1,"costrouc":1},"pull_request_authors":{"drdavella":9,"astrofrog":6,"pllim":5,"bsipocz":2,"scarabeusiv":1,"toddrme2178":1,"blueyed":1,"saimn":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-05T00:00:10.444Z","repositories_count":10106791,"issues_count":31527519,"pull_requests_count":97917962,"authors_count":10705426,"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":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[{"login":"pllim","count":16,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/pllim"},{"login":"astrofrog","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/astrofrog"},{"login":"bsipocz","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bsipocz"},{"login":"hamogu","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hamogu"}],"active_maintainers":[]},"events":{"total":{"WatchEvent":1,"ForkEvent":1},"last_year":{"WatchEvent":1,"ForkEvent":1}},"keywords":[],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/ci_workflows.yml","sha":null,"kind":"manifest","created_at":"2023-02-14T17:46:21.858Z","updated_at":"2023-02-14T17:46:21.858Z","repository_link":"https://github.com/astropy/pytest-openfiles/blob/main/.github/workflows/ci_workflows.yml","dependencies":[{"id":7665230596,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7665230600,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/publish.yml","sha":null,"kind":"manifest","created_at":"2023-02-14T17:46:21.888Z","updated_at":"2023-02-14T17:46:21.888Z","repository_link":"https://github.com/astropy/pytest-openfiles/blob/main/.github/workflows/publish.yml","dependencies":[{"id":7665230735,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7665230736,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":7665230737,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"release/v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2024-04-12T10:22:13.885Z","updated_at":"2024-04-12T10:22:13.885Z","repository_link":"https://github.com/astropy/pytest-openfiles/blob/main/pyproject.toml","dependencies":[]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2024-04-12T10:22:13.937Z","updated_at":"2024-04-12T10:22:13.937Z","repository_link":"https://github.com/astropy/pytest-openfiles/blob/main/setup.py","dependencies":[]}],"score":16.564890016906944,"created_at":"2025-09-08T23:32:26.477Z","updated_at":"2025-10-07T08:34:24.968Z","avatar_url":"https://github.com/astropy.png","language":"Python","category":null,"sub_category":null,"monthly_downloads":34143,"funding_links":["https://github.com/sponsors/numfocus","https://numfocus.org/donate-to-astropy"],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["astronomy","astropy","astrophysics","closember","astropy-affiliated","jwst","gtk","qt","tk","wx"],"project_url":"https://science.ecosyste.ms/api/v1/projects/128679","html_url":"https://science.ecosyste.ms/projects/128679"}