本文整理汇总了Python中pyasm.common.Environment.get_builtin_plugin_dir方法的典型用法代码示例。如果您正苦于以下问题:Python Environment.get_builtin_plugin_dir方法的具体用法?Python Environment.get_builtin_plugin_dir怎么用?Python Environment.get_builtin_plugin_dir使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyasm.common.Environment
的用法示例。
在下文中一共展示了Environment.get_builtin_plugin_dir方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: filter_xml
# 需要导入模块: from pyasm.common import Environment [as 别名]
# 或者: from pyasm.common.Environment import get_builtin_plugin_dir [as 别名]
def filter_xml(my, xml):
dirname = os.path.dirname(my.rel_path)
# filter images
img_nodes = xml.get_nodes("//img")
install_dir = Environment.get_install_dir()
for node in img_nodes:
src = xml.get_attribute(node, "src")
if src.startswith("/tactic/plugins/"):
plugin_dir = Environment.get_plugin_dir()
path = "%s/%s" % (plugin_dir, src.replace("/tactic/plugins/", "") )
elif src.startswith("/tactic/builtin_plugins/"):
plugin_dir = Environment.get_builtin_plugin_dir()
path = "%s/%s" % (plugin_dir, src.replace("/tactic/builtin_plugins/", "") )
elif src.startswith("/"):
path = "%s/src%s" % (install_dir, src)
else:
path = "%s/doc/%s/%s" % (install_dir, dirname, src)
size = (0,0)
try:
from PIL import Image
im = Image.open(path)
size = im.size
except IOError, e:
print "Error importing Image: ", e
except:
示例2: get_display
# 需要导入模块: from pyasm.common import Environment [as 别名]
# 或者: from pyasm.common.Environment import get_builtin_plugin_dir [as 别名]
def get_display(my):
alias = my.kwargs.get("alias")
my.rel_path = my.kwargs.get("rel_path")
if not my.rel_path:
from tactic_client_lib import TacticServerStub
server = TacticServerStub.get(protocol="local")
my.rel_path = server.get_doc_link(alias)
if not my.rel_path or my.rel_path == "none_found":
# raise TacticException("Help alias [%s] does not exist" % alias)
layout = DivWdg()
layout.add(HelpCreateWdg(alias=alias))
layout.add(HelpDocFilterWdg(alias="main"))
return layout
# special condition for plugins path
if my.rel_path.startswith("/plugins/"):
plugin_dir = Environment.get_plugin_dir()
rel_path = my.rel_path.replace("/plugins/", "")
path = "%s/%s" % (plugin_dir, rel_path)
elif my.rel_path.startswith("/builtin_plugins/"):
plugin_dir = Environment.get_builtin_plugin_dir()
rel_path = my.rel_path.replace("/builtin_plugins/", "")
path = "%s/%s" % (plugin_dir, rel_path)
elif my.rel_path.startswith("/assets/"):
asset_dir = Environment.get_asset_dir()
rel_path = my.rel_path.replace("/assets/", "")
path = "%s/%s" % (asset_dir, rel_path)
else:
# see if there is an override
doc_dir = os.environ.get("TACTIC_DOC_DIR")
if not doc_dir:
doc_dir = Config.get_value("install", "doc_dir")
if not doc_dir:
install_dir = Environment.get_install_dir()
doc_dir = "%s/doc" % install_dir
path = "%s/%s" % (doc_dir, my.rel_path)
html = []
try:
f = open(path, "r")
count = 0
for line in f:
line = my.filter_line(line, count)
html.append(line)
count += 1
f.close()
except Exception, e:
print "Error processing: ", e
html.append("Error processing document: %s<br/><br/>" % str(e))
示例3: setup_sites
# 需要导入模块: from pyasm.common import Environment [as 别名]
# 或者: from pyasm.common.Environment import get_builtin_plugin_dir [as 别名]
def setup_sites(my):
context_path = "%s/src/context" % my.install_dir
doc_dir = "%s/doc" % my.install_dir
plugin_dir = Environment.get_plugin_dir()
builtin_plugin_dir = Environment.get_builtin_plugin_dir()
dist_dir = Environment.get_dist_dir()
log_dir = "%s/log" % Environment.get_tmp_dir()
def CORS():
#cherrypy.response.headers["Access-Control-Allow-Origin"] = "http://192.168.0.15:8100"
cherrypy.response.headers["Access-Control-Allow-Origin"] = "*"
cherrypy.response.headers["Access-Control-Allow-Headers"] = "Origin, X-Requested-With, Content-Type, Accept"
cherrypy.tools.CORS = cherrypy.Tool('before_handler', CORS)
config = {
'global': {
'server.socket_host': '127.0.0.1',
'server.socket_port': 80,
'log.screen': False,
'request.show_tracebacks': True,
'tools.log_headers.on': True,
'server.log_file': "%s/tactic_log" % log_dir,
'server.max_request_body_size': 0,
#'server.socket_timeout': 60,
'response.timeout': 3600,
'tools.encode.on': True,
'tools.encode.encoding': 'utf-8',
'tools.decode.on': True,
'tools.decode.encoding': 'utf-8',
#'encoding_filter.on': True,
#'decoding_filter.on': True
'tools.CORS.on': True
},
'/context': {'tools.staticdir.on': True,
'tools.staticdir.dir': context_path,
# Need to do this because on windows servers, jar files
# are served as text/html
'tools.staticdir.content_types': {
'jar': 'application/java-archive'
}
},
'/assets': {'tools.staticdir.on': True,
'tools.staticdir.dir': Environment.get_asset_dir()
},
'/doc': {'tools.staticdir.on': True,
'tools.staticdir.dir': doc_dir,
'tools.staticdir.index': "index.html"
},
# NOTE: expose the entire plugins directory
'/tactic/plugins': {
'tools.staticdir.on': True,
'tools.staticdir.dir': plugin_dir,
},
'/tactic/builtin_plugins': {
'tools.staticdir.on': True,
'tools.staticdir.dir': builtin_plugin_dir,
},
'/tactic/dist': {
'tools.staticdir.on': True,
'tools.staticdir.dir': dist_dir,
},
'/plugins': {
'tools.staticdir.on': True,
'tools.staticdir.dir': plugin_dir,
},
'/builtin_plugins': {
'tools.staticdir.on': True,
'tools.staticdir.dir': builtin_plugin_dir,
},
'/dist': {
'tools.staticdir.on': True,
'tools.staticdir.dir': dist_dir,
},
}
# set up the root directory
cherrypy.root = Root()
cherrypy.tree.mount( cherrypy.root, config=config)
from pyasm.search import Search
search = Search("sthpw/project")
search.add_filter("type", "resource", op="!=")
projects = search.get_sobjects()
#.........这里部分代码省略.........
示例4: __init__
# 需要导入模块: from pyasm.common import Environment [as 别名]
# 或者: from pyasm.common.Environment import get_builtin_plugin_dir [as 别名]
#.........这里部分代码省略.........
#shutil.move(upload_path, plugin_base_dir)
# copy to dist folder
if os.path.exists("%s/%s" % (dist_dir, basename)):
os.unlink("%s/%s" % (dist_dir, basename) )
shutil.move(upload_path, dist_dir)
zip_path = "%s/%s" % (dist_dir, upload_file_name)
zip_util = ZipUtil()
zip_util.extract(zip_path, base_dir=plugin_base_dir)
my.plugin_dir = "%s/%s" % (plugin_base_dir, basename)
my.plugin_dir = my.plugin_dir[:-4]
manifest_path = "%s/manifest.xml" % (my.plugin_dir)
if os.path.exists(manifest_path):
f = open(manifest_path, 'r')
my.manifest = f.read()
f.close()
else:
# when uploading, this will likely not be needed
my.manifest = "<manifest/>"
return
elif relative_dir:
plugin_base_dir = Environment.get_plugin_dir()
my.plugin_dir = "%s/%s" % (plugin_base_dir, relative_dir)
manifest_path = "%s/manifest.xml" % my.plugin_dir
if not os.path.exists(manifest_path):
plugin_base_dir = Environment.get_builtin_plugin_dir()
my.plugin_dir = "%s/%s" % (plugin_base_dir, relative_dir)
manifest_path = "%s/manifest.xml" % my.plugin_dir
f = open(manifest_path, 'r')
my.manifest = f.read()
f.close()
elif my.plugin_dir:
manifest_path = "%s/manifest.xml" % (my.plugin_dir)
f = open(manifest_path, 'r')
my.manifest = f.read()
f.close()
# get the plugin sobject
elif my.search_key:
plugin = SearchKey.get_by_search_key(my.search_key)
my.manifest = plugin.get_value("manifest")
my.code = plugin.get_code()
my.version = plugin.get_value("version")
elif my.manifest:
# everything is extracted from the manifest later
pass
elif my.code:
search = Search("config/plugin")
search.add_filter("code", my.code)
plugin = search.get_sobject()
示例5: get_display
# 需要导入模块: from pyasm.common import Environment [as 别名]
# 或者: from pyasm.common.Environment import get_builtin_plugin_dir [as 别名]
def get_display(my):
alias = my.kwargs.get("alias")
my.rel_path = my.kwargs.get("rel_path")
if not my.rel_path:
from tactic_client_lib import TacticServerStub
server = TacticServerStub.get(protocol='local')
my.rel_path = server.get_doc_link(alias)
if not my.rel_path or my.rel_path == 'none_found':
#raise TacticException("Help alias [%s] does not exist" % alias)
layout = DivWdg()
layout.add(HelpCreateWdg(alias=alias))
layout.add(HelpDocFilterWdg(alias='main'))
return layout
# special condition for plugins path
if my.rel_path.startswith("/plugins/"):
plugin_dir = Environment.get_plugin_dir()
rel_path = my.rel_path.replace("/plugins/", "")
path = "%s/%s" % (plugin_dir,rel_path)
elif my.rel_path.startswith("/builtin_plugins/"):
plugin_dir = Environment.get_builtin_plugin_dir()
rel_path = my.rel_path.replace("/builtin_plugins/", "")
path = "%s/%s" % (plugin_dir,rel_path)
elif my.rel_path.startswith("/assets/"):
asset_dir = Environment.get_asset_dir()
rel_path = my.rel_path.replace("/assets/", "")
path = "%s/%s" % (asset_dir,rel_path)
else:
# see if there is an override
doc_dir = os.environ.get("TACTIC_DOC_DIR")
if not doc_dir:
doc_dir = Config.get_value("install", "doc_dir")
if not doc_dir:
install_dir = Environment.get_install_dir()
doc_dir = "%s/doc" % install_dir
path = "%s/%s" % (doc_dir, my.rel_path)
html = []
try:
paths = path.split('#')
anchor = ''
if len(paths) > 1:
anchor = paths[-1]
path = paths[0]
read = False
else:
read = True
f = open(path, 'r')
count = 0
idx = 0
anchor_str = '<a id="%s"></a>'%anchor
div_str = '<div class="titlepage">'
strip_count = 0
for line in f:
if anchor and not read:
tmp_line = line.decode('utf-8','ignore')
div_idx = tmp_line.find(div_str)
idx = tmp_line.find(anchor_str)
if idx != -1:
# use the div above the anchor
line = line[div_idx:-1]
# in case it doesn't get it right on
while strip_count < 30 and not line.startswith('<div class="titlepage">'):
line = line[1:-1]
strip_count += 1
read = True
if read:
line = my.filter_line(line, count)
html.append(line)
count += 1
f.close()
except Exception, e:
print "Error processing: ", e
html.append("Error processing document: %s<br/><br/>" % str(e))
示例6: create_theme
# 需要导入模块: from pyasm.common import Environment [as 别名]
# 或者: from pyasm.common.Environment import get_builtin_plugin_dir [as 别名]
def create_theme(my, theme):
# get a built-in plugin
plugin_base_dir = Environment.get_plugin_dir()
zip_path = "%s/%s.zip" % (plugin_base_dir, theme)
manifest_path = "%s/%s/manifest.xml" % (plugin_base_dir, theme)
plugin_base_dir2 = Environment.get_builtin_plugin_dir()
zip_path2 = "%s/%s.zip" % (plugin_base_dir2, theme)
manifest_path2 = "%s/%s/manifest.xml" % (plugin_base_dir2, theme)
# install the theme
from tactic.command import PluginInstaller
if os.path.exists(manifest_path):
plugin_dir = "%s/%s" % (plugin_base_dir, theme)
installer = PluginInstaller(plugin_dir=plugin_dir, register=True)
installer.execute()
is_builtin = False
elif os.path.exists(zip_path):
installer = PluginInstaller(zip_path=zip_path, register=True)
installer.execute()
is_builtin = False
elif os.path.exists(manifest_path2):
plugin_dir = "%s/%s" % (plugin_base_dir2, theme)
installer = PluginInstaller(plugin_dir=plugin_dir, register=True)
installer.execute()
is_builtin = True
elif os.path.exists(zip_path2):
installer = PluginInstaller(zip_path=zip_path2, register=True)
installer.execute()
is_builtin = True
else:
raise Exception("Installation error: cannot find %s theme" % theme)
from pyasm.biz import PluginUtil
if is_builtin:
plugin_util = PluginUtil(base_dir=plugin_base_dir2)
else:
plugin_util = PluginUtil()
data = plugin_util.get_plugin_data(theme)
# if the theme does not have the url defined (which it likely
# shouldn't, but just in case ...
search = Search("config/url")
search.add_filter("url", "/index")
url = search.get_sobject()
if not url:
index_view = data.get("index_view")
if not index_view:
# don't use the folder in the theme
base = os.path.basename(theme)
index_view = "%s/index" % base
# set this as the default index
search = SearchType.create("config/url")
search.set_value("url", "/index")
search.set_value(
"widget",
"""
<element name='index'>
<display class='tactic.ui.panel.CustomLayoutWdg'>
<view>%s</view>
</display>
</element>
"""
% index_view,
)
search.set_value("description", "Index Page")
search.commit()
示例7: get_display
# 需要导入模块: from pyasm.common import Environment [as 别名]
# 或者: from pyasm.common.Environment import get_builtin_plugin_dir [as 别名]
#.........这里部分代码省略.........
copy_div.add(HtmlElement.br(3))
span = DivWdg()
copy_div.add(span)
span.add_style("padding: 20px 20px 20px 20px")
span.add(IconWdg("INFO", IconWdg.CREATE))
span.add_color("background", "background3")
span.add("This will use the selected project template as a basis and copy all of the configuration elements. Only template projects should be copied.")
#copy_div.add(HtmlElement.br(2))
#span = DivWdg("This will create an empty project with no predefined configuration.")
#copy_div.add(span)
#
# Theme
#
theme_div = DivWdg()
theme_div.add_class("spt_theme_top")
theme_div.add_style("padding: 10px")
theme_div.add_style("margin-top: 20px")
copy_div.add(theme_div)
theme_div.add("<b>Theme: </b> ")
theme_div.add_style('padding-right: 6px')
theme_select = SelectWdg('project_theme')
theme_div.add(theme_select)
# look in the plugins for all of the themes?
from pyasm.biz import PluginUtil
plugin_util = PluginUtil()
data = plugin_util.get_plugins_data("theme")
builtin_dir = Environment.get_builtin_plugin_dir()
plugin_util = PluginUtil(base_dir=builtin_dir)
data2 = plugin_util.get_plugins_data("theme")
data = dict(data.items() + data2.items())
themes = data.keys()
themes.sort()
theme_select.set_option("values", themes)
theme_select.add_empty_option('- No Theme -')
default_theme = "TACTIC/default_theme"
theme_select.set_value(default_theme)
theme_select.add_behavior( {
'type': 'change',
'cbjs_action': '''
var top = bvr.src_el.getParent(".spt_project_top");
var img_div = top.getElement(".spt_project_theme_div");
var theme = bvr.src_el.value;
var img_els = img_div.getElements(".spt_project_theme_image");
for (var i = 0; i < img_els.length; i++) {
if (theme == img_els[i].getAttribute("spt_theme") ) {
img_els[i].setStyle("display", "");
}
else {
img_els[i].setStyle("display", "none");
示例8: setup_sites
# 需要导入模块: from pyasm.common import Environment [as 别名]
# 或者: from pyasm.common.Environment import get_builtin_plugin_dir [as 别名]
def setup_sites(my):
context_path = "%s/src/context" % my.install_dir
doc_dir = "%s/doc" % my.install_dir
plugin_dir = Environment.get_plugin_dir()
builtin_plugin_dir = Environment.get_builtin_plugin_dir()
dist_dir = Environment.get_dist_dir()
log_dir = "%s/log" % Environment.get_tmp_dir()
config = {
'global': {
'server.socket_host': '127.0.0.1',
'server.socket_port': 80,
'log.screen': False,
'request.show_tracebacks': True,
'tools.log_headers.on': True,
'server.log_file': "%s/tactic_log" % log_dir,
'server.max_request_body_size': 0,
#'server.socket_timeout': 60,
'response.timeout': 3600,
'tools.encode.on': True,
'tools.encode.encoding': 'utf-8',
'tools.decode.on': True,
'tools.decode.encoding': 'utf-8',
#'encoding_filter.on': True,
#'decoding_filter.on': True
}
,
'/context': {'tools.staticdir.on': True,
'tools.staticdir.dir': context_path,
# Need to do this because on windows servers, jar files
# are served as text/html
'tools.staticdir.content_types': {
'jar': 'application/java-archive'
}
},
'/assets': {'tools.staticdir.on': True,
'tools.staticdir.dir': Environment.get_asset_dir()
},
'/doc': {'tools.staticdir.on': True,
'tools.staticdir.dir': doc_dir,
'tools.staticdir.index': "index.html"
},
# NOTE: expose the entire plugins directory
'/tactic/plugins': {
'tools.staticdir.on': True,
'tools.staticdir.dir': plugin_dir,
},
'/tactic/builtin_plugins': {
'tools.staticdir.on': True,
'tools.staticdir.dir': builtin_plugin_dir,
},
'/tactic/dist': {
'tools.staticdir.on': True,
'tools.staticdir.dir': dist_dir,
}
}
# set up the root directory
cherrypy.root = Root()
cherrypy.tree.mount( cherrypy.root, config=config)
from pyasm.search import Search
search = Search("sthpw/project")
search.add_filter("type", "resource", op="!=")
projects = search.get_sobjects()
# find out if one of the projects is the root
root_initialized = False
"""
for project in projects:
project_code = project.get_code()
if False:
from tactic.ui.app import SitePage
cherrypy.root.tactic = SitePage(project_code)
cherrypy.root.projects = SitePage(project_code)
root_initialized = True
break
"""
if not root_initialized:
project_code = Project.get_default_project()
if project_code and project_code !='default':
from tactic.ui.app import SitePage
cherrypy.root.tactic = SitePage(project_code)
cherrypy.root.projects = SitePage(project_code)
root_initialized = True
if not root_initialized:
#.........这里部分代码省略.........