A collection of design patterns and idioms in Python.

Jay Tyler 1878a5310b Minor pep8 changes. Most salient is that membership test should be 'x not in y' whereas 'not x in y' was being used. %!s(int64=11) %!d(string=hai) anos
.gitignore 2476b4b5dd Remove __pycache__ and add __pycache__ to .gitignore %!s(int64=12) %!d(string=hai) anos
3-tier.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
README.md e27509abdb Update README.md %!s(int64=11) %!d(string=hai) anos
abstract_factory.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
adapter.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
append_output.sh ec8d735baa Don't repeat the ### OUTPUT ### line %!s(int64=11) %!d(string=hai) anos
borg.py f61504c1bd Add output to bottom of scripts %!s(int64=11) %!d(string=hai) anos
bridge.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
builder.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
catalog.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
chain.py 1878a5310b Minor pep8 changes. Most salient is that membership test should be 'x not in y' whereas 'not x in y' was being used. %!s(int64=11) %!d(string=hai) anos
command.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
composite.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
decorator.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
facade.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
factory_method.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
flyweight.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
foo.txt 3511c20bf6 Added foo.txt for command.py script. %!s(int64=12) %!d(string=hai) anos
graph_search.py 1878a5310b Minor pep8 changes. Most salient is that membership test should be 'x not in y' whereas 'not x in y' was being used. %!s(int64=11) %!d(string=hai) anos
iterator.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
mediator.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
memento.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
mvc.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
null.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
observer.py 1878a5310b Minor pep8 changes. Most salient is that membership test should be 'x not in y' whereas 'not x in y' was being used. %!s(int64=11) %!d(string=hai) anos
pool.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
prototype.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
proxy.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
publish_subscribe.py 1878a5310b Minor pep8 changes. Most salient is that membership test should be 'x not in y' whereas 'not x in y' was being used. %!s(int64=11) %!d(string=hai) anos
state.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
strategy.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos
template.py f61504c1bd Add output to bottom of scripts %!s(int64=11) %!d(string=hai) anos
visitor.py 5d794ceecb Your code is too weak for PEP8. You lack DISCIPLINE %!s(int64=11) %!d(string=hai) anos

README.md

python-patterns

A collection of design patterns implemented (by other people) in python.

When an implementation is added or modified, be sure to update this file and rerun append_output.sh to keep the output comments at the bottom up to date.

Current Patterns:

  • 3-tier
  • abstract_factory
  • adapter
  • borg
  • bridge
  • builder
  • catalog
  • chain
  • command
  • composite
  • decorator
  • facade
  • factory_method
  • flyweight
  • graph_search
  • iterator
  • mediator
  • memento
  • mvc
  • null
  • observer
  • pool
  • prototype
  • proxy
  • publish_subscribe
  • state
  • strategy
  • template
  • visitor