本文整理汇总了Python中trac.attachment.Attachment.size方法的典型用法代码示例。如果您正苦于以下问题:Python Attachment.size方法的具体用法?Python Attachment.size怎么用?Python Attachment.size使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类trac.attachment.Attachment
的用法示例。
在下文中一共展示了Attachment.size方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: render_macro
# 需要导入模块: from trac.attachment import Attachment [as 别名]
# 或者: from trac.attachment.Attachment import size [as 别名]
def render_macro(self, req, name, content):
# args will be null if the macro is called without parenthesis.
if not content:
return ''
# parse arguments
# we expect the 1st argument to be a filename (filespec)
args = content.split(',')
if len(args) == 0:
raise Exception("No argument.")
filespec = args[0]
size_re = re.compile('[0-9]+%?$')
attr_re = re.compile('(align|border|width|height|alt'
'|title|longdesc|class|id|usemap)=(.+)')
quoted_re = re.compile("(?:[\"'])(.*)(?:[\"'])$")
attr = {}
style = {}
nolink = False
for arg in args[1:]:
arg = arg.strip()
if size_re.match(arg):
# 'width' keyword
attr['width'] = arg
continue
if arg == 'nolink':
nolink = True
continue
if arg in ('left', 'right', 'top', 'bottom'):
style['float'] = arg
continue
match = attr_re.match(arg)
if match:
key, val = match.groups()
m = quoted_re.search(val) # unquote "..." and '...'
if m:
val = m.group(1)
if key == 'align':
style['float'] = val
elif key == 'border':
style['border'] = ' %dpx solid' % int(val);
else:
attr[str(key)] = val # will be used as a __call__ keyword
# parse filespec argument to get module and id if contained.
parts = filespec.split(':')
url = None
if len(parts) == 3: # module:id:attachment
if parts[0] in ['wiki', 'ticket']:
module, id, file = parts
else:
raise Exception("%s module can't have attachments" % parts[0])
elif len(parts) == 2:
from trac.versioncontrol.web_ui import BrowserModule
try:
browser_links = [link for link,_ in
BrowserModule(self.env).get_link_resolvers()]
except Exception:
browser_links = []
if parts[0] in browser_links: # source:path
module, file = parts
rev = None
if '@' in file:
file, rev = file.split('@')
url = req.href.browser(file, rev=rev)
raw_url = req.href.browser(file, rev=rev, format='raw')
desc = filespec
else: # #ticket:attachment or WikiPage:attachment
# FIXME: do something generic about shorthand forms...
id, file = parts
if id and id[0] == '#':
module = 'ticket'
id = id[1:]
elif id == 'htdocs':
raw_url = url = req.href.chrome('site', file)
desc = os.path.basename(file)
elif id in ('http', 'https', 'ftp'): # external URLs
raw_url = url = desc = id+':'+file
else:
module = 'wiki'
elif len(parts) == 1: # attachment
# determine current object
# FIXME: should be retrieved from the formatter...
# ...and the formatter should be provided to the macro
file = filespec
module, id = 'wiki', 'WikiStart'
path_info = req.path_info.split('/',2)
if len(path_info) > 1:
module = path_info[1]
if len(path_info) > 2:
id = path_info[2]
if module not in ['wiki', 'ticket']:
raise Exception('Cannot reference local attachment from here')
else:
raise Exception('No filespec given')
if not url: # this is an attachment
from trac.attachment import Attachment
attachment = Attachment(self.env, module, id, file)
url = attachment.href(req)
dia_url = attachment.href(req, format='raw')
dia_path = attachment.path
#.........这里部分代码省略.........