{"id":48472141,"url":"https://github.com/python-lapidary/lapidary","last_synced_at":"2026-04-07T06:36:32.090Z","repository":{"id":59333879,"uuid":"530807671","full_name":"python-lapidary/lapidary","owner":"python-lapidary","description":"Write Web API clients using annotations in python","archived":false,"fork":false,"pushed_at":"2026-03-28T13:03:11.000Z","size":895,"stargazers_count":16,"open_issues_count":10,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2026-03-28T16:25:46.401Z","etag":null,"topics":["api-client","declarative-language","declarative-library","declarative-programming","domain-specific-language","dsl","openapi","openapi3","python","python3"],"latest_commit_sha":null,"homepage":"https://lapidary.dev/lapidary-runtime/","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/python-lapidary.png","metadata":{"files":{"readme":"Readme.md","changelog":"ChangeLog.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-08-30T19:50:12.000Z","updated_at":"2026-03-28T13:24:21.000Z","dependencies_parsed_at":"2024-01-27T19:45:27.150Z","dependency_job_id":"70408c28-6581-4c8c-a58c-a09c1cd6e8f3","html_url":"https://github.com/python-lapidary/lapidary","commit_stats":{"total_commits":279,"total_committers":2,"mean_commits":139.5,"dds":0.05017921146953408,"last_synced_commit":"600a8a4abc64fe8f83e147d90cf75c6e6ed3ccab"},"previous_names":["lapis-project/lapis"],"tags_count":50,"template":false,"template_full_name":null,"purl":"pkg:github/python-lapidary/lapidary","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-lapidary%2Flapidary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-lapidary%2Flapidary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-lapidary%2Flapidary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-lapidary%2Flapidary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-lapidary","download_url":"https://codeload.github.com/python-lapidary/lapidary/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-lapidary%2Flapidary/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31503392,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["api-client","declarative-language","declarative-library","declarative-programming","domain-specific-language","dsl","openapi","openapi3","python","python3"],"created_at":"2026-04-07T06:36:31.968Z","updated_at":"2026-04-07T06:36:32.079Z","avatar_url":"https://github.com/python-lapidary.png","language":"Python","readme":"# Lapidary\n\n[![test](https://github.com/python-lapidary/lapidary/actions/workflows/test_publish.yaml/badge.svg)](https://github.com/python-lapidary/lapidary/actions/workflows/test_publish.yaml)\n\nPython Helper for Web API clients.\n\n## Why\n\nWeb API clients follow a relatively small set of patterns and implementing them is rather repetitive task.\nPrepare request, make the call, handle response status, deserialize the body\nTypical examples show how to use `request.get()` or similar method, but this is an anti-pattern. These calls should be encapsulated as module functions or methods.\n\n## How\n\nLapidary is a library that provides decorators and annotations for describing Web APIs in a way similar to OpenAPI.\nIn fact [lapidary render](https://github.com/python-lapidary/lapidary-render/) can convert much of OpenAPI 3.0 to Lapidary code.\n\nAt runtime, the library interprets user-provided function declarations and makes them behave as specified.\nIf a function accepts parameter of type `X` and returns `Y`, Lapidary will try to convert `X` to HTTP request and the response back to `Y`.\n\nCheck the [example](https://python-lapidary.github.io/lapidary/#usage)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpython-lapidary%2Flapidary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpython-lapidary%2Flapidary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpython-lapidary%2Flapidary/lists"}