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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
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 |
Filename, size clean-architecture-0.0.3.tar.gz (5.7 kB) | File type Source | Python version None | Upload date | Hashes View |
Close
Hashes for clean_architecture-0.0.3-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8567774d3953c2aa06ebf0651607b6a41b5a13b92e2a3db77860ae983b1a10b9 |
|
MD5 | c78da59d22754056cb74ed75bf80bb0e |
|
BLAKE2-256 | e9972db7c48855ab2bb3a52d056cd546e71593f18f0206a925427745d9e617ef |