{"id":58141,"name":"fang72","description":null,"url":"https://github.com/gunhe/fang72","last_synced_at":"2025-09-05T15:05:32.586Z","repository":{"id":304613035,"uuid":"1007585469","full_name":"gunhe/fang72","owner":"gunhe","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-25T06:29:18.000Z","size":102,"stargazers_count":0,"open_issues_count":10,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-25T09:21:37.199Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gunhe.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.rst","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"gunhe"}},"created_at":"2025-06-24T08:12:38.000Z","updated_at":"2025-06-24T08:25:03.000Z","dependencies_parsed_at":"2025-07-14T09:33:30.091Z","dependency_job_id":"11aff2eb-be43-4c28-a299-9bc2e6771dc2","html_url":"https://github.com/gunhe/fang72","commit_stats":null,"previous_names":["gunhe/fang72"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/gunhe/fang72","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gunhe%2Ffang72","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gunhe%2Ffang72/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gunhe%2Ffang72/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gunhe%2Ffang72/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gunhe","download_url":"https://codeload.github.com/gunhe/fang72/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gunhe%2Ffang72/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273774742,"owners_count":25165740,"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":"gunhe","name":null,"uuid":"40565535","kind":"user","description":null,"email":"","website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/40565535?v=4","repositories_count":1,"last_synced_at":"2023-09-02T14:04:32.408Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/gunhe","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-09-02T14:04:32.436Z","updated_at":"2023-09-02T14:04:32.436Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gunhe","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gunhe/repositories"},"packages":[],"commits":{"message":"Repository syncing started."},"issues_stats":{"full_name":"gunhe/fang72","html_url":"https://github.com/gunhe/fang72","last_synced_at":"2025-09-02T16:36:49.331Z","status":null,"issues_count":0,"pull_requests_count":23,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":1321422.75,"issues_closed_count":0,"pull_requests_closed_count":12,"pull_request_authors_count":1,"issue_authors_count":0,"avg_comments_per_issue":null,"avg_comments_per_pull_request":0.5217391304347826,"merged_pull_requests_count":0,"bot_issues_count":0,"bot_pull_requests_count":23,"past_year_issues_count":0,"past_year_pull_requests_count":23,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":1321422.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":12,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.5217391304347826,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":23,"past_year_merged_pull_requests_count":0,"created_at":"2025-08-29T11:58:32.987Z","updated_at":"2025-09-02T16:36:49.333Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/gunhe%2Ffang72","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/gunhe%2Ffang72/issues","issue_labels_count":{},"pull_request_labels_count":{"dependencies":22,"python":16,"github_actions":6},"issue_author_associations_count":{},"pull_request_author_associations_count":{"NONE":22},"issue_authors":{},"pull_request_authors":{"dependabot[bot]":22},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-05T00:00:10.444Z","repositories_count":10102346,"issues_count":31523475,"pull_requests_count":97727319,"authors_count":10703653,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{"dependencies":22,"python":16,"github_actions":6},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{"NONE":22},"past_year_issue_authors":{},"past_year_pull_request_authors":{"dependabot[bot]":22},"maintainers":[],"active_maintainers":[]},"events":{"total":{"DeleteEvent":13,"IssueCommentEvent":13,"PushEvent":4,"PullRequestEvent":34,"CreateEvent":20},"last_year":{"DeleteEvent":13,"IssueCommentEvent":13,"PushEvent":4,"PullRequestEvent":34,"CreateEvent":20}},"keywords":[],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/codeql-analysis.yml","sha":null,"kind":"manifest","created_at":"2025-07-14T09:33:20.070Z","updated_at":"2025-07-14T09:33:20.070Z","repository_link":"https://github.com/gunhe/fang72/blob/main/.github/workflows/codeql-analysis.yml","dependencies":[{"id":24134237115,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4.2.2","direct":true,"kind":"composite","optional":false},{"id":24134237116,"package_name":"github/codeql-action/init","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":24134237117,"package_name":"github/codeql-action/autobuild","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":24134237118,"package_name":"github/codeql-action/analyze","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/pre-commit-autoupdate.yml","sha":null,"kind":"manifest","created_at":"2025-07-14T09:33:20.728Z","updated_at":"2025-07-14T09:33:20.728Z","repository_link":"https://github.com/gunhe/fang72/blob/main/.github/workflows/pre-commit-autoupdate.yml","dependencies":[{"id":24134238689,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4.2.2","direct":true,"kind":"composite","optional":false},{"id":24134238690,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v5.3.0","direct":true,"kind":"composite","optional":false},{"id":24134238691,"package_name":"peter-evans/create-pull-request","ecosystem":"actions","requirements":"v7.0.5","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/release.yml","sha":null,"kind":"manifest","created_at":"2025-07-14T09:33:21.436Z","updated_at":"2025-07-14T09:33:21.436Z","repository_link":"https://github.com/gunhe/fang72/blob/main/.github/workflows/release.yml","dependencies":[{"id":24134238755,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4.2.2","direct":true,"kind":"composite","optional":false},{"id":24134238758,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v5.3.0","direct":true,"kind":"composite","optional":false},{"id":24134238760,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"v1.8.11","direct":true,"kind":"composite","optional":false},{"id":24134238762,"package_name":"mindsers/changelog-reader-action","ecosystem":"actions","requirements":"v2.2.3","direct":true,"kind":"composite","optional":false},{"id":24134238881,"package_name":"actions/create-release","ecosystem":"actions","requirements":"v1.1.4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/tests.yml","sha":null,"kind":"manifest","created_at":"2025-07-14T09:33:22.984Z","updated_at":"2025-07-14T09:33:22.984Z","repository_link":"https://github.com/gunhe/fang72/blob/main/.github/workflows/tests.yml","dependencies":[{"id":24134238905,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4.2.2","direct":true,"kind":"composite","optional":false},{"id":24134238906,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v5.3.0","direct":true,"kind":"composite","optional":false},{"id":24134238907,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"v4.4.3","direct":true,"kind":"composite","optional":false},{"id":24134238908,"package_name":"actions/download-artifact","ecosystem":"actions","requirements":"v4.1.8","direct":true,"kind":"composite","optional":false},{"id":24134238909,"package_name":"codecov/codecov-action","ecosystem":"actions","requirements":"v4.4.1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"docs/requirements.txt","sha":null,"kind":"manifest","created_at":"2025-07-14T09:33:23.369Z","updated_at":"2025-07-14T09:33:23.369Z","repository_link":"https://github.com/gunhe/fang72/blob/main/docs/requirements.txt","dependencies":[{"id":24134238994,"package_name":"sphinx","ecosystem":"pypi","requirements":"==7.4.7","direct":true,"kind":"runtime","optional":false},{"id":24134238996,"package_name":"recommonmark","ecosystem":"pypi","requirements":"==0.7.1","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"poetry.lock","sha":null,"kind":"lockfile","created_at":"2025-07-14T09:33:23.794Z","updated_at":"2025-07-14T09:33:23.794Z","repository_link":"https://github.com/gunhe/fang72/blob/main/poetry.lock","dependencies":[{"id":24134239025,"package_name":"alabaster","ecosystem":"pypi","requirements":"0.7.16","direct":false,"kind":"runtime","optional":false},{"id":24134239026,"package_name":"annotated-types","ecosystem":"pypi","requirements":"0.7.0","direct":false,"kind":"runtime","optional":false},{"id":24134239027,"package_name":"anyio","ecosystem":"pypi","requirements":"4.9.0","direct":false,"kind":"runtime","optional":false},{"id":24134239028,"package_name":"authlib","ecosystem":"pypi","requirements":"1.6.0","direct":false,"kind":"runtime","optional":false},{"id":24134239029,"package_name":"babel","ecosystem":"pypi","requirements":"2.17.0","direct":false,"kind":"runtime","optional":false},{"id":24134239030,"package_name":"backports-datetime-fromisoformat","ecosystem":"pypi","requirements":"2.0.3","direct":false,"kind":"runtime","optional":false},{"id":24134239031,"package_name":"black","ecosystem":"pypi","requirements":"24.10.0","direct":false,"kind":"runtime","optional":false},{"id":24134239032,"package_name":"bump2version","ecosystem":"pypi","requirements":"1.0.1","direct":false,"kind":"runtime","optional":false},{"id":24134239394,"package_name":"certifi","ecosystem":"pypi","requirements":"2025.6.15","direct":false,"kind":"runtime","optional":false},{"id":24134239395,"package_name":"cffi","ecosystem":"pypi","requirements":"1.17.1","direct":false,"kind":"runtime","optional":false},{"id":24134239396,"package_name":"cfgv","ecosystem":"pypi","requirements":"3.4.0","direct":false,"kind":"runtime","optional":false},{"id":24134239397,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"3.4.2","direct":false,"kind":"runtime","optional":false},{"id":24134239398,"package_name":"click","ecosystem":"pypi","requirements":"8.1.8","direct":false,"kind":"runtime","optional":false},{"id":24134239399,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.6","direct":false,"kind":"runtime","optional":false},{"id":24134239400,"package_name":"commonmark","ecosystem":"pypi","requirements":"0.9.1","direct":false,"kind":"runtime","optional":false},{"id":24134239521,"package_name":"coverage","ecosystem":"pypi","requirements":"7.9.1","direct":false,"kind":"runtime","optional":false},{"id":24134239522,"package_name":"cryptography","ecosystem":"pypi","requirements":"43.0.3","direct":false,"kind":"runtime","optional":false},{"id":24134239523,"package_name":"distlib","ecosystem":"pypi","requirements":"0.3.9","direct":false,"kind":"runtime","optional":false},{"id":24134239524,"package_name":"docutils","ecosystem":"pypi","requirements":"0.21.2","direct":false,"kind":"runtime","optional":false},{"id":24134239525,"package_name":"dparse","ecosystem":"pypi","requirements":"0.6.4","direct":false,"kind":"runtime","optional":false},{"id":24134239526,"package_name":"exceptiongroup","ecosystem":"pypi","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":24134239527,"package_name":"filelock","ecosystem":"pypi","requirements":"3.16.1","direct":false,"kind":"runtime","optional":false},{"id":24134239528,"package_name":"h11","ecosystem":"pypi","requirements":"0.16.0","direct":false,"kind":"runtime","optional":false},{"id":24134239529,"package_name":"httpcore","ecosystem":"pypi","requirements":"1.0.9","direct":false,"kind":"runtime","optional":false},{"id":24134239530,"package_name":"httpx","ecosystem":"pypi","requirements":"0.28.1","direct":false,"kind":"runtime","optional":false},{"id":24134239531,"package_name":"identify","ecosystem":"pypi","requirements":"2.6.12","direct":false,"kind":"runtime","optional":false},{"id":24134239532,"package_name":"idna","ecosystem":"pypi","requirements":"3.10","direct":false,"kind":"runtime","optional":false},{"id":24134239533,"package_name":"imagesize","ecosystem":"pypi","requirements":"1.4.1","direct":false,"kind":"runtime","optional":false},{"id":24134239534,"package_name":"importlib-metadata","ecosystem":"pypi","requirements":"8.7.0","direct":false,"kind":"runtime","optional":false},{"id":24134239535,"package_name":"iniconfig","ecosystem":"pypi","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":24134239536,"package_name":"invoke","ecosystem":"pypi","requirements":"2.2.0","direct":false,"kind":"runtime","optional":false},{"id":24134239708,"package_name":"isort","ecosystem":"pypi","requirements":"5.13.2","direct":false,"kind":"runtime","optional":false},{"id":24134239709,"package_name":"jinja2","ecosystem":"pypi","requirements":"3.1.6","direct":false,"kind":"runtime","optional":false},{"id":24134239710,"package_name":"joblib","ecosystem":"pypi","requirements":"1.5.1","direct":false,"kind":"runtime","optional":false},{"id":24134239711,"package_name":"markdown-it-py","ecosystem":"pypi","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":24134239712,"package_name":"markupsafe","ecosystem":"pypi","requirements":"3.0.2","direct":false,"kind":"runtime","optional":false},{"id":24134239713,"package_name":"marshmallow","ecosystem":"pypi","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":24134239714,"package_name":"mdurl","ecosystem":"pypi","requirements":"0.1.2","direct":false,"kind":"runtime","optional":false},{"id":24134239715,"package_name":"mypy","ecosystem":"pypi","requirements":"1.16.1","direct":false,"kind":"runtime","optional":false},{"id":24134239716,"package_name":"mypy-extensions","ecosystem":"pypi","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":24134239717,"package_name":"nltk","ecosystem":"pypi","requirements":"3.9.1","direct":false,"kind":"runtime","optional":false},{"id":24134239718,"package_name":"nodeenv","ecosystem":"pypi","requirements":"1.9.1","direct":false,"kind":"runtime","optional":false},{"id":24134239719,"package_name":"packaging","ecosystem":"pypi","requirements":"25.0","direct":false,"kind":"runtime","optional":false},{"id":24134239720,"package_name":"pathspec","ecosystem":"pypi","requirements":"0.12.1","direct":false,"kind":"runtime","optional":false},{"id":24134239721,"package_name":"platformdirs","ecosystem":"pypi","requirements":"4.3.8","direct":false,"kind":"runtime","optional":false},{"id":24134239722,"package_name":"pluggy","ecosystem":"pypi","requirements":"1.6.0","direct":false,"kind":"runtime","optional":false},{"id":24134239723,"package_name":"pre-commit","ecosystem":"pypi","requirements":"4.2.0","direct":false,"kind":"runtime","optional":false},{"id":24134239724,"package_name":"psutil","ecosystem":"pypi","requirements":"6.1.1","direct":false,"kind":"runtime","optional":false},{"id":24134239725,"package_name":"pycparser","ecosystem":"pypi","requirements":"2.22","direct":false,"kind":"runtime","optional":false},{"id":24134239726,"package_name":"pydantic","ecosystem":"pypi","requirements":"2.9.2","direct":false,"kind":"runtime","optional":false},{"id":24134239727,"package_name":"pydantic-core","ecosystem":"pypi","requirements":"2.23.4","direct":false,"kind":"runtime","optional":false},{"id":24134239728,"package_name":"pygments","ecosystem":"pypi","requirements":"2.19.2","direct":false,"kind":"runtime","optional":false},{"id":24134239729,"package_name":"pytest","ecosystem":"pypi","requirements":"8.4.1","direct":false,"kind":"runtime","optional":false},{"id":24134239730,"package_name":"pytest-cov","ecosystem":"pypi","requirements":"6.2.1","direct":false,"kind":"runtime","optional":false},{"id":24134239731,"package_name":"pyyaml","ecosystem":"pypi","requirements":"6.0.2","direct":false,"kind":"runtime","optional":false},{"id":24134239732,"package_name":"recommonmark","ecosystem":"pypi","requirements":"0.7.1","direct":false,"kind":"runtime","optional":false},{"id":24134239733,"package_name":"regex","ecosystem":"pypi","requirements":"2024.11.6","direct":false,"kind":"runtime","optional":false},{"id":24134239734,"package_name":"requests","ecosystem":"pypi","requirements":"2.32.4","direct":false,"kind":"runtime","optional":false},{"id":24134239735,"package_name":"rich","ecosystem":"pypi","requirements":"14.0.0","direct":false,"kind":"runtime","optional":false},{"id":24134239736,"package_name":"ruamel-yaml","ecosystem":"pypi","requirements":"0.18.14","direct":false,"kind":"runtime","optional":false},{"id":24134239737,"package_name":"ruamel-yaml-clib","ecosystem":"pypi","requirements":"0.2.12","direct":false,"kind":"runtime","optional":false},{"id":24134239738,"package_name":"ruff","ecosystem":"pypi","requirements":"0.7.4","direct":false,"kind":"runtime","optional":false},{"id":24134239739,"package_name":"safety","ecosystem":"pypi","requirements":"3.5.2","direct":false,"kind":"runtime","optional":false},{"id":24134239740,"package_name":"safety-schemas","ecosystem":"pypi","requirements":"0.0.14","direct":false,"kind":"runtime","optional":false},{"id":24134239741,"package_name":"setuptools","ecosystem":"pypi","requirements":"80.9.0","direct":false,"kind":"runtime","optional":false},{"id":24134239742,"package_name":"shellingham","ecosystem":"pypi","requirements":"1.5.4","direct":false,"kind":"runtime","optional":false},{"id":24134239743,"package_name":"sniffio","ecosystem":"pypi","requirements":"1.3.1","direct":false,"kind":"runtime","optional":false},{"id":24134239744,"package_name":"snowballstemmer","ecosystem":"pypi","requirements":"3.0.1","direct":false,"kind":"runtime","optional":false},{"id":24134239745,"package_name":"sphinx","ecosystem":"pypi","requirements":"7.4.7","direct":false,"kind":"runtime","optional":false},{"id":24134239746,"package_name":"sphinxcontrib-applehelp","ecosystem":"pypi","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":24134239747,"package_name":"sphinxcontrib-devhelp","ecosystem":"pypi","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":24134239748,"package_name":"sphinxcontrib-htmlhelp","ecosystem":"pypi","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":24134239749,"package_name":"sphinxcontrib-jsmath","ecosystem":"pypi","requirements":"1.0.1","direct":false,"kind":"runtime","optional":false},{"id":24134239750,"package_name":"sphinxcontrib-qthelp","ecosystem":"pypi","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":24134239751,"package_name":"sphinxcontrib-serializinghtml","ecosystem":"pypi","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":24134239752,"package_name":"tenacity","ecosystem":"pypi","requirements":"9.1.2","direct":false,"kind":"runtime","optional":false},{"id":24134239753,"package_name":"tomli","ecosystem":"pypi","requirements":"2.2.1","direct":false,"kind":"runtime","optional":false},{"id":24134239754,"package_name":"tomlkit","ecosystem":"pypi","requirements":"0.13.3","direct":false,"kind":"runtime","optional":false},{"id":24134239755,"package_name":"tqdm","ecosystem":"pypi","requirements":"4.67.1","direct":false,"kind":"runtime","optional":false},{"id":24134239756,"package_name":"typer","ecosystem":"pypi","requirements":"0.13.1","direct":false,"kind":"runtime","optional":false},{"id":24134239757,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"4.14.0","direct":false,"kind":"runtime","optional":false},{"id":24134239758,"package_name":"urllib3","ecosystem":"pypi","requirements":"2.5.0","direct":false,"kind":"runtime","optional":false},{"id":24134239759,"package_name":"virtualenv","ecosystem":"pypi","requirements":"20.31.2","direct":false,"kind":"runtime","optional":false},{"id":24134239760,"package_name":"watchdog","ecosystem":"pypi","requirements":"6.0.0","direct":false,"kind":"runtime","optional":false},{"id":24134239761,"package_name":"xdoctest","ecosystem":"pypi","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":24134240802,"package_name":"zipp","ecosystem":"pypi","requirements":"3.23.0","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2025-07-14T09:33:29.938Z","updated_at":"2025-07-14T09:33:29.938Z","repository_link":"https://github.com/gunhe/fang72/blob/main/pyproject.toml","dependencies":[{"id":24134240875,"package_name":"python","ecosystem":"pypi","requirements":"\u003c3.13,\u003e=3.9","direct":true,"kind":"runtime","optional":false},{"id":24134240876,"package_name":"typer","ecosystem":"pypi","requirements":"^0.13.0","direct":true,"kind":"runtime","optional":false},{"id":24134240877,"package_name":"pre-commit","ecosystem":"pypi","requirements":"^4.0.1","direct":true,"kind":"develop","optional":false},{"id":24134240878,"package_name":"invoke","ecosystem":"pypi","requirements":"^2.2.0","direct":true,"kind":"develop","optional":false},{"id":24134240879,"package_name":"bump2version","ecosystem":"pypi","requirements":"^1.0.1","direct":true,"kind":"develop","optional":false},{"id":24134240880,"package_name":"watchdog","ecosystem":"pypi","requirements":"^6.0.0","direct":true,"kind":"develop","optional":false},{"id":24134240881,"package_name":"pytest","ecosystem":"pypi","requirements":"^8.3.3","direct":true,"kind":"test","optional":false},{"id":24134240882,"package_name":"xdoctest","ecosystem":"pypi","requirements":"^1.2.0","direct":true,"kind":"test","optional":false},{"id":24134240883,"package_name":"coverage","ecosystem":"pypi","requirements":"^7.6.7","direct":true,"kind":"test","optional":false},{"id":24134240884,"package_name":"pytest-cov","ecosystem":"pypi","requirements":"^6.0.0","direct":true,"kind":"test","optional":false},{"id":24134240885,"package_name":"isort","ecosystem":"pypi","requirements":"^5.13.2","direct":true,"kind":"linters","optional":false},{"id":24134240886,"package_name":"black","ecosystem":"pypi","requirements":"^24.10.0","direct":true,"kind":"linters","optional":false},{"id":24134240887,"package_name":"ruff","ecosystem":"pypi","requirements":"^0.7.4","direct":true,"kind":"linters","optional":false},{"id":24134240888,"package_name":"safety","ecosystem":"pypi","requirements":"^3.2.11","direct":true,"kind":"security","optional":false},{"id":24134240889,"package_name":"mypy","ecosystem":"pypi","requirements":"^1.13.0","direct":true,"kind":"typing","optional":false},{"id":24134240890,"package_name":"sphinx","ecosystem":"pypi","requirements":"^7.4.7","direct":true,"kind":"docs","optional":false},{"id":24134240891,"package_name":"recommonmark","ecosystem":"pypi","requirements":"^0.7.1","direct":true,"kind":"docs","optional":false}]}],"score":null,"created_at":"2025-09-04T15:51:34.625Z","updated_at":"2025-10-07T08:22:53.891Z","avatar_url":"https://github.com/gunhe.png","language":"Python","category":null,"sub_category":null,"monthly_downloads":0,"funding_links":["https://github.com/sponsors/gunhe"],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://science.ecosyste.ms/api/v1/projects/58141","html_url":"https://science.ecosyste.ms/projects/58141","bibtex_url":"https://science.ecosyste.ms/projects/58141/export.bibtex","apalike_url":"https://science.ecosyste.ms/projects/58141/export.apalike"}