edx-enterprise-data 10.7.6__tar.gz → 10.7.8__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 (203) hide show
  1. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/CHANGELOG.rst +8 -0
  2. {edx_enterprise_data-10.7.6/edx_enterprise_data.egg-info → edx_enterprise_data-10.7.8}/PKG-INFO +1 -1
  3. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8/edx_enterprise_data.egg-info}/PKG-INFO +1 -1
  4. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/__init__.py +1 -1
  5. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/send_enterprise_reports.py +13 -3
  6. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/test_send_enterprise_reports.py +1 -1
  7. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/test_utils.py +1 -0
  8. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/utils.py +2 -5
  9. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/requirements/base.txt +16 -17
  10. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/requirements/ci.txt +2 -2
  11. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/requirements/dev.txt +18 -19
  12. edx_enterprise_data-10.7.8/requirements/django.txt +1 -0
  13. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/requirements/quality.txt +20 -21
  14. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/requirements/test-master.txt +17 -18
  15. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/requirements/test-reporting.txt +11 -8
  16. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/requirements/test.txt +18 -19
  17. edx_enterprise_data-10.7.6/requirements/django.txt +0 -1
  18. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/LICENSE +0 -0
  19. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/MANIFEST.in +0 -0
  20. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/README.md +0 -0
  21. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/edx_enterprise_data.egg-info/SOURCES.txt +0 -0
  22. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/edx_enterprise_data.egg-info/dependency_links.txt +0 -0
  23. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/edx_enterprise_data.egg-info/not-zip-safe +0 -0
  24. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/edx_enterprise_data.egg-info/requires.txt +0 -0
  25. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/edx_enterprise_data.egg-info/top_level.txt +0 -0
  26. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/__init__.py +0 -0
  27. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/constants.py +0 -0
  28. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/data_loaders.py +0 -0
  29. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/__init__.py +0 -0
  30. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/queries/__init__.py +0 -0
  31. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/queries/fact_engagement_admin_dash.py +0 -0
  32. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/queries/fact_enrollment_admin_dash.py +0 -0
  33. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/queries/skills_daily_rollup_admin_dash.py +0 -0
  34. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/tables/__init__.py +0 -0
  35. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/tables/base.py +0 -0
  36. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/tables/fact_engagement_admin_dash.py +0 -0
  37. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/tables/fact_enrollment_admin_dash.py +0 -0
  38. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/tables/skills_daily_rollup_admin_dash.py +0 -0
  39. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/utils.py +0 -0
  40. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/api/__init__.py +0 -0
  41. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/api/urls.py +0 -0
  42. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/api/v0/__init__.py +0 -0
  43. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/api/v0/serializers.py +0 -0
  44. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/api/v0/urls.py +0 -0
  45. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/api/v0/views.py +0 -0
  46. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/__init__.py +0 -0
  47. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/serializers.py +0 -0
  48. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/urls.py +0 -0
  49. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/views/__init__.py +0 -0
  50. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/views/analytics_completions.py +0 -0
  51. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/views/analytics_engagements.py +0 -0
  52. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/views/analytics_enrollments.py +0 -0
  53. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/views/analytics_leaderboard.py +0 -0
  54. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/views/base.py +0 -0
  55. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/views/enterprise_admin.py +0 -0
  56. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/views/enterprise_learner.py +0 -0
  57. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/views/enterprise_offers.py +0 -0
  58. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/apps.py +0 -0
  59. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/cache/__init__.py +0 -0
  60. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/cache/decorators.py +0 -0
  61. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/clients.py +0 -0
  62. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/constants.py +0 -0
  63. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/filters.py +0 -0
  64. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/fixtures/enterprise_enrollment.json +0 -0
  65. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/fixtures/enterprise_user.json +0 -0
  66. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/management/__init__.py +0 -0
  67. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/__init__.py +0 -0
  68. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/create_dummy_data.py +0 -0
  69. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/create_dummy_data_lpr_v1.py +0 -0
  70. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/create_enterprise_enrollment.py +0 -0
  71. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/create_enterprise_learner_enrollment_lpr_v1.py +0 -0
  72. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/create_enterprise_learner_lpr_v1.py +0 -0
  73. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/create_enterprise_offer.py +0 -0
  74. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/create_enterprise_user.py +0 -0
  75. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/pre_warm_analytics_cache.py +0 -0
  76. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/tests/__init__.py +0 -0
  77. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/tests/test_create_dummy_data_lpr_v1.py +0 -0
  78. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/tests/test_create_enterprise_enrollment.py +0 -0
  79. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/tests/test_create_enterprise_learner_enrollment_lpr_v1.py +0 -0
  80. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/tests/test_create_enterprise_learner_lpr_v1.py +0 -0
  81. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/tests/test_create_enterprise_user.py +0 -0
  82. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/tests/test_pre_warm_analytics_cache.py +0 -0
  83. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0001_initial.py +0 -0
  84. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0002_auto_20180430_1358.py +0 -0
  85. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0003_auto_20180501_0603.py +0 -0
  86. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0004_auto_20180501_0928.py +0 -0
  87. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0004_auto_20180508_1652.py +0 -0
  88. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0005_auto_20180524_2204.py +0 -0
  89. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0006_auto_20180612_0336.py +0 -0
  90. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0007_auto_20180612_0534.py +0 -0
  91. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0008_auto_20180614_0108.py +0 -0
  92. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0009_auto_20180628_1152.py +0 -0
  93. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0010_enterpriseenrollment_created.py +0 -0
  94. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0011_enterpriseuser.py +0 -0
  95. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0012_auto_20180831_1930.py +0 -0
  96. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0013_auto_20180831_1931.py +0 -0
  97. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0014_enterpriseuser_created.py +0 -0
  98. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0015_auto_20180907_1757.py +0 -0
  99. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0016_auto_20180924_2138.py +0 -0
  100. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0017_enterpriseenrollment_unenrollment_timestamp.py +0 -0
  101. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0018_enterprisedatafeaturerole_enterprisedataroleassignment.py +0 -0
  102. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0019_add_enterprise_data_feature_roles.py +0 -0
  103. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0020_add_role_based_access_control_switch.py +0 -0
  104. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0021_auto_20190329_1241.py +0 -0
  105. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0022_remove_role_based_access_control_switch.py +0 -0
  106. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0023_enterpriselearner_enterpriselearnerenrollment.py +0 -0
  107. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0024_auto_20210602_1811.py +0 -0
  108. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0025_auto_20210703_1854.py +0 -0
  109. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0026_auto_20210916_0414.py +0 -0
  110. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0027_enterpriselearnerenrollment_total_learning_time_seconds.py +0 -0
  111. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0028_enterpriselearnerenrollment_offer_id.py +0 -0
  112. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0029_enterpriseoffer.py +0 -0
  113. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0030_auto_20230609_1353.py +0 -0
  114. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0031_auto_20230615_0705.py +0 -0
  115. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0032_auto_20230704_0818.py +0 -0
  116. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0033_enterpriseadminlearnerprogress_enterpriseadminsummarizeinsights.py +0 -0
  117. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0034_auto_20230907_0834.py +0 -0
  118. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0035_auto_20230907_1154.py +0 -0
  119. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0036_enterprisesubsidybudget_subsidy_access_policy_display_name.py +0 -0
  120. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0037_alter_enterpriseenrollment_consent_granted.py +0 -0
  121. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0038_enterpriseoffer_export_timestamp.py +0 -0
  122. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0039_auto_20240212_1403.py +0 -0
  123. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0040_auto_20240718_0536_squashed_0043_alter_enterpriselearnerenrollment_enterprise_enrollment_id.py +0 -0
  124. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0044_enterpriseexecedlcmoduleperformance.py +0 -0
  125. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0045_alter_enterpriseexecedlcmoduleperformance_options_and_more.py +0 -0
  126. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0046_enterprisegroupmembership.py +0 -0
  127. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/__init__.py +0 -0
  128. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/models.py +0 -0
  129. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/paginators.py +0 -0
  130. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/renderers.py +0 -0
  131. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/settings/__init__.py +0 -0
  132. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/settings/test.py +0 -0
  133. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/signals.py +0 -0
  134. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/__init__.py +0 -0
  135. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/admin_analytics/__init__.py +0 -0
  136. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/admin_analytics/mock_analytics_data.py +0 -0
  137. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/admin_analytics/mock_enrollments.py +0 -0
  138. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/admin_analytics/test_analytics_engagements.py +0 -0
  139. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/admin_analytics/test_analytics_enrollments.py +0 -0
  140. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/admin_analytics/test_analytics_leaderboard.py +0 -0
  141. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/admin_analytics/test_data_loaders.py +0 -0
  142. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/admin_analytics/test_enterprise_completions.py +0 -0
  143. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/api/__init__.py +0 -0
  144. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/api/v0/__init__.py +0 -0
  145. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/api/v0/test_serializers.py +0 -0
  146. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/api/v1/__init__.py +0 -0
  147. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/api/v1/test_serializers.py +0 -0
  148. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/api/v1/test_views.py +0 -0
  149. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/api/v1/views/__init__.py +0 -0
  150. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/api/v1/views/test_enterprise_admin.py +0 -0
  151. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/factories.py +0 -0
  152. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/mixins.py +0 -0
  153. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/test_clients.py +0 -0
  154. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/test_filters.py +0 -0
  155. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/test_models.py +0 -0
  156. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/test_utils.py +0 -0
  157. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/tests/test_views.py +0 -0
  158. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/urls.py +0 -0
  159. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data/utils.py +0 -0
  160. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data_roles/__init__.py +0 -0
  161. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data_roles/admin.py +0 -0
  162. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data_roles/apps.py +0 -0
  163. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data_roles/constants.py +0 -0
  164. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data_roles/migrations/0001_initial.py +0 -0
  165. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data_roles/migrations/0002_add_enterprise_data_feature_roles.py +0 -0
  166. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data_roles/migrations/0003_add_role_based_access_control_switch.py +0 -0
  167. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data_roles/migrations/0004_enterprisedataroleassignment_enterprise_id.py +0 -0
  168. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data_roles/migrations/0005_turn_on_role_based_access_control_switch.py +0 -0
  169. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data_roles/migrations/0006_remove_role_based_access_control_switch.py +0 -0
  170. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data_roles/migrations/0007_enterprisedataroleassignment_applies_to_all_contexts.py +0 -0
  171. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data_roles/migrations/__init__.py +0 -0
  172. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data_roles/models.py +0 -0
  173. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data_roles/rules.py +0 -0
  174. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data_roles/tests/__init__.py +0 -0
  175. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data_roles/tests/factories.py +0 -0
  176. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_data_roles/tests/test_models.py +0 -0
  177. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/__init__.py +0 -0
  178. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/clients/__init__.py +0 -0
  179. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/clients/enterprise.py +0 -0
  180. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/clients/s3.py +0 -0
  181. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/clients/snowflake.py +0 -0
  182. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/clients/vertica.py +0 -0
  183. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/delivery_method.py +0 -0
  184. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/external_resource_link_report.py +0 -0
  185. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/fixtures/__init__.py +0 -0
  186. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/fixtures/enterprise_customer_reporting.json +0 -0
  187. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/reporter.py +0 -0
  188. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/__init__.py +0 -0
  189. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/test_clients.py +0 -0
  190. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/test_delivery_method.py +0 -0
  191. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/test_enterprise_client.py +0 -0
  192. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/test_external_link_report.py +0 -0
  193. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/test_reporter.py +0 -0
  194. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/test_vertica_client.py +0 -0
  195. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/utils.py +0 -0
  196. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/requirements/base.in +0 -0
  197. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/requirements/common_constraints.txt +0 -0
  198. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/requirements/constraints.txt +0 -0
  199. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/requirements/pip.txt +0 -0
  200. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/requirements/pip_tools.txt +0 -0
  201. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/requirements/reporting.in +0 -0
  202. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/setup.cfg +0 -0
  203. {edx_enterprise_data-10.7.6 → edx_enterprise_data-10.7.8}/setup.py +0 -0
