Skip to main content

A helper library for Clean Architectures in Python

Project description

Build Status Version

A helper library for Clean Architectures in Python

Full documentation available at http://gaudilib.readthedocs.io/en/latest/

About Gaudi

Gaudi (pronounced /ˈɡaʊdi/) is a library that provides some helper structures to build projects based on a clean architecture in Python. The very nature of a clean architecture is the opposite of a framework, so Gaudi provides the minimum amount of classes and methods to avoid boring repetition in your code.

Gaudi is opinionated, as some of the structures provided enforce minimum conventions, like requests being dictionary-like objects and responses having a category and a content. It is also extensible, however, as you are free to change the behaviour of the components at any time.

As you are following the clean architecture model you are free to build the internal protocols and objects like you prefer. Using Gaudi saves you some typing and enforces a minimum of conventions in your project. You are free to use just some of the components of Gaudi without breaking the clean architecture model.

Origin

In 2016 I wrote Clean architectures in Python: a step-by-step example, a detailed analysis of a clean architecture written in Python from scratch following a pure TDD methodology. Since then I created many successful projects following this model, but I quickly realised that there was a core of code that I copied from project to project (the shared module in the original article). So I decided to try to clean it up and to publish it as a library.

The name is an homage to Antoni Gaudí a genius that gave the world some of the most beautiful architectural works ever conceived by men.

Development

Gaudi is an helper library for clean architectures, so it provides the very minimum amount of code to avoid repetitions among projects. This means that the library shouldn’t grow too much in the future. There will be bug fixes and maybe some new helpers if there are good use cases (no pun intended) for them. I’m however ready to be surprised, so it might be that there are many other aspects of the clean architecture that can be automated while keeping the nature of the whole methodology: clean separation between layers.

Feel free to submit issues or pull requests or to get in touch if you have ideas about Gaudi. Maybe you can see what I can’t! And thanks for using Gaudi and the Clean Architecture model!

Installation

Gaudi is available for Python 3 through pip. Just create a virtual environment and run

pip install gaudi

Contributing

See the CONTRIBUTING file for detailed information. Please remember that this project is actively developed in the develop branch, so be sure to work there if you try to implement new feature of fix bugs.

History

1.0.1 (2019-06-26)

  • Minor review of README and Python packaging

1.0.0 (2018-08-01)

  • First release on PyPI.

Project details


Download files

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

Source Distribution

gaudi-1.0.1.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

gaudi-1.0.1-py2.py3-none-any.whl (7.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file gaudi-1.0.1.tar.gz.

File metadata

  • Download URL: gaudi-1.0.1.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

File hashes

Hashes for gaudi-1.0.1.tar.gz
Algorithm Hash digest
SHA256 d8ce92858a63e385f86b286cb471c8d5d7cba2eb6d931fa9a3f543f05006a81d
MD5 1e4a5cd56dd2de13479356116b0aac0d
BLAKE2b-256 a6d913f5ce5e9f5e2d836f87865cb390503b7ab47ae20cc2ed50eb58104effb5

See more details on using hashes here.

File details

Details for the file gaudi-1.0.1-py2.py3-none-any.whl.

File metadata

  • Download URL: gaudi-1.0.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

File hashes

Hashes for gaudi-1.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5acb6459c8a95a3db97a056cd6a20b4d7af561a8d30508aff27b43327bb6d461
MD5 4c5a96a90a1a38d1363aa432b9cee187
BLAKE2b-256 55c4782c827818a2fa1d25a0db3df87e56743ddb24c3f1d7a73a53d00d6580a7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page