Mercurial > libervia-web
changeset 243:63e9b680d3e7
browser_side, blog: better PEP8 compliance
author | souliane <souliane@mailoo.org> |
---|---|
date | Tue, 15 Oct 2013 17:19:03 +0200 |
parents | a25aa882e09a |
children | 43a27ffc74df |
files | browser_side/base_widget.py browser_side/card_game.py browser_side/radiocol.py server_side/blog.py |
diffstat | 4 files changed, 93 insertions(+), 96 deletions(-) [+] |
line wrap: on
line diff
--- a/browser_side/base_widget.py Fri Oct 18 11:14:55 2013 +0200 +++ b/browser_side/base_widget.py Tue Oct 15 17:19:03 2013 +0200 @@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. """ -import pyjd # this is dummy in pyjs +import pyjd # this is dummy in pyjs from pyjamas.ui.SimplePanel import SimplePanel from pyjamas.ui.AbsolutePanel import AbsolutePanel from pyjamas.ui.VerticalPanel import VerticalPanel @@ -62,10 +62,10 @@ def onDragLeave(self, event): if event.clientX <= self.getAbsoluteLeft() or event.clientY <= self.getAbsoluteTop() or\ - event.clientX >= self.getAbsoluteLeft() + self.getOffsetWidth() - 1 or event.clientY >= self.getAbsoluteTop() + self.getOffsetHeight() - 1: - # We check that we are inside widget's box, and we don't remove the style in this case because - # if the mouse is over a widget inside the DropWidget, if will leave the DropWidget, and we - # don't want that + event.clientX >= self.getAbsoluteLeft() + self.getOffsetWidth() - 1 or event.clientY >= self.getAbsoluteTop() + self.getOffsetHeight() - 1: + # We check that we are inside widget's box, and we don't remove the style in this case because + # if the mouse is over a widget inside the DropWidget, if will leave the DropWidget, and we + # don't want that self.removeStyleName('dragover') def onDragOver(self, event): @@ -77,7 +77,6 @@ row = DOM.getParent(cell) return (row.rowIndex, cell.cellIndex) - def onDrop(self, event): DOM.eventPreventDefault(event) dt = event.dataTransfer @@ -137,6 +136,7 @@ DOM.setStyleAttribute(td_elt, "width", "%s%%" % _width)""" #FIXME: delete object ? Check the right way with pyjamas + class WidgetHeader(AbsolutePanel, LiberviaDragWidget): def __init__(self, parent, title): @@ -566,6 +566,7 @@ cellFormatter = self.flextable.getFlexCellFormatter() return cellFormatter.setRowSpan(row, col, value) + class DropTab(Label, DropWidget): def __init__(self, tab_panel, text): @@ -581,7 +582,6 @@ # XXX: awful hack, but seems the only way to get index return self.tab_panel.tabBar.panel.getWidgetIndex(self.getParent().getParent()) - 1 - def onDragEnter(self, event): #if self == LiberviaDragWidget.current: # return @@ -633,6 +633,7 @@ widgets_panel = self.tab_panel.getWidget(self._getIndex()) widgets_panel.addWidget(_new_panel) + class MainTabPanel(TabPanel): def __init__(self, host): @@ -657,8 +658,8 @@ tab_bar_h = _elts.item(0).offsetHeight ideal_height = height - DOM.getAbsoluteTop(tab_panel_elt) - tab_bar_h - 5 ideal_width = width - DOM.getAbsoluteLeft(tab_panel_elt) - 5 - self.setWidth("%s%s" % (ideal_width, "px")); - self.setHeight("%s%s" % (ideal_height, "px")); + self.setWidth("%s%s" % (ideal_width, "px")) + self.setHeight("%s%s" % (ideal_height, "px")) def add(self, widget, text=''): tab = DropTab(self, text) @@ -677,4 +678,3 @@ self.selectTab(0) else: self.selectTab(widgets_count - 1) -
--- a/browser_side/card_game.py Fri Oct 18 11:14:55 2013 +0200 +++ b/browser_side/card_game.py Tue Oct 15 17:19:03 2013 +0200 @@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. """ -import pyjd # this is dummy in pyjs +import pyjd # this is dummy in pyjs from pyjamas.ui.AbsolutePanel import AbsolutePanel from pyjamas.ui.VerticalPanel import VerticalPanel from pyjamas.ui.HorizontalPanel import HorizontalPanel @@ -43,16 +43,17 @@ from datetime import datetime from time import time from games import TarotCard +from logging import error import re - CARD_WIDTH = 74 CARD_HEIGHT = 136 CARD_DELTA_Y = 30 -MIN_WIDTH = 950 #Minimum size of the panel +MIN_WIDTH = 950 # Minimum size of the panel MIN_HEIGHT = 500 + class ContratChooser(DialogBox): def __init__(self, parent): @@ -78,21 +79,22 @@ button_panel.add(self.choose_button) content.add(button_panel) self.setHTML("Please select your contrat") - self.setWidget(content) + self.setWidget(content) def onChoose(self, button): self.hide() self._parent.contratSelected(self.contrats_list.getSelectedItemText()[0]) + class CardWidget(TarotCard, Image, MouseHandler): """This class is used to represent a card, graphically and logically""" - def __init__(self, parent, file): + def __init__(self, parent, file_): """@param file: path of the PNG file""" self._parent = parent - Image.__init__(self,file) - root_name = file[file.rfind("/")+1:-4] - suit,value = root_name.split('_') + Image.__init__(self, file_) + root_name = file_[file_.rfind("/") + 1:-4] + suit, value = root_name.split('_') TarotCard.__init__(self, (suit, value)) MouseHandler.__init__(self) self.addMouseListener(self) @@ -104,7 +106,7 @@ def onMouseLeave(self, sender): if not self in self._parent.hand: return - if not self in list(self._parent.selected): #FIXME: Workaround pyjs bug, must report it + if not self in list(self._parent.selected): # FIXME: Workaround pyjs bug, must report it DOM.setStyleAttribute(self.getElement(), "top", "%dpx" % CARD_DELTA_Y) def onMouseUp(self, sender, x, y): @@ -116,13 +118,14 @@ elif self._parent.state == "play": self._parent.playCard(self) + class CardPanel(DockPanel, ClickHandler): def __init__(self, parent, referee, players, player_nick): DockPanel.__init__(self) ClickHandler.__init__(self) self._parent = parent - self._autoplay = None #XXX: use 0 to activate fake play, None else + self._autoplay = None # XXX: use 0 to activate fake play, None else self.referee = referee self.players = players self.player_nick = player_nick @@ -135,42 +138,38 @@ idx = (idx + 1) % len(self.players) self.left_nick = self.players[idx] self.bottom_nick = player_nick - self.selected = set() #Card choosed by the player (e.g. during ecart) - self.hand_size = 13 #number of cards in a hand + self.selected = set() # Card choosed by the player (e.g. during ecart) + self.hand_size = 13 # number of cards in a hand self.hand = [] self.to_show = [] self.state = None self.setSize("%dpx" % MIN_WIDTH, "%dpx" % MIN_HEIGHT) self.setStyleName("cardPanel") - + # Now we set up the layout _label = Label(self.top_nick) _label.setStyleName('cardGamePlayerNick') self.add(_label, DockPanel.NORTH) self.setCellWidth(_label, '100%') - self.setCellHorizontalAlignment(_label, HasAlignment.ALIGN_CENTER) - - + self.setCellHorizontalAlignment(_label, HasAlignment.ALIGN_CENTER) + self.hand_panel = AbsolutePanel() self.add(self.hand_panel, DockPanel.SOUTH) self.setCellWidth(self.hand_panel, '100%') self.setCellHorizontalAlignment(self.hand_panel, HasAlignment.ALIGN_CENTER) - _label = Label(self.left_nick) _label.setStyleName('cardGamePlayerNick') self.add(_label, DockPanel.WEST) self.setCellHeight(_label, '100%') - self.setCellVerticalAlignment(_label, HasAlignment.ALIGN_MIDDLE) - + self.setCellVerticalAlignment(_label, HasAlignment.ALIGN_MIDDLE) _label = Label(self.right_nick) _label.setStyleName('cardGamePlayerNick') self.add(_label, DockPanel.EAST) self.setCellHeight(_label, '100%') - self.setCellHorizontalAlignment(_label, HasAlignment.ALIGN_RIGHT) - self.setCellVerticalAlignment(_label, HasAlignment.ALIGN_MIDDLE) - + self.setCellHorizontalAlignment(_label, HasAlignment.ALIGN_RIGHT) + self.setCellVerticalAlignment(_label, HasAlignment.ALIGN_MIDDLE) self.center_panel = DockPanel() self.inner_left = SimplePanel() @@ -185,19 +184,19 @@ self.center_panel.add(self.inner_right, DockPanel.EAST) self.center_panel.setCellHeight(self.inner_right, '100%') self.center_panel.setCellVerticalAlignment(self.inner_right, HasAlignment.ALIGN_MIDDLE) - + self.inner_top = SimplePanel() self.inner_top.setSize("%dpx" % CARD_WIDTH, "%dpx" % CARD_HEIGHT) self.center_panel.add(self.inner_top, DockPanel.NORTH) self.center_panel.setCellHorizontalAlignment(self.inner_top, HasAlignment.ALIGN_CENTER) self.center_panel.setCellVerticalAlignment(self.inner_top, HasAlignment.ALIGN_BOTTOM) - + self.inner_bottom = SimplePanel() self.inner_bottom.setSize("%dpx" % CARD_WIDTH, "%dpx" % CARD_HEIGHT) self.center_panel.add(self.inner_bottom, DockPanel.SOUTH) self.center_panel.setCellHorizontalAlignment(self.inner_bottom, HasAlignment.ALIGN_CENTER) self.center_panel.setCellVerticalAlignment(self.inner_bottom, HasAlignment.ALIGN_TOP) - + self.inner_center = SimplePanel() self.center_panel.add(self.inner_center, DockPanel.CENTER) self.center_panel.setCellHorizontalAlignment(self.inner_center, HasAlignment.ALIGN_CENTER) @@ -210,29 +209,28 @@ self.setCellHorizontalAlignment(self.center_panel, HasAlignment.ALIGN_CENTER) self.loadCards() - self.mouse_over_card = None #contain the card to highlight - self.visible_size = CARD_WIDTH/2 #number of pixels visible for cards + self.mouse_over_card = None # contain the card to highlight + self.visible_size = CARD_WIDTH / 2 # number of pixels visible for cards self.addClickListener(self) - def loadCards(self): """Load all the cards in memory""" def _getTarotCardsPathsCb(paths): print "_getTarotCardsPathsCb" - for file in paths: - print "path:", file - card = CardWidget(self, file) + for file_ in paths: + print "path:", file_ + card = CardWidget(self, file_) print "card:", card - self.cards[(card.suit, card.value)]=card + self.cards[(card.suit, card.value)] = card self.deck.append(card) self._parent.host.bridge.call('tarotGameReady', None, self.player_nick, self.referee) - self.cards={} - self.deck=[] - self.cards["atout"]={} #As Tarot is a french game, it's more handy & logical to keep french names - self.cards["pique"]={} #spade - self.cards["coeur"]={} #heart - self.cards["carreau"]={} #diamond - self.cards["trefle"]={} #club + self.cards = {} + self.deck = [] + self.cards["atout"] = {} # As Tarot is a french game, it's more handy & logical to keep french names + self.cards["pique"] = {} # spade + self.cards["coeur"] = {} # heart + self.cards["carreau"] = {} # diamond + self.cards["trefle"] = {} # club self._parent.host.bridge.call('getTarotCardsPaths', _getTarotCardsPathsCb) def onClick(self, sender): @@ -259,18 +257,18 @@ def updateHand(self): """Show the cards in the hand in the hand_panel (SOUTH panel)""" self.hand_panel.clear() - self.hand_panel.setSize("%dpx" % (self.visible_size * (len(self.hand)+1)), "%dpx" % (CARD_HEIGHT + CARD_DELTA_Y + 10)) + self.hand_panel.setSize("%dpx" % (self.visible_size * (len(self.hand) + 1)), "%dpx" % (CARD_HEIGHT + CARD_DELTA_Y + 10)) x_pos = 0 y_pos = CARD_DELTA_Y for card in self.hand: self.hand_panel.add(card, x_pos, y_pos) - x_pos+=self.visible_size - + x_pos += self.visible_size + def updateToShow(self): """Show cards in the center panel""" if not self.to_show: _widget = self.inner_center.getWidget() - if _widget: + if _widget: self.inner_center.remove(_widget) return panel = AbsolutePanel() @@ -279,7 +277,7 @@ y_pos = 0 for card in self.to_show: panel.add(card, x_pos, y_pos) - x_pos+=CARD_WIDTH + 5 + x_pos += CARD_WIDTH + 5 self.inner_center.setWidget(panel) def _ecartConfirm(self, confirm): @@ -293,7 +291,7 @@ self._parent.host.bridge.call('tarotGamePlayCards', None, self.player_nick, self.referee, ecart) self.state = "wait" self.updateHand() - + def addToSelection(self, card): self.selected.add(card) if len(self.selected) == 6: @@ -310,11 +308,11 @@ elif phase == "ecart": self.state = "ecart" else: - error ('INTERNAL ERROR: unmanaged game phase') - + error('INTERNAL ERROR: unmanaged game phase') + for suit, value in played_cards: self.hand.append(self.cards[(suit, value)]) - + self.hand.sort() self.updateHand() Window.alert('Cards played are invalid !') @@ -350,8 +348,8 @@ def getPlayerLocation(self, nick): """return player location (top,bottom,left or right)""" - for location in ['top','left','bottom','right']: - if getattr(self,'%s_nick' % location) == nick: + for location in ['top', 'left', 'bottom', 'right']: + if getattr(self, '%s_nick' % location) == nick: return location print ("ERROR: This line should not be reached") @@ -371,13 +369,13 @@ if player_panel.getWidget() != None: #We have already cards on the table, we remove them - for pos in ['top','left','bottom','right']: + for pos in ['top', 'left', 'bottom', 'right']: getattr(self, "inner_%s" % pos).setWidget(None) - + card = self.cards[(suit, value)] DOM.setElemAttribute(card.getElement(), "style", "") player_panel.setWidget(card) - + def tarotGameYourTurn(self): """Called when we have to play :)""" if self.state == "chien": @@ -404,7 +402,7 @@ self.updateHand() #nothing on the table self.updateToShow() - for pos in ['top','left','bottom','right']: + for pos in ['top', 'left', 'bottom', 'right']: getattr(self, "inner_%s" % pos).setWidget(None) self._parent.host.bridge.call('tarotGameReady', None, self.player_nick, self.referee) @@ -415,5 +413,5 @@ title = "You <b>win</b> !" else: title = "You <b>loose</b> :(" - body = re.sub(r'<.*?>',lambda x:'<br />' if '/elem' in x.group(0) else '', xml_data) #Q&D conversion to simple HTML text + body = re.sub(r'<.*?>', lambda x: '<br />' if '/elem' in x.group(0) else '', xml_data) # Q&D conversion to simple HTML text InfoDialog(title, body, _new_game).show()
--- a/browser_side/radiocol.py Fri Oct 18 11:14:55 2013 +0200 +++ b/browser_side/radiocol.py Tue Oct 15 17:19:03 2013 +0200 @@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. """ -import pyjd # this is dummy in pyjs +import pyjd # this is dummy in pyjs from pyjamas.ui.VerticalPanel import VerticalPanel from pyjamas.ui.HorizontalPanel import HorizontalPanel from pyjamas.ui.SimplePanel import SimplePanel @@ -45,24 +45,24 @@ def __init__(self): FlexTable.__init__(self) - title_lbl = Label("title:") + title_lbl = Label("title:") title_lbl.setStyleName('radiocol_metadata_lbl') artist_lbl = Label("artist:") artist_lbl.setStyleName('radiocol_metadata_lbl') album_lbl = Label("album:") album_lbl.setStyleName('radiocol_metadata_lbl') - self.title = Label("") + self.title = Label("") self.title.setStyleName('radiocol_metadata') self.artist = Label("") self.artist.setStyleName('radiocol_metadata') self.album = Label("") self.album.setStyleName('radiocol_metadata') - self.setWidget(0,0,title_lbl) - self.setWidget(1,0,artist_lbl) - self.setWidget(2,0,album_lbl) - self.setWidget(0,1,self.title) - self.setWidget(1,1,self.artist) - self.setWidget(2,1,self.album) + self.setWidget(0, 0, title_lbl) + self.setWidget(1, 0, artist_lbl) + self.setWidget(2, 0, album_lbl) + self.setWidget(0, 1, self.title) + self.setWidget(1, 1, self.artist) + self.setWidget(2, 1, self.album) self.setStyleName("radiocol_metadata_pnl") def setTitle(self, title): @@ -74,6 +74,7 @@ def setAlbum(self, album): self.album.setText(album) + class ControlPanel(FormPanel): """Panel used to show controls to add a song, or vote for the current one""" @@ -98,20 +99,20 @@ hPanel.add(self.status) vPanel.add(hPanel) - + #We need to know the referee referee_field = Hidden('referee', referee) vPanel.add(referee_field) self.add(vPanel) self.addFormHandler(self) - + def _timeCb(self, timer): self.status.setText('') def onBtnClick(self): self.submit() - + def onSubmit(self, event): pass @@ -123,7 +124,6 @@ self.file_upload.setVisible(True) self.upload_btn.setEnabled(True) - def onSubmitComplete(self, event): result = event.getResults() if result == "OK": @@ -136,17 +136,18 @@ else: Window.alert('Submit error: %s' % result) + class Player(HTML): def __init__(self, player_id, metadata_panel): HTML.__init__(self) self._id = player_id self.metadata = metadata_panel - self.title="" - self.artist="" - self.album="" + self.title = "" + self.artist = "" + self.album = "" self.filename = None - self.played = False #True when song is playing/played, become False on preload + self.played = False # True when song is playing/played, become False on preload def preload(self, filename, title, artist, album): """preload the song but doesn't play it""" @@ -157,7 +158,7 @@ self.played = False self.setHTML('<audio id="%s" style="display: none" preload="auto" src="radiocol/%s" />' % (self._id, html_sanitize(filename))) print "preloading %s in %s" % (title, self._id) - + def play(self): """actually play the song""" self.played = True @@ -169,7 +170,6 @@ var player = top.document.getElementById(this._id); player.play(); """) - class RadioColPanel(HorizontalPanel, ClickHandler): @@ -181,7 +181,7 @@ self.referee = referee self.setStyleName("radiocolPanel") self.setHeight('30%') - + # Now we set up the layout self.left_panel = VerticalPanel() self.left_panel.setStyleName("radiocol_left_panel") @@ -214,7 +214,7 @@ #FIXME: should check that the song we remove is the one we play next_song = self.next_songs.pop(0) self.left_panel.remove(next_song) - + def radiocolPreload(self, filename, title, artist, album): preloaded = False for player in self.players: @@ -229,7 +229,7 @@ print("WARNING: Can't preload song, we are getting too many songs to preload, we shouldn't have more than 2 at once") else: self.pushNextSong(title) - + def radiocolPlay(self, filename): for player in self.players: if player.filename == filename: @@ -247,4 +247,3 @@ def radiocolSongRejected(self, reason): Window.alert("Song rejected: %s" % reason) -
--- a/server_side/blog.py Fri Oct 18 11:14:55 2013 +0200 +++ b/server_side/blog.py Tue Oct 15 17:19:03 2013 +0200 @@ -44,10 +44,10 @@ </html> """ - def __init__(self,host): + def __init__(self, host): self.host = host Resource.__init__(self) - if not host.bridge.isConnected("libervia"): #FIXME: hard coded value for test + if not host.bridge.isConnected("libervia"): # FIXME: hard coded value for test host.bridge.connect("libervia") def render_GET(self, request): @@ -57,7 +57,7 @@ prof_requested = request.postpath[0] #TODO: char check: only use alphanumerical chars + some extra(_,-,...) here prof_found = self.host.bridge.getProfileName(prof_requested) - if not prof_found or prof_found=='libervia': + if not prof_found or prof_found == 'libervia': return MicroBlog.ERROR_TEMPLATE % "Invalid nickname" else: def got_jid(pub_jid_s): @@ -83,18 +83,18 @@ </head> <body> <div class='mblog_title'>%(user)s</div> - """ % {'user':user}) + """ % {'user': user}) #mblog_data.reverse() for entry in mblog_data: - timestamp = float(entry.get('timestamp',0)) + timestamp = float(entry.get('timestamp', 0)) _datetime = datetime.fromtimestamp(timestamp) request.write("""<div class='mblog_entry'><span class='mblog_timestamp'>%(date)s</span> <span class='mblog_content'>%(content)s</span></div>""" % { - 'date':_datetime, - 'content':sanitizeHtml(entry['content']).encode('utf-8')}) + 'date': _datetime, + 'content': sanitizeHtml(entry['content']).encode('utf-8')}) request.write('</body></html>') request.finish() - + def render_error_blog(self, error, request, profile): request.write(MicroBlog.ERROR_TEMPLATE % "Can't access requested data") request.finish()