本文整理汇总了Python中kalite.settings.LOG.error方法的典型用法代码示例。如果您正苦于以下问题:Python LOG.error方法的具体用法?Python LOG.error怎么用?Python LOG.error使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类kalite.settings.LOG
的用法示例。
在下文中一共展示了LOG.error方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: save
# 需要导入模块: from kalite.settings import LOG [as 别名]
# 或者: from kalite.settings.LOG import error [as 别名]
def save(self, update_userlog=True, *args, **kwargs):
# To deal with backwards compatibility,
# check video_id, whether imported or not.
if not self.video_id:
assert kwargs.get("imported", False), "video_id better be set by internal code."
assert self.youtube_id, "If not video_id, you better have set youtube_id!"
self.video_id = i18n.get_video_id(self.youtube_id) or self.youtube_id # for unknown videos, default to the youtube_id
if not kwargs.get("imported", False):
self.full_clean()
# Compute learner status
already_complete = self.complete
self.complete = (self.points >= VideoLog.POINTS_PER_VIDEO)
if not already_complete and self.complete:
self.completion_timestamp = datetime.now()
# Tell logins that they are still active (ignoring validation failures).
# TODO(bcipolli): Could log video information in the future.
if update_userlog:
try:
UserLog.update_user_activity(self.user, activity_type="login", update_datetime=(self.completion_timestamp or datetime.now()), language=self.language)
except ValidationError as e:
logging.error("Failed to update userlog during video: %s" % e)
super(VideoLog, self).save(*args, **kwargs)
示例2: handle
# 需要导入模块: from kalite.settings import LOG [as 别名]
# 或者: from kalite.settings.LOG import error [as 别名]
def handle(self, *args, **options):
# Get the CSV data, either from a recent cache_file
# or from the internet
cache_dir = settings.MEDIA_ROOT
cache_file = os.path.join(cache_dir, "dubbed_videos.csv")
if not options["force"] and os.path.exists(cache_file) and datediff(datetime.datetime.now(), datetime.datetime.fromtimestamp(os.path.getctime(cache_file)), units="days") <= 14.0:
# Use cached data to generate the video map
csv_data = open(cache_file, "r").read()
(video_map, _) = generate_dubbed_video_mappings(csv_data=csv_data)
else:
# Use cached data to generate the video map
(video_map, csv_data) = generate_dubbed_video_mappings()
try:
ensure_dir(cache_dir)
with open(cache_file, "w") as fp:
fp.write(csv_data)
except Exception as e:
logging.error("Failed to make a local cache of the CSV data: %s" % e)
# Now we've built the map. Save it.
out_file = DUBBED_VIDEOS_MAPPING_FILEPATH
ensure_dir(os.path.dirname(out_file))
logging.info("Saving data to %s" % out_file)
with open(out_file, "w") as fp:
json.dump(video_map, fp)
logging.info("Done.")
示例3: generate_test_files
# 需要导入模块: from kalite.settings import LOG [as 别名]
# 或者: from kalite.settings.LOG import error [as 别名]
def generate_test_files():
"""Insert asterisks as translations in po files"""
# Open them up and insert asterisks for all empty msgstrs
logging.info("Generating test po files")
en_po_dir = os.path.join(settings.LOCALE_PATHS[0], "en/LC_MESSAGES/")
for po_file in glob.glob(os.path.join(en_po_dir, "*.po")):
msgid_pattern = re.compile(r'msgid \"(.*)\"\nmsgstr', re.S | re.M)
content = open(os.path.join(en_po_dir, po_file), 'r').read()
results = content.split("\n\n")
with open(os.path.join(en_po_dir, "tmp.po"), 'w') as temp_file:
# We know the first block is static, so just dump that.
temp_file.write(results[0])
# Now work through actual translations
for result in results[1:]:
try:
msgid = re.findall(msgid_pattern, result)[0]
temp_file.write("\n\n")
temp_file.write(result.replace("msgstr \"\"", "msgstr \"***%s***\"" % msgid))
except Exception as e:
logging.error("Failed to insert test string: %s\n\n%s\n\n" % (e, result))
# Once done replacing, rename temp file to overwrite original
os.rename(os.path.join(en_po_dir, "tmp.po"), os.path.join(en_po_dir, po_file))
(out, err, rc) = compile_po_files("en")
if err:
logging.debug("Error executing compilemessages: %s" % err)
示例4: update_all_distributed_callback
# 需要导入模块: from kalite.settings import LOG [as 别名]
# 或者: from kalite.settings.LOG import error [as 别名]
def update_all_distributed_callback(request):
"""
"""
if request.method != "POST":
raise PermissionDenied("Only POST allowed to this URL endpoint.")
videos = json.loads(request.POST["video_logs"])
exercises = json.loads(request.POST["exercise_logs"])
user = FacilityUser.objects.get(id=request.POST["user_id"])
node_cache = get_node_cache()
# Save videos
n_videos_uploaded = 0
for video in videos:
video_id = video['video_id']
youtube_id = video['youtube_id']
# Only save video logs for videos that we recognize.
if video_id not in node_cache["Video"]:
logging.warn("Skipping unknown video %s" % video_id)
continue
try:
(vl, _) = VideoLog.get_or_initialize(user=user, video_id=video_id, youtube_id=youtube_id)
for key,val in video.iteritems():
setattr(vl, key, val)
logging.debug("Saving video log for %s: %s" % (video_id, vl))
vl.save()
n_videos_uploaded += 1
except KeyError: #
logging.error("Could not save video log for data with missing values: %s" % video)
except Exception as e:
error_message = "Unexpected error importing videos: %s" % e
return JsonResponseMessageError(error_message)
# Save exercises
n_exercises_uploaded = 0
for exercise in exercises:
# Only save video logs for videos that we recognize.
if exercise['exercise_id'] not in node_cache['Exercise']:
logging.warn("Skipping unknown video %s" % exercise['exercise_id'])
continue
try:
(el, _) = ExerciseLog.get_or_initialize(user=user, exercise_id=exercise["exercise_id"])
for key,val in exercise.iteritems():
setattr(el, key, val)
logging.debug("Saving exercise log for %s: %s" % (exercise['exercise_id'], el))
el.save()
n_exercises_uploaded += 1
except KeyError:
logging.error("Could not save exercise log for data with missing values: %s" % exercise)
except Exception as e:
error_message = "Unexpected error importing exercises: %s" % e
return JsonResponseMessageError(error_message)
return JsonResponse({"success": "Uploaded %d exercises and %d videos" % (n_exercises_uploaded, n_videos_uploaded)})
示例5: test_get_exercise_load_status
# 需要导入模块: from kalite.settings import LOG [as 别名]
# 或者: from kalite.settings.LOG import error [as 别名]
def test_get_exercise_load_status(self):
for path in get_exercise_paths():
logging.debug("Testing path : " + path)
self.browser.get(self.live_server_url + path)
error_list = self.browser.execute_script("return window.js_errors;")
if error_list:
logging.error("Found JS error(s) while loading path: " + path)
for e in error_list:
logging.error(e)
self.assertFalse(error_list)
示例6: move_video_sizes_file
# 需要导入模块: from kalite.settings import LOG [as 别名]
# 或者: from kalite.settings.LOG import error [as 别名]
def move_video_sizes_file(lang_code):
lang_pack_location = os.path.join(LOCALE_ROOT, lang_code)
filename = os.path.basename(REMOTE_VIDEO_SIZE_FILEPATH)
src_path = os.path.join(lang_pack_location, filename)
dest_path = REMOTE_VIDEO_SIZE_FILEPATH
# replace the old remote_video_size json
if not os.path.exists(src_path):
logging.error("Could not find videos sizes file (%s)" % src_path)
else:
logging.debug('Moving %s to %s' % (src_path, dest_path))
shutil.move(src_path, dest_path)
示例7: logout
# 需要导入模块: from kalite.settings import LOG [as 别名]
# 或者: from kalite.settings.LOG import error [as 别名]
def logout(request):
if "facility_user" in request.session:
# Logout, ignore any errors.
try:
UserLog.end_user_activity(request.session["facility_user"], activity_type="login")
except ValidationError as e:
logging.error("Failed to end_user_activity upon logout: %s" % e)
del request.session["facility_user"]
auth_logout(request)
next = request.GET.get("next", reverse("homepage"))
if next[0] != "/":
next = "/"
return HttpResponseRedirect(next)
示例8: get_file2lang_map
# 需要导入模块: from kalite.settings import LOG [as 别名]
# 或者: from kalite.settings.LOG import error [as 别名]
def get_file2lang_map(force=False):
"""Map from youtube_id to language code"""
global YT2LANG_MAP
if YT2LANG_MAP is None or force:
YT2LANG_MAP = {}
for lang_code, dic in get_dubbed_video_map().iteritems():
for dubbed_youtube_id in dic.values():
if dubbed_youtube_id in YT2LANG_MAP:
# Sanity check, but must be failsafe, since we don't control these data
if YT2LANG_MAP[dubbed_youtube_id] == lang_code:
logging.warn("Duplicate entry found in %s language map for dubbed video %s" % (lang_code, dubbed_youtube_id))
else:
logging.error("Conflicting entry found in language map for video %s; overwriting previous entry of %s to %s." % (dubbed_youtube_id, YT2LANG_MAP[dubbed_youtube_id], lang_code))
YT2LANG_MAP[dubbed_youtube_id] = lang_code
return YT2LANG_MAP
示例9: build_translations
# 需要导入模块: from kalite.settings import LOG [as 别名]
# 或者: from kalite.settings.LOG import error [as 别名]
def build_translations(project_id=None, project_key=None):
"""Build latest translations into zip archive on CrowdIn."""
if not project_id:
project_id = settings.CROWDIN_PROJECT_ID
if not project_key:
project_key = settings.CROWDIN_PROJECT_KEY
logging.info("Requesting that CrowdIn build a fresh zip of our translations")
request_url = "http://api.crowdin.net/api/project/%s/export?key=%s" % (project_id, project_key)
try:
resp = requests.get(request_url)
resp.raise_for_status()
except Exception as e:
logging.error(e)
示例10: move_dubbed_video_map
# 需要导入模块: from kalite.settings import LOG [as 别名]
# 或者: from kalite.settings.LOG import error [as 别名]
def move_dubbed_video_map(lang_code):
lang_pack_location = os.path.join(LOCALE_ROOT, lang_code)
dubbed_video_dir = os.path.join(lang_pack_location, "dubbed_videos")
dvm_filepath = os.path.join(dubbed_video_dir, os.path.basename(DUBBED_VIDEOS_MAPPING_FILEPATH))
if not os.path.exists(dvm_filepath):
logging.error("Could not find downloaded dubbed video filepath: %s" % dvm_filepath)
else:
logging.debug("Moving dubbed video map to %s" % DUBBED_VIDEOS_MAPPING_FILEPATH)
ensure_dir(os.path.dirname(DUBBED_VIDEOS_MAPPING_FILEPATH))
shutil.move(dvm_filepath, DUBBED_VIDEOS_MAPPING_FILEPATH)
logging.debug("Removing emtpy directory")
try:
shutil.rmtree(dubbed_video_dir)
except Exception as e:
logging.error("Error removing dubbed video directory (%s): %s" % (dubbed_video_dir, e))
示例11: account_management
# 需要导入模块: from kalite.settings import LOG [as 别名]
# 或者: from kalite.settings.LOG import error [as 别名]
def account_management(request, org_id=None):
# Only log 'coachreport' activity for students,
# (otherwise it's hard to compare teachers)
if "facility_user" in request.session and not request.session["facility_user"].is_teacher and reverse("login") not in request.META.get("HTTP_REFERER", ""):
try:
# Log a "begin" and end here
user = request.session["facility_user"]
UserLog.begin_user_activity(user, activity_type="coachreport")
UserLog.update_user_activity(user, activity_type="login") # to track active login time for teachers
UserLog.end_user_activity(user, activity_type="coachreport")
except ValidationError as e:
# Never report this error; don't want this logging to block other functionality.
logging.error("Failed to update student userlog activity: %s" % e)
return student_view_context(request)
示例12: download_crowdin_metadata
# 需要导入模块: from kalite.settings import LOG [as 别名]
# 或者: from kalite.settings.LOG import error [as 别名]
def download_crowdin_metadata(project_id=None, project_key=None):
"""Return tuple in format (total_strings, total_translated, percent_translated)"""
if not project_id:
project_id = settings.CROWDIN_PROJECT_ID
if not project_key:
project_key = settings.CROWDIN_PROJECT_KEY
request_url = "http://api.crowdin.net/api/project/%s/status?key=%s&json=True" % (project_id, project_key)
try:
resp = requests.get(request_url)
resp.raise_for_status()
crowdin_meta_dict = json.loads(resp.content)
except Exception as e:
logging.error("Error getting crowdin metadata: %s" % e)
crowdin_meta_dict = {}
return crowdin_meta_dict
示例13: record_ping
# 需要导入模块: from kalite.settings import LOG [as 别名]
# 或者: from kalite.settings.LOG import error [as 别名]
def record_ping(cls, id, ip):
"""
We received a failed request to create a session; record that 'ping' in our DB
"""
try:
# Create the log (if necessary), update, and save
# TODO: make a base class (in django_utils) that has get_or_initialize, and use that
# to shorten things here
(cur_device, _) = UnregisteredDevice.objects.get_or_create(id=id)
(cur_log, _) = cls.get_or_initialize(device=cur_device) # get is safe, because device is unique
cur_log.npings += 1
cur_log.last_ip = ip
cur_log.save()
except Exception as e:
# Never block functionality
logging.error("Error recording unregistered device ping: %s" % e)
示例14: _get_installed_language_packs
# 需要导入模块: from kalite.settings import LOG [as 别名]
# 或者: from kalite.settings.LOG import error [as 别名]
def _get_installed_language_packs():
"""
On-disk method to show currently installed languages and meta data.
"""
# There's always English...
installed_language_packs = [{
'code': 'en',
'software_version': VERSION,
'language_pack_version': 0,
'percent_translated': 100,
'subtitle_count': 0,
'name': 'English',
'native_name': 'English',
}]
# Loop through locale folders
for locale_dir in settings.LOCALE_PATHS:
if not os.path.exists(locale_dir):
continue
# Loop through folders in each locale dir
for django_disk_code in os.listdir(locale_dir):
# Inside each folder, read from the JSON file - language name, % UI trans, version number
try:
# Get the metadata
metadata_filepath = os.path.join(locale_dir, django_disk_code, "%s_metadata.json" % lcode_to_ietf(django_disk_code))
lang_meta = softload_json(metadata_filepath, raises=True)
logging.debug("Found language pack %s" % (django_disk_code))
except Exception as e:
if isinstance(e, IOError) and e.errno == 2:
logging.info("Ignoring non-language pack %s in %s" % (django_disk_code, locale_dir))
else:
logging.error("Error reading %s metadata (%s): %s" % (django_disk_code, metadata_filepath, e))
continue
installed_language_packs.append(lang_meta)
sorted_list = sorted(installed_language_packs, key=lambda m: m['name'].lower())
return OrderedDict([(lcode_to_ietf(val["code"]), val) for val in sorted_list])
示例15: setUp
# 需要导入模块: from kalite.settings import LOG [as 别名]
# 或者: from kalite.settings.LOG import error [as 别名]
def setUp(self):
"""Create a browser to use for test cases. Try a bunch of different browsers; hopefully one of them works!"""
super(BrowserTestCase, self).setUp()
# Clear the session cache after ever test case, to keep things clean.
Session.objects.all().delete()
# Can use already launched browser.
if self.persistent_browser:
(self.browser,self.admin_user,self.admin_pass) = setup_test_env(persistent_browser=self.persistent_browser)
# Must create a new browser to use
else:
for browser_type in ["Firefox", "Chrome", "Ie", "Opera"]:
try:
(self.browser,self.admin_user,self.admin_pass) = setup_test_env(browser_type=browser_type)
break
except Exception as e:
logging.error("Could not create browser %s through selenium: %s" % (browser_type, e))