def __getCurlOutput (self, url, **kwargs):
curlcmd = "curl {0}".format(url)
for key, value in kwargs.items():
key = key.lower()
if key == "origin":
curlcmd += " -H 'Origin: {0}'".format(value)
elif key == "contenttype":
curlcmd += " -H 'Content-Type: {0}'".format(value)
elif key == "referer":
curlcmd += " -H 'Referer: {0}'".format(value)
elif key == "cookie":
curlcmd += " -H 'Cookie: {0}'".format(value)
elif key == "data":
curlcmd += " --data '{0}'".format(value)
elif key == "verbose":
if value == True:
curlcmd += " --verbose"
else:
curlcmd += " --silent"
elif key == "output":
curlcmd += " --output {0}".format(value)
else:
print "Unsupported key: {0}".format(key)
curlcmd += " 2>&1"
print curlcmd
curlout = subprocess.check_output(curlcmd,shell=True)
return curlout
product = None
for key in dictionary.keys():
if product is None:
product = dictionary[key]
else:
product = itertools.product(product, dictionary[key])
product = "{0}".format(list(product))
product = re.sub(r"\), \(+", "], [", product)
product = re.sub(r"\(+", "[", product)
product = product.replace(")]", "]]").replace(")", "")
product = ast.literal_eval(product)
Ok, I have a weird array of objects as output of itertools and I need an array of strings... 1 - Convert the array to string 2 - Clean it up with regex and replace 3 - Convert the string to array 4 - Problem solved
# Weird list cleanup
product = "{0}".format(list(product))
product = re.sub(r"\), \(+", "], [", product)
product = re.sub(r"\(+", "[", product)
product = product.replace(")]", "]]").replace(")", "")
product = ast.literal_eval(product)
I don't know why I get this strange fomat for this array of objects... Ok let's do it fast: 1 - Convert array in string 2 - Clean up string 3 - Convert string in array
def dow_to_dict_from_self(self):
# res = {'name': self.name, 'enabled': self.enabled }
res = {'sun': 0, 'mon': 0, 'tue': 0, 'wed': 0, 'thr': 0, 'fri': 0,
'sat': 0,
'enabled': 0, 'dow': 0, 'name': 'untitled'}
if (int(self.days_of_week) & 0x01) == 0x01: # sun
res['sun'] = 1
if (int(self.days_of_week) & 0x02) == 0x02: # mon
res['mon'] = 1
if (int(self.days_of_week) & 0x04) == 0x04: # tue
res['tue'] = 1
if (int(self.days_of_week) & 0x08) == 0x08: # wed
res['wed'] = 1
if (int(self.days_of_week) & 0x10) == 0x10: # thr
res['thr'] = 1
res['thu'] = 1 # '%a' returns thu for Thursday
if (int(self.days_of_week) & 0x20) == 0x20: # fri
res['fri'] = 1
if (int(self.days_of_week) & 0x40) == 0x40: # sat
res['sat'] = 1
if (int(
self.days_of_week) & 0x40) == 0x80: # enabled # new enable#
# flag -- duplicate in db
res['enabled'] = 1
res['enabled'] = self.enabled # remove this
res['dow'] = self.days_of_week
res['name'] = self.name
return res
kept the original comments - they're very helpful
def possibilities():
alphabets=(n,o,r,t,h,e,a,s,u,w,m,y)
combinations=list()
for n in range(9,-1,-1):
for o in range(9,-1,-1):
for r in range(9,-1,-1):
for t in range(9,-1,-1):
for h in range(9,-1,-1):
for e in range(9,-1,-1):
for a in range(9,-1,-1):
for s in range(9,-1,-1):
for u in range(9,-1,-1):
for w in range(9,-1,-1):
for m in range(9,-1,-1):
for y in range(9,-1,-1):
if len(set([n,o,r,t,h,e,a,s,u,w,m,y]))==12:
north=10000*n + 1000*o +100*r +10*t +h
east=1000*e +100*a +10*s +t
south=10000*s + 1000*o +100*u +10*t +h
west=1000*w + 100*e +10*s +t
earth= 10000*e + 1000*a + 100*r +10*t +h
if north +east +south +west == earth:
combinations.append((north,east,south,west,earth))
return combinations
if student_id:
assignments = Assignment.objects.filter(week__in=weeks)
unenrolled_students = Wave.objects.filter(week__in=weeks).values_list('unenrolled_students', flat=True)
# Construct responses based on assignment type
Assignment.build_assignments_for_weeks(responses, assignments, students, unenrolled_students)
max_num_assessments = Assessment.build_assessments_for_weeks(responses)
Comment.build_comments_for_weeks(responses, weeks, students, unenrolled_students)
elif wave_id:
assignments = Assignment.objects.filter(week__in=weeks)
unenrolled_students = Wave.objects.filter(week__in=weeks).values_list('unenrolled_students', flat=True)
# Construct responses based on assignment type
Assignment.build_assignments_for_weeks(responses, assignments, students, unenrolled_students)
max_num_assessments = Assessment.build_assessments_for_weeks(responses)
Comment.build_comments_for_weeks(responses, weeks, students, unenrolled_students)
else:
# can't happen
pass
for x,x1 in enumerate(hack):
if hack[x] in letters:
exception +=1
ffs why
{k: v for d in [{ key: { 0: x[0], } for key in x["name"] } for x in items] for k, v in d.items()}
zipped_file.extractall(f'{file_path}')
zipped_file.close()
def divide(a, b):
try:
return a / b
except:
x = 17
My smart exception handling before meeting "pass" :))
A,B=map(str,input().split()) # let's begin by casting strings to strings!
while(int(A)!=0 and int(B)!=0):
tamanhoa=0
tamanhob=0
for i in range(len(A)):
tamanhoa+=1 # wonderful way to determine the length of
# a string!
for i in range(len(B)):
tamanhob+=1
vA = [0]*tamanhoa
vB = [0]*tamanhob
if tamanhoa>tamanhob:
vA = [0]*tamanhoa # Just to make sure it really gets set!!!
vB = [0]*tamanhoa
for i in range(tamanhoa-1,-1,-1):
vA[i]=int(A[i]) # he even saved an operation by casting
# the char to int at the same time!
for i in range(tamanhob):
vB[i+1]=int(B[i])
elif tamanhoa<tamanhob:
vA = [0]*tamanhob # Just to make sure it really gets set!!!
vB = [0]*tamanhob
for i in range(tamanhoa):
vA[i+1]=int(A[i])
for i in range(tamanhob-1,-1,-1):
vB[i]=int(B[i])
tamanhoa=tamanhob
else:
for i in range(tamanhoa):
vA[i]=int(A[i])
for i in range(tamanhob):
vB[i]=int(B[i])
print(vA)
print(vB)
carry = 0
for i in range(tamanhoa-1,-1,-1):
soma = vA[i] + vB[i]
if soma > 9:
carry += 1
if vA[i-1]!= 9:
vA[i-1] += 1
else:
vB[i-1] +=1
if carry == 0:
print('No carry operation.')
elif carry == 1:
print(carry, 'carry operation.')
else:
print(carry, 'carry operations.')
A,B=map(str,input().split()) # why bother casting strings to int? yay
if int(A)==0 and int(B)==0:
break
This wonder was found within answers to a university programming test. Code as-is, comments added by me.
def get_first_index_of_array(array):
"""
this function is very usefull for get first index of array
"""
return array[0]
assert get_first_index_of_array([1, 2, 3, 4, 5]) == 1
assert get_first_index_of_array([1, 2, 3, 4, 5]) != 2
assert get_first_index_of_array([1, 2, 3, 4, 5]) != 3
assert get_first_index_of_array([1, 2, 3, 4, 5]) != 4
assert get_first_index_of_array([1, 2, 3, 4, 5]) != 4
def _take_items_from_list_and_put_them_into_string(self, list):
string = ''
for element in list:
string += element + ','
if len(string) > 0 and string[-1] == ',':
string = string[0:-1]
return string
from itertools import combinations as comb
from functools import reduce
def all_arrangements(k):
m=k*(k+1)/2
m_bits_on=set([tuple(reduce(lambda x,y:x[:y]+[1]+x[y+1:],c,[0]*(2*m+1))) for c in comb(range(2*m+1),m)])
return set([tuple(sorted(filter(lambda i:i>0,reduce(lambda x,y: x+[y] if y==0 else x[:-1]+[x[-1]+1,],p,[0])))) for p in m_bits_on])
Returns all arrangements in the Bulgarian solitaire game with k piles https://en.wikipedia.org/wiki/Bulgarian_solitaire
if (SelectionAndTimeData[1] < 2000 or \
SelectionAndTimeData[2] < 1 or SelectionAndTimeData[2] > 12 or \
SelectionAndTimeData[3] < 1 or SelectionAndTimeData[3] > 31 or \
SelectionAndTimeData[4] < 0 or SelectionAndTimeData[4] > 24 or \
SelectionAndTimeData[5] < 0 or SelectionAndTimeData[5] > 60 or \
SelectionAndTimeData[2] < 0 or SelectionAndTimeData[2] >60):
print('***************************************************************************')
print(' Entered date is not valid')
print('****************************************************************************')