@@ -16,6 +16,14 @@ Unreleased
16
16
 
17
17
  =========================
18
18
 
19
+ [10.7.8] - 2025-02-18
20
+ ---------------------
21
+ * chore: bump version from 10.7.7 to 10.7.8 for dependency upgrades
22
+
23
+ [10.7.7] - 2025-02-11
24
+ ---------------------
25
+ * chore: upgrade python requirements
26
+
19
27
  [10.7.6] - 2025-02-03
20
28
  ---------------------
21
29
  * chore: upgrade python requirements
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: edx-enterprise-data
3
- Version: 10.7.6
3
+ Version: 10.7.8
4
4
  Summary: Enterprise Reporting
5
5
  Home-page: https://github.com/openedx/edx-enterprise-data
6
6
  Author: edX
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: edx-enterprise-data
3
- Version: 10.7.6
3
+ Version: 10.7.8
4
4
  Summary: Enterprise Reporting
5
5
  Home-page: https://github.com/openedx/edx-enterprise-data
6
6
  Author: edX
@@ -2,4 +2,4 @@
2
2
  Enterprise data api application. This Django app exposes API endpoints used by enterprises.
3
3
  """
4
4
 
5
- __version__ = "10.7.6"
5
+ __version__ = "10.7.8"
@@ -4,13 +4,15 @@ Sends an Enterprise Customer's data file to a configured destination.
4
4
  """
