{
  "_id": "6ae67ec71e2c7b3a4f52f5f0",
  "Package": "garnish",
  "Title": "Python-Style Decorators for R",
  "Version": "0.1.0",
  "Authors@R": "person(\"Dyfan\", \"Jones\", , \"dyfan.r.jones@gmail.com\", role = c(\"aut\", \"cre\"))",
  "Description": "Popular Python decorators ported to R with the 'adorn'\nframework: retrying, caching, context managers and argument\nvalidation.",
  "License": "MIT + file LICENSE",
  "URL": "https://dyfanjones.github.io/garnish/,\nhttps://github.com/DyfanJones/garnish",
  "BugReports": "https://github.com/DyfanJones/garnish/issues",
  "Remotes": [
    "DyfanJones/adorn",
    "RConsortium/S7"
  ],
  "Config/testthat/edition": "3",
  "Config/roxygen2/version": "8.1.1",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "Collate": "'cache.R' 'circuit_breaker.R' 'contextmanager.R'\n'rate_limit.R' 'reexport-S7.R' 'reexport-adorn.R'\n'retry_utils.R' 'retry_after.R' 'retry_before.R'\n'retry_retry.R' 'retry_wait.R' 'retry_stop.R' 'retry.R'\n'retry_extend.R' 'validate.R' 'zzz.R'",
  "VignetteBuilder": "litedown",
  "Repository": "https://dyfanjones.r-universe.dev",
  "Date/Publication": "2026-10-31 23:15:35 UTC",
  "RemoteUrl": "https://github.com/DyfanJones/garnish",
  "RemoteRef": "HEAD",
  "RemoteSha": "37c900aa0f4935e1804caa9dacffa21adc1a456c",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-31 23:48:02 UTC",
    "User": "root"
  },
  "Author": "Dyfan Jones [aut, cre]",
  "Maintainer": "Dyfan Jones <dyfan.r.jones@gmail.com>",
  "_user": "dyfanjones",
  "_type": "src",
  "_file": "garnish_0.1.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/596558ae974861da5e1b47add62fead7c613880f70bd7d455ab75be1cc316653",
  "_filesize": 171786,
  "_sha256": "596558ae974861da5e1b47add62fead7c613880f70bd7d455ab75be1cc316653",
  "_expires": "2027-02-08T23:50:29.000Z",
  "_created": "2026-10-31T23:48:02.000Z",
  "_published": "2026-10-31T23:50:30.873Z",
  "_upstream": "https://github.com/DyfanJones/garnish",
  "_status": "failure",
  "_maintainer": {
    "name": "Dyfan Jones",
    "email": "dyfan.r.jones@gmail.com",
    "login": "dyfanjones",
    "description": "",
    "uuid": 23235152
  },
  "_jobs": [
    {
      "job": 124693325677,
      "time": 84,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "FAIL",
      "artifact": ""
    },
    {
      "job": 124693325740,
      "time": 85,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "FAIL",
      "artifact": ""
    },
    {
      "job": 124693325746,
      "time": 104,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "FAIL",
      "artifact": ""
    },
    {
      "job": 124693325709,
      "time": 88,
      "config": "macos-release-arm64",
      "r": "4.6.2",
      "check": "FAIL",
      "artifact": ""
    },
    {
      "job": 124692632721,
      "time": 203,
      "config": "source",
      "r": "4.6.1",
      "check": "ERROR",
      "artifact": "13062332898"
    },
    {
      "job": 124693325712,
      "time": 98,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "13061828447"
    },
    {
      "job": 124693325721,
      "time": 47,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "FAIL",
      "artifact": ""
    },
    {
      "job": 124693325704,
      "time": 42,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "FAIL",
      "artifact": ""
    },
    {
      "job": 124693325744,
      "time": 46,
      "config": "windows-release-x86_64",
      "r": "4.6.2",
      "check": "FAIL",
      "artifact": ""
    }
  ],
  "_buildurl": "https://github.com/r-universe/dyfanjones/actions/runs/41253795882",
  "_commit": {
    "id": "37c900aa0f4935e1804caa9dacffa21adc1a456c",
    "author": "Dyfan <dyfanjones@hotmail.com>",
    "committer": "Dyfan <dyfanjones@hotmail.com>",
    "message": "fix: remove circuitbreaker from pkgdown reference index\n",
    "time": 1793488535
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.4.0",
      "role": "Depends"
    },
    {
      "package": "adorn",
      "role": "Imports"
    },
    {
      "package": "S7",
      "version": ">= 0.2.2.9000",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "cachem",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "withr",
      "role": "Imports"
    },
    {
      "package": "litedown",
      "role": "Suggests"
    },
    {
      "package": "qs2",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "dyfanjones",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-44",
      "n": 18
    }
  ],
  "_tags": [],
  "_stars": 1,
  "_contributors": [
    {
      "user": "dyfanjones",
      "count": 18,
      "uuid": 23235152
    }
  ],
  "_userbio": {
    "uuid": 23235152,
    "type": "user",
    "name": "Larefly",
    "followers": 41
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/garnish"
  },
  "_devurl": "https://github.com/dyfanjones/garnish",
  "_pkgdown": "https://dyfanjones.github.io/garnish/",
  "_searchresults": 0,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/garnish.html",
    "extra/manual.pdf",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_cranurl": false,
  "_exports": [
    ":=",
    "%@%",
    "after_sleep_base",
    "after_sleep_fn",
    "after_sleep_log",
    "after_sleep_none",
    "as_decorator",
    "before_sleep_base",
    "before_sleep_fn",
    "before_sleep_log",
    "before_sleep_none",
    "cache",
    "circuit_breaker",
    "contextmanager",
    "disk_cache",
    "lru_cache",
    "rate_limit",
    "retry",
    "retry_all",
    "retry_base",
    "retry_fn",
    "retry_if_error",
    "retry_if_error_message",
    "retry_if_result",
    "retry_never",
    "stop_after_attempt",
    "stop_after_delay",
    "stop_all",
    "stop_any",
    "stop_base",
    "stop_before_delay",
    "stop_fn",
    "stop_never",
    "teardown",
    "validate_args",
    "validate_return",
    "wait_base",
    "wait_chain",
    "wait_combine",
    "wait_exp",
    "wait_exp_jitter",
    "wait_fixed",
    "wait_fn",
    "wait_none",
    "wait_rand",
    "with_context"
  ],
  "_help": [
    {
      "page": "extending_retry",
      "title": "Write your own stop, wait, retry and hook strategies",
      "topics": [
        "after_sleep_base",
        "after_sleep_fn",
        "before_sleep_base",
        "before_sleep_fn",
        "extending_retry",
        "retry_base",
        "retry_fn",
        "stop_base",
        "stop_fn",
        "wait_base",
        "wait_fn"
      ]
    },
    {
      "page": "after_sleep",
      "title": "Run a hook after 'retry()' sleeps",
      "topics": [
        "after_sleep_log",
        "after_sleep_none"
      ]
    },
    {
      "page": "as_decorator",
      "title": "Use a context manager as a decorator",
      "topics": [
        "as_decorator"
      ]
    },
    {
      "page": "before_sleep",
      "title": "Run a hook before 'retry()' sleeps",
      "topics": [
        "before_sleep_log",
        "before_sleep_none"
      ]
    },
    {
      "page": "circuit_breaker",
      "title": "Stop calling a function that keeps failing",
      "topics": [
        "circuit_breaker"
      ]
    },
    {
      "page": "contextmanager",
      "title": "Write setup and teardown once",
      "topics": [
        "contextmanager",
        "teardown"
      ]
    },
    {
      "page": "lru_cache",
      "title": "Cache function results",
      "topics": [
        "cache",
        "disk_cache",
        "lru_cache"
      ]
    },
    {
      "page": "rate_limit",
      "title": "Limit how often a function can be called",
      "topics": [
        "rate_limit"
      ]
    },
    {
      "page": "retry",
      "title": "Retry a function when it fails",
      "topics": [
        "retry"
      ]
    },
    {
      "page": "retry_conditions",
      "title": "Retry conditions",
      "topics": [
        "retry_all",
        "retry_if_error",
        "retry_if_error_message",
        "retry_if_result",
        "retry_never"
      ]
    },
    {
      "page": "stop_conditions",
      "title": "Stop conditions",
      "topics": [
        "stop_after_attempt",
        "stop_after_delay",
        "stop_all",
        "stop_any",
        "stop_before_delay",
        "stop_never"
      ]
    },
    {
      "page": "validate_args",
      "title": "Validate arguments and return values",
      "topics": [
        "validate_args",
        "validate_return"
      ]
    },
    {
      "page": "wait_strategies",
      "title": "Wait strategies",
      "topics": [
        "wait_chain",
        "wait_combine",
        "wait_exp",
        "wait_exp_jitter",
        "wait_fixed",
        "wait_none",
        "wait_rand"
      ]
    },
    {
      "page": "with_context",
      "title": "Run code inside a context",
      "topics": [
        "with_context"
      ]
    }
  ],
  "_readme": "https://github.com/DyfanJones/garnish/raw/HEAD/README.md",
  "_rundeps": [
    "adorn",
    "cachem",
    "fastmap",
    "rlang",
    "S7",
    "withr"
  ],
  "_score": 1.6989700043360187,
  "_indexed": true,
  "_nocasepkg": "garnish",
  "_universes": [
    "dyfanjones"
  ],
  "_binaries": [
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-10-31T23:48:02.000Z",
      "distro": "resolute",
      "commit": "37c900aa0f4935e1804caa9dacffa21adc1a456c",
      "fileid": "https://r2.ropensci.org/1b4c9af714263509bee720265206a710f7d64a465836eebe337c6ea4bca8cd08",
      "status": "failure",
      "buildurl": "https://github.com/r-universe/dyfanjones/actions/runs/41253795882"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.0",
      "date": "2026-10-31T23:50:01.000Z",
      "commit": "37c900aa0f4935e1804caa9dacffa21adc1a456c",
      "fileid": "https://r2.ropensci.org/38a38d0ea725e298016a212063f71273577e4160c893e88bac26b53a5ced0522",
      "status": "success",
      "buildurl": "https://github.com/r-universe/dyfanjones/actions/runs/41253795882"
    }
  ]
}