Browse Source

Fix pep8.. compliance

To be concordant with the coding styles fix pep8 compliance
develop
Jonathan Golder 7 years ago
parent
commit
e16925197c
  1. 1
      bots/markpages.py
  2. 3
      bots/reddiscparser.py
  3. 60
      lib/mysqlred.py
  4. 58
      lib/redfam.py
  5. 8
      lib/redpage.py

1
bots/markpages.py

@ -89,7 +89,6 @@ class MarkPagesBot( CurrentPageBot ): # sets 'current_page' on each treat()
RedFamWorker.flush_db_cache()
@property
def redfams(self):
"""

3
bots/reddiscparser.py

@ -146,7 +146,8 @@ class DiscussionParserBot(
return
# Initiate RedPage object
redpage = RedPage.session.query(RedPage).filter(RedPage.pageid == self.current_page.pageid ).one_or_none()
redpage = RedPage.session.query(RedPage).filter(
RedPage.pageid == self.current_page.pageid ).one_or_none()
if redpage:
redpage.update( self.current_page )

60
lib/mysqlred.py

@ -25,22 +25,27 @@
Provides interface classes for communication of redundances bot with mysql-db
"""
# Prefere using oursql then MySQLdb
try:
import oursql as mysqldb
except ImportError:
import MySQLdb as mysqldb
import atexit # noqa
import atexit
import pywikibot
import pywikibot # noqa
from pywikibot import config
import jogobot
from sqlalchemy import create_engine
from sqlalchemy import (
create_engine, Column, Integer, String, Text, DateTime, ForeignKey )
from sqlalchemy import text # noqa
from sqlalchemy.engine.url import URL
from sqlalchemy.ext.declarative import (
declarative_base, declared_attr, has_inherited_table )
from sqlalchemy.ext.mutable import MutableComposite, MutableSet
from sqlalchemy.orm import sessionmaker, relationship, composite
from sqlalchemy.orm.collections import attribute_mapped_collection
import sqlalchemy.types as types
Base = declarative_base()
url = URL( "mysql+oursql",
username=config.db_username,
password=config.db_password,
@ -50,18 +55,6 @@ url = URL( "mysql+oursql",
engine = create_engine(url, echo=True)
from sqlalchemy.ext.declarative import (
declarative_base, declared_attr, has_inherited_table )
Base = declarative_base()
from sqlalchemy import Column, Integer, String, Text, DateTime, ForeignKey
from sqlalchemy.orm import sessionmaker, relationship, composite
from sqlalchemy.ext.mutable import MutableComposite, MutableSet
from sqlalchemy.orm.collections import attribute_mapped_collection
import sqlalchemy.types as types
Session = sessionmaker(bind=engine)
session = Session()
@ -70,20 +63,22 @@ family = "dewpbeta"
class Mysql(object):
session = session
@declared_attr
def _tableprefix(cls):
return family + "_"
@declared_attr
def _tablesuffix(cls):
return "s"
@declared_attr
def __tablename__(cls):
if has_inherited_table(cls):
return None
prefix = family + "_"
name = cls.__name__[len("Mysql"):].lower()
suffix = "s"
return cls._tableprefix + name + cls._tablesuffix
def changedp(self):
return self.session.is_modified(self)
@ -108,7 +103,7 @@ class MutableSet(MutableSet):
@param item Item to add
"""
if not item in self:
if item not in self:
super().add(item)
def discard(self, item):
@ -187,8 +182,11 @@ class Status( types.TypeDecorator ):
elif isinstance(value, String ) or value is None:
return value
else:
raise ProgrammingError
raise TypeError(
"Value should be an instance of one of {0:s},".format(
str( [type(MutableSet()), type(String()), type(None)] ) ) +
"given value was an instance of {1:s}".format(
str(type(value))) )
def process_result_value(self, value, dialect):
"""
@ -226,8 +224,9 @@ class MysqlRedFam( Mysql, Base ):
redpageid = Column(
Integer, ForeignKey( "dewpbeta_redpages.pageid" ), nullable=False )
beginning = Column( DateTime, nullable=False )
ending = Column( DateTime, nullable=True )
_status = Column( 'status', MutableSet.as_mutable(Status(255)), nullable=True )
ending = Column( DateTime, nullable=True )
_status = Column( 'status', MutableSet.as_mutable(Status(255)),
nullable=True )
__article0_status = Column(
'article0_status', MutableSet.as_mutable(Status(64)), nullable=True )
@ -296,7 +295,8 @@ class MysqlRedPage( Mysql, Base ):
pageid = Column( Integer, unique=True, primary_key=True )
revid = Column( Integer, unique=True, nullable=False )
pagetitle = Column( String(255), nullable=False )
__status = Column( 'status', MutableSet.as_mutable(Status(255)), nullable=True )
__status = Column( 'status', MutableSet.as_mutable(Status(255)),
nullable=True )
redfams = relationship(
"MysqlRedFam", order_by=MysqlRedFam.famhash, back_populates="redpage",

58
lib/redfam.py

@ -35,7 +35,7 @@ import pywikibot # noqa
from pywikibot.tools import deprecated # noqa
import jogobot
from lib.mysqlred import MysqlRedFam
from lib.mysqlred import MysqlRedFam, text
class RedFam( MysqlRedFam ):
@ -60,8 +60,16 @@ class RedFam( MysqlRedFam ):
# Having pywikibot.Site() is a good idea most of the time
self.site = pywikibot.Site()
super().__init__( articlesList=articlesList, beginning=beginning, ending=ending, redpageid=redpageid,
famhash=famhash, heading=heading, status=status, articlesStatus=None )
super().__init__(
articlesList=articlesList,
beginning=beginning,
ending=ending,
redpageid=redpageid,
famhash=famhash,
heading=heading,
status=status,
articlesStatus=None
)
def __repr__( self ):
"""
@ -228,23 +236,25 @@ class RedFamParser( RedFam ):
if ending:
ending = self.__datetime(ending)
super().__init__( articlesList, beginning, ending=ending, redpageid=redpage.page._pageid,
famhash=famhash, heading=heading )
super().__init__( articlesList,
beginning,
ending=ending,
redpageid=redpage.page._pageid,
famhash=famhash,
heading=heading )
# Check status changes
self.check_status()
self.session.add(self)
def update( self, articlesList, heading, redpage, redpagearchive,
beginning, ending=None):
beginning, ending=None ):
self.articlesList = articlesList;
self.heading = heading;
self.redpage = redpage;
self.redpageid = redpage.pageid;
self.articlesList = articlesList
self.heading = heading
self.redpage = redpage
self.redpageid = redpage.pageid
self.add_beginning( beginning )
@ -271,8 +281,7 @@ class RedFamParser( RedFam ):
heading = mwparser.parse( str( heading ) )
# Save destinations of wikilinks in headings
return [ str( link.title ) for link
in heading.ifilter_wikilinks() ]
return [ str( link.title ) for link in heading.ifilter_wikilinks() ]
def add_beginning( self, beginning ):
"""
@ -398,11 +407,13 @@ class RedFamParser( RedFam ):
if redfam:
# Existing redfams need to be updated
redfam.update( articlesList, str(heading), redpage, isarchive, beginning, ending )
redfam.update( articlesList, str(heading), redpage, isarchive,
beginning, ending )
else:
# Create the RedFam object
redfam = RedFamParser( articlesList, str(heading), redpage, isarchive, beginning, ending )
redfam = RedFamParser( articlesList, str(heading),
redpage, isarchive, beginning, ending )
return redfam
@classmethod
@ -465,7 +476,8 @@ class RedFamWorker( RedFam ):
# with wrong month abreviations in strptime
locale.setlocale(locale.LC_ALL, 'de_DE.UTF-8')
def article_generator(self, filter_existing=None, filter_redirects=None,
def article_generator(self, # noqa
filter_existing=None, filter_redirects=None,
exclude_article_status=[],
onlyinclude_article_status=[] ):
"""
@ -602,7 +614,7 @@ class RedFamWorker( RedFam ):
template.add( "Beginn", begin, True )
# Add end (if not same as begin)
end = self.ending.strftime( "%B %Y" )
end = self.ending.strftime( "%B %Y" )
if not end == begin:
template.add( "Ende", end, True )
@ -634,14 +646,12 @@ class RedFamWorker( RedFam ):
Yield red_fams stored in db by given status which have an ending after
given one
"""
from sqlalchemy import text
for redfam in RedFamWorker.session.query(RedFamWorker).filter(
#~ RedFamWorker._status.like('archived'),
#RedFamWorker._status.like("%{0:s}%".format(status)),
# NOT WORKING WITH OBJECT NOTATION
# RedFamWorker._status.like('archived'),
# RedFamWorker._status.like("%{0:s}%".format(status)),
text("status LIKE '%archived%'"),
RedFamWorker.ending >= ending
):
RedFamWorker.ending >= ending ):
yield redfam

8
lib/redpage.py

@ -31,8 +31,8 @@ import mwparserfromhell as mwparser
import jogobot # noqa
from lib.mysqlred import MysqlRedPage, relationship
from lib.redfam import RedFam, RedFamParser
from sqlalchemy.orm.collections import attribute_mapped_collection
from lib.redfam import RedFamParser
class RedPage( MysqlRedPage ):
@ -40,7 +40,7 @@ class RedPage( MysqlRedPage ):
Class for handling redundance discussion pages and archives
"""
#TODO POLYMORPHISM? of BASEClass
# TODO POLYMORPHISM? of BASEClass
redfams = relationship(
"RedFamParser", order_by=RedFamParser.famhash,
back_populates="redpage",
@ -65,7 +65,7 @@ class RedPage( MysqlRedPage ):
revid=self._page._revid,
pagetitle=self._page.title(),
status=None
)
)
self.is_archive()
@ -79,7 +79,7 @@ class RedPage( MysqlRedPage ):
@property
def page(self):
if not hasattr(self,"_page"):
if not hasattr(self, "_page"):
self._page = pywikibot.Page( pywikibot.Site(), self.pagetitle )
return self._page

Loading…
Cancel
Save