dgk/django-business-logic

View on GitHub
docs/static/uml/Function.svg

Summary

Maintainability
Test Coverage
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="542.3564453125" height="620"><defs/><g><g transform="translate(-548,-86) scale(1,1)"><rect fill="#C0C0C0" stroke="none" x="874" y="255" width="213.3564453125" height="72" opacity="0.2"/></g><g transform="translate(-548,-86) scale(1,1)"><rect fill="#ffffff" stroke="none" x="867" y="248" width="213.3564453125" height="72"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 867 248 L 1080.3564453125 248 L 1080.3564453125 320 L 867 320 L 867 248 Z Z" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 867 273 L 1080.3564453125 273" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="bold" text-decoration="none" x="880.0947265625" y="267.5">PythonModuleFunctionDefinition</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="872" y="290.5">+module: String</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="872" y="305.5">+function: String</text></g></g><g transform="translate(-548,-86) scale(1,1)"><rect fill="#C0C0C0" stroke="none" x="565" y="271" width="218.193359375" height="130" opacity="0.2"/></g><g transform="translate(-548,-86) scale(1,1)"><rect fill="#ffffff" stroke="none" x="558" y="264" width="218.193359375" height="130"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 558 264 L 776.193359375 264 L 776.193359375 394 L 558 394 L 558 264 Z Z" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 558 289 L 776.193359375 289" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 558 372 L 776.193359375 372" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="italic" font-weight="bold" text-decoration="none" x="615.068115234375" y="283.5">FunctionDefinition</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="563" y="306.5">+title: String {unique}</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="563" y="321.5">+description: String</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="563" y="336.5">+is_context_required: Boolean</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="563" y="351.5">+is_returns_value: Boolean</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="563" y="366.5">+arguments: FunctionArgument[0..*]</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="563" y="389.5">+call()</text></g></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 866 300 L 777 313" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="#FFFFFF" stroke="none" d="M 795.8950968310284 301.7316675703075 L 777 313 L 798.3287653740965 318.39293682669677"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 795.8950968310284 301.7316675703075 L 777 313 L 798.3287653740965 318.39293682669677 L 795.8950968310284 301.7316675703075" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><rect fill="#C0C0C0" stroke="none" x="874" y="367" width="213.3564453125" height="57" opacity="0.2"/></g><g transform="translate(-548,-86) scale(1,1)"><rect fill="#ffffff" stroke="none" x="867" y="360" width="213.3564453125" height="57"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 867 360 L 1080.3564453125 360 L 1080.3564453125 417 L 867 417 L 867 360 Z Z" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 867 385 L 1080.3564453125 385" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="bold" text-decoration="none" x="885.874267578125" y="379.5">PythonCodeFunctionDefinition</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="872" y="402.5">+code: String</text></g></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 866 367 L 777 350" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="#FFFFFF" stroke="none" d="M 798.5439817706373 345.5438975026995 L 777 350 L 795.3848358972805 362.0829553102735"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 798.5439817706373 345.5438975026995 L 777 350 L 795.3848358972805 362.0829553102735 L 798.5439817706373 345.5438975026995" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><rect fill="#C0C0C0" stroke="none" x="565" y="103" width="218.193359375" height="72" opacity="0.2"/></g><g transform="translate(-548,-86) scale(1,1)"><rect fill="#ffffff" stroke="none" x="558" y="96" width="218.193359375" height="72"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 558 96 L 776.193359375 96 L 776.193359375 168 L 558 168 L 558 96 Z Z" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 558 121 L 776.193359375 121" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="bold" text-decoration="none" x="622.298095703125" y="115.5">FunctionLibrary</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="563" y="138.5">+title: String {unique}</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="563" y="153.5">+functions: FunctionDefinition[0..*]</text></g></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 667 263 L 667 169" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="#FFFFFF" stroke="none" d="M 671.209517756016 179.16267485762415 L 667 169 L 662.790482243984 179.16267485762415 L 667 191"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 671.209517756016 179.16267485762415 L 667 169 L 662.790482243984 179.16267485762415 L 667 191 L 671.209517756016 179.16267485762415" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="599.5" y="243.5">+functions</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="669.5" y="247.5">0..*</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="600.5" y="195.5">+libraries</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="669.5" y="196.5">0..*</text></g></g><g transform="translate(-548,-86) scale(1,1)"><rect fill="#C0C0C0" stroke="none" x="565" y="503" width="218.193359375" height="72" opacity="0.2"/></g><g transform="translate(-548,-86) scale(1,1)"><rect fill="#ffffff" stroke="none" x="558" y="496" width="218.193359375" height="72"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 558 496 L 776.193359375 496 L 776.193359375 568 L 558 568 L 558 496 Z Z" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 558 521 L 776.193359375 521" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="bold" text-decoration="none" x="613.98583984375" y="515.5">FunctionArgument</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="563" y="538.5">+name</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="563" y="553.5">+description</text></g></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 667 495 L 667 395" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="#000000" stroke="none" d="M 671.209517756016 405.16267485762415 L 667 395 L 662.790482243984 405.16267485762415 L 667 417"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 671.209517756016 405.16267485762415 L 667 395 L 662.790482243984 405.16267485762415 L 667 417 L 671.209517756016 405.16267485762415" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="621.5" y="448.5">+arguments</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="669.5" y="479.5">0..*</text></g></g><g transform="translate(-548,-86) scale(1,1)"><rect fill="#C0C0C0" stroke="none" x="565" y="631" width="218.193359375" height="72" opacity="0.2"/></g><g transform="translate(-548,-86) scale(1,1)"><rect fill="#ffffff" stroke="none" x="558" y="624" width="218.193359375" height="72"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 558 624 L 776.193359375 624 L 776.193359375 696 L 558 696 L 558 624 Z Z" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 558 649 L 776.193359375 649" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="bold" text-decoration="none" x="593.752685546875" y="643.5">FunctionArgumentChoice</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="563" y="666.5">+title</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="563" y="681.5">+value</text></g></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 667 623 L 667 569" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="#000000" stroke="none" d="M 671.209517756016 579.1626748576241 L 667 569 L 662.790482243984 579.1626748576241 L 667 591"/></g><g transform="translate(-548,-86) scale(1,1)"><path fill="none" stroke="#000000" d="M 671.209517756016 579.1626748576241 L 667 569 L 662.790482243984 579.1626748576241 L 667 591 L 671.209517756016 579.1626748576241" stroke-miterlimit="10"/></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="591.5" y="602.5">+choices</text></g></g><g transform="translate(-548,-86) scale(1,1)"><g><path fill="none" stroke="none"/><text fill="#000000" stroke="none" font-family="Arial" font-size="13px" font-style="normal" font-weight="normal" text-decoration="none" x="669.5" y="607.5">0..*</text></g></g></g></svg>