From 58569ffe4106aa3930227b93256a75117bdbfd60 Mon Sep 17 00:00:00 2001 From: jinder1s Date: Mon, 10 Aug 2020 13:16:36 -0400 Subject: [PATCH 1/2] Constraining stevedore<2.0.0 The version>=2.0.0 require python3.6 or higher. Constraining this cause alot of our system still uses python 3.5 --- requirements/constraints.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 9dd002c7..e2b57b4d 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -14,3 +14,6 @@ Django<2.3 # to stay on LTS version mock<4.0 # requires python>3.5 zipp<2.0 # newer versions require python>3.5 +# stevedore 2.0.0 requires python >= 3.6 +stevedore<2.0.0 + From 0adafd260cedb8aed052190dc49a556a3b6f5968 Mon Sep 17 00:00:00 2001 From: jinder1s Date: Mon, 10 Aug 2020 13:16:53 -0400 Subject: [PATCH 2/2] Adding plugin api in __init__.py --- CHANGELOG.rst | 6 ++++++ README.rst | 5 +++++ edx_django_utils/__init__.py | 2 +- edx_django_utils/plugins/__init__.py | 14 ++++++++++++++ edx_django_utils/plugins/plugin_apps.py | 2 ++ edx_django_utils/plugins/plugin_contexts.py | 2 ++ edx_django_utils/plugins/plugin_manager.py | 2 ++ edx_django_utils/plugins/plugin_settings.py | 2 ++ edx_django_utils/plugins/plugin_signals.py | 2 ++ edx_django_utils/plugins/plugin_urls.py | 2 ++ edx_django_utils/plugins/registry.py | 2 ++ edx_django_utils/plugins/utils.py | 2 ++ 12 files changed, 42 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index e828f142..14ba73c8 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -16,6 +16,12 @@ Unreleased ~~~~~~~~~~ +[3.7.1] - 2020-08-10 +~~~~~~~~~~~~~~~~~~~~ + +* Exposing all public functions in edx_django_utils/plugins directory in its __init__.py file. + - this was done to keep inline with standard/pattern used in other packages in edx_django_utils + [3.7.0] - 2020-08-10 ~~~~~~~~~~~~~~~~~~~~ * Adding Plugin infrastructure diff --git a/README.rst b/README.rst index f22e282c..89cda90e 100644 --- a/README.rst +++ b/README.rst @@ -35,6 +35,11 @@ The full documentation is in the docs directory. TODO: Publish to https://edx-django-utils.readthedocs.org. +Design Pattern followed by packages +----------------------------------- + +All tools in edx_django_utils should expose their public api in their __init__.py files. This entails adding to __init__.py all functions/classes/constants/objects that are intended to be used by users of library. + License ------- diff --git a/edx_django_utils/__init__.py b/edx_django_utils/__init__.py index ee42098b..70500a8a 100644 --- a/edx_django_utils/__init__.py +++ b/edx_django_utils/__init__.py @@ -2,7 +2,7 @@ EdX utilities for Django Application development.. """ -__version__ = "3.7.0" +__version__ = "3.7.1" default_app_config = ( "edx_django_utils.apps.EdxDjangoUtilsConfig" diff --git a/edx_django_utils/plugins/__init__.py b/edx_django_utils/plugins/__init__.py index e69de29b..d7d293d8 100644 --- a/edx_django_utils/plugins/__init__.py +++ b/edx_django_utils/plugins/__init__.py @@ -0,0 +1,14 @@ +""" +Plugins infrastructure + +See README.rst for details. +""" + +from .constants import PluginSettings, PluginURLs +from .plugin_apps import get_apps +from .plugin_contexts import get_plugins_view_context +from .plugin_manager import PluginManager +from .plugin_settings import add_plugins +from .plugin_signals import connect_receivers +from .plugin_urls import get_patterns +from .registry import get_app_configs diff --git a/edx_django_utils/plugins/plugin_apps.py b/edx_django_utils/plugins/plugin_apps.py index 87af45c8..f73fa351 100644 --- a/edx_django_utils/plugins/plugin_apps.py +++ b/edx_django_utils/plugins/plugin_apps.py @@ -1,5 +1,7 @@ """ Methods to get plugin apps + +Please remember to expose any new public methods in the `__init__.py` file. """ from logging import getLogger diff --git a/edx_django_utils/plugins/plugin_contexts.py b/edx_django_utils/plugins/plugin_contexts.py index ae0daf46..b425333c 100644 --- a/edx_django_utils/plugins/plugin_contexts.py +++ b/edx_django_utils/plugins/plugin_contexts.py @@ -1,5 +1,7 @@ """ Various functions to get view contexts + +Please remember to expose any new public methods in the `__init__.py` file. """ import functools from importlib import import_module diff --git a/edx_django_utils/plugins/plugin_manager.py b/edx_django_utils/plugins/plugin_manager.py index 1283598b..86142b9d 100644 --- a/edx_django_utils/plugins/plugin_manager.py +++ b/edx_django_utils/plugins/plugin_manager.py @@ -1,5 +1,7 @@ """ Adds support for first class plugins that can be added to an IDA. + +Please remember to expose any new public methods in the `__init__.py` file. """ import functools diff --git a/edx_django_utils/plugins/plugin_settings.py b/edx_django_utils/plugins/plugin_settings.py index cc176bf2..acf31906 100644 --- a/edx_django_utils/plugins/plugin_settings.py +++ b/edx_django_utils/plugins/plugin_settings.py @@ -1,5 +1,7 @@ """ Functions that deal with settings related to plugins + +Please remember to expose any new public methods in the `__init__.py` file. """ from logging import getLogger diff --git a/edx_django_utils/plugins/plugin_signals.py b/edx_django_utils/plugins/plugin_signals.py index 6cfaf23d..6a64bdc5 100644 --- a/edx_django_utils/plugins/plugin_signals.py +++ b/edx_django_utils/plugins/plugin_signals.py @@ -1,5 +1,7 @@ """ Allows plugins to work with django signals + +Please remember to expose any new public methods in the `__init__.py` file. """ from logging import getLogger diff --git a/edx_django_utils/plugins/plugin_urls.py b/edx_django_utils/plugins/plugin_urls.py index e3da3eb8..ee26579e 100644 --- a/edx_django_utils/plugins/plugin_urls.py +++ b/edx_django_utils/plugins/plugin_urls.py @@ -1,5 +1,7 @@ """ Urls utility functions + +Please remember to expose any new public methods in the `__init__.py` file. """ from logging import getLogger diff --git a/edx_django_utils/plugins/registry.py b/edx_django_utils/plugins/registry.py index 321fcf21..0f956aea 100644 --- a/edx_django_utils/plugins/registry.py +++ b/edx_django_utils/plugins/registry.py @@ -1,5 +1,7 @@ """ Code to create Registry of django app plugins + +Please remember to expose any new public methods in the `__init__.py` file. """ import six diff --git a/edx_django_utils/plugins/utils.py b/edx_django_utils/plugins/utils.py index 38f03f6b..6b69bc55 100644 --- a/edx_django_utils/plugins/utils.py +++ b/edx_django_utils/plugins/utils.py @@ -1,5 +1,7 @@ """ utils to help with imports + +Please remember to expose any new public methods in the `__init__.py` file. """ from importlib import import_module as system_import_module