{"id":31802233,"url":"https://github.com/kubapod/meh","last_synced_at":"2026-02-23T17:25:51.491Z","repository":{"id":80926788,"uuid":"139709725","full_name":"kubaPod/Meh","owner":"kubaPod","description":"Control flow utilities","archived":false,"fork":false,"pushed_at":"2021-03-08T09:36:33.000Z","size":96,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-23T07:59:53.969Z","etag":null,"topics":["error-handling","failure","flow-control","mathematica","utilities"],"latest_commit_sha":null,"homepage":null,"language":"Mathematica","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/kubaPod.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-07-04T10:55:21.000Z","updated_at":"2023-12-12T22:29:43.000Z","dependencies_parsed_at":"2023-10-28T08:00:26.091Z","dependency_job_id":null,"html_url":"https://github.com/kubaPod/Meh","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/kubaPod/Meh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubaPod%2FMeh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubaPod%2FMeh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubaPod%2FMeh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubaPod%2FMeh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kubaPod","download_url":"https://codeload.github.com/kubaPod/Meh/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubaPod%2FMeh/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29749027,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T07:44:07.782Z","status":"ssl_error","status_checked_at":"2026-02-23T07:44:07.432Z","response_time":90,"last_error":"SSL_read: 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":["error-handling","failure","flow-control","mathematica","utilities"],"created_at":"2025-10-11T00:21:42.089Z","updated_at":"2026-02-23T17:25:51.458Z","avatar_url":"https://github.com/kubaPod.png","language":"Mathematica","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Meh\n\nControl flow utilities.\n\nIt happens that for more complicated or interactive applications solutions offered by native `Messages` and related functions are not enough. \nThere was an attempt to address this problem by developers of ``GeneralUtilities` `` but it is still undocumented and not polished. \n\nThis package is meant to provide solutions for easier exceptions handling and keep it idiomatic/ natural to regular WL experience.\n\nIt also comes with few minor utilities that I found to be used by me quite frequently.\n\nIt is still under development, there is a brief [documentation in WIKI](https://github.com/kubaPod/Meh/wiki/Symbols-Guide)\n\n## Installation\n \n### Manual\n \n   Go to 'releases' tab and download appropriate .paclet file.\n    \n   Run `PacletInstall @ path/to/the.paclet` file\n   \n### Via ``MPM` ``\n   \nIf you don't have ``MPM` `` yet, run:\n   \n    Import[\"https://raw.githubusercontent.com/kubapod/mpm/master/install.m\"]\n   \nand then:\n   \n    Needs @ \"MPM`\"    \n    MPM`MPMInstall[\"kubapod\", \"meh\"]\n    \n## Usage teaser\n\n```Mathematica\nMCatch[\n  MThrowAll[\"500\", General::appname, \"1asd\"]\n]\n```\n\n\u003e `General::appname`: The name 1asd is not valid for the application. A valid name starts with a letter and is followed by letters and digits.\n\n\u003e ```\n\u003e Failure[\"500\", \u003c| \"MessageTemplate\" :\u003e General::appname, \"MessageParameters\" -\u003e {\"1asd\"}]]\n\u003e  ```\n\n```Mathematica\nfoo // ClearAll\n$fooPatt = KeyValuePattern[{\"a\" -\u003e _Integer, \"c\" -\u003e _String}];\n\nfoo // MValidateByDefault[ $fooPatt ]\n\nfoo[ in: $fooPatt]:= in[\"a\"]\n\nfoo @ \u003c|\"a\" -\u003e 1, \"c\" -\u003e \"c\"|\u003e\n\nfoo @ \u003c|\"b\" -\u003e 1, \"c\" -\u003e {1}|\u003e\n```\n\n\u003e `1`\n\n\u003e `foo::InvalidArg`: Argument No. 1 has invalid structure at:\u003cbr\u003e\n\u003e\t{Key[c]}\tList \u003cbr\u003e\n\u003e\t{Key[a]}\tMissing[] \u003cbr\u003e\n\u003e It needs to match: \u003cbr\u003e\n\u003e\t\u003c|a -\u003e _Integer, c -\u003e _String|\u003e\n\n\u003e ```Failure[...]```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubapod%2Fmeh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkubapod%2Fmeh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubapod%2Fmeh/lists"}