Skip to main content

No project description provided

Project description

Clean Architecture

This project is described a clean architecture written by Robert C. Martine. Architecture is fellow a clean architecture

Table of contents

DirectoryStructure

|-- clean_architecture
|    |-- domain
|    |	|-request_object.py
|    |	|-response_object.py
|    |	`-use_case.py
|    |-- entity
|    |	`-entity.py
|    |-- exception
|    |	|-exception.py
|    |	`- *_exception.py
|    |-- serializer
|    	`-serializer.py

Installation

pip install clean-architecture

Example

  • Entity
from clean_architecture.entity import Entity

class UserEntity(Entity):
    def __init__(
        self,
        user_id,
        name,
        created_at,
        updated_at
    ):
        self.id = user_id
        self.name = name
        self.created_at = created_at
        self.updated_at = updated_at

    @classmethod
    def from_dict(cls, adict):
        user = UserEntity(
            user_id=adict.get("id"),
            name=adict.get("name"),
            created_at=adict.get("created_at"),
            updated_at=adict.get("updated_at")
        )
        return user
  • Domain

    • ValidRequestObject
        from clean_architecture.domain import (
            ValidRequestObject,
            InvalidRequestObject,
            UseCase,
            ResponseSuccess
        )
    
        class CreateUserRequestObject(ValidRequestObject):
            def __init__(self, user):
                self.user = user
    
            if invalid_req.has_errors():
                return invalid_req
    
            return CreateUserRequestObject(
                user=UserEntity.from_dict(adict)
            )
    
    • UseCase
        class CreatedUser(UseCase):
            def __init__(self, user_repository):
                self.user_repository = user_repository
    
            def process_request(self, request_object):
                user = self.user_repository.create(user=request_object.user)
                return ResponseSuccess(201, user)
    
  • Serializer

    from schema import Schema
    from clean_architecture.serializer import Serializer

    class CreateUserEncoder(Serializer):
        schema = Schema(
            {
                "name": str
            },
            ignore_extra_keys=True
        )

Testing

$ pytest 

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for clean-architecture, version 0.0.3
Filename, size File type Python version Upload date Hashes
Filename, size clean_architecture-0.0.3-py2-none-any.whl (11.9 kB) File type Wheel Python version py2 Upload date Hashes View hashes
Filename, size clean-architecture-0.0.3.tar.gz (5.7 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page