From d95a0829fa81adb62e93629569797b9a2776c356 Mon Sep 17 00:00:00 2001 From: Kipton Barros Date: Sun, 12 Nov 2023 11:50:05 -0700 Subject: [PATCH] Informative errors for Pkg extensions --- src/Sunny.jl | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Sunny.jl b/src/Sunny.jl index 8e22635d1..dcb71a6a2 100644 --- a/src/Sunny.jl +++ b/src/Sunny.jl @@ -146,13 +146,21 @@ export propose_uniform, propose_flip, propose_delta, @mix_proposals, LocalSample include("deprecated.jl") +isloaded(pkg::String) = any(k -> k.name == pkg, keys(Base.loaded_modules)) + ### ext/PlottingExt.jl, dependent on Makie -function plot_spins end -function view_crystal end +function plot_spins(args...) + error(isloaded("Makie") ? "Invalid method call" : "Import GLMakie or GLMakie to enable plotting") +end +function view_crystal(args...) + error(isloaded("Makie") ? "Invalid method call" : "Import GLMakie or GLMakie to enable plotting") +end export plot_spins, view_crystal ### ext/ExportVTKExt.jl, dependent on WriteVTK -function export_vtk end +function export_vtk(args...) + error(isloaded("WriteVTK") ? "Invalid method call" : "Import WriteVTK to enable exporting.") +end export export_vtk end