edx-enterprise-data 10.7.7__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 (202) hide show
  1. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/CHANGELOG.rst +4 -0
  2. {edx_enterprise_data-10.7.7/edx_enterprise_data.egg-info → edx_enterprise_data-10.7.8}/PKG-INFO +1 -1
  3. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8/edx_enterprise_data.egg-info}/PKG-INFO +1 -1
  4. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/__init__.py +1 -1
  5. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/send_enterprise_reports.py +13 -3
  6. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/test_send_enterprise_reports.py +1 -1
  7. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/test_utils.py +1 -0
  8. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/utils.py +2 -5
  9. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/requirements/base.txt +11 -12
  10. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/requirements/ci.txt +2 -2
  11. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/requirements/dev.txt +13 -14
  12. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/requirements/quality.txt +15 -16
  13. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/requirements/test-master.txt +13 -14
  14. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/requirements/test-reporting.txt +6 -6
  15. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/requirements/test.txt +13 -14
  16. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/LICENSE +0 -0
  17. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/MANIFEST.in +0 -0
  18. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/README.md +0 -0
  19. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/edx_enterprise_data.egg-info/SOURCES.txt +0 -0
  20. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/edx_enterprise_data.egg-info/dependency_links.txt +0 -0
  21. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/edx_enterprise_data.egg-info/not-zip-safe +0 -0
  22. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/edx_enterprise_data.egg-info/requires.txt +0 -0
  23. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/edx_enterprise_data.egg-info/top_level.txt +0 -0
  24. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/__init__.py +0 -0
  25. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/constants.py +0 -0
  26. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/data_loaders.py +0 -0
  27. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/__init__.py +0 -0
  28. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/queries/__init__.py +0 -0
  29. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/queries/fact_engagement_admin_dash.py +0 -0
  30. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/queries/fact_enrollment_admin_dash.py +0 -0
  31. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/queries/skills_daily_rollup_admin_dash.py +0 -0
  32. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/tables/__init__.py +0 -0
  33. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/tables/base.py +0 -0
  34. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/tables/fact_engagement_admin_dash.py +0 -0
  35. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/tables/fact_enrollment_admin_dash.py +0 -0
  36. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/tables/skills_daily_rollup_admin_dash.py +0 -0
  37. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/admin_analytics/database/utils.py +0 -0
  38. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/api/__init__.py +0 -0
  39. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/api/urls.py +0 -0
  40. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/api/v0/__init__.py +0 -0
  41. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/api/v0/serializers.py +0 -0
  42. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/api/v0/urls.py +0 -0
  43. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/api/v0/views.py +0 -0
  44. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/__init__.py +0 -0
  45. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/serializers.py +0 -0
  46. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/urls.py +0 -0
  47. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/views/__init__.py +0 -0
  48. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/views/analytics_completions.py +0 -0
  49. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/views/analytics_engagements.py +0 -0
  50. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/views/analytics_enrollments.py +0 -0
  51. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/views/analytics_leaderboard.py +0 -0
  52. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/views/base.py +0 -0
  53. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/views/enterprise_admin.py +0 -0
  54. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/views/enterprise_learner.py +0 -0
  55. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/api/v1/views/enterprise_offers.py +0 -0
  56. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/apps.py +0 -0
  57. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/cache/__init__.py +0 -0
  58. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/cache/decorators.py +0 -0
  59. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/clients.py +0 -0
  60. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/constants.py +0 -0
  61. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/filters.py +0 -0
  62. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/fixtures/enterprise_enrollment.json +0 -0
  63. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/fixtures/enterprise_user.json +0 -0
  64. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/management/__init__.py +0 -0
  65. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/__init__.py +0 -0
  66. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/create_dummy_data.py +0 -0
  67. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/create_dummy_data_lpr_v1.py +0 -0
  68. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/create_enterprise_enrollment.py +0 -0
  69. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/create_enterprise_learner_enrollment_lpr_v1.py +0 -0
  70. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/create_enterprise_learner_lpr_v1.py +0 -0
  71. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/create_enterprise_offer.py +0 -0
  72. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/create_enterprise_user.py +0 -0
  73. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/pre_warm_analytics_cache.py +0 -0
  74. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/tests/__init__.py +0 -0
  75. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/tests/test_create_dummy_data_lpr_v1.py +0 -0
  76. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/tests/test_create_enterprise_enrollment.py +0 -0
  77. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/tests/test_create_enterprise_learner_enrollment_lpr_v1.py +0 -0
  78. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/tests/test_create_enterprise_learner_lpr_v1.py +0 -0
  79. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/tests/test_create_enterprise_user.py +0 -0
  80. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/management/commands/tests/test_pre_warm_analytics_cache.py +0 -0
  81. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0001_initial.py +0 -0
  82. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0002_auto_20180430_1358.py +0 -0
  83. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0003_auto_20180501_0603.py +0 -0
  84. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0004_auto_20180501_0928.py +0 -0
  85. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0004_auto_20180508_1652.py +0 -0
  86. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0005_auto_20180524_2204.py +0 -0
  87. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0006_auto_20180612_0336.py +0 -0
  88. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0007_auto_20180612_0534.py +0 -0
  89. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0008_auto_20180614_0108.py +0 -0
  90. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0009_auto_20180628_1152.py +0 -0
  91. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0010_enterpriseenrollment_created.py +0 -0
  92. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0011_enterpriseuser.py +0 -0
  93. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0012_auto_20180831_1930.py +0 -0
  94. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0013_auto_20180831_1931.py +0 -0
  95. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0014_enterpriseuser_created.py +0 -0
  96. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0015_auto_20180907_1757.py +0 -0
  97. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0016_auto_20180924_2138.py +0 -0
  98. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0017_enterpriseenrollment_unenrollment_timestamp.py +0 -0
  99. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0018_enterprisedatafeaturerole_enterprisedataroleassignment.py +0 -0
  100. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0019_add_enterprise_data_feature_roles.py +0 -0
  101. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0020_add_role_based_access_control_switch.py +0 -0
  102. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0021_auto_20190329_1241.py +0 -0
  103. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0022_remove_role_based_access_control_switch.py +0 -0
  104. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0023_enterpriselearner_enterpriselearnerenrollment.py +0 -0
  105. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0024_auto_20210602_1811.py +0 -0
  106. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0025_auto_20210703_1854.py +0 -0
  107. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0026_auto_20210916_0414.py +0 -0
  108. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0027_enterpriselearnerenrollment_total_learning_time_seconds.py +0 -0
  109. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0028_enterpriselearnerenrollment_offer_id.py +0 -0
  110. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0029_enterpriseoffer.py +0 -0
  111. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0030_auto_20230609_1353.py +0 -0
  112. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0031_auto_20230615_0705.py +0 -0
  113. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0032_auto_20230704_0818.py +0 -0
  114. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0033_enterpriseadminlearnerprogress_enterpriseadminsummarizeinsights.py +0 -0
  115. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0034_auto_20230907_0834.py +0 -0
  116. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0035_auto_20230907_1154.py +0 -0
  117. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0036_enterprisesubsidybudget_subsidy_access_policy_display_name.py +0 -0
  118. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0037_alter_enterpriseenrollment_consent_granted.py +0 -0
  119. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0038_enterpriseoffer_export_timestamp.py +0 -0
  120. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0039_auto_20240212_1403.py +0 -0
  121. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0040_auto_20240718_0536_squashed_0043_alter_enterpriselearnerenrollment_enterprise_enrollment_id.py +0 -0
  122. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0044_enterpriseexecedlcmoduleperformance.py +0 -0
  123. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0045_alter_enterpriseexecedlcmoduleperformance_options_and_more.py +0 -0
  124. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/0046_enterprisegroupmembership.py +0 -0
  125. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/migrations/__init__.py +0 -0
  126. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/models.py +0 -0
  127. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/paginators.py +0 -0
  128. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/renderers.py +0 -0
  129. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/settings/__init__.py +0 -0
  130. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/settings/test.py +0 -0
  131. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/signals.py +0 -0
  132. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/__init__.py +0 -0
  133. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/admin_analytics/__init__.py +0 -0
  134. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/admin_analytics/mock_analytics_data.py +0 -0
  135. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/admin_analytics/mock_enrollments.py +0 -0
  136. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/admin_analytics/test_analytics_engagements.py +0 -0
  137. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/admin_analytics/test_analytics_enrollments.py +0 -0
  138. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/admin_analytics/test_analytics_leaderboard.py +0 -0
  139. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/admin_analytics/test_data_loaders.py +0 -0
  140. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/admin_analytics/test_enterprise_completions.py +0 -0
  141. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/api/__init__.py +0 -0
  142. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/api/v0/__init__.py +0 -0
  143. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/api/v0/test_serializers.py +0 -0
  144. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/api/v1/__init__.py +0 -0
  145. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/api/v1/test_serializers.py +0 -0
  146. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/api/v1/test_views.py +0 -0
  147. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/api/v1/views/__init__.py +0 -0
  148. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/api/v1/views/test_enterprise_admin.py +0 -0
  149. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/factories.py +0 -0
  150. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/mixins.py +0 -0
  151. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/test_clients.py +0 -0
  152. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/test_filters.py +0 -0
  153. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/test_models.py +0 -0
  154. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/test_utils.py +0 -0
  155. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/tests/test_views.py +0 -0
  156. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/urls.py +0 -0
  157. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data/utils.py +0 -0
  158. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data_roles/__init__.py +0 -0
  159. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data_roles/admin.py +0 -0
  160. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data_roles/apps.py +0 -0
  161. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data_roles/constants.py +0 -0
  162. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data_roles/migrations/0001_initial.py +0 -0
  163. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data_roles/migrations/0002_add_enterprise_data_feature_roles.py +0 -0
  164. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data_roles/migrations/0003_add_role_based_access_control_switch.py +0 -0
  165. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data_roles/migrations/0004_enterprisedataroleassignment_enterprise_id.py +0 -0
  166. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data_roles/migrations/0005_turn_on_role_based_access_control_switch.py +0 -0
  167. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data_roles/migrations/0006_remove_role_based_access_control_switch.py +0 -0
  168. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data_roles/migrations/0007_enterprisedataroleassignment_applies_to_all_contexts.py +0 -0
  169. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data_roles/migrations/__init__.py +0 -0
  170. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data_roles/models.py +0 -0
  171. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data_roles/rules.py +0 -0
  172. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data_roles/tests/__init__.py +0 -0
  173. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data_roles/tests/factories.py +0 -0
  174. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_data_roles/tests/test_models.py +0 -0
  175. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/__init__.py +0 -0
  176. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/clients/__init__.py +0 -0
  177. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/clients/enterprise.py +0 -0
  178. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/clients/s3.py +0 -0
  179. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/clients/snowflake.py +0 -0
  180. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/clients/vertica.py +0 -0
  181. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/delivery_method.py +0 -0
  182. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/external_resource_link_report.py +0 -0
  183. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/fixtures/__init__.py +0 -0
  184. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/fixtures/enterprise_customer_reporting.json +0 -0
  185. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/reporter.py +0 -0
  186. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/__init__.py +0 -0
  187. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/test_clients.py +0 -0
  188. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/test_delivery_method.py +0 -0
  189. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/test_enterprise_client.py +0 -0
  190. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/test_external_link_report.py +0 -0
  191. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/test_reporter.py +0 -0
  192. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/test_vertica_client.py +0 -0
  193. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/enterprise_reporting/tests/utils.py +0 -0
  194. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/requirements/base.in +0 -0
  195. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/requirements/common_constraints.txt +0 -0
  196. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/requirements/constraints.txt +0 -0
  197. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/requirements/django.txt +0 -0
  198. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/requirements/pip.txt +0 -0
  199. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/requirements/pip_tools.txt +0 -0
  200. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/requirements/reporting.in +0 -0
  201. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/setup.cfg +0 -0
  202. {edx_enterprise_data-10.7.7 → edx_enterprise_data-10.7.8}/setup.py +0 -0
