{
  "_id": "6a27cbd624555f66ed54343d",
  "Package": "ottr",
  "Title": "An R Autograding Extension for Otter-Grader",
  "Version": "1.5.3",
  "Authors@R": "c(\nperson(given = \"Christopher\",\nfamily = \"Pyles\",\nemail = \"cpyles@berkeley.edu\",\nrole = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0001-8520-7593\")),\nperson(given = \"UC Berkeley Data Science Education Program\",\nrole = c(\"cph\")))",
  "Maintainer": "Christopher Pyles <cpyles@berkeley.edu>",
  "Description": "An R autograding extension for Otter-Grader\n(<https://otter-grader.readthedocs.io>). It supports grading R\nscripts, R Markdown documents, and R Jupyter Notebooks.",
  "License": "BSD_3_clause + file LICENSE",
  "Encoding": "UTF-8",
  "RoxygenNote": "7.3.2",
  "Config/testthat/edition": "3",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-06-09 08:01:21 UTC",
    "User": "root"
  },
  "Author": "Christopher Pyles [aut, cre] (ORCID:\n<https://orcid.org/0000-0001-8520-7593>), UC Berkeley Data\nScience Education Program [cph]",
  "Config/pak/sysreqs": "cmake make libuv1-dev",
  "Repository": "https://chrispyles.r-universe.dev",
  "Date/Publication": "2025-10-12 02:20:02 UTC",
  "RemoteUrl": "https://github.com/cran/ottr",
  "RemoteRef": "HEAD",
  "RemoteSha": "f0783e379bf93f7e56a926206d0a075d7a1f308d",
  "MD5sum": "b5774b2c38faf053626d8c01ba0d942d",
  "_user": "chrispyles",
  "_type": "src",
  "_file": "ottr_1.5.3.tar.gz",
  "_fileid": "4e907a28a7dde1f8e5b513cd9ca7223a4e0a9386b8516253dae14c6e056bbc82",
  "_filesize": 147784,
  "_sha256": "4e907a28a7dde1f8e5b513cd9ca7223a4e0a9386b8516253dae14c6e056bbc82",
  "_created": "2026-06-09T08:01:21.000Z",
  "_published": "2026-06-09T08:16:22.707Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 80275575547,
      "time": 143,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7501874569"
    },
    {
      "job": 80275575558,
      "time": 130,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7501869622"
    },
    {
      "job": 80275575619,
      "time": 189,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7502113304"
    },
    {
      "job": 80275575572,
      "time": 174,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7502059126"
    },
    {
      "job": 80274993251,
      "time": 210,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7501823411"
    },
    {
      "job": 80275575539,
      "time": 107,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7501861377"
    },
    {
      "job": 80275575584,
      "time": 154,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7501877761"
    },
    {
      "job": 80275575571,
      "time": 88,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7501855317"
    },
    {
      "job": 80275575570,
      "time": 77,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7501850756"
    }
  ],
  "_buildurl": "https://github.com/r-universe/chrispyles/actions/runs/27192214621",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/cran/ottr",
  "_commit": {
    "id": "f0783e379bf93f7e56a926206d0a075d7a1f308d",
    "author": "Christopher Pyles <cpyles@berkeley.edu>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 1.5.3\n",
    "time": 1760235602
  },
  "_maintainer": {
    "name": "Christopher Pyles",
    "email": "cpyles@berkeley.edu",
    "login": "chrispyles",
    "description": "Software Engineer",
    "uuid": 40970945,
    "orcid": "0000-0001-8520-7593"
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.0.0",
      "role": "Depends"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "R6",
      "role": "Imports"
    },
    {
      "package": "zip",
      "role": "Imports"
    },
    {
      "package": "methods",
      "role": "Imports"
    },
    {
      "package": "IRdisplay",
      "role": "Suggests"
    },
    {
      "package": "mockery",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "stringr",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    },
    {
      "package": "IRkernel",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-27",
      "n": 1
    },
    {
      "week": "2025-41",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "1.5.2",
      "date": "2025-07-02"
    },
    {
      "name": "1.5.3",
      "date": "2025-10-12"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "chrispyles",
      "count": 11,
      "uuid": 40970945
    }
  ],
  "_userbio": {
    "uuid": 40970945,
    "type": "user",
    "name": "Chris Pyles",
    "description": "Software Engineer"
  },
  "_downloads": {
    "count": 273,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/ottr"
  },
  "_searchresults": 53,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/ottr.html",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_realowner": "chrispyles",
  "_cranurl": false,
  "_releases": [
    {
      "version": "1.1.3",
      "date": "2022-02-07"
    },
    {
      "version": "1.1.4",
      "date": "2022-03-23"
    },
    {
      "version": "1.1.5",
      "date": "2022-06-16"
    },
    {
      "version": "1.2.0",
      "date": "2022-07-06"
    },
    {
      "version": "1.3.0",
      "date": "2022-12-17"
    },
    {
      "version": "1.3.1",
      "date": "2023-01-26"
    },
    {
      "version": "1.4.0",
      "date": "2023-07-19"
    },
    {
      "version": "1.5.0",
      "date": "2024-02-01"
    },
    {
      "version": "1.5.1",
      "date": "2024-11-14"
    },
    {
      "version": "1.5.2",
      "date": "2025-07-02"
    },
    {
      "version": "1.5.3",
      "date": "2025-10-12"
    }
  ],
  "_exports": [
    "check",
    "export",
    "run_autograder",
    "TestCase",
    "valid_syntax"
  ],
  "_help": [
    {
      "page": "check",
      "title": "Run the test cases in a test file",
      "topics": [
        "check"
      ]
    },
    {
      "page": "CheckCollector",
      "title": "An R6 class for collecting TestFileResult objects during grading.",
      "topics": [
        "CheckCollector"
      ]
    },
    {
      "page": "collector_env",
      "title": "An environment into which a collector will be initialized (so we don't need to update global variables).",
      "topics": [
        "collector_env"
      ]
    },
    {
      "page": "collector_varname",
      "title": "The name of the active collector variable in collector_env",
      "topics": [
        "collector_varname"
      ]
    },
    {
      "page": "execute_script",
      "title": "Generate an environment from an R script",
      "topics": [
        "execute_script"
      ]
    },
    {
      "page": "export",
      "title": "Export a submission to a zip file",
      "topics": [
        "export"
      ]
    },
    {
      "page": "get_collector",
      "title": "Retrieve the global CheckCollector",
      "topics": [
        "get_collector"
      ]
    },
    {
      "page": "grade_script",
      "title": "Grade an R script against a series of test files",
      "topics": [
        "grade_script"
      ]
    },
    {
      "page": "GradingResults",
      "title": "An R6 class representing a collection of test case results",
      "topics": [
        "GradingResults"
      ]
    },
    {
      "page": "initialize_collector",
      "title": "Create a new global CheckCollector",
      "topics": [
        "initialize_collector"
      ]
    },
    {
      "page": "load_test_cases",
      "title": "Load test cases from a test file",
      "topics": [
        "load_test_cases"
      ]
    },
    {
      "page": "run_autograder",
      "title": "Grade an R script against test files in a directory",
      "topics": [
        "run_autograder"
      ]
    },
    {
      "page": "running_on_jupyter",
      "title": "Determine whether this R session is running on Jupyter.",
      "topics": [
        "running_on_jupyter"
      ]
    },
    {
      "page": "save_notebook",
      "title": "Attempt to save the current notebook.",
      "topics": [
        "save_notebook"
      ]
    },
    {
      "page": "TestCase",
      "title": "An R6 class representing a test case",
      "topics": [
        "TestCase"
      ]
    },
    {
      "page": "TestCaseResult",
      "title": "An R6 representing the results of running a test case",
      "topics": [
        "TestCaseResult"
      ]
    },
    {
      "page": "TestFileResult",
      "title": "An R6 class representing a collection of test case results",
      "topics": [
        "TestFileResult"
      ]
    },
    {
      "page": "update_ast_check_calls",
      "title": "Collect results of calls to 'ottr::check' in an AST",
      "topics": [
        "update_ast_check_calls"
      ]
    },
    {
      "page": "valid_syntax",
      "title": "Check whether a string is valid R code",
      "topics": [
        "valid_syntax"
      ]
    }
  ],
  "_readme": "https://github.com/cran/ottr/raw/HEAD/README.md",
  "_rundeps": [
    "brio",
    "callr",
    "cli",
    "crayon",
    "desc",
    "diffobj",
    "evaluate",
    "fs",
    "glue",
    "jsonlite",
    "lifecycle",
    "magrittr",
    "otel",
    "pkgbuild",
    "pkgload",
    "praise",
    "processx",
    "ps",
    "R6",
    "rlang",
    "rprojroot",
    "testthat",
    "waldo",
    "withr",
    "zip"
  ],
  "_score": 2.724275869600789,
  "_indexed": true,
  "_nocasepkg": "ottr",
  "_universes": [
    "chrispyles"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.5.3",
      "date": "2026-06-09T08:03:48.000Z",
      "distro": "noble",
      "commit": "f0783e379bf93f7e56a926206d0a075d7a1f308d",
      "fileid": "67965af1498bf4abed37ad61ce0558d0d55f244863da5e4030e9897d0abcc69c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chrispyles/actions/runs/27192214621"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.5.3",
      "date": "2026-06-09T08:03:36.000Z",
      "distro": "noble",
      "commit": "f0783e379bf93f7e56a926206d0a075d7a1f308d",
      "fileid": "e338d355fdc384c04213175c629656e38a672d821cecd2c68896689f73d2101a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chrispyles/actions/runs/27192214621"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.5.3",
      "date": "2026-06-09T08:15:20.000Z",
      "commit": "f0783e379bf93f7e56a926206d0a075d7a1f308d",
      "fileid": "d11e91a6154a6e415b3e14c3b041af261ccf7e1ecd0aad4df2b3ec336ec50ffb",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chrispyles/actions/runs/27192214621"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.5.3",
      "date": "2026-06-09T08:12:50.000Z",
      "commit": "f0783e379bf93f7e56a926206d0a075d7a1f308d",
      "fileid": "34096aacaf9d35cc02cd9bf64e9a1b6c2ab75e9869a2e06c5d9160b46efecb3e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chrispyles/actions/runs/27192214621"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.5.3",
      "date": "2026-06-09T08:03:28.000Z",
      "commit": "f0783e379bf93f7e56a926206d0a075d7a1f308d",
      "fileid": "0ea8f8f8d08e5659ba5b436da7f7286d8f52ca766168cd965f9aee05d4485c19",
      "status": "success",
      "buildurl": "https://github.com/r-universe/chrispyles/actions/runs/27192214621"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.5.3",
      "date": "2026-06-09T08:03:52.000Z",
      "commit": "f0783e379bf93f7e56a926206d0a075d7a1f308d",
      "fileid": "44592619767bf00bbfee6131eddfd0617a9680d49bddaf563555f2a6d9da688f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chrispyles/actions/runs/27192214621"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.5.3",
      "date": "2026-06-09T08:02:50.000Z",
      "commit": "f0783e379bf93f7e56a926206d0a075d7a1f308d",
      "fileid": "e2dd1e32b4fa89752770ae5bbd98b8821dee44ab39bc0800cab4851108174a6c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chrispyles/actions/runs/27192214621"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "1.5.3",
      "date": "2026-06-09T08:02:36.000Z",
      "commit": "f0783e379bf93f7e56a926206d0a075d7a1f308d",
      "fileid": "42b34120d21c161ce825264510f1f2f469ba10f00c06242e0fec372e7a74c853",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chrispyles/actions/runs/27192214621"
    }
  ]
}