{
  "_id": "6aebde1f2e87f76f20ad2ca6",
  "Package": "rplatypus",
  "Type": "Package",
  "Title": "Computer Vision for Medical Imaging",
  "Version": "0.2.1",
  "Authors@R": "person(\"Michal\", \"Maj\", email = \"michalmaj116@gmail.com\",\nrole = c(\"aut\", \"cre\"))",
  "Description": "Semantic segmentation and object detection for medical\nimages, from a folder of pictures to a trained model and a\nfigure, in a handful of lines or one configuration file.\nArchitectures, losses and training run on 'PyTorch' through\n'pyplatypus', a 'Python' package which is installed and\nisolated automatically; nothing has to be set up by hand. R\nkeeps the parts that make an analysis fast - reading and\ncombining masks, drawing boxes, plotting, comparing models.",
  "License": "MIT + file LICENSE",
  "URL": "https://github.com/maju116/rplatypus,\nhttps://maju116.github.io/rplatypus/",
  "BugReports": "https://github.com/maju116/rplatypus/issues",
  "SystemRequirements": "Python (>= 3.10). Not a prerequisite the user\ninstalls: the package declares what it needs through\n'reticulate' and 'uv' provisions an isolated environment on\nfirst use, leaving any system Python untouched.",
  "Encoding": "UTF-8",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "Config/roxygen2/version": "8.1.0",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-11-05 01:34:34 UTC",
    "User": "root"
  },
  "Author": "Michal Maj [aut, cre]",
  "Maintainer": "Michal Maj <michalmaj116@gmail.com>",
  "Config/pak/sysreqs": "python3",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-11-04 22:00:02 UTC",
  "RemoteUrl": "https://github.com/cran/rplatypus",
  "RemoteRef": "HEAD",
  "RemoteSha": "3bd95253d551ac3f849d3f4fba10126a719aca0f",
  "_user": "cran",
  "_type": "src",
  "_file": "rplatypus_0.2.1.tar.gz",
  "_fileid": "https://r2.ropensci.org/779d9d7e131ca47880ab79140ac5d2224196dcd0d15f2ff35e2ac3c8861d49e6",
  "_filesize": 3760029,
  "_sha256": "779d9d7e131ca47880ab79140ac5d2224196dcd0d15f2ff35e2ac3c8861d49e6",
  "_expires": "2027-02-13T01:38:37.000Z",
  "_created": "2026-11-05T01:34:34.000Z",
  "_published": "2026-11-05T01:38:39.443Z",
  "_upstream": "https://github.com/cran/rplatypus",
  "_status": "success",
  "_maintainer": {
    "name": "Michal Maj",
    "email": "michalmaj116@gmail.com",
    "login": "maju116",
    "twitter": "@MichalMaj116",
    "description": "I’m  a data scientist with over 10 years of experience in the field, R/Shiny developer and a freelancer interested in deep/machine learning and statistics.",
    "uuid": 11685462
  },
  "_jobs": [
    {
      "job": 126989781628,
      "time": 175,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "13379962702"
    },
    {
      "job": 126989781651,
      "time": 195,
      "config": "linux-release-x86_64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13380666063"
    },
    {
      "job": 126988493438,
      "time": 211,
      "config": "source",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13380530971"
    },
    {
      "job": 126989781682,
      "time": 114,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "13380780640"
    },
    {
      "job": 126989781766,
      "time": 86,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "13380117343"
    },
    {
      "job": 126989781789,
      "time": 113,
      "config": "windows-release-x86_64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13380561053"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/41949056778",
  "_commit": {
    "id": "3bd95253d551ac3f849d3f4fba10126a719aca0f",
    "author": "Michal Maj <michalmaj116@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.2.1\n",
    "time": 1793829602
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1",
      "role": "Depends"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "grDevices",
      "role": "Imports"
    },
    {
      "package": "parallel",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "reticulate",
      "version": ">= 1.41",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "callr",
      "role": "Suggests"
    },
    {
      "package": "jsonlite",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "pkgload",
      "role": "Suggests"
    },
    {
      "package": "png",
      "role": "Suggests"
    },
    {
      "package": "RNifti",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    },
    {
      "package": "yaml",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-45",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.2.1",
      "date": "2026-11-04"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "maju116",
      "count": 1,
      "uuid": 11685462
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 635,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/rplatypus"
  },
  "_devurl": "https://github.com/maju116/rplatypus",
  "_pkgdown": "https://maju116.github.io/rplatypus/",
  "_searchresults": 18,
  "_rbuild": "4.6.2",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/rplatypus.html",
    "LICENSE"
  ],
  "_cranurl": false,
  "_exports": [
    "augmentation_step",
    "available_callbacks",
    "available_losses",
    "available_metrics",
    "available_models",
    "available_optimizers",
    "available_tasks",
    "available_transforms",
    "available_weights",
    "binary_colormap",
    "binary_labels",
    "callback_cosine_annealing",
    "callback_csv_logger",
    "callback_early_stopping",
    "callback_model_checkpoint",
    "callback_reduce_lr_on_plateau",
    "callback_swa",
    "callback_terminate_on_nan",
    "classes_to_colours",
    "colours_to_classes",
    "ct_windows",
    "decode_connected_components",
    "decode_follow_flows",
    "decode_nearest_seed",
    "decode_watershed",
    "detection_anchors",
    "detection_crops",
    "detection_data",
    "drawing_style",
    "evaluate",
    "evaluate_cases",
    "evaluate_classes",
    "evaluate_images",
    "export_weights",
    "inspect_masks",
    "instance_data",
    "linknet",
    "loss_boundary",
    "loss_cce",
    "loss_cce_dice",
    "loss_combo",
    "loss_dice",
    "loss_focal",
    "loss_focal_tversky",
    "loss_iou",
    "loss_l1",
    "loss_lovasz",
    "loss_mse",
    "loss_smooth_l1",
    "loss_tversky",
    "mask_coverage",
    "mask_volume",
    "metric_cldice",
    "metric_dice",
    "metric_iou",
    "metric_tversky",
    "optimizer_adadelta",
    "optimizer_adagrad",
    "optimizer_adam",
    "optimizer_adamax",
    "optimizer_adamw",
    "optimizer_nadam",
    "optimizer_rmsprop",
    "optimizer_sgd",
    "overlay_agreement",
    "overlay_mask",
    "platypus_device",
    "platypus_fit",
    "platypus_spec",
    "platypus_status",
    "platypus_use_torch",
    "plot_anchors",
    "plot_boxes",
    "plot_masks",
    "read_images",
    "read_masks",
    "read_record",
    "res_u_net",
    "save_masks",
    "save_spec",
    "save_volumes",
    "segmentation_data",
    "separation_flows",
    "separation_rim",
    "series_report",
    "split_dataset",
    "split_path",
    "training_history",
    "u_net",
    "u_net_plus_plus",
    "unite_masks",
    "voc_colormap",
    "voc_labels",
    "volume_info",
    "yolo3"
  ],
  "_help": [
    {
      "page": "as.list.platypus_spec",
      "title": "Turn a specification back into plain R data",
      "topics": [
        "as.list.platypus_spec"
      ]
    },
    {
      "page": "augmentation_step",
      "title": "An augmentation step",
      "topics": [
        "augmentation_step"
      ]
    },
    {
      "page": "available_components",
      "title": "What this package can do, asked of the package",
      "topics": [
        "available_callbacks",
        "available_components",
        "available_losses",
        "available_metrics",
        "available_models",
        "available_optimizers",
        "available_tasks"
      ]
    },
    {
      "page": "available_transforms",
      "title": "Which augmentations are available",
      "topics": [
        "available_transforms"
      ]
    },
    {
      "page": "available_weights",
      "title": "The published weights, and what they are",
      "topics": [
        "available_weights"
      ]
    },
    {
      "page": "callback_swa",
      "title": "Average the weights over the last part of the run",
      "topics": [
        "callback_swa"
      ]
    },
    {
      "page": "callbacks",
      "title": "Callbacks",
      "topics": [
        "callbacks",
        "callback_cosine_annealing",
        "callback_csv_logger",
        "callback_early_stopping",
        "callback_model_checkpoint",
        "callback_reduce_lr_on_plateau",
        "callback_terminate_on_nan"
      ]
    },
    {
      "page": "classes_to_colours",
      "title": "Paint a mask with its colormap",
      "topics": [
        "classes_to_colours"
      ]
    },
    {
      "page": "colormaps",
      "title": "Colormaps and their labels",
      "topics": [
        "binary_colormap",
        "binary_labels",
        "colormaps",
        "voc_colormap",
        "voc_labels"
      ]
    },
    {
      "page": "colours_to_classes",
      "title": "Read a colour mask back to class indices",
      "topics": [
        "colours_to_classes"
      ]
    },
    {
      "page": "ct_windows",
      "title": "The named CT windows",
      "topics": [
        "ct_windows"
      ]
    },
    {
      "page": "decodings",
      "title": "How predicted channels become objects",
      "topics": [
        "decode_connected_components",
        "decode_follow_flows",
        "decode_nearest_seed",
        "decode_watershed",
        "decodings"
      ]
    },
    {
      "page": "detection_anchors",
      "title": "The anchors a detector used, and whether they were fitted",
      "topics": [
        "detection_anchors"
      ]
    },
    {
      "page": "detection_crops",
      "title": "Cut every detection out of the image it was found in",
      "topics": [
        "detection_crops"
      ]
    },
    {
      "page": "detection_data",
      "title": "Where the images and their annotation files are",
      "topics": [
        "detection_data"
      ]
    },
    {
      "page": "drawing_style",
      "title": "The decisions a drawing makes",
      "topics": [
        "drawing_style"
      ]
    },
    {
      "page": "encoders",
      "title": "Pretrained encoders, and what they are worth",
      "topics": [
        "encoders"
      ]
    },
    {
      "page": "evaluate",
      "title": "Compare the trained models",
      "topics": [
        "evaluate",
        "evaluate.platypus_fit"
      ]
    },
    {
      "page": "evaluate_cases",
      "title": "Score every case separately",
      "topics": [
        "evaluate_cases",
        "evaluate_cases.platypus_fit",
        "summary.platypus_cases"
      ]
    },
    {
      "page": "evaluate_classes",
      "title": "Average precision per class",
      "topics": [
        "evaluate_classes",
        "evaluate_classes.platypus_fit"
      ]
    },
    {
      "page": "evaluate_images",
      "title": "Score every image separately",
      "topics": [
        "evaluate_images",
        "evaluate_images.platypus_fit"
      ]
    },
    {
      "page": "export_weights",
      "title": "Save a trained model's weights",
      "topics": [
        "export_weights"
      ]
    },
    {
      "page": "inspect_masks",
      "title": "What the colormap or labels match in your masks",
      "topics": [
        "inspect_masks"
      ]
    },
    {
      "page": "instance_data",
      "title": "Data for instance segmentation: tell the objects apart, not just find them",
      "topics": [
        "instance_data"
      ]
    },
    {
      "page": "loss_boundary",
      "title": "A loss that knows how far a wrong voxel is from the truth",
      "topics": [
        "loss_boundary"
      ]
    },
    {
      "page": "losses",
      "title": "Loss functions",
      "topics": [
        "losses",
        "loss_cce",
        "loss_cce_dice",
        "loss_combo",
        "loss_dice",
        "loss_focal",
        "loss_focal_tversky",
        "loss_iou",
        "loss_l1",
        "loss_lovasz",
        "loss_mse",
        "loss_smooth_l1",
        "loss_tversky"
      ]
    },
    {
      "page": "mask_coverage",
      "title": "How much of each class a mask covers",
      "topics": [
        "mask_coverage"
      ]
    },
    {
      "page": "mask_volume",
      "title": "How much of a volume a class occupies, in millilitres",
      "topics": [
        "mask_volume"
      ]
    },
    {
      "page": "metrics",
      "title": "Metrics",
      "topics": [
        "metrics",
        "metric_cldice",
        "metric_dice",
        "metric_iou",
        "metric_tversky"
      ]
    },
    {
      "page": "models",
      "title": "Segmentation models",
      "topics": [
        "linknet",
        "models",
        "res_u_net",
        "u_net",
        "u_net_plus_plus"
      ]
    },
    {
      "page": "optimizers",
      "title": "Optimisers",
      "topics": [
        "optimizers",
        "optimizer_adadelta",
        "optimizer_adagrad",
        "optimizer_adam",
        "optimizer_adamax",
        "optimizer_adamw",
        "optimizer_nadam",
        "optimizer_rmsprop",
        "optimizer_sgd"
      ]
    },
    {
      "page": "overlay_agreement",
      "title": "Where a prediction and the truth disagree",
      "topics": [
        "overlay_agreement"
      ]
    },
    {
      "page": "overlay_mask",
      "title": "Lay a mask over the image it belongs to",
      "topics": [
        "overlay_mask"
      ]
    },
    {
      "page": "platypus_conditions",
      "title": "When something is wrong: the conditions this package raises",
      "topics": [
        "platypus_conditions"
      ]
    },
    {
      "page": "platypus_device",
      "title": "Where the work will happen",
      "topics": [
        "platypus_device"
      ]
    },
    {
      "page": "platypus_fit",
      "title": "Train the models in a specification",
      "topics": [
        "platypus_fit"
      ]
    },
    {
      "page": "platypus_spec",
      "title": "Build an experiment specification",
      "topics": [
        "platypus_spec"
      ]
    },
    {
      "page": "platypus_status",
      "title": "Is the engine ready?",
      "topics": [
        "platypus_status"
      ]
    },
    {
      "page": "platypus_use_torch",
      "title": "Ask for a particular PyTorch build",
      "topics": [
        "platypus_use_torch"
      ]
    },
    {
      "page": "plot_anchors",
      "title": "Draw the anchors against the boxes they were fitted to",
      "topics": [
        "plot_anchors"
      ]
    },
    {
      "page": "plot_boxes",
      "title": "Draw boxes on images",
      "topics": [
        "plot_boxes"
      ]
    },
    {
      "page": "plot_masks",
      "title": "Look at masks beside the images they came from",
      "topics": [
        "plot_masks"
      ]
    },
    {
      "page": "plot.platypus_fit",
      "title": "Plot what happened during training",
      "topics": [
        "plot.platypus_fit"
      ]
    },
    {
      "page": "predict.platypus_fit",
      "title": "Predict masks",
      "topics": [
        "predict.platypus_fit"
      ]
    },
    {
      "page": "read_images",
      "title": "Read images as the model sees them",
      "topics": [
        "read_images"
      ]
    },
    {
      "page": "read_masks",
      "title": "Read mask files as class indices",
      "topics": [
        "read_masks"
      ]
    },
    {
      "page": "read_record",
      "title": "Read what a run wrote down about itself",
      "topics": [
        "read_record"
      ]
    },
    {
      "page": "save_masks",
      "title": "Write masks to files",
      "topics": [
        "save_masks"
      ]
    },
    {
      "page": "save_spec",
      "title": "Write a specification back out as YAML",
      "topics": [
        "save_spec"
      ]
    },
    {
      "page": "save_volumes",
      "title": "Save predicted volumes as NIfTI",
      "topics": [
        "save_volumes"
      ]
    },
    {
      "page": "segmentation_data",
      "title": "Where the images and masks are",
      "topics": [
        "segmentation_data"
      ]
    },
    {
      "page": "separations",
      "title": "What the network predicts, so objects can be told apart",
      "topics": [
        "separations",
        "separation_flows",
        "separation_rim"
      ]
    },
    {
      "page": "series_report",
      "title": "Check folders of DICOM slices before training on them",
      "topics": [
        "series_report"
      ]
    },
    {
      "page": "split_dataset",
      "title": "Split a dataset into training, validation and test sets",
      "topics": [
        "split_dataset"
      ]
    },
    {
      "page": "split_path",
      "title": "The files in one part of a split",
      "topics": [
        "split_path"
      ]
    },
    {
      "page": "training_history",
      "title": "The epoch-by-epoch record",
      "topics": [
        "training_history"
      ]
    },
    {
      "page": "unite_masks",
      "title": "Combine several binary masks into one",
      "topics": [
        "unite_masks"
      ]
    },
    {
      "page": "volume_info",
      "title": "What is in a volume file",
      "topics": [
        "volume_info"
      ]
    },
    {
      "page": "yolo3",
      "title": "YOLOv3",
      "topics": [
        "yolo3"
      ]
    }
  ],
  "_readme": "https://github.com/cran/rplatypus/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "farver",
    "ggplot2",
    "glue",
    "gtable",
    "here",
    "isoband",
    "jsonlite",
    "labeling",
    "lattice",
    "lifecycle",
    "Matrix",
    "png",
    "R6",
    "rappdirs",
    "RColorBrewer",
    "Rcpp",
    "RcppTOML",
    "reticulate",
    "rlang",
    "rprojroot",
    "S7",
    "scales",
    "vctrs",
    "viridisLite",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "blood-cells.Rmd",
      "filename": "blood-cells.html",
      "title": "Finding blood cells with YOLOv3",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Before any of that: boxes in a few lines",
        "And here, unlike the nuclei vignette, a score means something",
        "One refusal worth meeting now",
        "Anchors, which a detector has and a U-Net does not",
        "What the loss is doing",
        "Scoring, and the number that is missing on purpose",
        "mAP@0.5, mAP@[.50:.95], and which to believe",
        "Looking at it",
        "What this does not do",
        "Notes on the machine"
      ],
      "created": "2026-11-04 22:00:02",
      "modified": "2026-11-04 22:00:02",
      "commits": 1
    },
    {
      "source": "data-science-bowl.Rmd",
      "filename": "data-science-bowl.html",
      "title": "Finding nuclei in the 2018 Data Science Bowl",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Before any of that: a mask in four lines",
        "The data",
        "Look at it before training on it",
        "The specification",
        "Train",
        "Compare",
        "Look at what it did",
        "The same thing from a file",
        "A note on older graphics cards"
      ],
      "created": "2026-11-04 22:00:02",
      "modified": "2026-11-04 22:00:02",
      "commits": 1
    },
    {
      "source": "retinal-vessels.Rmd",
      "filename": "retinal-vessels.html",
      "title": "Retinal vessels: tiling, and a metric Dice cannot replace",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Why a vessel cannot be resized",
        "The data",
        "The configuration",
        "Training",
        "One number hides the finding",
        "clDice beside Dice",
        "The worst case, drawn",
        "Notes"
      ],
      "created": "2026-11-04 22:00:02",
      "modified": "2026-11-04 22:00:02",
      "commits": 1
    },
    {
      "source": "volumes.Rmd",
      "filename": "volumes.html",
      "title": "Segmenting volumes: CT, spacing and per-patient scores",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Making something to segment",
        "Splitting by patient, not by scan",
        "The specification",
        "Training",
        "Scores per patient, not per dataset",
        "Looking at a slice",
        "Millilitres, not voxels",
        "Writing a mask back onto its scan",
        "DICOM, which is how the data usually arrives",
        "What this leaves out"
      ],
      "created": "2026-11-04 22:00:02",
      "modified": "2026-11-04 22:00:02",
      "commits": 1
    },
    {
      "source": "configuration.Rmd",
      "filename": "configuration.html",
      "title": "Writing a configuration",
      "engine": "knitr::rmarkdown",
      "headings": [
        "One file, one run",
        "Several models at once",
        "Dividing one folder",
        "Augmentation, callbacks, and the rest of a model",
        "Instances instead of one mask",
        "Detection instead of segmentation",
        "Not training at all",
        "What is checked, and when",
        "The same run from code"
      ],
      "created": "2026-11-04 22:00:02",
      "modified": "2026-11-04 22:00:02",
      "commits": 1
    }
  ],
  "_score": 3.6532125137753435,
  "_indexed": false,
  "_nocasepkg": "rplatypus",
  "_universes": [
    "cran",
    "maju116"
  ],
  "_indexurl": "https://maju116.r-universe.dev/rplatypus",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.1",
      "date": "2026-11-05T01:37:16.000Z",
      "distro": "resolute",
      "commit": "3bd95253d551ac3f849d3f4fba10126a719aca0f",
      "fileid": "https://r2.ropensci.org/af219f71c5aefbee3808f185ccae1cad96e2b6104a6c8909e825308e9eaf42fb",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/41949056778"
    },
    {
      "r": "4.6.2",
      "os": "linux",
      "version": "0.2.1",
      "date": "2026-11-05T01:37:26.000Z",
      "distro": "resolute",
      "commit": "3bd95253d551ac3f849d3f4fba10126a719aca0f",
      "fileid": "https://r2.ropensci.org/f9ec896bc5fe1ebff176b50096c4167c23beb9b510d7bcb13e30c9dc61c58820",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/41949056778"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.1",
      "date": "2026-11-05T01:36:51.000Z",
      "commit": "3bd95253d551ac3f849d3f4fba10126a719aca0f",
      "fileid": "https://r2.ropensci.org/834482b2918518ba299ba6f4609af26bb78c33e048a9a71bb6ff5f5634bef3a9",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/41949056778"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.1",
      "date": "2026-11-05T01:35:41.000Z",
      "commit": "3bd95253d551ac3f849d3f4fba10126a719aca0f",
      "fileid": "https://r2.ropensci.org/f1acc2684899405ef869e428b21f33461c38c4ec5872da812e52f966a5c78bb9",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/41949056778"
    },
    {
      "r": "4.6.2",
      "os": "win",
      "version": "0.2.1",
      "date": "2026-11-05T01:35:57.000Z",
      "commit": "3bd95253d551ac3f849d3f4fba10126a719aca0f",
      "fileid": "https://r2.ropensci.org/e41c2a68783aa4b2fe910029a5b0f155742dafec06edbe2d5bc1913ba97b927e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/41949056778"
    }
  ]
}