@@ -16,6 +16,10 @@ 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
+
19
23
  [10.7.7] - 2025-02-11
20
24
  ---------------------
21
25
  * chore: upgrade python requirements
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: edx-enterprise-data
3
- Version: 10.7.7
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.7
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.7"
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.16
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.16
19
+ boto3==1.36.21
20
20
  # via -r requirements/reporting.in
21
- botocore==1.36.16
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
@@ -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
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
@@ -147,7 +147,7 @@ mysql-connector-python==9.2.0
147
147
  # via -r requirements/base.in
148
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
@@ -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.11
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.16
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.16
23
+ boto3==1.36.21
24
24
  # via -r requirements/reporting.in
25
- botocore==1.36.16
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
@@ -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
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
@@ -230,7 +230,7 @@ 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
@@ -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
@@ -14,15 +14,15 @@ astroid==3.3.8
14
14
  # via
15
15
  # pylint
16
16
  # pylint-celery
17
- awscli==1.37.16
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.16
23
+ boto3==1.36.21
24
24
  # via -r requirements/reporting.in
25
- botocore==1.36.16
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.11
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
@@ -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
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
@@ -245,7 +245,7 @@ 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
@@ -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
@@ -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.16
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.16
19
+ boto3==1.36.21
20
20
  # via -r requirements/reporting.in
21
- botocore==1.36.16
21
+ botocore==1.36.21
22
22
  # via
23
23
  # awscli
24
24
  # boto3
@@ -54,9 +54,9 @@ click-repl==0.3.0
54
54
  # via celery
55
55
  colorama==0.4.6
56
56
  # via awscli
57
- coverage[toml]==7.6.11
57
+ coverage[toml]==7.6.12
58
58
  # via pytest-cov
59
- cryptography==44.0.0
59
+ cryptography==44.0.1
60
60
  # via
61
61
  # -r requirements/reporting.in
62
62
  # django-fernet-fields-v2
@@ -87,7 +87,7 @@ django-crum==0.7.9
87
87
  # edx-rbac
88
88
  django-fernet-fields-v2==0.9
89
89
  # via -r requirements/base.in
90
- django-filter==24.3
90
+ django-filter==25.1
91
91
  # via -r requirements/base.in
92
92
  django-model-utils==5.0.0
93
93
  # via
@@ -128,13 +128,13 @@ edx-opaque-keys==2.11.0
128
128
  # edx-drf-extensions
129
129
  edx-rbac==1.10.0
130
130
  # via -r requirements/base.in
131
- edx-rest-api-client==6.0.0
131
+ edx-rest-api-client==6.1.0
132
132
  # via -r requirements/base.in
133
133
  factory-boy==3.3.3
134
134
  # via
135
135
  # -r requirements/base.in
136
136
  # -r requirements/test.in
137
- faker==35.2.0
137
+ faker==36.1.1
138
138
  # via factory-boy
139
139
  filelock==3.17.0
140
140
  # via snowflake-connector-python
@@ -164,7 +164,7 @@ mysql-connector-python==9.2.0
164
164
  # via -r requirements/base.in
165
165
  newrelic==10.6.0
166
166
  # via edx-django-utils
167
- numpy==2.2.2
167
+ numpy==2.2.3
168
168
  # via
169
169
  # -r requirements/base.in
170
170
  # pandas
@@ -191,7 +191,7 @@ pluggy==1.5.0
191
191
  # via pytest
192
192
  prompt-toolkit==3.0.50
193
193
  # via click-repl
194
- psutil==6.1.1
194
+ psutil==7.0.0
195
195
  # via edx-django-utils
196
196
  py2neo @ https://github.com/overhangio/py2neo/releases/download/2021.2.3/py2neo-2021.2.3.tar.gz
197
197
  # via -r requirements/reporting.in
@@ -211,7 +211,7 @@ pyjwt[crypto]==2.10.1
211
211
  # snowflake-connector-python
212
212
  pyminizip==0.2.6
213
213
  # via -r requirements/reporting.in
214
- pymongo==4.11
214
+ pymongo==4.11.1
215
215
  # via edx-opaque-keys
216
216
  pynacl==1.5.0
217
217
  # via
@@ -225,13 +225,12 @@ pytest==8.3.4
225
225
  # pytest-django
226
226
  pytest-cov==6.0.0
227
227
  # via -r requirements/test.in
228
- pytest-django==4.9.0
228
+ pytest-django==4.10.0
229
229
  # via -r requirements/test.in
230
230
  python-dateutil==2.9.0.post0
231
231
  # via
232
232
  # botocore
233
233
  # celery
234
- # faker
235
234
  # freezegun
236
235
  # pandas
237
236
  # vertica-python
@@ -287,11 +286,11 @@ tomlkit==0.13.2
287
286
  typing-extensions==4.12.2
288
287
  # via
289
288
  # edx-opaque-keys
290
- # faker
291
289
  # snowflake-connector-python
292
290
  tzdata==2025.1
293
291
  # via
294
292
  # celery
293
+ # faker
295
294
  # kombu
296
295
  # pandas
297
296
  unicodecsv==0.14.1
@@ -8,15 +8,15 @@ amqp==5.3.1
8
8
  # via kombu
9
9
  asn1crypto==1.5.1
10
10
  # via snowflake-connector-python
11
- awscli==1.37.16
11
+ awscli==1.37.21
12
12
  # via -r /home/runner/work/edx-enterprise-data/edx-enterprise-data/requirements/reporting.in
13
13
  bcrypt==4.2.1
14
14
  # via paramiko
15
15
  billiard==4.2.1
16
16
  # via celery
17
- boto3==1.36.16
17
+ boto3==1.36.21
18
18
  # via -r /home/runner/work/edx-enterprise-data/edx-enterprise-data/requirements/reporting.in
19
- botocore==1.36.16
19
+ botocore==1.36.21
20
20
  # via
21
21
  # awscli
22
22
  # boto3
@@ -57,9 +57,9 @@ colorama==0.4.6
57
57
  # via
58
58
  # awscli
59
59
  # tox
60
- coverage[toml]==7.6.11
60
+ coverage[toml]==7.6.12
61
61
  # via pytest-cov
62
- cryptography==44.0.0
62
+ cryptography==44.0.1
63
63
  # via
64
64
  # -r /home/runner/work/edx-enterprise-data/edx-enterprise-data/requirements/reporting.in
65
65
  # paramiko
@@ -211,7 +211,7 @@ vine==5.1.0
211
211
  # amqp
212
212
  # celery
213
213
  # kombu
214
- virtualenv==20.29.1
214
+ virtualenv==20.29.2
215
215
  # via tox
216
216
  wcwidth==0.2.13
217
217
  # via prompt-toolkit