Refactor example modules in Python3-ish way

This commit is contained in:
Roman Mogylatov 2020-01-26 18:41:36 -05:00
parent 06ff4bbbe4
commit cf44e5815d
34 changed files with 58 additions and 55 deletions

View File

@ -14,7 +14,10 @@ Development version
- Add support of six 1.14.0. - Add support of six 1.14.0.
- Add support of six 1.13.0. - Add support of six 1.13.0.
- Regenerate C sources using Cython 0.29.14. - Regenerate C sources using Cython 0.29.14.
- Fix PEP257 doc block errors in example modules. - Remove Python 2-ish inheritance from ``object`` in example modules.
- Replace Python 2-ish ``super(class, self).__init__()`` calls with Python 3-ish
``super().__init__()`` in example modules.
- Fix doc block errors in example modules, including related to PEP257-compliance.
- Clean up tox.ini file. - Clean up tox.ini file.
3.14.12 3.14.12

View File

@ -1,11 +1,11 @@
"""The Code.""" """The Code."""
class Service(object): class Service:
"""Some "Service".""" """Some "Service"."""
class Client(object): class Client:
"""Some "Client" that uses "Service".""" """Some "Client" that uses "Service"."""
def __init__(self): def __init__(self):

View File

@ -1,11 +1,11 @@
"""The Code, that demonstrates dependency injection pattern.""" """The Code, that demonstrates dependency injection pattern."""
class Service(object): class Service:
"""Some "Service".""" """Some "Service"."""
class Client(object): class Client:
"""Some "Client" that uses "Service".""" """Some "Client" that uses "Service"."""
def __init__(self, service): # Service instance is injected into Client def __init__(self, service): # Service instance is injected into Client

View File

@ -1,7 +1,7 @@
"""TBD.""" """API client module."""
class ApiClient(object): class ApiClient:
"""Some API client.""" """Some API client."""
def __init__(self, host, api_key): def __init__(self, host, api_key):

View File

@ -1,4 +1,4 @@
"""TBD.""" """Main module."""
from dependency_injector import providers from dependency_injector import providers

View File

@ -1,7 +1,7 @@
"""TBD.""" """Models module."""
class User(object): class User:
"""User model.""" """User model."""
def __init__(self, id, api_client): def __init__(self, id, api_client):

View File

@ -1,6 +1,6 @@
"""TBD.""" """Tests module."""
from mock import Mock from unittest.mock import Mock
import main import main
import api import api

View File

@ -1,5 +1,5 @@
"""Photos bundle entities module.""" """Photos bundle entities module."""
class Photo(object): class Photo:
"""Photo entity.""" """Photo entity."""

View File

@ -1,7 +1,7 @@
"""Photos bundle entity repositories module.""" """Photos bundle entity repositories module."""
class PhotoRepository(object): class PhotoRepository:
"""Photo entity repository.""" """Photo entity repository."""
def __init__(self, object_factory, fs, db): def __init__(self, object_factory, fs, db):

View File

@ -1,7 +1,7 @@
"""Users bundle entities module.""" """Users bundle entities module."""
class User(object): class User:
"""User entity.""" """User entity."""
def __init__(self, id): def __init__(self, id):

View File

@ -1,7 +1,7 @@
"""Users bundle entity repositories module.""" """Users bundle entity repositories module."""
class UserRepository(object): class UserRepository:
"""User entity repository.""" """User entity repository."""
def __init__(self, object_factory, db): def __init__(self, object_factory, db):

View File

@ -1,7 +1,7 @@
"""Dependency injection example, cars module.""" """Dependency injection example, cars module."""
class Car(object): class Car:
"""Example car.""" """Example car."""
def __init__(self, engine): def __init__(self, engine):

View File

@ -1,7 +1,7 @@
"""Dependency injection example, engines module.""" """Dependency injection example, engines module."""
class Engine(object): class Engine:
"""Example engine base class. """Example engine base class.
Engine is a heart of every car. Engine is a very common term and could be Engine is a heart of every car. Engine is a very common term and could be
@ -17,5 +17,5 @@ class DieselEngine(Engine):
"""Diesel engine.""" """Diesel engine."""
class ElectroEngine(Engine): class ElectricEngine(Engine):
"""Electro engine.""" """Electric engine."""

View File

@ -7,4 +7,4 @@ import example.engines
if __name__ == '__main__': if __name__ == '__main__':
gasoline_car = example.cars.Car(example.engines.GasolineEngine()) gasoline_car = example.cars.Car(example.engines.GasolineEngine())
diesel_car = example.cars.Car(example.engines.DieselEngine()) diesel_car = example.cars.Car(example.engines.DieselEngine())
electro_car = example.cars.Car(example.engines.ElectroEngine()) electric_car = example.cars.Car(example.engines.ElectricEngine())

