From 91b2f34afdc1e404e4d96f5dd2adf1f2ee0f5cbd Mon Sep 17 00:00:00 2001 From: Grygorii Iermolenko Date: Sun, 13 Jan 2019 16:50:10 +0200 Subject: [PATCH 1/2] Change project structure --- .travis.yml | 9 ++------- {behavioral => patterns}/__init__.py | 0 {creational => patterns/behavioral}/__init__.py | 0 {behavioral => patterns/behavioral}/catalog.py | 0 {behavioral => patterns/behavioral}/chain.py | 0 .../behavioral}/chaining_method.py | 0 {behavioral => patterns/behavioral}/command.py | 0 {behavioral => patterns/behavioral}/iterator.py | 0 {behavioral => patterns/behavioral}/mediator.py | 0 {behavioral => patterns/behavioral}/memento.py | 0 {behavioral => patterns/behavioral}/observer.py | 0 .../behavioral}/publish_subscribe.py | 0 {behavioral => patterns/behavioral}/registry.py | 0 .../behavioral}/specification.py | 0 {behavioral => patterns/behavioral}/state.py | 0 {behavioral => patterns/behavioral}/strategy.py | 0 {behavioral => patterns/behavioral}/template.py | 0 {behavioral => patterns/behavioral}/visitor.py | 0 .../behavioral}/viz/catalog.py.png | Bin .../behavioral}/viz/chain.py.png | Bin .../behavioral}/viz/chaining_method.py.png | Bin .../behavioral}/viz/command.py.png | Bin .../behavioral}/viz/iterator.py.png | Bin .../behavioral}/viz/mediator.py.png | Bin .../behavioral}/viz/memento.py.png | Bin .../behavioral}/viz/observer.py.png | Bin .../behavioral}/viz/publish_subscribe.py.png | Bin .../behavioral}/viz/registry.py.png | Bin .../behavioral}/viz/specification.py.png | Bin .../behavioral}/viz/state.py.png | Bin .../behavioral}/viz/strategy.py.png | Bin .../behavioral}/viz/template.py.png | Bin .../behavioral}/viz/visitor.py.png | Bin {dft => patterns/creational}/__init__.py | 0 .../creational}/abstract_factory.py | 0 {creational => patterns/creational}/borg.py | 0 {creational => patterns/creational}/builder.py | 0 .../creational}/factory_method.py | 0 .../creational}/lazy_evaluation.py | 0 {creational => patterns/creational}/pool.py | 0 {creational => patterns/creational}/prototype.py | 0 .../creational}/viz/abstract_factory.py.png | Bin .../creational}/viz/borg.py.png | Bin .../creational}/viz/builder.py.png | Bin .../creational}/viz/factory_method.py.png | Bin .../creational}/viz/lazy_evaluation.py.png | Bin .../creational}/viz/pool.py.png | Bin .../creational}/viz/prototype.py.png | Bin {fundamental => patterns/dft}/__init__.py | 0 {dft => patterns/dft}/constructor_injection.py | 0 {dft => patterns/dft}/parameter_injection.py | 0 {dft => patterns/dft}/setter_injection.py | 0 {other => patterns/fundamental}/__init__.py | 0 .../fundamental}/delegation_pattern.py | 0 .../fundamental}/viz/delegation_pattern.py.png | Bin {other/hsm => patterns/other}/__init__.py | 0 {other => patterns/other}/blackboard.py | 0 {other => patterns/other}/graph_search.py | 0 {structural => patterns/other/hsm}/__init__.py | 0 {other => patterns/other}/hsm/classes_hsm.png | Bin .../other}/hsm/classes_test_hsm.png | Bin {other => patterns/other}/hsm/hsm.py | 0 {structural => patterns/structural}/3-tier.py | 0 patterns/structural/__init__.py | 0 {structural => patterns/structural}/adapter.py | 0 {structural => patterns/structural}/bridge.py | 0 {structural => patterns/structural}/composite.py | 0 {structural => patterns/structural}/decorator.py | 0 {structural => patterns/structural}/facade.py | 0 {structural => patterns/structural}/flyweight.py | 0 .../structural}/front_controller.py | 0 {structural => patterns/structural}/mvc.py | 0 {structural => patterns/structural}/proxy.py | 0 .../structural}/viz/3-tier.py.png | Bin .../structural}/viz/adapter.py.png | Bin .../structural}/viz/bridge.py.png | Bin .../structural}/viz/composite.py.png | Bin .../structural}/viz/decorator.py.png | Bin .../structural}/viz/facade.py.png | Bin .../structural}/viz/flyweight.py.png | Bin .../structural}/viz/front_controller.py.png | Bin .../structural}/viz/mvc.py.png | Bin .../structural}/viz/proxy.py.png | Bin requirements-dev.txt | 3 +++ setup.py | 14 ++++++++++++++ tests/{ => behavioral}/test_command.py | 8 ++++---- tests/{ => behavioral}/test_observer.py | 2 +- tests/{ => behavioral}/test_publish_subscribe.py | 2 +- tests/{ => behavioral}/test_state.py | 2 +- tests/{ => creational}/test_abstract_factory.py | 2 +- tests/{ => creational}/test_borg.py | 2 +- tests/{ => creational}/test_builder.py | 2 +- tests/{ => creational}/test_factory_method.py | 2 +- tests/{ => creational}/test_lazy.py | 2 +- tests/{ => creational}/test_pool.py | 2 +- tests/{ => creational}/test_prototype.py | 2 +- tests/{ => dft}/test_constructor_injection.py | 2 +- tests/{ => dft}/test_parameter_injection.py | 2 +- tests/{ => dft}/test_setter_injection.py | 2 +- tests/{ => structural}/test_adapter.py | 2 +- tests/{ => structural}/test_bridge.py | 2 +- tests/{ => structural}/test_decorator.py | 2 +- tests/{ => structural}/test_facade.py | 2 +- tests/{ => structural}/test_flyweight.py | 2 +- tests/{ => structural}/test_proxy.py | 2 +- tests/test_hsm.py | 2 +- tests/test_outputs.py | 8 ++++---- 107 files changed, 47 insertions(+), 35 deletions(-) rename {behavioral => patterns}/__init__.py (100%) rename {creational => patterns/behavioral}/__init__.py (100%) rename {behavioral => patterns/behavioral}/catalog.py (100%) rename {behavioral => patterns/behavioral}/chain.py (100%) rename {behavioral => patterns/behavioral}/chaining_method.py (100%) rename {behavioral => patterns/behavioral}/command.py (100%) rename {behavioral => patterns/behavioral}/iterator.py (100%) rename {behavioral => patterns/behavioral}/mediator.py (100%) rename {behavioral => patterns/behavioral}/memento.py (100%) rename {behavioral => patterns/behavioral}/observer.py (100%) rename {behavioral => patterns/behavioral}/publish_subscribe.py (100%) rename {behavioral => patterns/behavioral}/registry.py (100%) rename {behavioral => patterns/behavioral}/specification.py (100%) rename {behavioral => patterns/behavioral}/state.py (100%) rename {behavioral => patterns/behavioral}/strategy.py (100%) rename {behavioral => patterns/behavioral}/template.py (100%) rename {behavioral => patterns/behavioral}/visitor.py (100%) rename {behavioral => patterns/behavioral}/viz/catalog.py.png (100%) rename {behavioral => patterns/behavioral}/viz/chain.py.png (100%) rename {behavioral => patterns/behavioral}/viz/chaining_method.py.png (100%) rename {behavioral => patterns/behavioral}/viz/command.py.png (100%) rename {behavioral => patterns/behavioral}/viz/iterator.py.png (100%) rename {behavioral => patterns/behavioral}/viz/mediator.py.png (100%) rename {behavioral => patterns/behavioral}/viz/memento.py.png (100%) rename {behavioral => patterns/behavioral}/viz/observer.py.png (100%) rename {behavioral => patterns/behavioral}/viz/publish_subscribe.py.png (100%) rename {behavioral => patterns/behavioral}/viz/registry.py.png (100%) rename {behavioral => patterns/behavioral}/viz/specification.py.png (100%) rename {behavioral => patterns/behavioral}/viz/state.py.png (100%) rename {behavioral => patterns/behavioral}/viz/strategy.py.png (100%) rename {behavioral => patterns/behavioral}/viz/template.py.png (100%) rename {behavioral => patterns/behavioral}/viz/visitor.py.png (100%) rename {dft => patterns/creational}/__init__.py (100%) rename {creational => patterns/creational}/abstract_factory.py (100%) rename {creational => patterns/creational}/borg.py (100%) rename {creational => patterns/creational}/builder.py (100%) rename {creational => patterns/creational}/factory_method.py (100%) rename {creational => patterns/creational}/lazy_evaluation.py (100%) rename {creational => patterns/creational}/pool.py (100%) rename {creational => patterns/creational}/prototype.py (100%) rename {creational => patterns/creational}/viz/abstract_factory.py.png (100%) rename {creational => patterns/creational}/viz/borg.py.png (100%) rename {creational => patterns/creational}/viz/builder.py.png (100%) rename {creational => patterns/creational}/viz/factory_method.py.png (100%) rename {creational => patterns/creational}/viz/lazy_evaluation.py.png (100%) rename {creational => patterns/creational}/viz/pool.py.png (100%) rename {creational => patterns/creational}/viz/prototype.py.png (100%) rename {fundamental => patterns/dft}/__init__.py (100%) rename {dft => patterns/dft}/constructor_injection.py (100%) rename {dft => patterns/dft}/parameter_injection.py (100%) rename {dft => patterns/dft}/setter_injection.py (100%) rename {other => patterns/fundamental}/__init__.py (100%) rename {fundamental => patterns/fundamental}/delegation_pattern.py (100%) rename {fundamental => patterns/fundamental}/viz/delegation_pattern.py.png (100%) rename {other/hsm => patterns/other}/__init__.py (100%) rename {other => patterns/other}/blackboard.py (100%) rename {other => patterns/other}/graph_search.py (100%) rename {structural => patterns/other/hsm}/__init__.py (100%) rename {other => patterns/other}/hsm/classes_hsm.png (100%) rename {other => patterns/other}/hsm/classes_test_hsm.png (100%) rename {other => patterns/other}/hsm/hsm.py (100%) rename {structural => patterns/structural}/3-tier.py (100%) create mode 100644 patterns/structural/__init__.py rename {structural => patterns/structural}/adapter.py (100%) rename {structural => patterns/structural}/bridge.py (100%) rename {structural => patterns/structural}/composite.py (100%) rename {structural => patterns/structural}/decorator.py (100%) rename {structural => patterns/structural}/facade.py (100%) rename {structural => patterns/structural}/flyweight.py (100%) rename {structural => patterns/structural}/front_controller.py (100%) rename {structural => patterns/structural}/mvc.py (100%) rename {structural => patterns/structural}/proxy.py (100%) rename {structural => patterns/structural}/viz/3-tier.py.png (100%) rename {structural => patterns/structural}/viz/adapter.py.png (100%) rename {structural => patterns/structural}/viz/bridge.py.png (100%) rename {structural => patterns/structural}/viz/composite.py.png (100%) rename {structural => patterns/structural}/viz/decorator.py.png (100%) rename {structural => patterns/structural}/viz/facade.py.png (100%) rename {structural => patterns/structural}/viz/flyweight.py.png (100%) rename {structural => patterns/structural}/viz/front_controller.py.png (100%) rename {structural => patterns/structural}/viz/mvc.py.png (100%) rename {structural => patterns/structural}/viz/proxy.py.png (100%) create mode 100644 setup.py rename tests/{ => behavioral}/test_command.py (89%) rename tests/{ => behavioral}/test_observer.py (96%) rename tests/{ => behavioral}/test_publish_subscribe.py (97%) rename tests/{ => behavioral}/test_state.py (97%) rename tests/{ => creational}/test_abstract_factory.py (87%) rename tests/{ => creational}/test_borg.py (93%) rename tests/{ => creational}/test_builder.py (87%) rename tests/{ => creational}/test_factory_method.py (94%) rename tests/{ => creational}/test_lazy.py (95%) rename tests/{ => creational}/test_pool.py (97%) rename tests/{ => creational}/test_prototype.py (96%) rename tests/{ => dft}/test_constructor_injection.py (93%) rename tests/{ => dft}/test_parameter_injection.py (94%) rename tests/{ => dft}/test_setter_injection.py (94%) rename tests/{ => structural}/test_adapter.py (97%) rename tests/{ => structural}/test_bridge.py (95%) rename tests/{ => structural}/test_decorator.py (88%) rename tests/{ => structural}/test_facade.py (96%) rename tests/{ => structural}/test_flyweight.py (95%) rename tests/{ => structural}/test_proxy.py (98%) diff --git a/.travis.yml b/.travis.yml index c5435994e..f6ed9b0c2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,23 +6,18 @@ sudo: false python: - "2.7" - - "3.4" - "3.5" - "3.6" -# Disabled for now since cause more pain than gain -# - "pypy" -# - "pypy3" + - "3.7" cache: - pip install: - - travis_retry pip install -q codecov - - pip install flake8 - pip install -r requirements-dev.txt script: - - pytest --doctest-modules behavioral/ creational/ dft/ fundamental/ other/ structural/ # exclude tests/ + - pytest --doctest-modules patterns/ - pytest -s -vv --cov=. --log-level=INFO tests/ # Actually run all the scripts, contributing to coverage - PYTHONPATH=. ./run_all.sh diff --git a/behavioral/__init__.py b/patterns/__init__.py similarity index 100% rename from behavioral/__init__.py rename to patterns/__init__.py diff --git a/creational/__init__.py b/patterns/behavioral/__init__.py similarity index 100% rename from creational/__init__.py rename to patterns/behavioral/__init__.py diff --git a/behavioral/catalog.py b/patterns/behavioral/catalog.py similarity index 100% rename from behavioral/catalog.py rename to patterns/behavioral/catalog.py diff --git a/behavioral/chain.py b/patterns/behavioral/chain.py similarity index 100% rename from behavioral/chain.py rename to patterns/behavioral/chain.py diff --git a/behavioral/chaining_method.py b/patterns/behavioral/chaining_method.py similarity index 100% rename from behavioral/chaining_method.py rename to patterns/behavioral/chaining_method.py diff --git a/behavioral/command.py b/patterns/behavioral/command.py similarity index 100% rename from behavioral/command.py rename to patterns/behavioral/command.py diff --git a/behavioral/iterator.py b/patterns/behavioral/iterator.py similarity index 100% rename from behavioral/iterator.py rename to patterns/behavioral/iterator.py diff --git a/behavioral/mediator.py b/patterns/behavioral/mediator.py similarity index 100% rename from behavioral/mediator.py rename to patterns/behavioral/mediator.py diff --git a/behavioral/memento.py b/patterns/behavioral/memento.py similarity index 100% rename from behavioral/memento.py rename to patterns/behavioral/memento.py diff --git a/behavioral/observer.py b/patterns/behavioral/observer.py similarity index 100% rename from behavioral/observer.py rename to patterns/behavioral/observer.py diff --git a/behavioral/publish_subscribe.py b/patterns/behavioral/publish_subscribe.py similarity index 100% rename from behavioral/publish_subscribe.py rename to patterns/behavioral/publish_subscribe.py diff --git a/behavioral/registry.py b/patterns/behavioral/registry.py similarity index 100% rename from behavioral/registry.py rename to patterns/behavioral/registry.py diff --git a/behavioral/specification.py b/patterns/behavioral/specification.py similarity index 100% rename from behavioral/specification.py rename to patterns/behavioral/specification.py diff --git a/behavioral/state.py b/patterns/behavioral/state.py similarity index 100% rename from behavioral/state.py rename to patterns/behavioral/state.py diff --git a/behavioral/strategy.py b/patterns/behavioral/strategy.py similarity index 100% rename from behavioral/strategy.py rename to patterns/behavioral/strategy.py diff --git a/behavioral/template.py b/patterns/behavioral/template.py similarity index 100% rename from behavioral/template.py rename to patterns/behavioral/template.py diff --git a/behavioral/visitor.py b/patterns/behavioral/visitor.py similarity index 100% rename from behavioral/visitor.py rename to patterns/behavioral/visitor.py diff --git a/behavioral/viz/catalog.py.png b/patterns/behavioral/viz/catalog.py.png similarity index 100% rename from behavioral/viz/catalog.py.png rename to patterns/behavioral/viz/catalog.py.png diff --git a/behavioral/viz/chain.py.png b/patterns/behavioral/viz/chain.py.png similarity index 100% rename from behavioral/viz/chain.py.png rename to patterns/behavioral/viz/chain.py.png diff --git a/behavioral/viz/chaining_method.py.png b/patterns/behavioral/viz/chaining_method.py.png similarity index 100% rename from behavioral/viz/chaining_method.py.png rename to patterns/behavioral/viz/chaining_method.py.png diff --git a/behavioral/viz/command.py.png b/patterns/behavioral/viz/command.py.png similarity index 100% rename from behavioral/viz/command.py.png rename to patterns/behavioral/viz/command.py.png diff --git a/behavioral/viz/iterator.py.png b/patterns/behavioral/viz/iterator.py.png similarity index 100% rename from behavioral/viz/iterator.py.png rename to patterns/behavioral/viz/iterator.py.png diff --git a/behavioral/viz/mediator.py.png b/patterns/behavioral/viz/mediator.py.png similarity index 100% rename from behavioral/viz/mediator.py.png rename to patterns/behavioral/viz/mediator.py.png diff --git a/behavioral/viz/memento.py.png b/patterns/behavioral/viz/memento.py.png similarity index 100% rename from behavioral/viz/memento.py.png rename to patterns/behavioral/viz/memento.py.png diff --git a/behavioral/viz/observer.py.png b/patterns/behavioral/viz/observer.py.png similarity index 100% rename from behavioral/viz/observer.py.png rename to patterns/behavioral/viz/observer.py.png diff --git a/behavioral/viz/publish_subscribe.py.png b/patterns/behavioral/viz/publish_subscribe.py.png similarity index 100% rename from behavioral/viz/publish_subscribe.py.png rename to patterns/behavioral/viz/publish_subscribe.py.png diff --git a/behavioral/viz/registry.py.png b/patterns/behavioral/viz/registry.py.png similarity index 100% rename from behavioral/viz/registry.py.png rename to patterns/behavioral/viz/registry.py.png diff --git a/behavioral/viz/specification.py.png b/patterns/behavioral/viz/specification.py.png similarity index 100% rename from behavioral/viz/specification.py.png rename to patterns/behavioral/viz/specification.py.png diff --git a/behavioral/viz/state.py.png b/patterns/behavioral/viz/state.py.png similarity index 100% rename from behavioral/viz/state.py.png rename to patterns/behavioral/viz/state.py.png diff --git a/behavioral/viz/strategy.py.png b/patterns/behavioral/viz/strategy.py.png similarity index 100% rename from behavioral/viz/strategy.py.png rename to patterns/behavioral/viz/strategy.py.png diff --git a/behavioral/viz/template.py.png b/patterns/behavioral/viz/template.py.png similarity index 100% rename from behavioral/viz/template.py.png rename to patterns/behavioral/viz/template.py.png diff --git a/behavioral/viz/visitor.py.png b/patterns/behavioral/viz/visitor.py.png similarity index 100% rename from behavioral/viz/visitor.py.png rename to patterns/behavioral/viz/visitor.py.png diff --git a/dft/__init__.py b/patterns/creational/__init__.py similarity index 100% rename from dft/__init__.py rename to patterns/creational/__init__.py diff --git a/creational/abstract_factory.py b/patterns/creational/abstract_factory.py similarity index 100% rename from creational/abstract_factory.py rename to patterns/creational/abstract_factory.py diff --git a/creational/borg.py b/patterns/creational/borg.py similarity index 100% rename from creational/borg.py rename to patterns/creational/borg.py diff --git a/creational/builder.py b/patterns/creational/builder.py similarity index 100% rename from creational/builder.py rename to patterns/creational/builder.py diff --git a/creational/factory_method.py b/patterns/creational/factory_method.py similarity index 100% rename from creational/factory_method.py rename to patterns/creational/factory_method.py diff --git a/creational/lazy_evaluation.py b/patterns/creational/lazy_evaluation.py similarity index 100% rename from creational/lazy_evaluation.py rename to patterns/creational/lazy_evaluation.py diff --git a/creational/pool.py b/patterns/creational/pool.py similarity index 100% rename from creational/pool.py rename to patterns/creational/pool.py diff --git a/creational/prototype.py b/patterns/creational/prototype.py similarity index 100% rename from creational/prototype.py rename to patterns/creational/prototype.py diff --git a/creational/viz/abstract_factory.py.png b/patterns/creational/viz/abstract_factory.py.png similarity index 100% rename from creational/viz/abstract_factory.py.png rename to patterns/creational/viz/abstract_factory.py.png diff --git a/creational/viz/borg.py.png b/patterns/creational/viz/borg.py.png similarity index 100% rename from creational/viz/borg.py.png rename to patterns/creational/viz/borg.py.png diff --git a/creational/viz/builder.py.png b/patterns/creational/viz/builder.py.png similarity index 100% rename from creational/viz/builder.py.png rename to patterns/creational/viz/builder.py.png diff --git a/creational/viz/factory_method.py.png b/patterns/creational/viz/factory_method.py.png similarity index 100% rename from creational/viz/factory_method.py.png rename to patterns/creational/viz/factory_method.py.png diff --git a/creational/viz/lazy_evaluation.py.png b/patterns/creational/viz/lazy_evaluation.py.png similarity index 100% rename from creational/viz/lazy_evaluation.py.png rename to patterns/creational/viz/lazy_evaluation.py.png diff --git a/creational/viz/pool.py.png b/patterns/creational/viz/pool.py.png similarity index 100% rename from creational/viz/pool.py.png rename to patterns/creational/viz/pool.py.png diff --git a/creational/viz/prototype.py.png b/patterns/creational/viz/prototype.py.png similarity index 100% rename from creational/viz/prototype.py.png rename to patterns/creational/viz/prototype.py.png diff --git a/fundamental/__init__.py b/patterns/dft/__init__.py similarity index 100% rename from fundamental/__init__.py rename to patterns/dft/__init__.py diff --git a/dft/constructor_injection.py b/patterns/dft/constructor_injection.py similarity index 100% rename from dft/constructor_injection.py rename to patterns/dft/constructor_injection.py diff --git a/dft/parameter_injection.py b/patterns/dft/parameter_injection.py similarity index 100% rename from dft/parameter_injection.py rename to patterns/dft/parameter_injection.py diff --git a/dft/setter_injection.py b/patterns/dft/setter_injection.py similarity index 100% rename from dft/setter_injection.py rename to patterns/dft/setter_injection.py diff --git a/other/__init__.py b/patterns/fundamental/__init__.py similarity index 100% rename from other/__init__.py rename to patterns/fundamental/__init__.py diff --git a/fundamental/delegation_pattern.py b/patterns/fundamental/delegation_pattern.py similarity index 100% rename from fundamental/delegation_pattern.py rename to patterns/fundamental/delegation_pattern.py diff --git a/fundamental/viz/delegation_pattern.py.png b/patterns/fundamental/viz/delegation_pattern.py.png similarity index 100% rename from fundamental/viz/delegation_pattern.py.png rename to patterns/fundamental/viz/delegation_pattern.py.png diff --git a/other/hsm/__init__.py b/patterns/other/__init__.py similarity index 100% rename from other/hsm/__init__.py rename to patterns/other/__init__.py diff --git a/other/blackboard.py b/patterns/other/blackboard.py similarity index 100% rename from other/blackboard.py rename to patterns/other/blackboard.py diff --git a/other/graph_search.py b/patterns/other/graph_search.py similarity index 100% rename from other/graph_search.py rename to patterns/other/graph_search.py diff --git a/structural/__init__.py b/patterns/other/hsm/__init__.py similarity index 100% rename from structural/__init__.py rename to patterns/other/hsm/__init__.py diff --git a/other/hsm/classes_hsm.png b/patterns/other/hsm/classes_hsm.png similarity index 100% rename from other/hsm/classes_hsm.png rename to patterns/other/hsm/classes_hsm.png diff --git a/other/hsm/classes_test_hsm.png b/patterns/other/hsm/classes_test_hsm.png similarity index 100% rename from other/hsm/classes_test_hsm.png rename to patterns/other/hsm/classes_test_hsm.png diff --git a/other/hsm/hsm.py b/patterns/other/hsm/hsm.py similarity index 100% rename from other/hsm/hsm.py rename to patterns/other/hsm/hsm.py diff --git a/structural/3-tier.py b/patterns/structural/3-tier.py similarity index 100% rename from structural/3-tier.py rename to patterns/structural/3-tier.py diff --git a/patterns/structural/__init__.py b/patterns/structural/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/structural/adapter.py b/patterns/structural/adapter.py similarity index 100% rename from structural/adapter.py rename to patterns/structural/adapter.py diff --git a/structural/bridge.py b/patterns/structural/bridge.py similarity index 100% rename from structural/bridge.py rename to patterns/structural/bridge.py diff --git a/structural/composite.py b/patterns/structural/composite.py similarity index 100% rename from structural/composite.py rename to patterns/structural/composite.py diff --git a/structural/decorator.py b/patterns/structural/decorator.py similarity index 100% rename from structural/decorator.py rename to patterns/structural/decorator.py diff --git a/structural/facade.py b/patterns/structural/facade.py similarity index 100% rename from structural/facade.py rename to patterns/structural/facade.py diff --git a/structural/flyweight.py b/patterns/structural/flyweight.py similarity index 100% rename from structural/flyweight.py rename to patterns/structural/flyweight.py diff --git a/structural/front_controller.py b/patterns/structural/front_controller.py similarity index 100% rename from structural/front_controller.py rename to patterns/structural/front_controller.py diff --git a/structural/mvc.py b/patterns/structural/mvc.py similarity index 100% rename from structural/mvc.py rename to patterns/structural/mvc.py diff --git a/structural/proxy.py b/patterns/structural/proxy.py similarity index 100% rename from structural/proxy.py rename to patterns/structural/proxy.py diff --git a/structural/viz/3-tier.py.png b/patterns/structural/viz/3-tier.py.png similarity index 100% rename from structural/viz/3-tier.py.png rename to patterns/structural/viz/3-tier.py.png diff --git a/structural/viz/adapter.py.png b/patterns/structural/viz/adapter.py.png similarity index 100% rename from structural/viz/adapter.py.png rename to patterns/structural/viz/adapter.py.png diff --git a/structural/viz/bridge.py.png b/patterns/structural/viz/bridge.py.png similarity index 100% rename from structural/viz/bridge.py.png rename to patterns/structural/viz/bridge.py.png diff --git a/structural/viz/composite.py.png b/patterns/structural/viz/composite.py.png similarity index 100% rename from structural/viz/composite.py.png rename to patterns/structural/viz/composite.py.png diff --git a/structural/viz/decorator.py.png b/patterns/structural/viz/decorator.py.png similarity index 100% rename from structural/viz/decorator.py.png rename to patterns/structural/viz/decorator.py.png diff --git a/structural/viz/facade.py.png b/patterns/structural/viz/facade.py.png similarity index 100% rename from structural/viz/facade.py.png rename to patterns/structural/viz/facade.py.png diff --git a/structural/viz/flyweight.py.png b/patterns/structural/viz/flyweight.py.png similarity index 100% rename from structural/viz/flyweight.py.png rename to patterns/structural/viz/flyweight.py.png diff --git a/structural/viz/front_controller.py.png b/patterns/structural/viz/front_controller.py.png similarity index 100% rename from structural/viz/front_controller.py.png rename to patterns/structural/viz/front_controller.py.png diff --git a/structural/viz/mvc.py.png b/patterns/structural/viz/mvc.py.png similarity index 100% rename from structural/viz/mvc.py.png rename to patterns/structural/viz/mvc.py.png diff --git a/structural/viz/proxy.py.png b/patterns/structural/viz/proxy.py.png similarity index 100% rename from structural/viz/proxy.py.png rename to patterns/structural/viz/proxy.py.png diff --git a/requirements-dev.txt b/requirements-dev.txt index bcf65b842..f6cec75db 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,2 +1,5 @@ +-e . pytest~=4.1 pytest-cov~=2.6 +flake8~=3.6 +codecov~=2.0 diff --git a/setup.py b/setup.py new file mode 100644 index 000000000..7033e9305 --- /dev/null +++ b/setup.py @@ -0,0 +1,14 @@ +from setuptools import setup + +setup( + name='python-patterns', + description='A collection of design patterns and idioms in Python.', + classifiers=[ + 'Programming Language :: Python :: 2', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + ], +) \ No newline at end of file diff --git a/tests/test_command.py b/tests/behavioral/test_command.py similarity index 89% rename from tests/test_command.py rename to tests/behavioral/test_command.py index c992295af..2532af029 100644 --- a/tests/test_command.py +++ b/tests/behavioral/test_command.py @@ -3,7 +3,7 @@ import os import shutil import unittest -from behavioral.command import MoveFileCommand +from patterns.behavioral.command import MoveFileCommand class CommandTest(unittest.TestCase): @@ -23,8 +23,8 @@ def setUpClass(self): - get the temporary test directory - and initializes the command stack. """ - os.mkdir('tests/test_command') - open('tests/test_command/foo.txt', 'w').close() + os.mkdir('tests/behavioral/test_command') + open('tests/behavioral/test_command/foo.txt', 'w').close() self.__get_test_directory() self.command_stack = [] self.command_stack.append( @@ -56,4 +56,4 @@ def tearDownClass(self): """ Remove the temporary directory /test_command and its content. """ - shutil.rmtree('tests/test_command') + shutil.rmtree('tests/behavioral/test_command') diff --git a/tests/test_observer.py b/tests/behavioral/test_observer.py similarity index 96% rename from tests/test_observer.py rename to tests/behavioral/test_observer.py index 669a00ec4..2264a9ee2 100644 --- a/tests/test_observer.py +++ b/tests/behavioral/test_observer.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from behavioral.observer import Subject, Data, DecimalViewer, HexViewer +from patterns.behavioral.observer import Subject, Data, DecimalViewer, HexViewer try: from unittest.mock import patch diff --git a/tests/test_publish_subscribe.py b/tests/behavioral/test_publish_subscribe.py similarity index 97% rename from tests/test_publish_subscribe.py rename to tests/behavioral/test_publish_subscribe.py index e1da4b636..20bd93c54 100644 --- a/tests/test_publish_subscribe.py +++ b/tests/behavioral/test_publish_subscribe.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from behavioral.publish_subscribe import Provider, Publisher, Subscriber +from patterns.behavioral.publish_subscribe import Provider, Publisher, Subscriber try: from unittest.mock import patch, call diff --git a/tests/test_state.py b/tests/behavioral/test_state.py similarity index 97% rename from tests/test_state.py rename to tests/behavioral/test_state.py index 1f5f8c8c0..4009820b0 100644 --- a/tests/test_state.py +++ b/tests/behavioral/test_state.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from behavioral.state import Radio +from patterns.behavioral.state import Radio class RadioTest(unittest.TestCase): diff --git a/tests/test_abstract_factory.py b/tests/creational/test_abstract_factory.py similarity index 87% rename from tests/test_abstract_factory.py rename to tests/creational/test_abstract_factory.py index 28a75793f..5ecaf00ae 100644 --- a/tests/test_abstract_factory.py +++ b/tests/creational/test_abstract_factory.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from creational.abstract_factory import PetShop, Dog +from patterns.creational.abstract_factory import PetShop, Dog try: from unittest.mock import patch diff --git a/tests/test_borg.py b/tests/creational/test_borg.py similarity index 93% rename from tests/test_borg.py rename to tests/creational/test_borg.py index 22d33b5f7..62e9efe43 100644 --- a/tests/test_borg.py +++ b/tests/creational/test_borg.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from creational.borg import Borg, YourBorg +from patterns.creational.borg import Borg, YourBorg class BorgTest(unittest.TestCase): diff --git a/tests/test_builder.py b/tests/creational/test_builder.py similarity index 87% rename from tests/test_builder.py rename to tests/creational/test_builder.py index f7873ca1f..4b63531a7 100644 --- a/tests/test_builder.py +++ b/tests/creational/test_builder.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from creational.builder import construct_building, House, Flat, ComplexHouse +from patterns.creational.builder import construct_building, House, Flat, ComplexHouse class TestSimple(unittest.TestCase): diff --git a/tests/test_factory_method.py b/tests/creational/test_factory_method.py similarity index 94% rename from tests/test_factory_method.py rename to tests/creational/test_factory_method.py index e06a3eaf4..dd6ae66e6 100644 --- a/tests/test_factory_method.py +++ b/tests/creational/test_factory_method.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from creational.factory_method import get_localizer +from patterns.creational.factory_method import get_localizer class TestLocalizer(unittest.TestCase): diff --git a/tests/test_lazy.py b/tests/creational/test_lazy.py similarity index 95% rename from tests/test_lazy.py rename to tests/creational/test_lazy.py index df44e9e29..c61ee9a16 100644 --- a/tests/test_lazy.py +++ b/tests/creational/test_lazy.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- from __future__ import print_function import unittest -from creational.lazy_evaluation import Person +from patterns.creational.lazy_evaluation import Person class TestDynamicExpanding(unittest.TestCase): diff --git a/tests/test_pool.py b/tests/creational/test_pool.py similarity index 97% rename from tests/test_pool.py rename to tests/creational/test_pool.py index 0b579de3c..1217ee2cd 100644 --- a/tests/test_pool.py +++ b/tests/creational/test_pool.py @@ -6,7 +6,7 @@ import queue except ImportError: # python 2.x compatibility import Queue as queue -from creational.pool import ObjectPool +from patterns.creational.pool import ObjectPool class TestPool(unittest.TestCase): diff --git a/tests/test_prototype.py b/tests/creational/test_prototype.py similarity index 96% rename from tests/test_prototype.py rename to tests/creational/test_prototype.py index 6ebcfed7a..2e462d1c2 100644 --- a/tests/test_prototype.py +++ b/tests/creational/test_prototype.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from creational.prototype import Prototype, PrototypeDispatcher +from patterns.creational.prototype import Prototype, PrototypeDispatcher class TestPrototypeFeatures(unittest.TestCase): diff --git a/tests/test_constructor_injection.py b/tests/dft/test_constructor_injection.py similarity index 93% rename from tests/test_constructor_injection.py rename to tests/dft/test_constructor_injection.py index b70fd9be9..6ee836019 100644 --- a/tests/test_constructor_injection.py +++ b/tests/dft/test_constructor_injection.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- import unittest -from dft.constructor_injection import TimeDisplay, MidnightTimeProvider, ProductionCodeTimeProvider, datetime +from patterns.dft.constructor_injection import TimeDisplay, MidnightTimeProvider, ProductionCodeTimeProvider, datetime """ Port of the Java example of "Constructor Injection" in diff --git a/tests/test_parameter_injection.py b/tests/dft/test_parameter_injection.py similarity index 94% rename from tests/test_parameter_injection.py rename to tests/dft/test_parameter_injection.py index 80577b1b1..da340b937 100644 --- a/tests/test_parameter_injection.py +++ b/tests/dft/test_parameter_injection.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- import unittest -from dft.parameter_injection import TimeDisplay, MidnightTimeProvider, ProductionCodeTimeProvider, datetime +from patterns.dft.parameter_injection import TimeDisplay, MidnightTimeProvider, ProductionCodeTimeProvider, datetime """ Port of the Java example of "Parameter Injection" in diff --git a/tests/test_setter_injection.py b/tests/dft/test_setter_injection.py similarity index 94% rename from tests/test_setter_injection.py rename to tests/dft/test_setter_injection.py index da8957281..fce7b2c9f 100644 --- a/tests/test_setter_injection.py +++ b/tests/dft/test_setter_injection.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- import unittest -from dft.setter_injection import TimeDisplay, MidnightTimeProvider, ProductionCodeTimeProvider, datetime +from patterns.dft.setter_injection import TimeDisplay, MidnightTimeProvider, ProductionCodeTimeProvider, datetime """ Port of the Java example of "Setter Injection" in diff --git a/tests/test_adapter.py b/tests/structural/test_adapter.py similarity index 97% rename from tests/test_adapter.py rename to tests/structural/test_adapter.py index 3da8ea9ba..667c2fb53 100644 --- a/tests/test_adapter.py +++ b/tests/structural/test_adapter.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from structural.adapter import Dog, Cat, Human, Car, Adapter +from patterns.structural.adapter import Dog, Cat, Human, Car, Adapter class ClassTest(unittest.TestCase): diff --git a/tests/test_bridge.py b/tests/structural/test_bridge.py similarity index 95% rename from tests/test_bridge.py rename to tests/structural/test_bridge.py index e127c76d8..5541624c9 100644 --- a/tests/test_bridge.py +++ b/tests/structural/test_bridge.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from structural.bridge import DrawingAPI1, DrawingAPI2, CircleShape +from patterns.structural.bridge import DrawingAPI1, DrawingAPI2, CircleShape try: from unittest.mock import patch diff --git a/tests/test_decorator.py b/tests/structural/test_decorator.py similarity index 88% rename from tests/test_decorator.py rename to tests/structural/test_decorator.py index 583864461..2b6933c7f 100644 --- a/tests/test_decorator.py +++ b/tests/structural/test_decorator.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from structural.decorator import TextTag, BoldWrapper, ItalicWrapper +from patterns.structural.decorator import TextTag, BoldWrapper, ItalicWrapper class TestTextWrapping(unittest.TestCase): diff --git a/tests/test_facade.py b/tests/structural/test_facade.py similarity index 96% rename from tests/test_facade.py rename to tests/structural/test_facade.py index 344e73968..a3765d28a 100644 --- a/tests/test_facade.py +++ b/tests/structural/test_facade.py @@ -7,7 +7,7 @@ from io import StringIO except ImportError: from StringIO import StringIO -from structural.facade import TestRunner, TC1, TC2, TC3 +from patterns.structural.facade import TestRunner, TC1, TC2, TC3 class TestRunnerFacilities(unittest.TestCase): diff --git a/tests/test_flyweight.py b/tests/structural/test_flyweight.py similarity index 95% rename from tests/test_flyweight.py rename to tests/structural/test_flyweight.py index 4da3564f4..82cdefea5 100644 --- a/tests/test_flyweight.py +++ b/tests/structural/test_flyweight.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from structural.flyweight import Card +from patterns.structural.flyweight import Card class TestCard(unittest.TestCase): diff --git a/tests/test_proxy.py b/tests/structural/test_proxy.py similarity index 98% rename from tests/test_proxy.py rename to tests/structural/test_proxy.py index a296995b5..d8ab44fb5 100644 --- a/tests/test_proxy.py +++ b/tests/structural/test_proxy.py @@ -3,7 +3,7 @@ import sys from time import time import unittest -from structural.proxy import Proxy, NoTalkProxy +from patterns.structural.proxy import Proxy, NoTalkProxy if sys.version_info[0] == 2: from StringIO import StringIO diff --git a/tests/test_hsm.py b/tests/test_hsm.py index 71c439ae2..a03d1f590 100644 --- a/tests/test_hsm.py +++ b/tests/test_hsm.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest -from other.hsm.hsm import ( +from patterns.other.hsm.hsm import ( HierachicalStateMachine, UnsupportedMessageType, UnsupportedState, diff --git a/tests/test_outputs.py b/tests/test_outputs.py index 084571d32..c68b7120d 100644 --- a/tests/test_outputs.py +++ b/tests/test_outputs.py @@ -8,10 +8,10 @@ import pytest -from behavioral.visitor import main as visitor_main -from behavioral.visitor import OUTPUT as visitor_output -from behavioral.strategy import main as strategy_main -from behavioral.strategy import OUTPUT as strategy_output +from patterns.behavioral.visitor import main as visitor_main +from patterns.behavioral.visitor import OUTPUT as visitor_output +from patterns.behavioral.strategy import main as strategy_main +from patterns.behavioral.strategy import OUTPUT as strategy_output @pytest.mark.skipif(sys.version_info < (3,4), reason="requires python3.4 or higher") From af12e8fc20000af4ad73fa13758ea76ba66ca118 Mon Sep 17 00:00:00 2001 From: Grygorii Iermolenko Date: Sun, 13 Jan 2019 17:02:28 +0200 Subject: [PATCH 2/2] remove 3.7 from CI, fix flake warnings --- .travis.yml | 2 +- setup.py | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index f6ed9b0c2..9c94e4347 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,9 +6,9 @@ sudo: false python: - "2.7" + - "3.4" - "3.5" - "3.6" - - "3.7" cache: - pip diff --git a/setup.py b/setup.py index 7033e9305..3b0136779 100644 --- a/setup.py +++ b/setup.py @@ -1,14 +1,14 @@ from setuptools import setup setup( - name='python-patterns', - description='A collection of design patterns and idioms in Python.', + name="python-patterns", + description="A collection of design patterns and idioms in Python.", classifiers=[ - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", ], -) \ No newline at end of file +)