Форум сайта python.su
C:\del\MySQL-python-1.2.3>python setup.py install
Traceback (most recent call last):
File "setup.py", line 15, in <module>
metadata, options = get_config()
File "C:\del\MySQL-python-1.2.3\setup_windows.py", line 7, in get_config
serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, options['registry_key'])
WindowsError: [Error 2]
from Components.Converter.Converter import Converter
from enigma import iServiceInformation, iPlayableService
from Components.Element import cached
from Poll import Poll
class CaidDisplay(Poll, Converter, object):
def __init__(self, type):
Poll.__init__(self)
Converter.__init__(self, type)
self.type = type
self.systemCaids = {
"26" : "BiSS",
"01" : "SEC",
"06" : "IRD",
"17" : "BET",
"05" : "VIA",
"18" : "NAG",
"09" : "NDS",
"0B" : "CON",
"0D" : "CRW",
"4A" : "DRE" }
self.poll_interval = 2000
self.poll_enabled = True
@cached
def get_caidlist(self):
caidlist = {}
service = self.source.service
if service:
info = service and service.info()
if info:
caids = info.getInfoObject(iServiceInformation.sCAIDs)
if caids:
for cs in self.systemCaids:
caidlist[cs] = (self.systemCaids.get(cs),0)
for caid in caids:
c = "%x" % int(caid)
if len(c) == 3:
c = "0%s" % c
c = c[:2].upper()
if self.systemCaids.has_key(c):
caidlist[c] = (self.systemCaids.get(c),1)
ecm_info = self.ecmfile()
if ecm_info:
emu_caid = ecm_info.get("caid", "")
if emu_caid and emu_caid != "0x000":
c = emu_caid.lstrip("0x")
if len(c) == 3:
c = "0%s" % c
c = c[:2].upper()
caidlist[c] = (self.systemCaids.get(c),2)
return caidlist
getCaidlist = property(get_caidlist)
@cached
def getText(self):
textvalue = ""
service = self.source.service
if service:
info = service and service.info()
if info:
if info.getInfoObject(iServiceInformation.sCAIDs):
ecm_info = self.ecmfile()
if ecm_info:
# caid
caid = ecm_info.get("caid", "")
caid = caid.lstrip("0x")
caid = caid.upper()
caid = caid.zfill(4)
caid = "CAID: %s" % caid
# hops
hops = ecm_info.get("hops", None)
hops = "HOPS: %s" % hops
# ecm time
ecm_time = ecm_info.get("ecm time", None)
if ecm_time:
if "msec" in ecm_time:
ecm_time = "ECM: %s " % ecm_time
else:
ecm_time = "ECM: %s s" % ecm_time
# address
address = ecm_info.get("address", "")
# source
using = ecm_info.get("using", "")
if using:
if using == "emu":
textvalue = "(EMU) %s - %s" % (caid, ecm_time)
elif using == "CCcam-s2s":
textvalue = "(NET) %s - %s - %s - %s" % (caid, address, hops, ecm_time)
else:
textvalue = "%s - %s - %s - %s" % (caid, address, hops, ecm_time)
else:
# mgcamd
source = ecm_info.get("source", None)
if source:
if source == "emu":
textvalue = "(EMU) %s" % (caid)
else:
textvalue = "%s - %s - %s" % (caid, source, ecm_time)
# oscam
oscsource = ecm_info.get("from", None)
if oscsource:
textvalue = "%s - %s - %s - %s" % (caid, oscsource, hops, ecm_time)
# gbox
decode = ecm_info.get("decode", None)
if decode:
if decode == "Internal":
textvalue = "(EMU) %s" % (caid)
else:
textvalue = "%s - %s" % (caid, decode)
return textvalue
text = property(getText)
def ecmfile(self):
ecm = None
info = {}
service = self.source.service
if service:
frontendInfo = service.frontendInfo()
if frontendInfo:
try:
ecmpath = "/tmp/ecm%s.info" % frontendInfo.getAll(False).get("tuner_number")
ecm = open(ecmpath, "rb").readlines()
except:
try:
ecm = open("/tmp/ecm.info", "rb").readlines()
except: pass
if ecm:
for line in ecm:
x = line.lower().find("msec")
if x != -1:
info["ecm time"] = line[0:x+4]
else:
item = line.split(":", 1)
if len(item) > 1:
info[item[0].strip().lower()] = item[1].strip()
else:
if not info.has_key("caid"):
x = line.lower().find("caid")
if x != -1:
y = line.find(",")
if y != -1:
info["caid"] = line[x+5:y]
return info
def changed(self, what):
if (what[0] == self.CHANGED_SPECIFIC and what[1] == iPlayableService.evUpdatedInfo) or what[0] == self.CHANGED_POLL:
Converter.changed(self, what)
from Renderer import Renderer
from enigma import eCanvas, eRect, gFont
from skin import parseColor, parseFont
class RendCaids(Renderer):
GUI_WIDGET = eCanvas
def __init__(self):
Renderer.__init__(self)
self.backgroundColor = parseColor("#ff000000")
self.nocColor = parseColor("#00aaaaaa")
self.emmColor = parseColor("#00aaaaaa")
self.ecmColor = parseColor("#0056c856")
self.font = gFont("Regular", 20)
def pull_updates(self):
if self.instance is None:
return
self.instance.clear(self.backgroundColor)
caidlist = self.source.getCaidlist
if caidlist is None:
return
self.draw(caidlist)
def draw(self, caidlist):
offset = 0
pointSize = self.font.pointSize
for key in caidlist:
if caidlist[key][0]:
if caidlist[key][1] == 0:
foregroundColor = self.nocColor
elif caidlist[key][1] == 1:
foregroundColor = self.emmColor
else:
foregroundColor = self.ecmColor
length = len(caidlist[key][0]) * (pointSize)
self.instance.writeText(eRect(offset, 0, length, pointSize), foregroundColor, self.backgroundColor, self.font, caidlist[key][0], 2)
offset = offset + length
def changed(self, what):
self.pull_updates()
def applySkin(self, desktop, parent):
attribs = [ ]
from enigma import eSize
def parseSize(str):
x, y = str.split(',')
return eSize(int(x), int(y))
for (attrib, value) in self.skinAttributes:
if attrib == "size":
self.instance.setSize(parseSize(value))
attribs.append((attrib,value))
elif attrib == "nocColor":
self.nocColor = parseColor(value)
elif attrib == "emmColor":
self.emmColor = parseColor(value)
elif attrib == "ecmColor":
self.ecmColor = parseColor(value)
elif attrib == "font":
self.font = parseFont(value, ((1,1),(1,1)))
elif attrib == "backgroundColor":
self.backgroundColor = parseColor(value)
self.instance.clear(self.backgroundColor)
attribs.append((attrib,value))
else:
attribs.append((attrib,value))
self.skinAttributes = attribs
return Renderer.applySkin(self, desktop, parent)
<widget source="session.CurrentService" render="RendCaids" backgroundColor="transparent2" ecmColor="green" emmColor="yellow" font="Regular;14" nocColor="grey" position="630,589" size="437,16" transparent="1" zPosition="10" alphatest="blend">
<convert type="CaidDisplay">Default</convert>
</widget>
myquery=input('введите запрос') #принял строку
ost=[['Р–СѓРєРѕРІСЃРєРѕРіРѕ'],['Технический университет', 'Р В˜Р В Р вЂњР СћР Р€', 'Политех'],['Школа РњР’Р”', 'Пожарка', 'Пожарное'],['Гос. университет'],['Школа в„–19', 'Школа 19', 'Р вЂ˜Р С•Р В»РЎРЉР Р…Р С‘РЎвЂ Р В° Р С’Р С”Р В°Р Т‘Р ВµР С˜Р С–Р С•РЎР‚Р С•Р Т‘Р С”Р В°'],['Р С’Р С”Р В°Р Т‘Р ВµР С˜Р С–Р С•РЎР‚Р С•Р Т‘Р С•Р С”', 'Р С’Р С”Р В°Р Т‘Р ВµР С˜'],['РњРёРєСЂРѕС…РёСЂСѓСЂРіРёСЏ глаза', 'РњРёРєСЂРѕС…РёСЂСѓСЂРіРёСЏ', 'Р СљР СњР СћР С™', 'Р СџР С•Р С˜РЎРЏР В»Р С•Р Р†РЎРѓР С”Р С•Р С–Р С•'],['РїРѕСЃ. Р Внергетиков', 'Р Внергетиков '],['Южная'],['Студия РєРёРЅРѕС…СЂРѕРЅРёРєРё', 'РљРёРЅРѕС…СЂРѕРЅРёРєР°', 'Р вЂќР С•Р С˜ РљРёРЅРѕ '],['РњСѓС…РёРЅРѕР№'],['Управление Р“РВР РЋ', 'Р“РВР РЋ'],['Плотина Р“РВР РЋ', 'Плотина'],['Релейный завод'],['Р С˜-РѕРЅ Р вЂ˜Р В°Р в„–Р С”Р В°Р В»РЎРЉРЎРѓР С”Р С‘Р в„–', 'Р вЂ˜Р В°Р в„–Р С”Р В°Р В»РЎРЉРЎРѓР С”Р С‘Р в„–'],['Лисиха'],['Р В¦Р С‘Р С˜Р В»РЎРЏР Р…РЎРѓР С”Р В°РЎРЏ'],['Волжская'],['Диагностический центр', 'Р вЂ˜Р В°РЎР‚Р С–РЎС“Р В·Р С‘Р Р…'],['Трилиссера'],['Театр РєСѓРєРѕР»'],['ЦПКиО', 'Парк культуры'],['Р В¤Р С‘Р В»Р В°РЎР‚Р С˜Р С•Р Р…Р С‘РЎРЏ', 'Ленина'],['Художественный Р С˜РЎС“Р В·Р ВµР в„–', 'Художественный'],['Сквер РљРёСЂРѕРІР°', 'Сквер', 'РљРёСЂРѕРІР°'],['Р С˜-РѕРЅ Университетский', 'Университетский'],['Школа в„–28', 'Школа 28'],['Р РЋРЎвЂљР С•Р С˜Р В°РЎвЂљР С•Р В»Р С•Р С–Р С‘РЎвЂЎР ВµРЎРѓР С”Р В°РЎРЏ клиника', 'Р РЋРЎвЂљР С•Р С˜Р В°РЎвЂљР С•Р В»Р С•Р С–Р С‘РЎРЏ'],['Южная проходная', 'проходная'],['Мельниковский рынок', 'Р вЂќР В¶Р ВµР С˜ Молл', 'Р вЂќР В¶Р ВµР С˜Р С˜Р С•Р В»Р В»'],['Центральный рынок'],['Р–СѓРєРѕРІР°'],['Площадь Надежды']] #Р вЂ˜Р вЂќ Р Р† Р С—Р В°Р С˜РЎРЏРЎвЂљР С‘
mar=['1','2','3','7','7Р С”','10','10Р С”']
output=[5 for x in range(33)]
#Разбивка на слова запроса-------------------------------------------------
lastspace=-1
words=[]
for i in range(len(myquery)):
if myquery[i]==' ':
newword=myquery[lastspace+1:i]
words.append(newword)
lastspace=i
words.append(myquery[lastspace+1:])
ewa=words.count('') #empty words amount
print(ewa)
for i in range(ewa): #при чтении возникают пустые слова, я не разбирался, а просто решил удалить
words.remove('')
#Конецразбивки на слова запроса-------------------------------------------
#Разбивка на слова словаря-------------------------------------------------
dicwds=[]
for i in range(len(ost)):
for k in range(len(ost[i])):
lastspace=-1
for l in range(len(ost[i][k])):
if ost[i][k][l]==' ':
newword=ost[i][k][lastspace+1:i]
dicwds.append(newword)
lastspace=i
dicwds.append(ost[i][k][lastspace+1:])
ewa=dicwds.count('') #empty words amount
print(ewa)
for i in range(ewa): #Р С—фСЂРё чтении возникают пустые слова, РЎРЏ Р Р…Р Вµ разбирался, Р В° просто решил удалить
dicwds.remove('')
#Конецразбивки на слова словаря-------------------------------------------
#проверяю на "3"--------------------------------------------------------
for i in range(len(ost)): #для каждого пункта словаря
for k in range(len(ost[i])): #для каждого варианта из этого пункта
for l in range(len(ost[i][k])): #для каждого слова из этого варианта
if len(ost[i][k])>=3: #если это слово Р Р…Р Вµ короче 3 РЎРѓР С‘Р С˜Р Р†Р С•Р В»Р С•Р Р†,
substring=' '+str(ost[i][k])[:3] #Р Р†Р С•Р В·РЎРЉР С˜Р ВµР С˜ подстроку РёР· первых трех Р±СѓРєРѕРІ этого слова Р С‘ пробела перед Р Р…Р С‘Р С˜Р С‘
if myquery.count(substring)>0: #если эта подстрока есть в запросе, то у какого-то слова первые 3 буквы совпали,
output[i]=3 #Р С—РЎР‚Р С‘РЎРѓР Р†Р С•Р С‘Р С˜ РЎРЊРЎвЂљР С•Р С˜РЎС“ варианту "3"
#проверяю на "2"--------------------------------------------------------
for i in range(len(ost)): #для каждого пункта(id) словаря
for k in range(len(ost[i])): #для каждого варианта из этого пункта
for l in range(len(ost[i][k])): #для каждого слова из этого варианта
if words.count(ost[i][k][l])>0: #если это слово попадается в запросе,
output[i]=2 #Р С—РЎР‚Р С‘РЎРѓР Р†Р С•Р С‘Р С˜ этой остановке "2" Р Т‘Р С• проверки Р Р…Р В° полное совпадение
#проверяю на "1"--------------------------------------------------------
for i in range(len(ost)): #для каждого пункта(id) словаря
for k in range(len(ost[i])): #для каждого варианта из этого пункта
if myquery.count(ost[i][k])>=1: #если этот вариант РЎвЂ Р ВµР В»Р С‘Р С”Р С•Р С˜ хоть раз встречается Р Р† запросе,
output[i]=1 #то любое РґСЂСѓРіРѕРµ значение output Р С˜Р ВµР Р…РЎРЏР ВµРЎвЂљРЎРѓРЎРЏ Р Р…Р В° 1
for i in range(33):
print(output[i])
def parser(request):
if len(Index.objects.all())==0:
NOW = Index.objects.create(cur=1)
NOW = Index.objects.latest('id')
book = xlrd.open_workbook("avto.xls")
sheet = book.sheet_by_index(0)
if NOW.cur == 1:
from django.core.management import call_command
call_command('reset','filters', interactive=False)
cursor = connection.cursor()
cursor.execute("ALTER TABLE data_startinfo.filters_car AUTO_INCREMENT = 1")
cursor.execute("ALTER TABLE data_startinfo.filters_car_model AUTO_INCREMENT = 1")
cursor.execute("ALTER TABLE data_startinfo.filters_detail AUTO_INCREMENT = 1")
cursor.execute("ALTER TABLE data_startinfo.filters_propertie AUTO_INCREMENT = 1")
cursor.execute("ALTER TABLE data_startinfo.filters_minmax AUTO_INCREMENT = 1")
for i in range(NOW.cur,sheet.nrows):
if sheet.cell(i,1).value == "" and sheet.cell(i,2).value == "" :
car=Car(manufacturer=sheet.cell(i,0).value).save()
else:
tocar=Car.objects.latest('id')
car_model=Car_model(car=tocar,model=sheet.cell(i,0).value).save()
if sheet.cell(i,4).value !="":
tomodel=Car_model.objects.latest('id')
generator=Detail(car=tocar, model=tomodel, article=sheet.cell(i,1).value, more_info=sheet.cell(i,2).value, type=sheet.cell(0,4).value).save()
todetail=Detail.objects.latest('id')
Propertie( detail=todetail,
year=sheet.cell(i,3).value,
name=sheet.cell(i,4).value,
voltage=int(sheet.cell(i,5).value),
amperage=int(sheet.cell(i,6).value),
wholesale_price = str(str(sheet.cell(i,7).value)),
retail_price = str(sheet.cell(i,8).value),
).save()
if sheet.cell(i,10).value!="":
tomodel=Car_model.objects.latest('id')
starter=Detail(car=tocar, model=tomodel, article=sheet.cell(i,1).value, more_info=sheet.cell(i,2).value, type=sheet.cell(0,10).value).save()
todetail=Detail.objects.latest('id')
Propertie( detail=todetail,
year=sheet.cell(i,9).value,
name=sheet.cell(i,10).value,
voltage=int(sheet.cell(i,11).value),
amperage=int(sheet.cell(i,12).value),
wholesale_price = str(sheet.cell(i,13).value),
retail_price = str(sheet.cell(i,14).value),
).save()
if (i-NOW.cur)==100:
NOW.cur = int(i)
NOW.save()
return HttpResponseRedirect("/parser")
NOW.cur = 1
NOW.save()
return HttpResponseRedirect("/")
def get_user_limits(self, user):
"""Get User Limits
Implements command CMD_API_SHOW_USER_CONFIG
Returns a dictionary with the user's upper limits
and settings that defines their account
Method info: http://www.directadmin.com/api.html#info
"""
return self._execute_cmd("CMD_API_SHOW_USER_CONFIG", \
[('user', user)])
#!/usr/local/bin/python2.7
import directadmin
u = "someuser"
api = directadmin.Api("admin", "Somepwd", "example.com", 2222)
user_config = api.get_user_limits(u)
print user_config
File "./test.py", line 23, in <module>
user_config = api.get_user_limits(u)
File "/usr/local/lib/python2.7/site-packages/directadmin/api.py", line 948, in get_user_limits
[('user', user)])
File "/usr/local/lib/python2.7/site-packages/directadmin/api.py", line 624, in _execute_cmd
return self._connector.execute(cmd, parameters, get)
File "/usr/local/lib/python2.7/site-packages/directadmin/api.py", line 512, in execute
return self._handle_response(urllib2.urlopen(request))
File "/usr/local/lib/python2.7/site-packages/directadmin/api.py", line 575, in _handle_response
raise ApiError(response['details'][0])
directadmin.api.ApiError: no container class for data
self.lst=gtk.ListStore(int,str,str,int,float)
self.grid=gtk.TreeView(self.lst)
renderText=gtk.CellRendererText()
renderText.set_property( 'editable', True )
renderText.connect('edited',self.__edit_col,self.lst)
cell=gtk.TreeViewColumn('PLU',renderText,text=0)
self.grid.append_column(cell)
cell=gtk.TreeViewColumn('Штрихкод',renderText,text=1)
self.grid.append_column(cell)
cell=gtk.TreeViewColumn('Наименование',renderText,text=2,editable=2)
self.grid.append_column(cell)
cell=gtk.TreeViewColumn('Группа',renderText,text=3)
self.grid.append_column(cell)
cell=gtk.TreeViewColumn('Цена',renderText,text=4)
self.grid.append_column(cell)
def __edit_col(self,cell,path,new_text,model):
model[path][2]=new_text # для проверки работы изменяем 3 столбец
return