{"repo":"Borderless360/django-logic","free":true,"listed":false,"github":"https://github.com/Borderless360/django-logic","clone":"git clone https://github.com/Borderless360/django-logic.git","description":"Django Logic - easy way to implement state-based business logic with pure functions","language":"Python","stars":67,"topics":["python","django","fsm","workflow","workflow-diagram","django-rest-framework","django-logic","transition"],"license":"MIT","category":"workflow-automation","readme_excerpt":"Django Logic is a lightweight workflow framework for Django. It models business logic as a finite-state machine (FSM). You declare the state transitions, the permissions and the side effects in one place, away from your views, models and forms. Table of Contents - Features - Requirements - Installation - Quick Start - Core Concepts - Usage - Complete Example - Django-Logic vs Django FSM - Background Transitions - Testing Your Processes - Contributing - License Features - 🎯 Clear Business Logic - Separate business logic from views, models, and forms - 🔒 Built-in Permissions - Define who can perform which transitions - 🔄 Side Effects - Execute functions during state transitions - 🏗️ Nested Processes - Build complex workflows with sub-processes - ⚡ Built-in Locking - Cache/Redis-based locking to prevent race conditions - ⏳ Durable Background Transitions - Background transitions run as Celery tasks by default — built in, not an optional extra. They are queue-routed, retried, and recovered after a crash (see Background Transitions) - 🧪 Scenario-Based Testing - Test a whole workflow as ordinary unit tests, background jobs, failures and retries included. Sync execution mode and django logic.testing need no Celery broker (see Testing Your Processes) - 🔍 Structured Logging - State changes go to the standard django-logic / django-logic.transition Python loggers. Configure them in Django LOGGING (see docs/logger.md) Requirements - Python 3.11+ - Django 4.2+ (4.2, 5.1, 5.2 and 6.0 ","default_branch":null,"files":null,"tree":[],"storefront":"/r/Borderless360","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Borderless360/django-logic/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}