import time
import gzip
import shutil

from django.core.exceptions import ValidationError

def format_pace_tick(x,pos=None):
	min=int(x/60)
	sec=int(x-min*60.)
	sec_str=str(sec).zfill(2)
	template='%d:%s'
	return template % (min,sec_str)

def format_time_tick(x,pos=None):
	hour=int(x/3600)
	min=int((x-hour*3600.)/60)
	min_str=str(min).zfill(2)
	template='%d:%s'
	return template % (hour,min_str)

def format_pace(x,pos=None):
    if isinf(x) or isnan(x):
	x=0
	
    min=int(x/60)
    sec=(x-min*60.)

    str1 = "{min:0>2}:{sec:0>4.1f}".format(
	min = min,
	sec = sec
	)

    return str1

def format_time(x,pos=None):


    min = int(x/60.)
    sec = int(x-min*60)

    str1 = "{min:0>2}:{sec:0>4.1f}".format(
	min=min,
	sec=sec,
	)

    return str1

def validate_file_extension(value):
  import os
  ext = os.path.splitext(value.name)[1]
  valid_extensions = ['.tcx','.csv','.TCX',
                      '.CSV','.fit','.FIT','.zip','.ZIP',
                      '.gz','.GZ']
  if not ext in valid_extensions:
    raise ValidationError(u'File not supported!')

def must_be_csv(value):
    import os
    ext = os.path.splitext(value.name)[1]
    valid_extensions = ['.csv','.CSV']
    if not ext in valid_extensions:
	raise ValidationError(u'File not supported!')
    

def handle_uploaded_file(f):
    fname = f.name
    timestr = time.strftime("%Y%m%d-%H%M%S")
    fname = timestr+'-'+fname
    fname2 = 'media/'+fname
    with open(fname2,'wb+') as destination:
	for chunk in f.chunks():
	    destination.write(chunk)
            
    return fname,fname2

