{"id":31029,"name":"pyfuzzylite","description":"pyfuzzylite: a fuzzy logic control library in Python","url":"https://github.com/fuzzylite/pyfuzzylite","last_synced_at":"2025-09-05T05:02:16.815Z","repository":{"id":1606284,"uuid":"20874093","full_name":"fuzzylite/pyfuzzylite","owner":"fuzzylite","description":"pyfuzzylite: a fuzzy logic control library in Python","archived":false,"fork":false,"pushed_at":"2025-06-27T03:13:16.000Z","size":25280,"stargazers_count":74,"open_issues_count":0,"forks_count":14,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-07-28T23:46:05.414Z","etag":null,"topics":["artificial-intelligence","fuzzy-logic","fuzzy-logic-control","fuzzylite","fuzzylite-libraries","python","soft-computing"],"latest_commit_sha":null,"homepage":"https://fuzzylite.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fuzzylite.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.FuzzyLite.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"fuzzylite"}},"created_at":"2014-06-16T05:46:52.000Z","updated_at":"2025-06-27T03:11:10.000Z","dependencies_parsed_at":"2023-07-05T18:48:12.753Z","dependency_job_id":"92272d54-b587-4cd5-83a9-3f7b9dcfde74","html_url":"https://github.com/fuzzylite/pyfuzzylite","commit_stats":{"total_commits":249,"total_committers":2,"mean_commits":124.5,"dds":0.06827309236947787,"last_synced_commit":"28c75b32e0f1b69afe0fb7a4b70f61952929f260"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/fuzzylite/pyfuzzylite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuzzylite%2Fpyfuzzylite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuzzylite%2Fpyfuzzylite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuzzylite%2Fpyfuzzylite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuzzylite%2Fpyfuzzylite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fuzzylite","download_url":"https://codeload.github.com/fuzzylite/pyfuzzylite/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuzzylite%2Fpyfuzzylite/sbom","scorecard":{"id":415061,"data":{"date":"2025-08-11","repo":{"name":"github.com/fuzzylite/pyfuzzylite","commit":"af9b3688c0b19a31a72a6e7acec385ea803ac51b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.7,"checks":[{"name":"Maintained","score":4,"reason":"4 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 1/14 approved changesets -- score normalized to 0","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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/publish.yml:20","Warn: no topLevel permission defined: .github/workflows/build.yml:1","Warn: no topLevel permission defined: .github/workflows/publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test.yml:1"],"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":"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":"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":"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: COPYRIGHT:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"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":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/publish.yml:12"],"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":"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":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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/build.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/fuzzylite/pyfuzzylite/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/fuzzylite/pyfuzzylite/build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/fuzzylite/pyfuzzylite/build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/fuzzylite/pyfuzzylite/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/fuzzylite/pyfuzzylite/publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/fuzzylite/pyfuzzylite/publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/fuzzylite/pyfuzzylite/publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/fuzzylite/pyfuzzylite/test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/fuzzylite/pyfuzzylite/test.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/build.yml:27","Warn: pipCommand not pinned by hash: .github/workflows/publish.yml:33","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:29","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 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":"SAST","score":3,"reason":"SAST tool is not run on all commits -- score normalized to 3","details":["Warn: 11 commits out of 30 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-18T23:36:51.270Z","repository_id":1606284,"created_at":"2025-08-18T23:36:51.270Z","updated_at":"2025-08-18T23:36:51.270Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273713605,"owners_count":25154613,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-05T02:00:09.113Z","response_time":402,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"fuzzylite","name":"FuzzyLite","uuid":"7898712","kind":"organization","description":"The FuzzyLite Libraries for Fuzzy Logic Control","email":"sales@fuzzylite.com","website":"https://fuzzylite.com/","location":"Australia","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/7898712?v=4","repositories_count":7,"last_synced_at":"2025-08-29T08:16:53.223Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/fuzzylite","funding_links":["https://github.com/sponsors/fuzzylite"],"total_stars":415,"followers":7,"following":0,"created_at":"2022-11-03T02:55:10.597Z","updated_at":"2025-08-29T08:16:53.223Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fuzzylite","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fuzzylite/repositories"},"packages":null,"commits":{"id":636709,"full_name":"fuzzylite/pyfuzzylite","default_branch":"main","committers":[{"name":"Juan Rada-Vilela","email":"jcrada@fuzzylite.com","count":232},{"name":"jcrada","email":"jcrada@gmail.com","count":17}],"total_commits":249,"total_committers":2,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":124.5,"dds":0.06827309236947787,"past_year_committers":null,"past_year_total_commits":null,"past_year_total_committers":null,"past_year_total_bot_commits":null,"past_year_total_bot_committers":null,"past_year_mean_commits":null,"past_year_dds":null,"last_synced_at":"2023-03-19T03:58:07.511Z","last_synced_commit":"28c75b32e0f1b69afe0fb7a4b70f61952929f260","created_at":"2023-03-09T08:39:23.936Z","updated_at":"2023-09-19T17:30:36.203Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuzzylite%2Fpyfuzzylite/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-08-22T00:00:16.844Z","repositories_count":5479765,"commits_count":853308191,"contributors_count":31095157,"owners_count":906558,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"fuzzylite/pyfuzzylite","html_url":"https://github.com/fuzzylite/pyfuzzylite","last_synced_at":"2025-08-31T14:53:12.756Z","status":null,"issues_count":7,"pull_requests_count":90,"avg_time_to_close_issue":226497.33333333334,"avg_time_to_close_pull_request":366387.3370786517,"issues_closed_count":6,"pull_requests_closed_count":89,"pull_request_authors_count":4,"issue_authors_count":7,"avg_comments_per_issue":2.2857142857142856,"avg_comments_per_pull_request":1.5333333333333332,"merged_pull_requests_count":73,"bot_issues_count":0,"bot_pull_requests_count":12,"past_year_issues_count":1,"past_year_pull_requests_count":17,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":14489.5,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":16,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":1.0,"past_year_avg_comments_per_pull_request":1.7058823529411764,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":14,"created_at":"2023-05-14T21:12:44.067Z","updated_at":"2025-09-02T12:08:47.874Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuzzylite%2Fpyfuzzylite","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuzzylite%2Fpyfuzzylite/issues","issue_labels_count":{},"pull_request_labels_count":{"dependencies":12},"issue_author_associations_count":{"NONE":7,"MEMBER":1},"pull_request_author_associations_count":{"MEMBER":90,"NONE":14,"CONTRIBUTOR":1},"issue_authors":{"jcrada":1,"KatharinaSteinke":1,"DilHem":1,"mariovillamizar":1,"cgarzon777":1,"CJxD":1,"ManStu":1,"zrg1993":1},"pull_request_authors":{"jcrada":90,"dependabot[bot]":12,"adriencaccia":2,"kdahlhaus":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-04T00:00:25.939Z","repositories_count":10073071,"issues_count":31246289,"pull_requests_count":95565944,"authors_count":10690374,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":1},"past_year_pull_request_author_associations_count":{"MEMBER":21},"past_year_issue_authors":{"KatharinaSteinke":1},"past_year_pull_request_authors":{"jcrada":21},"maintainers":[{"login":"jcrada","count":91,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jcrada"}],"active_maintainers":[{"login":"jcrada","count":21,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jcrada"}]},"events":{"total":{"ReleaseEvent":4,"WatchEvent":12,"DeleteEvent":7,"IssueCommentEvent":12,"PushEvent":10,"PullRequestEvent":10,"CreateEvent":12},"last_year":{"ReleaseEvent":4,"WatchEvent":12,"DeleteEvent":7,"IssueCommentEvent":12,"PushEvent":10,"PullRequestEvent":10,"CreateEvent":12}},"keywords":["artificial-intelligence","fuzzy-logic","fuzzy-logic-control","fuzzylite","fuzzylite-libraries","python","soft-computing"],"dependencies":[{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2022-07-25T23:30:37.998Z","updated_at":"2022-07-25T23:30:37.998Z","repository_link":"https://github.com/fuzzylite/pyfuzzylite/blob/main/pyproject.toml","dependencies":[{"id":412879669,"package_name":"python","ecosystem":"pypi","requirements":"^3.6.2","direct":true,"kind":"runtime","optional":false},{"id":412879670,"package_name":"autoflake","ecosystem":"pypi","requirements":"^1.4","direct":true,"kind":"develop","optional":false},{"id":412879671,"package_name":"black","ecosystem":"pypi","requirements":"^22.1.0","direct":true,"kind":"develop","optional":false},{"id":412879672,"package_name":"coveralls","ecosystem":"pypi","requirements":"^3.3.1","direct":true,"kind":"develop","optional":false},{"id":412879673,"package_name":"isort","ecosystem":"pypi","requirements":"^5.10.1","direct":true,"kind":"develop","optional":false},{"id":412879674,"package_name":"mypy","ecosystem":"pypi","requirements":"^0.931","direct":true,"kind":"develop","optional":false},{"id":412879675,"package_name":"nbqa","ecosystem":"pypi","requirements":"^1.2.3","direct":true,"kind":"develop","optional":false},{"id":412879676,"package_name":"numpy","ecosystem":"pypi","requirements":"^1.19.5","direct":true,"kind":"develop","optional":false},{"id":412879677,"package_name":"pytest","ecosystem":"pypi","requirements":"^7.0.1","direct":true,"kind":"develop","optional":false},{"id":412879678,"package_name":"toml","ecosystem":"pypi","requirements":"^0.10.2","direct":true,"kind":"develop","optional":false},{"id":412879679,"package_name":"pylint","ecosystem":"pypi","requirements":"^2.12.2","direct":true,"kind":"develop","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/python-package.yml","sha":null,"kind":"manifest","created_at":"2023-07-05T18:47:59.386Z","updated_at":"2023-07-05T18:47:59.386Z","repository_link":"https://github.com/fuzzylite/pyfuzzylite/blob/main/.github/workflows/python-package.yml","dependencies":[{"id":11147101111,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":11147101112,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"poetry.lock","sha":null,"kind":"lockfile","created_at":"2023-07-05T18:47:59.402Z","updated_at":"2023-07-05T18:47:59.402Z","repository_link":"https://github.com/fuzzylite/pyfuzzylite/blob/main/poetry.lock","dependencies":[{"id":11147101113,"package_name":"attrs","ecosystem":"pypi","requirements":"22.2.0","direct":false,"kind":"develop","optional":false},{"id":11147101114,"package_name":"backports-cached-property","ecosystem":"pypi","requirements":"1.0.2","direct":false,"kind":"develop","optional":false},{"id":11147101121,"package_name":"black","ecosystem":"pypi","requirements":"23.1.0","direct":false,"kind":"develop","optional":false},{"id":11147101122,"package_name":"bleach","ecosystem":"pypi","requirements":"6.0.0","direct":false,"kind":"develop","optional":false},{"id":11147101123,"package_name":"build","ecosystem":"pypi","requirements":"0.10.0","direct":false,"kind":"develop","optional":false},{"id":11147101124,"package_name":"cachecontrol","ecosystem":"pypi","requirements":"0.12.11","direct":false,"kind":"develop","optional":false},{"id":11147101229,"package_name":"certifi","ecosystem":"pypi","requirements":"2022.12.7","direct":false,"kind":"develop","optional":false},{"id":11147101230,"package_name":"cffi","ecosystem":"pypi","requirements":"1.15.1","direct":false,"kind":"develop","optional":false},{"id":11147101231,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"3.1.0","direct":false,"kind":"develop","optional":false},{"id":11147101232,"package_name":"cleo","ecosystem":"pypi","requirements":"2.0.1","direct":false,"kind":"develop","optional":false},{"id":11147102181,"package_name":"click","ecosystem":"pypi","requirements":"8.1.3","direct":false,"kind":"develop","optional":false},{"id":11147102182,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.6","direct":false,"kind":"develop","optional":false},{"id":11147102183,"package_name":"coverage","ecosystem":"pypi","requirements":"7.2.2","direct":false,"kind":"develop","optional":false},{"id":11147102184,"package_name":"crashtest","ecosystem":"pypi","requirements":"0.4.1","direct":false,"kind":"develop","optional":false},{"id":11147102401,"package_name":"cryptography","ecosystem":"pypi","requirements":"39.0.2","direct":false,"kind":"develop","optional":false},{"id":11147102402,"package_name":"distlib","ecosystem":"pypi","requirements":"0.3.6","direct":false,"kind":"develop","optional":false},{"id":11147102403,"package_name":"docutils","ecosystem":"pypi","requirements":"0.19","direct":false,"kind":"develop","optional":false},{"id":11147102404,"package_name":"dulwich","ecosystem":"pypi","requirements":"0.21.3","direct":false,"kind":"develop","optional":false},{"id":11147103478,"package_name":"exceptiongroup","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":"develop","optional":false},{"id":11147103481,"package_name":"filelock","ecosystem":"pypi","requirements":"3.10.3","direct":false,"kind":"develop","optional":false},{"id":11147103483,"package_name":"html5lib","ecosystem":"pypi","requirements":"1.1","direct":false,"kind":"develop","optional":false},{"id":11147103485,"package_name":"idna","ecosystem":"pypi","requirements":"3.4","direct":false,"kind":"develop","optional":false},{"id":11147103487,"package_name":"importlib-metadata","ecosystem":"pypi","requirements":"6.1.0","direct":false,"kind":"develop","optional":false},{"id":11147103490,"package_name":"importlib-resources","ecosystem":"pypi","requirements":"5.12.0","direct":false,"kind":"develop","optional":false},{"id":11147103492,"package_name":"iniconfig","ecosystem":"pypi","requirements":"2.0.0","direct":false,"kind":"develop","optional":false},{"id":11147103495,"package_name":"installer","ecosystem":"pypi","requirements":"0.7.0","direct":false,"kind":"develop","optional":false},{"id":11147103562,"package_name":"jaraco-classes","ecosystem":"pypi","requirements":"3.2.3","direct":false,"kind":"develop","optional":false},{"id":11147104068,"package_name":"jeepney","ecosystem":"pypi","requirements":"0.8.0","direct":false,"kind":"develop","optional":false},{"id":11147104115,"package_name":"jsonschema","ecosystem":"pypi","requirements":"4.17.3","direct":false,"kind":"develop","optional":false},{"id":11147104116,"package_name":"keyring","ecosystem":"pypi","requirements":"23.13.1","direct":false,"kind":"develop","optional":false},{"id":11147104117,"package_name":"lockfile","ecosystem":"pypi","requirements":"0.12.2","direct":false,"kind":"develop","optional":false},{"id":11147104118,"package_name":"markdown-it-py","ecosystem":"pypi","requirements":"2.2.0","direct":false,"kind":"develop","optional":false},{"id":11147104119,"package_name":"mdurl","ecosystem":"pypi","requirements":"0.1.2","direct":false,"kind":"develop","optional":false},{"id":11147104120,"package_name":"more-itertools","ecosystem":"pypi","requirements":"9.1.0","direct":false,"kind":"develop","optional":false},{"id":11147104121,"package_name":"msgpack","ecosystem":"pypi","requirements":"1.0.5","direct":false,"kind":"develop","optional":false},{"id":11147104122,"package_name":"mypy","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":"develop","optional":false},{"id":11147104123,"package_name":"mypy-extensions","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"develop","optional":false},{"id":11147104124,"package_name":"numpy","ecosystem":"pypi","requirements":"1.21.1","direct":false,"kind":"develop","optional":false},{"id":11147104125,"package_name":"packaging","ecosystem":"pypi","requirements":"23.0","direct":false,"kind":"develop","optional":false},{"id":11147104126,"package_name":"pathspec","ecosystem":"pypi","requirements":"0.11.1","direct":false,"kind":"develop","optional":false},{"id":11147104127,"package_name":"pexpect","ecosystem":"pypi","requirements":"4.8.0","direct":false,"kind":"develop","optional":false},{"id":11147104128,"package_name":"pkginfo","ecosystem":"pypi","requirements":"1.9.6","direct":false,"kind":"develop","optional":false},{"id":11147104138,"package_name":"pkgutil-resolve-name","ecosystem":"pypi","requirements":"1.3.10","direct":false,"kind":"develop","optional":false},{"id":11147104139,"package_name":"platformdirs","ecosystem":"pypi","requirements":"2.6.2","direct":false,"kind":"develop","optional":false},{"id":11147104140,"package_name":"pluggy","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"develop","optional":false},{"id":11147104141,"package_name":"poetry","ecosystem":"pypi","requirements":"1.4.1","direct":false,"kind":"develop","optional":false},{"id":11147104158,"package_name":"poetry-bumpversion","ecosystem":"pypi","requirements":"0.3.0","direct":false,"kind":"develop","optional":false},{"id":11147104159,"package_name":"poetry-core","ecosystem":"pypi","requirements":"1.5.2","direct":false,"kind":"develop","optional":false},{"id":11147104163,"package_name":"poetry-plugin-export","ecosystem":"pypi","requirements":"1.3.0","direct":false,"kind":"develop","optional":false},{"id":11147104225,"package_name":"ptyprocess","ecosystem":"pypi","requirements":"0.7.0","direct":false,"kind":"develop","optional":false},{"id":11147104226,"package_name":"pycparser","ecosystem":"pypi","requirements":"2.21","direct":false,"kind":"develop","optional":false},{"id":11147104227,"package_name":"pydantic","ecosystem":"pypi","requirements":"1.10.7","direct":false,"kind":"develop","optional":false},{"id":11147104228,"package_name":"pygments","ecosystem":"pypi","requirements":"2.14.0","direct":false,"kind":"develop","optional":false},{"id":11147104229,"package_name":"pyhamcrest","ecosystem":"pypi","requirements":"2.0.4","direct":false,"kind":"develop","optional":false},{"id":11147104405,"package_name":"pyproject-hooks","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"develop","optional":false},{"id":11147104406,"package_name":"pyrsistent","ecosystem":"pypi","requirements":"0.19.3","direct":false,"kind":"develop","optional":false},{"id":11147104407,"package_name":"pytest","ecosystem":"pypi","requirements":"7.2.2","direct":false,"kind":"develop","optional":false},{"id":11147104408,"package_name":"pywin32-ctypes","ecosystem":"pypi","requirements":"0.2.0","direct":false,"kind":"develop","optional":false},{"id":11147104546,"package_name":"rapidfuzz","ecosystem":"pypi","requirements":"2.13.7","direct":false,"kind":"develop","optional":false},{"id":11147104900,"package_name":"readme-renderer","ecosystem":"pypi","requirements":"37.3","direct":false,"kind":"develop","optional":false},{"id":11147104901,"package_name":"requests","ecosystem":"pypi","requirements":"2.28.2","direct":false,"kind":"develop","optional":false},{"id":11147104902,"package_name":"requests-toolbelt","ecosystem":"pypi","requirements":"0.10.1","direct":false,"kind":"develop","optional":false},{"id":11147104903,"package_name":"rfc3986","ecosystem":"pypi","requirements":"2.0.0","direct":false,"kind":"develop","optional":false},{"id":11147104904,"package_name":"rich","ecosystem":"pypi","requirements":"13.3.2","direct":false,"kind":"develop","optional":false},{"id":11147104905,"package_name":"ruff","ecosystem":"pypi","requirements":"0.0.256","direct":false,"kind":"develop","optional":false},{"id":11147104906,"package_name":"secretstorage","ecosystem":"pypi","requirements":"3.3.3","direct":false,"kind":"develop","optional":false},{"id":11147106128,"package_name":"shellingham","ecosystem":"pypi","requirements":"1.5.0.post1","direct":false,"kind":"develop","optional":false},{"id":11147106129,"package_name":"six","ecosystem":"pypi","requirements":"1.16.0","direct":false,"kind":"develop","optional":false},{"id":11147106130,"package_name":"tomli","ecosystem":"pypi","requirements":"2.0.1","direct":false,"kind":"develop","optional":false},{"id":11147106131,"package_name":"tomlkit","ecosystem":"pypi","requirements":"0.11.6","direct":false,"kind":"develop","optional":false},{"id":11147106132,"package_name":"trove-classifiers","ecosystem":"pypi","requirements":"2023.3.9","direct":false,"kind":"develop","optional":false},{"id":11147110643,"package_name":"twine","ecosystem":"pypi","requirements":"4.0.2","direct":false,"kind":"develop","optional":false},{"id":11147110644,"package_name":"typed-ast","ecosystem":"pypi","requirements":"1.5.4","direct":false,"kind":"develop","optional":false},{"id":11147110645,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"4.5.0","direct":false,"kind":"develop","optional":false},{"id":11147110646,"package_name":"urllib3","ecosystem":"pypi","requirements":"1.26.15","direct":false,"kind":"develop","optional":false},{"id":11147110647,"package_name":"virtualenv","ecosystem":"pypi","requirements":"20.16.5","direct":false,"kind":"develop","optional":false},{"id":11147110648,"package_name":"virtualenv","ecosystem":"pypi","requirements":"20.21.0","direct":false,"kind":"develop","optional":false},{"id":11147110649,"package_name":"webencodings","ecosystem":"pypi","requirements":"0.5.1","direct":false,"kind":"develop","optional":false},{"id":11147110650,"package_name":"xattr","ecosystem":"pypi","requirements":"0.10.1","direct":false,"kind":"develop","optional":false},{"id":11147112378,"package_name":"zipp","ecosystem":"pypi","requirements":"3.15.0","direct":false,"kind":"develop","optional":false}]}],"score":4.997212273764116,"created_at":"2025-09-04T15:51:03.858Z","updated_at":"2025-10-07T08:13:18.524Z","avatar_url":"https://github.com/fuzzylite.png","language":"Python","category":null,"sub_category":null,"monthly_downloads":0,"funding_links":["https://github.com/sponsors/fuzzylite"],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://science.ecosyste.ms/api/v1/projects/31029","html_url":"https://science.ecosyste.ms/projects/31029","bibtex_url":"https://science.ecosyste.ms/projects/31029/export.bibtex","apalike_url":"https://science.ecosyste.ms/projects/31029/export.apalike"}