edx-ace 1.7.0__tar.gz → 1.9.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. {edx-ace-1.7.0 → edx-ace-1.9.1}/CHANGELOG.rst +6 -0
  2. {edx-ace-1.7.0/edx_ace.egg-info → edx-ace-1.9.1}/PKG-INFO +9 -3
  3. {edx-ace-1.7.0 → edx-ace-1.9.1}/README.rst +1 -1
  4. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/__init__.py +1 -1
  5. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/channel/django_email.py +1 -0
  6. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/message.py +7 -0
  7. edx-ace-1.9.1/edx_ace/monitoring.py +9 -0
  8. {edx-ace-1.7.0 → edx-ace-1.9.1/edx_ace.egg-info}/PKG-INFO +9 -3
  9. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace.egg-info/requires.txt +1 -0
  10. {edx-ace-1.7.0 → edx-ace-1.9.1}/requirements/base.in +1 -0
  11. {edx-ace-1.7.0 → edx-ace-1.9.1}/requirements/constraints.txt +2 -0
  12. {edx-ace-1.7.0 → edx-ace-1.9.1}/setup.py +1 -1
  13. edx-ace-1.7.0/edx_ace/monitoring.py +0 -17
  14. {edx-ace-1.7.0 → edx-ace-1.9.1}/LICENSE.txt +0 -0
  15. {edx-ace-1.7.0 → edx-ace-1.9.1}/MANIFEST.in +0 -0
  16. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/ace.py +0 -0
  17. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/apps.py +0 -0
  18. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/channel/__init__.py +0 -0
  19. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/channel/braze.py +0 -0
  20. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/channel/file.py +0 -0
  21. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/channel/mixins.py +0 -0
  22. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/channel/sailthru.py +0 -0
  23. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/delivery.py +0 -0
  24. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/errors.py +0 -0
  25. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/policy.py +0 -0
  26. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/presentation.py +0 -0
  27. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/recipient.py +0 -0
  28. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/recipient_resolver.py +0 -0
  29. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/renderers.py +0 -0
  30. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/serialization.py +0 -0
  31. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/templatetags/acetags.py +0 -0
  32. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/test_utils/__init__.py +0 -0
  33. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/tests/channel/test_braze.py +0 -0
  34. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/tests/channel/test_channel_helpers.py +0 -0
  35. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/tests/channel/test_django_email.py +0 -0
  36. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/tests/channel/test_file_email.py +0 -0
  37. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/tests/channel/test_sailthru.py +0 -0
  38. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/tests/test_ace.py +0 -0
  39. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/tests/test_date.py +0 -0
  40. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/tests/test_delivery.py +0 -0
  41. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/tests/test_message.py +0 -0
  42. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/tests/test_policy.py +0 -0
  43. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/tests/test_presentation.py +0 -0
  44. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/tests/test_templates/testapp/edx_ace/testmessage/email/body.html +0 -0
  45. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/tests/test_templates/testapp/edx_ace/testmessage/email/head.html +0 -0
  46. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/utils/__init__.py +0 -0
  47. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/utils/date.py +0 -0
  48. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/utils/once.py +0 -0
  49. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace/utils/plugins.py +0 -0
  50. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace.egg-info/SOURCES.txt +0 -0
  51. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace.egg-info/dependency_links.txt +0 -0
  52. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace.egg-info/entry_points.txt +0 -0
  53. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace.egg-info/not-zip-safe +0 -0
  54. {edx-ace-1.7.0 → edx-ace-1.9.1}/edx_ace.egg-info/top_level.txt +0 -0
  55. {edx-ace-1.7.0 → edx-ace-1.9.1}/setup.cfg +0 -0
@@ -14,6 +14,12 @@ Change Log
14
14
  Unreleased
15
15
  ~~~~~~~~~~
16
16
 
17
+ [1.8.0] - 2024-03-06
18
+ ~~~~~~~~~~~~~~~~~~~~
19
+ * Added support for ``Python 3.12``
20
+ * Dropped support for ``Django 3.2``
21
+
22
+
17
23
  [1.7.0] - 2023-07-21
18
24
  ~~~~~~~~~~~~~~~~~~~~
