Re: SetAttributes for entire package
- To: mathgroup at smc.vnet.net
- Subject: [mg111366] Re: SetAttributes for entire package
- From: "Carl K. Woll" <carlw at wolfram.com>
- Date: Thu, 29 Jul 2010 06:42:47 -0400 (EDT)
On 7/28/2010 1:55 AM, Albert Retey wrote: > Hi, > > >> Is there a way to SetAttributes for all of the functions in a package? I >> would like them all to be Locked and ReadProtected. >> > you can get a list of all symbol names in your package with: > > Names["MyContext`*"] > > using SetAttributes on that list should work alright (I haven't tested > the following but done things like this before): > > SetAttributes[ToExpression[Names["MyContext`*"]],{ReadProtected,Locked}] > > if you have symbols that have OwnValues defined in your package, you > might need to delete those from the list of all symbols or need to be > more careful when creating symbols from the symbol names. You also might > want to protect the private functions of your package, if there are any... > > hth, > > albert > An alternative is something like: ToExpression[Names["MyContext`*"], InputForm, Function[x, SetAttributes[x, {ReadProtected, Locked}], HoldAll]] so that OwnValues aren't a problem. Carl Woll Wolfram Research