I planned to use AudioCapture[]
in a cloud notebook and just found out it’s not supported. There used to be a convenient “not in the cloud” icon in a symbols documentation page, but it’s gone now.
2 Answers
Why not trying
EntityClass["WolframLanguageSymbol",
"CloudSupportStatus" -> "NotSupported"]["Entities"]
This is not a complete answer.
In chrome on the mac using these versions:
In[2]:= $Version
Out[2]= 12.0.0 for Linux x86 (64-bit) (April 7, 2019)
In[1]:= $CloudVersion
Out[1]= 1.53.0.1 (November 5, 2019)
I found a partial list (before my $CloudCredits ran out) of unsupported symbols, meaning they issue the ::cloudf
message:
nocloud = {"AudioCapture", "AudioPause", "AudioPlay", "AudioStop",
"AudioStream", "AudioStreams", "ConnectSystemModelComponents",
"CreateDataSystemModel", "CreateSystemModel",
"CurrentNotebookImage", "CurrentScreenImage", "DatabaseConnect",
"DatabaseDisconnect", "DatabaseReference", "DeviceClose",
"DeviceConfigure", "DeviceExecute", "DeviceExecuteAsynchronous",
"DeviceObject", "DeviceOpen", "DeviceRead", "DeviceReadBuffer",
"DeviceReadList", "DeviceReadTimeSeries", "Devices",
"DeviceStreams", "DeviceWrite", "DeviceWriteBuffer",
"DynamicImage", "FindDevices", "FindSystemModelEquilibrium",
"FunctionCompile", "FunctionCompileExport",
"FunctionCompileExportByteArray", "FunctionCompileExportLibrary",
"FunctionCompileExportString", "GestureHandler", "ImageCapture",
"InteractiveTradingChart", "NetworkPacketCapture",
"NetworkPacketRecording", "PingTime", "RelationalDatabase",
"RemoteConnect", "RemoteFile", "RemoteRun", "RemoteRunProcess",
"RemoveAudioStream", "SetSystemModel", "SystemDialogInput",
"SystemInstall", "SystemModel", "SystemModeler",
"SystemModelExamples", "SystemModelLinearize",
"SystemModelParametricSimulate", "SystemModelPlot",
"SystemModelProgressReporting", "SystemModelReliability",
"SystemModels", "SystemModelSimulate",
"SystemModelSimulateSensitivity", "SystemModelSimulationData",
"SystemProcessData", "SystemProcesses", "DynamicImage",
"FunctionCompile", "FunctionCompileExportString", "RemoteConnect",
"SystemModel", "SystemModelPlot", "SystemModelSimulate",
"SystemModelSimulateSensitivity", "SystemModelSimulationData"};
Of course, this doesn't symbols in packages that are missing like FEPrivate, CUDALink, etc. I'd say this question is almost impossible to answer fully, as it differs across platforms and devices. For instance, CurrentImage[]
works on MacOS in Chrome (if you allow it), but not on the Wolfram Cloud iOS app:
-
$\begingroup$ You can actually probably check many of these locally by looking for a condition test for
$CloudEvaluation
(or whatever that symbol is called again...). Similarly, you could look for a definedsym::cloudf
as a first preprocessing step, although that can be bound dynamically. $\endgroup$– b3m2a1Dec 13, 2019 at 17:48 -
$\begingroup$ @b3m2a1 So I did this by for symbol X running TimeConstrained[CloudEvaluate[X[]],.1] and checking for ::cloudf, but this doesn't work for options, what exactly would you run instead? $\endgroup$– M.R.Dec 13, 2019 at 18:40
-
$\begingroup$ Check
Messages[X]
for”cloudf"
and checkKeys@Downvalues[X]
for something containing$CloudEvaluation
to see if it special cases for the cloud. That will give a prefilter then you can write filters on top of that. $\endgroup$– b3m2a1Dec 13, 2019 at 19:05 -
$\begingroup$ Is there a way to do the cloudevaluate portion without blowing away my cloud credits $\endgroup$– M.R.Dec 13, 2019 at 19:26
-