19
25
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: edx-ace
3
- Version: 1.7.0
3
+ Version: 1.9.1
4
4
  Summary: Framework for Messaging
5
5
  Home-page: https://github.com/openedx/edx-ace
6
6
  Author: edX
@@ -103,7 +103,7 @@ Description: edX Automated Communication Engine (A.C.E.)
103
103
  Reporting Security Issues
104
104
  =========================
105
105
 
106
- Please do not report security issues in public. Please email security@tcril.org.
106
+ Please do not report security issues in public. Please email security@openedx.org.
107
107
 
108
108
  .. |pypi-badge| image:: https://img.shields.io/pypi/v/edx-ace.svg
109
109
  :target: https://pypi.python.org/pypi/edx-ace/
@@ -157,6 +157,12 @@ Description: edX Automated Communication Engine (A.C.E.)
157
157
  Unreleased
158
158
  ~~~~~~~~~~
159
159
 
160
+ [1.8.0] - 2024-03-06
161
+ ~~~~~~~~~~~~~~~~~~~~
162
+ * Added support for ``Python 3.12``
163
+ * Dropped support for ``Django 3.2``
164
+
165
+
160
166
  [1.7.0] - 2023-07-21
161
167
  ~~~~~~~~~~~~~~~~~~~~
162
168
 
@@ -298,12 +304,12 @@ Keywords: Django edx
298
304
  Platform: UNKNOWN
299
305
  Classifier: Development Status :: 3 - Alpha
300
306
  Classifier: Framework :: Django
301
- Classifier: Framework :: Django :: 3.2
302
307
  Classifier: Framework :: Django :: 4.2
303
308
  Classifier: Intended Audience :: Developers
304
309
  Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
305
310
  Classifier: Natural Language :: English
306
311
  Classifier: Programming Language :: Python :: 3
307
312
  Classifier: Programming Language :: Python :: 3.8
313
+ Classifier: Programming Language :: Python :: 3.12
308
314
  Description-Content-Type: text/x-rst
309
315
  Provides-Extra: sailthru
@@ -95,7 +95,7 @@ file in this repo.
95
95
  Reporting Security Issues
96
96
  =========================
97
97
 
98
- Please do not report security issues in public. Please email security@tcril.org.
98
+ Please do not report security issues in public. Please email security@openedx.org.
99
99
 
100
100
  .. |pypi-badge| image:: https://img.shields.io/pypi/v/edx-ace.svg
101
101
  :target: https://pypi.python.org/pypi/edx-ace/
@@ -13,7 +13,7 @@ from .policy import Policy, PolicyResult
13
13
  from .recipient import Recipient
14
14
  from .recipient_resolver import RecipientResolver
15
15
 
16
- __version__ = '1.7.0'
16
+ __version__ = '1.9.1'
17
17
 
18
18
 
19
19
  __all__ = [
@@ -62,6 +62,7 @@ class DjangoEmailChannel(EmailChannelMixin, Channel):
62
62
  from_email=from_address,
63
63
  to=[message.recipient.email_address],
64
64
  reply_to=reply_to,
65
+ headers=message.headers,
65
66
  )
66
67
 
67
68
  mail.attach_alternative(rendered_template, 'text/html')
@@ -73,6 +73,9 @@ class Message(MessageAttributeSerializationMixin, metaclass=ABCMeta):
73
73
  default=None
74
74
  )
75
75
  options = attr.ib()
76
+
77
+ # headers are only supported for DjangoEmailChannel
78
+ headers = attr.ib()
76
79
  language = attr.ib(default=None)
77
80
  log_level = attr.ib(default=None)
78
81
 
@@ -84,6 +87,10 @@ class Message(MessageAttributeSerializationMixin, metaclass=ABCMeta):
84
87
  def default_options_value(self):
85
88
  return {}
86
89
 
90
+ @headers.default
91
+ def default_headers_value(self):
92
+ return {}
93
+
87
94
  @uuid.default
88
95
  def generate_uuid(self):
89
96
  return uuid4()
@@ -0,0 +1,9 @@
1
+ """
2
+ :mod:`edx_ace.monitoring` exposes functions that are useful for reporting ACE
3
+ message delivery stats to monitoring services.
4
+ """
5
+ from edx_django_utils.monitoring import set_custom_attribute
6
+
7
+
8
+ def report(key, value):
9
+ set_custom_attribute(key, value)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: edx-ace
3
- Version: 1.7.0
3
+ Version: 1.9.1
4
4
  Summary: Framework for Messaging
5
5
  Home-page: https://github.com/openedx/edx-ace
6
6
  Author: edX
@@ -103,7 +103,7 @@ Description: edX Automated Communication Engine (A.C.E.)
103
103
  Reporting Security Issues
104
104
  =========================
105
105
 
106
- Please do not report security issues in public. Please email security@tcril.org.
106
+ Please do not report security issues in public. Please email security@openedx.org.
107
107
 
108
108
  .. |pypi-badge| image:: https://img.shields.io/pypi/v/edx-ace.svg
109
109
  :target: https://pypi.python.org/pypi/edx-ace/
@@ -157,6 +157,12 @@ Description: edX Automated Communication Engine (A.C.E.)
157
157
  Unreleased
158
158
  ~~~~~~~~~~
159
159
 
160
+ [1.8.0] - 2024-03-06
161
+ ~~~~~~~~~~~~~~~~~~~~
162
+ * Added support for ``Python 3.12``
163
+ * Dropped support for ``Django 3.2``
164
+
165
+
160
166
  [1.7.0] - 2023-07-21
161
167
  ~~~~~~~~~~~~~~~~~~~~
162
168
 
@@ -298,12 +304,12 @@ Keywords: Django edx
298
304
  Platform: UNKNOWN
299
305
  Classifier: Development Status :: 3 - Alpha
300
306
  Classifier: Framework :: Django
301
- Classifier: Framework :: Django :: 3.2
302
307
  Classifier: Framework :: Django :: 4.2
303
308
  Classifier: Intended Audience :: Developers
304
309
  Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
305
310
  Classifier: Natural Language :: English
306
311
  Classifier: Programming Language :: Python :: 3
307
312
  Classifier: Programming Language :: Python :: 3.8
313
+ Classifier: Programming Language :: Python :: 3.12
308
314
  Description-Content-Type: text/x-rst
309
315
  Provides-Extra: sailthru
@@ -1,5 +1,6 @@
1
1
  Django>=2.2
2
2
  attrs>=17.2.0
3
+ edx-django-utils>=5.14.2
3
4
  python-dateutil
4
5
  sailthru-client==2.2.3
5
6
  six
@@ -7,3 +7,4 @@ attrs>=17.2.0 # Attributes without boilerplate
7
7
  sailthru-client==2.2.3
8
8
  six
9
9
  stevedore>=1.10.0
10
+ edx-django-utils>=5.14.2
@@ -10,3 +10,5 @@
10
10
 
11
11
  # Common constraints for edx repos
12
12
  -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
13
+
14
+ backports.zoneinfo==0.2.1; python_version<'3.9'
@@ -120,13 +120,13 @@ setup(
120
120
  classifiers=[
121
121
  'Development Status :: 3 - Alpha',
122
122
  'Framework :: Django',
123
- 'Framework :: Django :: 3.2',
124
123
  'Framework :: Django :: 4.2',
125
124
  'Intended Audience :: Developers',
126
125
  'License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)',
127
126
  'Natural Language :: English',
128
127
  'Programming Language :: Python :: 3',
129
128
  'Programming Language :: Python :: 3.8',
129
+ 'Programming Language :: Python :: 3.12',
130
130
  ],
131
131
  entry_points={
132
132
  'openedx.ace.channel': [
@@ -1,17 +0,0 @@
1
- """
2
- :mod:`edx_ace.monitoring` exposes functions that are useful for reporting ACE
3
- message delivery stats to monitoring services.
4
- """
5
- try:
6
- import newrelic.agent
7
- except ImportError:
8
- newrelic = None # pylint: disable=invalid-name
9
-
10
-
11
- def report(key, value):
12
- report_to_newrelic(key, value)
13
-
14
-
15
- def report_to_newrelic(key, value):
16
- if newrelic:
17
- newrelic.agent.add_custom_parameter(key, value)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes