| 202 | # allowing one loader to be shared by many callers. |
| 203 | @classmethod |
| 204 | def defaultLoader( cls, envVar ) : |
| 205 | |
| 206 | with cls.__defaultLoaderMutex: |
| 207 | |
| 208 | loader = cls.__defaultLoaders.get( envVar, None ) |
| 209 | if loader : |
| 210 | return loader |
| 211 | |
| 212 | sp = "" |
| 213 | if envVar in os.environ : |
| 214 | sp = os.environ[envVar] |
| 215 | else : |
| 216 | msg( Msg.Level.Warning, "ClassLoader.defaultLoader", "Environment variable %s not set." % envVar ) |
| 217 | |
| 218 | loader = cls( SearchPath( os.path.expandvars( sp ) ) ) |
| 219 | cls.__defaultLoaders[envVar] = loader |
| 220 | |
| 221 | return loader |
| 222 | |
| 223 | ## Returns a ClassLoader configured to load from the |
| 224 | # paths defined by the IECORE_OP_PATHS environment variable. The |