{"id":43499261,"url":"https://github.com/xomicsdatascience/typomancy","last_synced_at":"2026-02-03T11:13:13.534Z","repository":{"id":182119004,"uuid":"667988524","full_name":"xomicsdatascience/typomancy","owner":"xomicsdatascience","description":"Toolkit for converting HTML string input into Python types indicated by TypeHints","archived":false,"fork":false,"pushed_at":"2025-05-29T18:13:49.000Z","size":31,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-05-29T19:43:24.680Z","etag":null,"topics":["flask","html","json","python3","typehint"],"latest_commit_sha":null,"homepage":"","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/xomicsdatascience.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null}},"created_at":"2023-07-18T18:57:16.000Z","updated_at":"2025-05-29T18:13:24.000Z","dependencies_parsed_at":"2023-07-18T19:56:04.188Z","dependency_job_id":"bb2f5cc3-c598-4bf3-b697-d3faad3a4ffd","html_url":"https://github.com/xomicsdatascience/typomancy","commit_stats":null,"previous_names":["xomicsdatascience/typomancy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/xomicsdatascience/typomancy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xomicsdatascience%2Ftypomancy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xomicsdatascience%2Ftypomancy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xomicsdatascience%2Ftypomancy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xomicsdatascience%2Ftypomancy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xomicsdatascience","download_url":"https://codeload.github.com/xomicsdatascience/typomancy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xomicsdatascience%2Ftypomancy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29044101,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T10:09:22.136Z","status":"ssl_error","status_checked_at":"2026-02-03T10:09:16.814Z","response_time":96,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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"}},"keywords":["flask","html","json","python3","typehint"],"created_at":"2026-02-03T11:13:12.907Z","updated_at":"2026-02-03T11:13:13.528Z","avatar_url":"https://github.com/xomicsdatascience.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Typomancy\n###### \"Cheese or typos, I'm not sure.\"\nTypomancy is a Python package for parsing string inputs and converting them into data types expected by a Python \nfunction or class using type annotations.\n\nThe purpose is to facilitate the interaction between user inputs supplied through a public-facing interface (e.g., HTML page) and \na Python-based backend. Since end users shouldn't need to know about expected datatypes, their inputs are loosely-structured \nstrings. The typical solution would be for functions to parse the input and perform the typecasting. This is fine, but in the case \nof inherited classes, it seems cleaner to perform the typecasting generically to avoid requiring all children to do similar\ntypecasting.  \n  \nThe package makes use of Python's `typing` library in addition to Python's built-in types (`int`, `str`, `bool`, etc.). Typomancy \nperforms opinionated typecasting for non-specific type annotations, casting the argument to a built-in type that satisfies the \nannotation. For example, `Collection` and `Iterable` would cause the input to be cast to `tuple`. Similarly, `Collection[str]`\ncauses the input to be cast to a `tuple` with `str` elements.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxomicsdatascience%2Ftypomancy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxomicsdatascience%2Ftypomancy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxomicsdatascience%2Ftypomancy/lists"}