This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Help us improve Python packaging - Donate today!
Project Description

The first python package to jump across the English Channel!

This package attempts to implement the “functional core, imperative shell” pattern described in Gary Bernhardt’s talk on Boundaries, using some ideas found in the Ruby obvious project.

Functional Core, Imperative Shell

The basic idea is that your core domain model implements business logic using functional techniques, with immutable values and copy-on-write. The functional core is wrapped by an imperative shell which drives the core models and interacts across the boundary with the outside world through “primitive” values. The immutable domain models can be easily converted to primitive data structures whose state has no affect on the immutable core.

nonobvious.models and nonobvious.fields provide a declarative modeling language, similar to Django’s model objects, but without an ORM. We can easily use validators and adaptors from the valideer project to ensure that the models are always in a valid state and can easily be constructed from standard python data structures.

By making use of concon.frozendict, concon.frozenlist, and concon.frozenset within model adaptors allows us to model complex data structures guaranteed to be correctly formed at all times.

As for the imperative shell, at present, you’re on your own!

Release History

Release History


This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
nonobvious-0.1.tar.gz (4.6 kB) Copy SHA256 Checksum SHA256 Source Jun 1, 2014

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting