本文整理汇总了Python中girder.constants.TerminalColor.info方法的典型用法代码示例。如果您正苦于以下问题:Python TerminalColor.info方法的具体用法?Python TerminalColor.info怎么用?Python TerminalColor.info使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类girder.constants.TerminalColor
的用法示例。
在下文中一共展示了TerminalColor.info方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: loadPlugins
# 需要导入模块: from girder.constants import TerminalColor [as 别名]
# 或者: from girder.constants.TerminalColor import info [as 别名]
def loadPlugins(plugins, root, appconf, apiRoot=None, curConfig=None):
"""
Loads a set of plugins into the application. The list passed in should not
already contain dependency information; dependent plugins will be loaded
automatically.
:param plugins: The set of plugins to load, by directory name.
:type plugins: list
:param root: The root node of the server tree.
:param appconf: The server's cherrypy configuration object.
:type appconf: dict
:returns: A list of plugins that were actually loaded, once dependencies
were resolved and topological sort was performed.
"""
# Register a pseudo-package for the root of all plugins. This must be
# present in the system module list in order to avoid import warnings.
if curConfig is None:
curConfig = config.getConfig()
if 'plugins' in curConfig and 'plugin_directory' in curConfig['plugins']:
pluginDir = curConfig['plugins']['plugin_directory']
elif os.path.exists(os.path.join(PACKAGE_DIR, 'plugins')):
pluginDir = os.path.join(PACKAGE_DIR, 'plugins')
else:
pluginDir = os.path.join(ROOT_DIR, 'plugins')
if ROOT_PLUGINS_PACKAGE not in sys.modules:
sys.modules[ROOT_PLUGINS_PACKAGE] = type('', (), {
'__path__': pluginDir,
'__package__': ROOT_PLUGINS_PACKAGE,
'__name__': ROOT_PLUGINS_PACKAGE
})()
print TerminalColor.info('Resolving plugin dependencies...')
filteredDepGraph = {
pluginName: info['dependencies']
for pluginName, info in findAllPlugins(curConfig).iteritems()
if pluginName in plugins
}
for pset in toposort(filteredDepGraph):
for plugin in pset:
try:
root, appconf, apiRoot = loadPlugin(
plugin, root, appconf, apiRoot, curConfig=curConfig)
print TerminalColor.success('Loaded plugin "{}"'
.format(plugin))
except Exception:
print TerminalColor.error(
'ERROR: Failed to load plugin "{}":'.format(plugin))
traceback.print_exc()
return root, appconf, apiRoot
示例2: loadPlugins
# 需要导入模块: from girder.constants import TerminalColor [as 别名]
# 或者: from girder.constants.TerminalColor import info [as 别名]
def loadPlugins(plugins, root, appconf, apiRoot=None, curConfig=None,
buildDag=True):
"""
Loads a set of plugins into the application.
:param plugins: The set of plugins to load, by directory name.
:type plugins: list
:param root: The root node of the server tree.
:type root: object
:param appconf: The server's cherrypy configuration object.
:type appconf: dict
:param apiRoot: The cherrypy api root object.
:type apiRoot: object or None
:param curConfig: A girder config object to use.
:type curConfig: dict or None
:param buildDag: If the ``plugins`` parameter is already a topo-sorted list
with all dependencies resolved, set this to False and it will skip
rebuilding the DAG. Otherwise the dependency resolution and sorting
will occur within this method.
:type buildDag: bool
:returns: A 3-tuple containing the modified root, config, and apiRoot
objects.
:rtype tuple:
"""
# Register a pseudo-package for the root of all plugins. This must be
# present in the system module list in order to avoid import warnings.
if curConfig is None:
curConfig = _config.getConfig()
if 'plugins' in curConfig and 'plugin_directory' in curConfig['plugins']:
print(TerminalColor.warning(
'Warning: the plugin_directory setting is deprecated. Please use '
'the `girder-install plugin` command and remove this setting from '
'your config file.'))
if ROOT_PLUGINS_PACKAGE not in sys.modules:
module = imp.new_module(ROOT_PLUGINS_PACKAGE)
girder.plugins = module
sys.modules[ROOT_PLUGINS_PACKAGE] = module
print(TerminalColor.info('Resolving plugin dependencies...'))
if buildDag:
plugins = getToposortedPlugins(plugins, curConfig, ignoreMissing=True)
for plugin in plugins:
try:
root, appconf, apiRoot = loadPlugin(
plugin, root, appconf, apiRoot, curConfig=curConfig)
print(TerminalColor.success('Loaded plugin "%s"' % plugin))
except Exception:
print(TerminalColor.error(
'ERROR: Failed to load plugin "%s":' % plugin))
girder.logger.exception('Plugin load failure: %s' % plugin)
traceback.print_exc()
return root, appconf, apiRoot
示例3: getDbConnection
# 需要导入模块: from girder.constants import TerminalColor [as 别名]
# 或者: from girder.constants.TerminalColor import info [as 别名]
def getDbConnection(uri=None, replicaSet=None):
"""
Get a MongoClient object that is connected to the configured database.
We lazy-instantiate a module-level singleton, the MongoClient objects
manage their own connection pools internally.
:param uri: if specified, connect to this mongo db rather than the one in
the config.
:param replicaSet: if uri is specified, use this replica set.
"""
global _dbClients
origKey = (uri, replicaSet)
if origKey in _dbClients:
return _dbClients[origKey]
if uri is None or uri == '':
dbConf = getDbConfig()
uri = dbConf.get('uri')
replicaSet = dbConf.get('replica_set')
clientOptions = {
'connectTimeoutMS': 15000,
# This is the maximum time between when we fetch data from a cursor.
# If it times out, the cursor is lost and we can't reconnect. If it
# isn't set, we have issues with replica sets when the primary goes
# down. This value can be overridden in the mongodb uri connection
# string with the socketTimeoutMS.
'socketTimeoutMS': 60000,
}
if uri is None:
dbUriRedacted = 'mongodb://localhost:27017/girder'
print(TerminalColor.warning('WARNING: No MongoDB URI specified, using '
'the default value'))
client = pymongo.MongoClient(dbUriRedacted, **clientOptions)
else:
parts = uri.split('@')
if len(parts) == 2:
dbUriRedacted = 'mongodb://' + parts[1]
else:
dbUriRedacted = uri
if replicaSet:
client = pymongo.MongoReplicaSetClient(
uri, replicaSet=replicaSet,
read_preference=ReadPreference.SECONDARY_PREFERRED,
**clientOptions)
else:
client = pymongo.MongoClient(uri, **clientOptions)
client = MongoProxy(client, logger=logger)
_dbClients[origKey] = _dbClients[(uri, replicaSet)] = client
desc = ''
if replicaSet:
desc += ', replica set: %s' % replicaSet
print(TerminalColor.info('Connected to MongoDB: %s%s' % (dbUriRedacted,
desc)))
return client
示例4: loadPlugins
# 需要导入模块: from girder.constants import TerminalColor [as 别名]
# 或者: from girder.constants.TerminalColor import info [as 别名]
def loadPlugins(plugins, root):
"""
Loads a set of plugins into the application. The list passed in should not
already contain dependency information; dependent plugins will be loaded
automatically.
:param plugins: The set of plugins to load, by directory name.
:type plugins: list
:param root: The root node of the server tree.
:returns: A list of plugins that were actually loaded, once dependencies
were resolved and topological sort was performed.
"""
# Register a pseudo-package for the root of all plugins. This must be
# present in the system module list in order to avoid import warnings.
if not ROOT_PLUGINS_PACKAGE in sys.modules:
sys.modules[ROOT_PLUGINS_PACKAGE] = type(
"",
(),
{
"__path__": os.path.join(ROOT_DIR, "plugins"),
"__package__": ROOT_PLUGINS_PACKAGE,
"__name__": ROOT_PLUGINS_PACKAGE,
},
)()
print TerminalColor.info("Resolving plugin dependencies...")
filteredDepGraph = {
pluginName: info["dependencies"] for pluginName, info in findAllPlugins().iteritems() if pluginName in plugins
}
for pset in toposort(filteredDepGraph):
for plugin in pset:
try:
loadPlugin(plugin, root)
print TerminalColor.success('Loaded plugin "{}"'.format(plugin))
except:
print TerminalColor.error('ERROR: Failed to load plugin "{}":'.format(plugin))
traceback.print_exc()
示例5: loadPlugins
# 需要导入模块: from girder.constants import TerminalColor [as 别名]
# 或者: from girder.constants.TerminalColor import info [as 别名]
def loadPlugins(plugins, root, appconf, apiRoot=None, curConfig=None):
"""
Loads a set of plugins into the application. The list passed in should not
already contain dependency information; dependent plugins will be loaded
automatically.
:param plugins: The set of plugins to load, by directory name.
:type plugins: list
:param root: The root node of the server tree.
:param appconf: The server's cherrypy configuration object.
:type appconf: dict
:returns: A list of plugins that were actually loaded, once dependencies
were resolved and topological sort was performed.
"""
# Register a pseudo-package for the root of all plugins. This must be
# present in the system module list in order to avoid import warnings.
if curConfig is None:
curConfig = config.getConfig()
if 'plugins' in curConfig and 'plugin_directory' in curConfig['plugins']:
print(TerminalColor.warning(
'Warning: the plugin_directory setting is deprecated. Please use '
'the `girder-install plugin` command and remove this setting from '
'your config file.'))
if ROOT_PLUGINS_PACKAGE not in sys.modules:
module = imp.new_module(ROOT_PLUGINS_PACKAGE)
girder.plugins = module
sys.modules[ROOT_PLUGINS_PACKAGE] = module
print(TerminalColor.info('Resolving plugin dependencies...'))
filteredDepGraph = {
pluginName: info['dependencies']
for pluginName, info in six.viewitems(findAllPlugins(curConfig))
if pluginName in plugins
}
for pset in toposort(filteredDepGraph):
for plugin in pset:
try:
root, appconf, apiRoot = loadPlugin(
plugin, root, appconf, apiRoot, curConfig=curConfig)
print(TerminalColor.success('Loaded plugin "{}"'
.format(plugin)))
except Exception:
print(TerminalColor.error(
'ERROR: Failed to load plugin "{}":'.format(plugin)))
traceback.print_exc()
return root, appconf, apiRoot
示例6: getDbConnection
# 需要导入模块: from girder.constants import TerminalColor [as 别名]
# 或者: from girder.constants.TerminalColor import info [as 别名]
def getDbConnection(uri=None, replicaSet=None, autoRetry=True, **kwargs):
"""
Get a MongoClient object that is connected to the configured database.
We lazy-instantiate a module-level singleton, the MongoClient objects
manage their own connection pools internally. Any extra kwargs you pass to
this method will be passed through to the MongoClient.
:param uri: if specified, connect to this mongo db rather than the one in
the config.
:param replicaSet: if uri is specified, use this replica set.
:param autoRetry: if this connection should automatically retry operations
in the event of an AutoReconnect exception. If you're testing the
connection, set this to False. If disabled, this also will not cache
the mongo client, so make sure to only disable if you're testing a
connection.
:type autoRetry: bool
"""
global _dbClients
origKey = (uri, replicaSet)
if origKey in _dbClients:
return _dbClients[origKey]
if uri is None or uri == '':
dbConf = getDbConfig()
uri = dbConf.get('uri')
replicaSet = dbConf.get('replica_set')
clientOptions = {
# This is the maximum time between when we fetch data from a cursor.
# If it times out, the cursor is lost and we can't reconnect. If it
# isn't set, we have issues with replica sets when the primary goes
# down. This value can be overridden in the mongodb uri connection
# string with the socketTimeoutMS.
'socketTimeoutMS': 60000,
'connectTimeoutMS': 20000,
'read_preference': ReadPreference.SECONDARY_PREFERRED,
'replicaSet': replicaSet
}
clientOptions.update(kwargs)
if uri is None:
dbUriRedacted = 'mongodb://localhost:27017/girder'
print(TerminalColor.warning('WARNING: No MongoDB URI specified, using '
'the default value'))
client = pymongo.MongoClient(dbUriRedacted, **clientOptions)
else:
parts = uri.split('@')
if len(parts) == 2:
dbUriRedacted = 'mongodb://' + parts[1]
else:
dbUriRedacted = uri
client = pymongo.MongoClient(uri, **clientOptions)
if autoRetry:
client = MongoProxy(client, logger=logger)
_dbClients[origKey] = _dbClients[(uri, replicaSet)] = client
desc = ''
if replicaSet:
desc += ', replica set: %s' % replicaSet
print(TerminalColor.info('Connected to MongoDB: %s%s' % (dbUriRedacted,
desc)))
return client