{"id":51648815,"url":"https://github.com/maresb/project-starter","last_synced_at":"2026-07-14T01:33:36.245Z","repository":{"id":369615716,"uuid":"869452866","full_name":"maresb/project-starter","owner":"maresb","description":"The PyMC-Labs default project starter","archived":false,"fork":false,"pushed_at":"2024-10-08T12:23:33.000Z","size":88,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-14T01:33:35.473Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maresb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-10-08T10:18:05.000Z","updated_at":"2025-10-21T13:04:05.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/maresb/project-starter","commit_stats":null,"previous_names":["maresb/project-starter"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/maresb/project-starter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maresb%2Fproject-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maresb%2Fproject-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maresb%2Fproject-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maresb%2Fproject-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maresb","download_url":"https://codeload.github.com/maresb/project-starter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maresb%2Fproject-starter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35442828,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-13T02:00:06.543Z","response_time":119,"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":"2026-07-14T01:33:35.706Z","updated_at":"2026-07-14T01:33:36.236Z","avatar_url":"https://github.com/maresb.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# PyMC Labs project starter\n\nAll project code goes off the rails to some extent.\nIt happens in tiny increments with awkward commits that \"solves the problem\".\nThis is entirely forgivable when a codebase is not designed for the new problem and there are time constraints.\nIt is inevitable.\n\nHowever, this chaos can be mitigated with some decent guardrails. This **project template** provides the following:\n\n- 📦 **`pixi`** for dependency and environment management.\n- 🧹 **`pre-commit`** for formatting, spellcheck, etc. If everyone uses the same standard formatting, then PRs won't have flaky formatting updates that distract from the actual contribution. Reviewing code will be much easier.\n- 🏷️ **`beartype`** for runtime type checking. If you know what's going in and out of functions just by reading the code, then it's easier to debug. And if these types are even enforced at runtime with tools like `beartype`, then there's a whole class of bugs that can never enter your code.\n- 🧪 **`pytest`** for testing. Meanwhile, with `beartype` handling type checks, tests do not have to assert types, and can merely focus on whether the actual logic works.\n- 🔄 **Github Actions** for running the pre-commit checks on each PR, automated testing and dependency management (dependabot).\n\n## Usage\n\nThis is a pretty minimal template,\nthat assumes you have opinions and may want to add/remove stuff too.\nTo use it as intended (not that you have to),\nyou should put your main model logic in the `package_name/models.py` file,\nadjacent logic split into sibling files,\nand then have a script that imports from `package_name` and runs the model,\ne.g. in a `scripts/run_model.py` file,\nor a notebook somewhere (e.g. in `experimentation`).\n\n### Prerequisites\n\n- Python 3.11 or higher\n- [Pixi package manager](https://pixi.sh/latest/)\n\n### Get started\n\n1. On GitHub, click on the big green button that says \"Use this template\", and create it in a new repository.\n2. Git clone the new repository to your local machine.\n3. Run the setup script: `bash scripts/setup.sh`\n4. Run `pixi install` to install the dependencies.\n5. Run `pixi test` to run the tests.\n\n### Philosophy\n\nThere are some example files in this repository.\nHave a look at them.\nEach of the files in `package_name` has a docstring that explains their role in your package.\nYou may not want to follow this dogma entirely,\nbut having split out the code for custom types, main model logic, preprocessing, string parsing, etc.\ninto separate files is always a good idea.\nMostly, however, you can use these as an example to build upon.\n\nAnd please contribute. If you add some guardrails that you think would be generally useful, please make a PR.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaresb%2Fproject-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaresb%2Fproject-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaresb%2Fproject-starter/lists"}