本文整理匯總了Python中yattag.indent方法的典型用法代碼示例。如果您正苦於以下問題:Python yattag.indent方法的具體用法?Python yattag.indent怎麽用?Python yattag.indent使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類yattag
的用法示例。
在下文中一共展示了yattag.indent方法的14個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: get_token
# 需要導入模塊: import yattag [as 別名]
# 或者: from yattag import indent [as 別名]
def get_token(request, data):
""" Issue a token to user after verying his API_KEY
"""
output_format = data.get('format', 'xml')
api_key = data.get('api_key')
if not api_key:
raise InvalidAPIUsage(CompatError.INVALID_PARAMETERS, output_format=output_format) # Missing required params
if not Token.is_valid_api_key(api_key):
raise InvalidAPIUsage(CompatError.INVALID_API_KEY, output_format=output_format) # Invalid API_KEY
token = Token.generate(api_key)
doc, tag, text = Doc().tagtext()
with tag('lfm', status='ok'):
with tag('token'):
text(token.token)
return format_response('<?xml version="1.0" encoding="utf-8"?>\n' + yattag.indent(doc.getvalue()),
output_format)
示例2: get_xml_from_daily_schedule
# 需要導入模塊: import yattag [as 別名]
# 或者: from yattag import indent [as 別名]
def get_xml_from_daily_schedule(self, currentTime, bgImageURL, datalist):
now = datetime.now()
time = now.strftime("%B %d, %Y")
doc, tag, text, line = Doc(
).ttl()
doc.asis('<?xml version="1.0" encoding="UTF-8"?>')
with tag('schedule', currently_playing_bg_image=bgImageURL if bgImageURL != None else ''):
for row in datalist:
if str(row[11]) == "Commercials" and self.DEBUG == False:
continue
timeB = datetime.strptime(row[8], '%I:%M:%S %p')
if currentTime == None:
with tag('time',
('data-key', str(row[12])),
('data-current', 'false'),
('data-type', str(row[11])),
('data-title', str(row[3])),
('data-start-time', str(row[8])),
):
text(row[8])
elif currentTime.hour == timeB.hour and currentTime.minute == timeB.minute:
with tag('time',
('data-key', str(row[12])),
('data-current', 'true'),
('data-type', str(row[11])),
('data-title', str(row[3])),
('data-start-time', str(row[8])),
):
text(row[8])
else:
with tag('time',
('data-key', str(row[12])),
('data-current', 'false'),
('data-type', str(row[11])),
('data-title', str(row[3])),
('data-start-time', str(row[8])),
):
text(row[8])
return indent(doc.getvalue())
示例3: writeReport
# 需要導入模塊: import yattag [as 別名]
# 或者: from yattag import indent [as 別名]
def writeReport(self):
with open("{}/report.html".format(self.reportDir), 'w') as report:
report.write(indent(self.doc.getvalue()))
示例4: write_report
# 需要導入模塊: import yattag [as 別名]
# 或者: from yattag import indent [as 別名]
def write_report(self):
with open("{}/report.html".format(self.report_folder), 'w') as report:
report.write(indent(self.doc.getvalue()))
示例5: get_html_report
# 需要導入模塊: import yattag [as 別名]
# 或者: from yattag import indent [as 別名]
def get_html_report(orig_sents: List[str], sys_sents: List[str], refs_sents: List[List[str]], test_set: str,
lowercase: bool = False, tokenizer: str = '13a', metrics: List[str] = DEFAULT_METRICS):
doc = Doc()
doc.asis('<!doctype html>')
with doc.tag('html', lang='en'):
doc.asis(get_head_html())
with doc.tag('body', klass='container-fluid m-2 mb-5'):
doc.line('h1', 'EASSE report', klass='mt-4')
with doc.tag('a', klass='btn btn-link', href='https://forms.gle/J8KVkJsqYe8GvYW46'):
doc.text('Any feedback welcome!')
doc.stag('hr')
doc.line('h2', 'Test set')
doc.stag('hr')
with doc.tag('div', klass='container-fluid'):
doc.asis(get_test_set_description_html(
test_set=test_set,
orig_sents=orig_sents,
refs_sents=refs_sents,
))
doc.line('h2', 'Scores')
doc.stag('hr')
with doc.tag('div', klass='container-fluid'):
doc.line('h3', 'System vs. Reference')
doc.stag('hr')
doc.asis(get_score_table_html_single_system(orig_sents, sys_sents, refs_sents, lowercase, tokenizer, metrics))
doc.line('h3', 'By sentence length (characters)')
doc.stag('hr')
doc.asis(get_scores_by_length_html(orig_sents, sys_sents, refs_sents))
doc.line('h2', 'Plots')
doc.stag('hr')
with doc.tag('div', klass='container-fluid'):
doc.asis(get_plots_html(orig_sents, sys_sents, refs_sents[0]))
doc.line('h2', 'Qualitative evaluation')
doc.stag('hr')
with doc.tag('div', klass='container-fluid'):
doc.asis(get_qualitative_examples_html(orig_sents, sys_sents, refs_sents))
return indent(doc.getvalue())
示例6: get_multiple_systems_html_report
# 需要導入模塊: import yattag [as 別名]
# 或者: from yattag import indent [as 別名]
def get_multiple_systems_html_report(orig_sents, sys_sents_list, refs_sents, system_names, test_set, lowercase, tokenizer, metrics):
doc = Doc()
doc.asis('<!doctype html>')
with doc.tag('html', lang='en'):
doc.asis(get_head_html())
with doc.tag('body', klass='container-fluid m-2 mb-5'):
doc.line('h1', 'EASSE report', klass='mt-4')
with doc.tag('a', klass='btn btn-link', href='https://forms.gle/J8KVkJsqYe8GvYW46'):
doc.text('Any feedback welcome!')
doc.stag('hr')
doc.line('h2', 'Test set')
doc.stag('hr')
with doc.tag('div', klass='container-fluid'):
doc.asis(get_test_set_description_html(
test_set=test_set,
orig_sents=orig_sents,
refs_sents=refs_sents,
))
doc.line('h2', 'Scores')
doc.stag('hr')
with doc.tag('div', klass='container-fluid'):
doc.line('h3', 'System vs. Reference')
doc.stag('hr')
doc.asis(get_score_table_html_multiple_systems(orig_sents, sys_sents_list, refs_sents, system_names, lowercase, tokenizer, metrics))
doc.line('h2', 'Qualitative evaluation')
doc.stag('hr')
with doc.tag('div', klass='container-fluid'):
doc.asis(get_multiple_systems_qualitative_examples_html(orig_sents, sys_sents_list, refs_sents, system_names))
return indent(doc.getvalue())
示例7: session_info
# 需要導入模塊: import yattag [as 別名]
# 或者: from yattag import indent [as 別名]
def session_info(request, data):
try:
sk = data['sk']
api_key = data['api_key']
output_format = data.get('format', 'xml')
username = data['username']
except KeyError:
raise InvalidAPIUsage(CompatError.INVALID_PARAMETERS, output_format=output_format) # Missing Required Params
session = Session.load(sk)
if (not session) or User.load_by_name(username).id != session.user.id:
raise InvalidAPIUsage(CompatError.INVALID_SESSION_KEY, output_format=output_format) # Invalid Session KEY
print("SESSION INFO for session %s, user %s" % (session.id, session.user.name))
doc, tag, text = Doc().tagtext()
with tag('lfm', status='ok'):
with tag('application'):
with tag('session'):
with tag('name'):
text(session.user.name)
with tag('key'):
text(session.id)
with tag('subscriber'):
text('0')
with tag('country'):
text('US')
return format_response('<?xml version="1.0" encoding="utf-8"?>\n' + yattag.indent(doc.getvalue()),
output_format)
示例8: get_session
# 需要導入模塊: import yattag [as 別名]
# 或者: from yattag import indent [as 別名]
def get_session(request, data):
""" Create new session after validating the API_key and token.
"""
output_format = data.get('format', 'xml')
try:
api_key = data['api_key']
token = Token.load(data['token'], api_key)
except KeyError:
raise InvalidAPIUsage(CompatError.INVALID_PARAMETERS, output_format=output_format) # Missing Required Params
if not token:
if not Token.is_valid_api_key(api_key):
raise InvalidAPIUsage(CompatError.INVALID_API_KEY, output_format=output_format) # Invalid API_key
raise InvalidAPIUsage(CompatError.INVALID_TOKEN, output_format=output_format) # Invalid token
if token.has_expired():
raise InvalidAPIUsage(CompatError.TOKEN_EXPIRED, output_format=output_format) # Token expired
if not token.user:
raise InvalidAPIUsage(CompatError.UNAUTHORIZED_TOKEN, output_format=output_format) # Unauthorized token
session = Session.create(token)
doc, tag, text = Doc().tagtext()
with tag('lfm', status='ok'):
with tag('session'):
with tag('name'):
text(session.user.name)
with tag('key'):
text(session.sid)
with tag('subscriber'):
text('0')
return format_response('<?xml version="1.0" encoding="utf-8"?>\n' + yattag.indent(doc.getvalue()),
data.get('format', "xml"))
示例9: to_json
# 需要導入模塊: import yattag [as 別名]
# 或者: from yattag import indent [as 別名]
def to_json(self):
return ujson.dumps({
"error": self.api_error.code,
"message": self.api_error.message
}, indent=4)
示例10: to_xml
# 需要導入模塊: import yattag [as 別名]
# 或者: from yattag import indent [as 別名]
def to_xml(self):
doc, tag, text = Doc().tagtext()
with tag('lfm', status="failed"):
with tag('error', code=self.api_error.code):
text(self.api_error.message)
return '<?xml version="1.0" encoding="utf-8"?>\n' + yattag.indent(doc.getvalue())
示例11: dump_html
# 需要導入模塊: import yattag [as 別名]
# 或者: from yattag import indent [as 別名]
def dump_html(args, results):
doc = yattag.Doc()
with doc.tag('style', type='text/css'):
doc.asis(css)
logging.info('Dumping Localisation')
doc.line('h2', 'Fishing Localisation')
ydump_fishing_localisation(doc, results['localisation'])
doc.stag('hr')
with open(args.dest_path, 'w') as f:
logging.info('Writing output')
f.write(yattag.indent(doc.getvalue(), indent_text=True))
示例12: dump_html
# 需要導入模塊: import yattag [as 別名]
# 或者: from yattag import indent [as 別名]
def dump_html(args, results):
doc = yattag.Doc()
with doc.tag('style', type='text/css'):
doc.asis(css)
for key, heading in CLASSIFICATION_METRICS:
if results[key]:
logging.info('Dumping "{}"'.format(heading))
doc.line('h2', heading)
wts = results['class_weights'] if (key=='fine') else None
ydump_metrics(doc, results[key], results['class_weights'])
doc.stag('hr')
logging.info('Dumping Length')
doc.line('h2', 'Length Inference')
ydump_attrs(doc, results['length'])
doc.stag('hr')
logging.info('Dumping Tonnage')
doc.line('h2', 'Tonnage Inference')
ydump_attrs(doc, results['tonnage'])
doc.stag('hr')
logging.info('Dumping Engine Power')
doc.line('h2', 'Engine Power Inference')
ydump_attrs(doc, results['engine_power'])
doc.stag('hr')
logging.info('Dumping Crew Size')
doc.line('h2', 'Crew Size Inference')
ydump_attrs(doc, results['crew_size'])
doc.stag('hr')
with open(args.dest_path, 'w') as f:
logging.info('Writing output')
f.write(yattag.indent(doc.getvalue(), indent_text=True))
示例13: record_listens
# 需要導入模塊: import yattag [as 別名]
# 或者: from yattag import indent [as 別名]
def record_listens(request, data):
""" Submit the listen in the lastfm format to be inserted in db.
Accepts listens for both track.updateNowPlaying and track.scrobble methods.
"""
output_format = data.get('format', 'xml')
try:
sk, api_key = data['sk'], data['api_key']
except KeyError:
raise InvalidAPIUsage(CompatError.INVALID_PARAMETERS, output_format=output_format) # Invalid parameters
session = Session.load(sk)
if not session:
if not Token.is_valid_api_key(api_key):
raise InvalidAPIUsage(CompatError.INVALID_API_KEY, output_format=output_format) # Invalid API_KEY
raise InvalidAPIUsage(CompatError.INVALID_SESSION_KEY, output_format=output_format) # Invalid Session KEY
lookup = defaultdict(dict)
for key, value in data.items():
if key in ["sk", "token", "api_key", "method", "api_sig"]:
continue
matches = re.match('(.*)\[(\d+)\]', key)
if matches:
key = matches.group(1)
number = matches.group(2)
else:
number = 0
lookup[number][key] = value
if request.form['method'].lower() == 'track.updatenowplaying':
for i, listen in lookup.items():
if 'timestamp' not in listen:
listen['timestamp'] = calendar.timegm(datetime.now().utctimetuple())
# Convert to native payload then submit 'em after validation.
listen_type, native_payload = _to_native_api(lookup, data['method'], output_format)
for listen in native_payload:
validate_listen(listen, listen_type)
user = db_user.get(session.user_id)
augmented_listens = insert_payload(native_payload, user, listen_type=listen_type)
# With corrections than the original submitted listen.
doc, tag, text = Doc().tagtext()
with tag('lfm', status='ok'):
if listen_type == 'playing_now':
doc.asis(create_response_for_single_listen(list(lookup.values())[0], augmented_listens[0], listen_type))
else:
accepted_listens = len(lookup.values())
# Currently LB accepts all the listens and ignores none
with tag('scrobbles', accepted=accepted_listens, ignored='0'):
for original_listen, augmented_listen in zip(list(lookup.values()), augmented_listens):
doc.asis(create_response_for_single_listen(original_listen, augmented_listen, listen_type))
return format_response('<?xml version="1.0" encoding="utf-8"?>\n' + yattag.indent(doc.getvalue()),
output_format)
示例14: format_response
# 需要導入模塊: import yattag [as 別名]
# 或者: from yattag import indent [as 別名]
def format_response(data, format="xml"):
""" Convert the XML response to required format.
NOTE: The order of attributes may change while converting from XML to other formats.
NOTE: The rendering format for the error does not follow these rules and has been managed separately
in the error handlers.
The response is a translation of the XML response format, converted according to the
following rules:
1. Attributes are expressed as string member values with the attribute name as key.
2. Element child nodes are expressed as object members values with the node name as key.
3. Text child nodes are expressed as string values, unless the element also contains
attributes, in which case the text node is expressed as a string member value with the
key #text.
4. Repeated child nodes will be grouped as an array member with the shared node name as key.
(The #text notation is rarely used in XML responses.)
"""
if format == 'xml':
return data
elif format == 'json':
# Remove the <lfm> tag and its attributes
jsonData = xmltodict.parse(data)['lfm']
for k in jsonData.keys():
if k[0] == '@':
jsonData.pop(k)
def remove_attrib_prefix(data):
""" Filter the JSON response to merge some attributes and clean dict.
NOTE: This won't keep the dict ordered !!
"""
if not isinstance(data, dict):
return data
for k in list(data.keys()):
if k[0] == "@":
data[k[1:]] = data.pop(k)
elif isinstance(data[k], str):
continue
elif isinstance(data[k], list):
for ind, item in enumerate(data[k]):
data[k][ind] = remove_attrib_prefix(item)
elif isinstance(data[k], dict):
data[k] = remove_attrib_prefix(data[k])
else:
print(type(data[k]))
return data
return json.dumps(remove_attrib_prefix(jsonData), indent=4)