{"id":18378064,"url":"https://github.com/mlabbe/pyprepro","last_synced_at":"2025-10-15T22:32:38.665Z","repository":{"id":241931180,"uuid":"807919838","full_name":"mlabbe/pyprepro","owner":"mlabbe","description":"Experimental build edge specification ninja builder","archived":false,"fork":false,"pushed_at":"2024-08-25T20:51:34.000Z","size":37,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-11T13:19:12.080Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mlabbe.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-05-30T03:10:16.000Z","updated_at":"2024-08-25T20:51:37.000Z","dependencies_parsed_at":"2024-06-14T22:27:03.803Z","dependency_job_id":"b4e889e2-6a5a-40dc-870b-ca0d93e393a0","html_url":"https://github.com/mlabbe/pyprepro","commit_stats":null,"previous_names":["mlabbe/pyprepro"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mlabbe/pyprepro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlabbe%2Fpyprepro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlabbe%2Fpyprepro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlabbe%2Fpyprepro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlabbe%2Fpyprepro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mlabbe","download_url":"https://codeload.github.com/mlabbe/pyprepro/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlabbe%2Fpyprepro/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279122625,"owners_count":26108489,"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-10-15T02:00:07.814Z","response_time":56,"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"}},"keywords":[],"created_at":"2024-11-06T00:30:54.976Z","updated_at":"2025-10-15T22:32:38.632Z","avatar_url":"https://github.com/mlabbe.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pyprepro #\n\nBarebones experimental program.\n\nCreate a ninja.build file from build edges.  For example, if foo.c\nstarts with:\n\n    // || build-edge: ninja\n    // || rule: grc\n    // || in: grain/struct.gen grain/def.gr\n\nThis creates a ninja build edge line referencing rule type 'grc' that\ntargets foo.c as an output.  \n\nThe 'grc' program is intelligent enough to know to preserve this build\nedge specification, and so the output file will rebuild successfully.\n\n\n## Build-Edge Ninja Supported Keys ##\n\nIf a key isn't listed as supported here, it's passed on to ninja build verbatim.\n\n### rule ###\n\nThe ninja build rule to invoke in order to generate this file.  The supported options are in 'build_rules' at the top of pyprepro.py.  Ultimately it would be nice to make this program build rule agnostic.\n\n### in ###\n\nOne or more 'in' lines is required.  Each line contains one file that\nis needed to build.\n\n    // || in: message.tmpl\n    // || in: vars.toml\n\n\n### set ###\n\nGiven a line like:\n\n    // || set: foo = bar\n    \nCreate a variable %foo that is interpolated in 'in' lines.\n\nIt is possible to use variables to generate variables\n\n    // || set: src_dir = ../src\n    // || set: tmpl_dir = %src_dir/tmpl\n\nNote that I wanted to use '$' instead of '%' but that conflicts with ninja build variables.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlabbe%2Fpyprepro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmlabbe%2Fpyprepro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlabbe%2Fpyprepro/lists"}