5
5
 
6
6
 
7
-
8
7
  import argparse
8
+ import datetime
9
9
  import logging
10
10
  import os
11
11
  import re
12
12
  import sys
13
13
 
14
+ import pytz
15
+
14
16
  from enterprise_reporting.clients.enterprise import EnterpriseAPIClient
15
17
  from enterprise_reporting.reporter import EnterpriseReportSender
16
18
  from enterprise_reporting.utils import is_current_time_in_schedule
@@ -55,11 +57,13 @@ def cleanup_files(enterprise_id):
55
57
  os.remove(os.path.join(directory, f))
56
58
 
57
59
 
58
- def should_deliver_report(args, reporting_config):
60
+ def should_deliver_report(args, reporting_config, current_est_time):
59
61
  """Given CLI arguments and the reporting configuration, determine if delivery should happen."""
60
62
  valid_data_type = reporting_config['data_type'] in (args.data_type or DATA_TYPES)
61
63
  enterprise_customer_specified = bool(args.enterprise_customer)
64
+
62
65
  meets_schedule_requirement = is_current_time_in_schedule(
66
+ current_est_time,
63
67
  reporting_config['frequency'],
64
68
  reporting_config['hour_of_day'],
65
69
  reporting_config['day_of_month'],
@@ -101,6 +105,12 @@ def process_reports():
101
105
  LOGGER.error(f'The enterprise {args.enterprise_customer} does not have a reporting configuration.')
102
106
  sys.exit(1)
103
107
 
108
+ # We are defining the current est time globally because we want the current time for a job
109
+ # to remain same thoughout the job. This ensures that a single report is not processed multiple times.
110
+ # See this comment for more details: https://2u-internal.atlassian.net/browse/ENT-9954?focusedCommentId=5356815
111
+ est_timezone = pytz.timezone('US/Eastern')
112
+ current_est_time = datetime.datetime.now(est_timezone)
113
+
104
114
  error_raised = False
105
115
  for reporting_config in reporting_configs['results']:
106
116
  LOGGER.info('Checking if {}\'s reporting config for {} data in {} format is ready for processing'.format(
@@ -109,7 +119,7 @@ def process_reports():
109
119
  reporting_config['report_type'],
110
120
  ))
111
121
 
112
- if should_deliver_report(args, reporting_config):
122
+ if should_deliver_report(args, reporting_config, current_est_time):
113
123
  if send_data(reporting_config):
114
124
  error_raised = True
115
125
  else:
@@ -33,4 +33,4 @@ class TestSendEnterpriseReports(unittest.TestCase):
33
33
  Command = namedtuple("Command", "data_type enterprise_customer")
34
34
  args = Command('', '')
35
35
 
36
- assert should_deliver_report(args, reporting_config)
36
+ assert should_deliver_report(args, reporting_config, current_est_time)
@@ -165,6 +165,7 @@ class TestUtilities(unittest.TestCase):
165
165
  est_timezone = pytz.timezone('US/Eastern')
166
166
  current_est_time = datetime.datetime.now(est_timezone)
167
167
  assert utils.is_current_time_in_schedule(
168
+ current_est_time,
168
169
  utils.FREQUENCY_TYPE_DAILY,
169
170
  current_est_time.hour,
170
171
  current_est_time.day,
@@ -3,7 +3,6 @@ Utility functions for Enterprise Reporting.
3
3
  """
4
4
 
5
5
 
6
- import datetime
7
6
  import logging
8
7
  import os
9
8
  import re
@@ -16,7 +15,6 @@ from urllib.parse import parse_qs, urlparse
16
15
  import boto3
17
16
  import pgpy
18
17
  import pyminizip
19
- import pytz
20
18
  from cryptography.fernet import Fernet
21
19
  from fernet_fields.hkdf import derive_fernet_key
22
20
 
@@ -149,12 +147,11 @@ def send_email_with_attachment(subject, body, from_email, to_email, attachment_d
149
147
  LOGGER.debug(result)
150
148
 
151
149
 
152
- def is_current_time_in_schedule(frequency, hour_of_day, day_of_month=None, day_of_week=None):
150
+ def is_current_time_in_schedule(current_est_time, frequency, hour_of_day, day_of_month=None, day_of_week=None):
153
151
  """
154
152
  Determine if the current time is in the range specified by this configuration's schedule.
155
153
  """
156
- est_timezone = pytz.timezone('US/Eastern')
157
- current_est_time = datetime.datetime.now(est_timezone)
154
+
158
155
  current_hour_of_day = current_est_time.hour
159
156
  current_day_of_week = current_est_time.weekday()
160
157
  current_day_of_month = current_est_time.day
@@ -10,15 +10,15 @@ asgiref==3.8.1
10
10
  # via django
11
11
  asn1crypto==1.5.1
12
12
  # via snowflake-connector-python
13
- awscli==1.37.11
13
+ awscli==1.37.21
14
14
  # via -r requirements/reporting.in
15
15
  bcrypt==4.2.1
16
16
  # via paramiko
17
17
  billiard==4.2.1
18
18
  # via celery
19
- boto3==1.36.11
19
+ boto3==1.36.21
20
20
  # via -r requirements/reporting.in
21
- botocore==1.36.11
21
+ botocore==1.36.21
22
22
  # via
23
23
  # awscli
24
24
  # boto3
@@ -54,7 +54,7 @@ click-repl==0.3.0
54
54
  # via celery
55
55
  colorama==0.4.6
56
56
  # via awscli
57
- cryptography==44.0.0
57
+ cryptography==44.0.1
58
58
  # via
59
59
  # -r requirements/reporting.in
60
60
  # django-fernet-fields-v2
@@ -63,7 +63,7 @@ cryptography==44.0.0
63
63
  # pyjwt
64
64
  # pyopenssl
65
65
  # snowflake-connector-python
66
- django==4.2.18
66
+ django==4.2.19
67
67
  # via
68
68
  # -c /home/runner/work/edx-enterprise-data/edx-enterprise-data/requirements/common_constraints.txt
69
69
  # -r requirements/base.in
@@ -83,7 +83,7 @@ django-crum==0.7.9
83
83
  # edx-rbac
84
84
  django-fernet-fields-v2==0.9
85
85
  # via -r requirements/base.in
86
- django-filter==24.3
86
+ django-filter==25.1
87
87
  # via -r requirements/base.in
88
88
  django-model-utils==5.0.0
89
89
  # via
@@ -121,11 +121,11 @@ edx-opaque-keys==2.11.0
121
121
  # edx-drf-extensions
122
122
  edx-rbac==1.10.0
123
123
  # via -r requirements/base.in
124
- edx-rest-api-client==6.0.0
124
+ edx-rest-api-client==6.1.0
125
125
  # via -r requirements/base.in
126
- factory-boy==3.3.1
126
+ factory-boy==3.3.3
127
127
  # via -r requirements/base.in
128
- faker==35.2.0
128
+ faker==36.1.1
129
129
  # via factory-boy
130
130
  filelock==3.17.0
131
131
  # via snowflake-connector-python
@@ -145,9 +145,9 @@ monotonic==1.6
145
145
  # via py2neo
146
146
  mysql-connector-python==9.2.0
147
147
  # via -r requirements/base.in
148
- newrelic==10.5.0
148
+ newrelic==10.6.0
149
149
  # via edx-django-utils
150
- numpy==2.2.2
150
+ numpy==2.2.3
151
151
  # via
152
152
  # -r requirements/base.in
153
153
  # pandas
@@ -159,9 +159,9 @@ pandas==2.2.3
159
159
  # via -r requirements/base.in
160
160
  pansi==2024.11.0
161
161
  # via py2neo
162
- paramiko==3.5.0
162
+ paramiko==3.5.1
163
163
  # via -r requirements/reporting.in
164
- pbr==6.1.0
164
+ pbr==6.1.1
165
165
  # via stevedore
166
166
  pgpy==0.6.0
167
167
  # via -r requirements/reporting.in
@@ -171,7 +171,7 @@ platformdirs==4.3.6
171
171
  # via snowflake-connector-python
172
172
  prompt-toolkit==3.0.50
173
173
  # via click-repl
174
- psutil==6.1.1
174
+ psutil==7.0.0
175
175
  # via edx-django-utils
176
176
  py2neo @ https://github.com/overhangio/py2neo/releases/download/2021.2.3/py2neo-2021.2.3.tar.gz
177
177
  # via -r requirements/reporting.in
@@ -191,7 +191,7 @@ pyjwt[crypto]==2.10.1
191
191
  # snowflake-connector-python
192
192
  pyminizip==0.2.6
193
193
  # via -r requirements/reporting.in
194
- pymongo==4.11
194
+ pymongo==4.11.1
195
195
  # via edx-opaque-keys
196
196
  pynacl==1.5.0
197
197
  # via
@@ -203,7 +203,6 @@ python-dateutil==2.9.0.post0
203
203
  # via
204
204
  # botocore
205
205
  # celery
206
- # faker
207
206
  # pandas
208
207
  # vertica-python
209
208
  pytz==2025.1
@@ -251,11 +250,11 @@ tomlkit==0.13.2
251
250
  typing-extensions==4.12.2
252
251
  # via
253
252
  # edx-opaque-keys
254
- # faker
255
253
  # snowflake-connector-python
256
254
  tzdata==2025.1
257
255
  # via
258
256
  # celery
257
+ # faker
259
258
  # kombu
260
259
  # pandas
261
260
  unicodecsv==0.14.1
@@ -10,7 +10,7 @@ chardet==5.2.0
10
10
  # via tox
11
11
  colorama==0.4.6
12
12
  # via tox
13
- coverage==7.6.10
13
+ coverage==7.6.12
14
14
  # via -r requirements/ci.in
15
15
  distlib==0.3.9
16
16
  # via virtualenv
@@ -32,5 +32,5 @@ pyproject-api==1.9.0
32
32
  # via tox
33
33
  tox==4.24.1
34
34
  # via -r requirements/ci.in
35
- virtualenv==20.29.1
35
+ virtualenv==20.29.2
36
36
  # via tox
@@ -14,15 +14,15 @@ astroid==3.3.8
14
14
  # via
15
15
  # pylint
16
16
  # pylint-celery
17
- awscli==1.37.11
17
+ awscli==1.37.21
18
18
  # via -r requirements/reporting.in
19
19
  bcrypt==4.2.1
20
20
  # via paramiko
21
21
  billiard==4.2.1
22
22
  # via celery
23
- boto3==1.36.11
23
+ boto3==1.36.21
24
24
  # via -r requirements/reporting.in
25
- botocore==1.36.11
25
+ botocore==1.36.21
26
26
  # via
27
27
  # awscli
28
28
  # boto3
@@ -76,7 +76,7 @@ colorama==0.4.6
76
76
  # via
77
77
  # awscli
78
78
  # tox
79
- cryptography==44.0.0
79
+ cryptography==44.0.1
80
80
  # via
81
81
  # -r requirements/reporting.in
82
82
  # django-fernet-fields-v2
@@ -92,7 +92,7 @@ dill==0.3.9
92
92
  # via pylint
93
93
  distlib==0.3.9
94
94
  # via virtualenv
95
- django==4.2.18
95
+ django==4.2.19
96
96
  # via
97
97
  # -c /home/runner/work/edx-enterprise-data/edx-enterprise-data/requirements/common_constraints.txt
98
98
  # -r requirements/base.in
@@ -113,7 +113,7 @@ django-crum==0.7.9
113
113
  # edx-rbac
114
114
  django-fernet-fields-v2==0.9
115
115
  # via -r requirements/base.in
116
- django-filter==24.3
116
+ django-filter==25.1
117
117
  # via -r requirements/base.in
118
118
  django-model-utils==5.0.0
119
119
  # via
@@ -159,11 +159,11 @@ edx-opaque-keys==2.11.0
159
159
  # edx-drf-extensions
160
160
  edx-rbac==1.10.0
161
161
  # via -r requirements/base.in
162
- edx-rest-api-client==6.0.0
162
+ edx-rest-api-client==6.1.0
163
163
  # via -r requirements/base.in
164
- factory-boy==3.3.1
164
+ factory-boy==3.3.3
165
165
  # via -r requirements/base.in
166
- faker==35.2.0
166
+ faker==36.1.1
167
167
  # via factory-boy
168
168
  filelock==3.17.0
169
169
  # via
@@ -204,7 +204,7 @@ keyring==25.6.0
204
204
  # via twine
205
205
  kombu==5.4.2
206
206
  # via celery
207
- lxml[html-clean,html_clean]==5.3.0
207
+ lxml[html-clean,html_clean]==5.3.1
208
208
  # via
209
209
  # edx-i18n-tools
210
210
  # lxml-html-clean
@@ -226,11 +226,11 @@ more-itertools==10.6.0
226
226
  # jaraco-functools
227
227
  mysql-connector-python==9.2.0
228
228
  # via -r requirements/base.in
229
- newrelic==10.5.0
229
+ newrelic==10.6.0
230
230
  # via edx-django-utils
231
231
  nh3==0.2.20
232
232
  # via readme-renderer
233
- numpy==2.2.2
233
+ numpy==2.2.3
234
234
  # via
235
235
  # -r requirements/base.in
236
236
  # pandas
@@ -246,11 +246,11 @@ pandas==2.2.3
246
246
  # via -r requirements/base.in
247
247
  pansi==2024.11.0
248
248
  # via py2neo
249
- paramiko==3.5.0
249
+ paramiko==3.5.1
250
250
  # via -r requirements/reporting.in
251
251
  path==16.16.0
252
252
  # via edx-i18n-tools
253
- pbr==6.1.0
253
+ pbr==6.1.1
254
254
  # via stevedore
255
255
  pgpy==0.6.0
256
256
  # via -r requirements/reporting.in
@@ -272,7 +272,7 @@ polib==1.2.0
272
272
  # via edx-i18n-tools
273
273
  prompt-toolkit==3.0.50
274
274
  # via click-repl
275
- psutil==6.1.1
275
+ psutil==7.0.0
276
276
  # via edx-django-utils
277
277
  py2neo @ https://github.com/overhangio/py2neo/releases/download/2021.2.3/py2neo-2021.2.3.tar.gz
278
278
  # via -r requirements/reporting.in
@@ -314,7 +314,7 @@ pylint-plugin-utils==0.8.2
314
314
  # pylint-django
315
315
  pyminizip==0.2.6
316
316
  # via -r requirements/reporting.in
317
- pymongo==4.11
317
+ pymongo==4.11.1
318
318
  # via edx-opaque-keys
319
319
  pynacl==1.5.0
320
320
  # via
@@ -332,7 +332,6 @@ python-dateutil==2.9.0.post0
332
332
  # via
333
333
  # botocore
334
334
  # celery
335
- # faker
336
335
  # pandas
337
336
  # vertica-python
338
337
  python-slugify==8.0.4
@@ -412,11 +411,11 @@ twine==6.1.0
412
411
  typing-extensions==4.12.2
413
412
  # via
414
413
  # edx-opaque-keys
415
- # faker
416
414
  # snowflake-connector-python
417
415
  tzdata==2025.1
418
416
  # via
419
417
  # celery
418
+ # faker
420
419
  # kombu
421
420
  # pandas
422
421
  unicodecsv==0.14.1
@@ -435,7 +434,7 @@ vine==5.1.0
435
434
  # amqp
436
435
  # celery
437
436
  # kombu
438
- virtualenv==20.29.1
437
+ virtualenv==20.29.2
439
438
  # via tox
440
439
  wcwidth==0.2.13
441
440
  # via prompt-toolkit
@@ -0,0 +1 @@
1
+ django==4.2.19
@@ -14,15 +14,15 @@ astroid==3.3.8
14
14
  # via
15
15
  # pylint
16
16
  # pylint-celery
17
- awscli==1.37.11
17
+ awscli==1.37.21
18
18
  # via -r requirements/reporting.in
19
19
  bcrypt==4.2.1
20
20
  # via paramiko
21
21
  billiard==4.2.1
22
22
  # via celery
23
- boto3==1.36.11
23
+ boto3==1.36.21
24
24
  # via -r requirements/reporting.in
25
- botocore==1.36.11
25
+ botocore==1.36.21
26
26
  # via
27
27
  # awscli
28
28
  # boto3
@@ -76,9 +76,9 @@ colorama==0.4.6
76
76
  # via
77
77
  # awscli
78
78
  # tox
79
- coverage[toml]==7.6.10
79
+ coverage[toml]==7.6.12
80
80
  # via pytest-cov
81
- cryptography==44.0.0
81
+ cryptography==44.0.1
82
82
  # via
83
83
  # -r requirements/reporting.in
84
84
  # django-fernet-fields-v2
@@ -96,7 +96,7 @@ dill==0.3.9
96
96
  # via pylint
97
97
  distlib==0.3.9
98
98
  # via virtualenv
99
- django==4.2.18
99
+ django==4.2.19
100
100
  # via
101
101
  # -c /home/runner/work/edx-enterprise-data/edx-enterprise-data/requirements/common_constraints.txt
102
102
  # -r requirements/base.in
@@ -117,7 +117,7 @@ django-crum==0.7.9
117
117
  # edx-rbac
118
118
  django-fernet-fields-v2==0.9
119
119
  # via -r requirements/base.in
120
- django-filter==24.3
120
+ django-filter==25.1
121
121
  # via -r requirements/base.in
122
122
  django-model-utils==5.0.0
123
123
  # via
@@ -164,13 +164,13 @@ edx-opaque-keys==2.11.0
164
164
  # edx-drf-extensions
165
165
  edx-rbac==1.10.0
166
166
  # via -r requirements/base.in
167
- edx-rest-api-client==6.0.0
167
+ edx-rest-api-client==6.1.0
168
168
  # via -r requirements/base.in
169
- factory-boy==3.3.1
169
+ factory-boy==3.3.3
170
170
  # via
171
171
  # -r requirements/base.in
172
172
  # -r requirements/test.in
173
- faker==35.2.0
173
+ faker==36.1.1
174
174
  # via factory-boy
175
175
  filelock==3.17.0
176
176
  # via
@@ -217,7 +217,7 @@ keyring==25.6.0
217
217
  # via twine
218
218
  kombu==5.4.2
219
219
  # via celery
220
- lxml[html-clean,html_clean]==5.3.0
220
+ lxml[html-clean,html_clean]==5.3.1
221
221
  # via
222
222
  # edx-i18n-tools
223
223
  # lxml-html-clean
@@ -241,11 +241,11 @@ more-itertools==10.6.0
241
241
  # jaraco-functools
242
242
  mysql-connector-python==9.2.0
243
243
  # via -r requirements/base.in
244
- newrelic==10.5.0
244
+ newrelic==10.6.0
245
245
  # via edx-django-utils
246
246
  nh3==0.2.20
247
247
  # via readme-renderer
248
- numpy==2.2.2
248
+ numpy==2.2.3
249
249
  # via
250
250
  # -r requirements/base.in
251
251
  # pandas
@@ -262,11 +262,11 @@ pandas==2.2.3
262
262
  # via -r requirements/base.in
263
263
  pansi==2024.11.0
264
264
  # via py2neo
265
- paramiko==3.5.0
265
+ paramiko==3.5.1
266
266
  # via -r requirements/reporting.in
267
267
  path==16.16.0
268
268
  # via edx-i18n-tools
269
- pbr==6.1.0
269
+ pbr==6.1.1
270
270
  # via stevedore
271
271
  pgpy==0.6.0
272
272
  # via -r requirements/reporting.in
@@ -289,7 +289,7 @@ polib==1.2.0
289
289
  # via edx-i18n-tools
290
290
  prompt-toolkit==3.0.50
291
291
  # via click-repl
292
- psutil==6.1.1
292
+ psutil==7.0.0
293
293
  # via edx-django-utils
294
294
  py2neo @ https://github.com/overhangio/py2neo/releases/download/2021.2.3/py2neo-2021.2.3.tar.gz
295
295
  # via -r requirements/reporting.in
@@ -331,7 +331,7 @@ pylint-plugin-utils==0.8.2
331
331
  # pylint-django
332
332
  pyminizip==0.2.6
333
333
  # via -r requirements/reporting.in
334
- pymongo==4.11
334
+ pymongo==4.11.1
335
335
  # via edx-opaque-keys
336
336
  pynacl==1.5.0
337
337
  # via
@@ -351,13 +351,12 @@ pytest==8.3.4
351
351
  # pytest-django
352
352
  pytest-cov==6.0.0
353
353
  # via -r requirements/test.in
354
- pytest-django==4.9.0
354
+ pytest-django==4.10.0
355
355
  # via -r requirements/test.in
356
356
  python-dateutil==2.9.0.post0
357
357
  # via
358
358
  # botocore
359
359
  # celery
360
- # faker
361
360
  # freezegun
362
361
  # pandas
363
362
  # vertica-python
@@ -444,11 +443,11 @@ twine==6.1.0
444
443
  typing-extensions==4.12.2
445
444
  # via
446
445
  # edx-opaque-keys
447
- # faker
448
446
  # snowflake-connector-python
449
447
  tzdata==2025.1
450
448
  # via
451
449
  # celery
450
+ # faker
452
451
  # kombu
453
452
  # pandas
454
453
  unicodecsv==0.14.1
@@ -468,7 +467,7 @@ vine==5.1.0
468
467
  # amqp
469
468
  # celery
470
469
  # kombu
471
- virtualenv==20.29.1
470
+ virtualenv==20.29.2
472
471
  # via tox
473
472
  wcwidth==0.2.13
474
473
  # via prompt-toolkit