View File

@ -14,7 +14,7 @@ class Engines(containers.DeclarativeContainer):
diesel = providers.Factory(example.engines.DieselEngine) diesel = providers.Factory(example.engines.DieselEngine)
electro = providers.Factory(example.engines.ElectroEngine) electric = providers.Factory(example.engines.ElectricEngine)
class Cars(containers.DeclarativeContainer): class Cars(containers.DeclarativeContainer):
@ -26,11 +26,11 @@ class Cars(containers.DeclarativeContainer):
diesel = providers.Factory(example.cars.Car, diesel = providers.Factory(example.cars.Car,
engine=Engines.diesel) engine=Engines.diesel)
electro = providers.Factory(example.cars.Car, electric = providers.Factory(example.cars.Car,
engine=Engines.electro) engine=Engines.electric)
if __name__ == '__main__': if __name__ == '__main__':
gasoline_car = Cars.gasoline() gasoline_car = Cars.gasoline()
diesel_car = Cars.diesel() diesel_car = Cars.diesel()
electro_car = Cars.electro() electric_car = Cars.electric()

View File

@ -1,7 +1,7 @@
"""Mail service and user registration example.""" """Mail service and user registration example."""
class AbstractMailService(object): class AbstractMailService:
"""Abstract mail service.""" """Abstract mail service."""
def send(self, email, body): def send(self, email, body):

View File

@ -6,11 +6,11 @@ This module contains all finder implementations.
import csv import csv
class MovieFinder(object): class MovieFinder:
"""Movie finder component. """Movie finder component.
Movie finder component is responsible for fetching movies data from Movie finder component is responsible for fetching movies data from
different storages. various storage.
""" """
def __init__(self, movie_model): def __init__(self, movie_model):
@ -47,7 +47,7 @@ class CsvMovieFinder(MovieFinder):
""" """
self._csv_file_path = csv_file_path self._csv_file_path = csv_file_path
self._delimiter = delimiter self._delimiter = delimiter
super(CsvMovieFinder, self).__init__(movie_model) super().__init__(movie_model)
def find_all(self): def find_all(self):
"""Return all found movies. """Return all found movies.
@ -73,7 +73,7 @@ class SqliteMovieFinder(MovieFinder):
:type database: sqlite3.Connection :type database: sqlite3.Connection
""" """
self._database = database self._database = database
super(SqliteMovieFinder, self).__init__(movie_model) super().__init__(movie_model)
def find_all(self): def find_all(self):
"""Return all found movies. """Return all found movies.

View File

@ -4,7 +4,7 @@ This module contains all lister implementations.
""" """
class MovieLister(object): class MovieLister:
"""Movie lister component. """Movie lister component.
Movie lister component provides several methods for filtering movies by Movie lister component provides several methods for filtering movies by

View File

@ -4,7 +4,7 @@ This module contains all model implementations.
""" """
class Movie(object): class Movie:
"""Base movie model.""" """Base movie model."""
def __init__(self, name, year, director): def __init__(self, name, year, director):

View File

@ -6,7 +6,7 @@ import dependency_injector.containers as containers
import dependency_injector.providers as providers import dependency_injector.providers as providers
class UsersService(object): class UsersService:
"""Users service.""" """Users service."""
def __init__(self, password_hasher): def __init__(self, password_hasher):

View File

@ -1,7 +1,7 @@
"""Example business services module.""" """Example business services module."""
class BaseService(object): class BaseService:
"""Service base class.""" """Service base class."""

View File

@ -1,7 +1,7 @@
"""Example business services module.""" """Example business services module."""
class BaseService(object): class BaseService:
"""Service base class.""" """Service base class."""

View File

@ -1,7 +1,7 @@
"""Example adapters package.""" """Example adapters package."""
class EmailSender(object): class EmailSender:
"""Abstract email sender.""" """Abstract email sender."""
def send(self, to, body): def send(self, to, body):
@ -9,7 +9,7 @@ class EmailSender(object):
raise NotImplementedError() raise NotImplementedError()
class SmtpEmailSender(object): class SmtpEmailSender:
"""SMTP email sender uses SMTP protocol for sending emails.""" """SMTP email sender uses SMTP protocol for sending emails."""
def send(self, to, body): def send(self, to, body):
@ -17,7 +17,7 @@ class SmtpEmailSender(object):
# Send email via SMTP # Send email via SMTP
class EchoEmailSender(object): class EchoEmailSender:
"""Echo email sender prints emails to stdout.""" """Echo email sender prints emails to stdout."""
def send(self, to, body): def send(self, to, body):

View File

@ -1,7 +1,7 @@
"""Example use cases package.""" """Example use cases package."""
class UseCase(object): class UseCase:
"""Abstract use case.""" """Abstract use case."""
def execute(self): def execute(self):
@ -9,7 +9,7 @@ class UseCase(object):
raise NotImplementedError() raise NotImplementedError()
class SignupUseCase(object): class SignupUseCase:
"""Sign up use cases registers users.""" """Sign up use cases registers users."""
def __init__(self, email_sender): def __init__(self, email_sender):

View File

@ -1,7 +1,7 @@
"""Example hierarchy of cache clients with abstract base class.""" """Example hierarchy of cache clients with abstract base class."""
class AbstractCacheClient(object): class AbstractCacheClient:
"""Abstract cache client.""" """Abstract cache client."""

View File

@ -3,7 +3,7 @@
import dependency_injector.providers as providers import dependency_injector.providers as providers
class User(object): class User:
"""Example class User.""" """Example class User."""
@ -15,7 +15,7 @@ class UsersFactory(providers.Provider):
def __init__(self): def __init__(self):
"""Initialize instance.""" """Initialize instance."""
self._factory = providers.Factory(User) self._factory = providers.Factory(User)
super(UsersFactory, self).__init__() super().__init__()
def __call__(self, *args, **kwargs): def __call__(self, *args, **kwargs):
"""Return provided object. """Return provided object.

View File

@ -6,7 +6,7 @@ import contextlib
import dependency_injector.providers as providers import dependency_injector.providers as providers
class UsersService(object): class UsersService:
"""Example class UsersService. """Example class UsersService.
UsersService has dependency on DBAPI 2.0 database connection. UsersService has dependency on DBAPI 2.0 database connection.

View File

@ -1,7 +1,7 @@
"""Example games module.""" """Example games module."""
class Game(object): class Game:
"""Base game class.""" """Base game class."""
def __init__(self, player1, player2): def __init__(self, player1, player2):

View File

@ -1,7 +1,7 @@
"""FactoryAggregate provider prototype.""" """FactoryAggregate provider prototype."""
class FactoryAggregate(object): class FactoryAggregate:
"""FactoryAggregate provider prototype.""" """FactoryAggregate provider prototype."""
def __init__(self, **factories): def __init__(self, **factories):

View File

@ -8,7 +8,7 @@ import dependency_injector.providers as providers
Photo = collections.namedtuple('Photo', []) Photo = collections.namedtuple('Photo', [])
class User(object): class User:
"""Example user model.""" """Example user model."""
def __init__(self, photos_factory): def __init__(self, photos_factory):

View File

@ -4,7 +4,7 @@ import dependency_injector.providers as providers
import dependency_injector.errors as errors import dependency_injector.errors as errors
class BaseService(object): class BaseService:
"""Base service class.""" """Base service class."""

View File

@ -3,7 +3,7 @@
import dependency_injector.providers as providers import dependency_injector.providers as providers
class User(object): class User:
"""Example class User.""" """Example class User."""

View File

@ -3,23 +3,23 @@
import dependency_injector.providers as providers import dependency_injector.providers as providers
class User(object): class User:
"""Example class User.""" """Example class User."""
def __init__(self, id, password): def __init__(self, id, password):
"""Initialize instance.""" """Initialize instance."""
self.id = id self.id = id
self.password = password self.password = password
super(User, self).__init__() super().__init__()
class UsersService(object): class UsersService:
"""Example class UsersService.""" """Example class UsersService."""
def __init__(self, user_cls): def __init__(self, user_cls):
"""Initialize instance.""" """Initialize instance."""
self.user_cls = user_cls self.user_cls = user_cls
super(UsersService, self).__init__() super().__init__()
def get_by_id(self, id): def get_by_id(self, id):
"""Find user by his id and return user model.""" """Find user by his id and return user model."""
@ -56,7 +56,7 @@ class ExtendedUser(User):
self.first_name = first_name self.first_name = first_name
self.last_name = last_name self.last_name = last_name
self.gender = gender self.gender = gender
super(ExtendedUser, self).__init__(id, password) super().__init__(id, password)
class ExtendedUsersService(UsersService): class ExtendedUsersService(UsersService):

View File

@ -4,7 +4,7 @@ import dependency_injector.providers as providers
import dependency_injector.errors as errors import dependency_injector.errors as errors
class BaseService(object): class BaseService:
"""Base service class.""" """Base service class."""