Commit df0ba347 by Andrew Zafft

Updating to OEP-18 standards and updating to the latest version of the analytics-data-api-client

parent c699f245
.PHONY: requirements
ROOT = $(shell echo "$$PWD")
COVERAGE = $(ROOT)/build/coverage
NODE_BIN=./node_modules/.bin
DJANGO_SETTINGS_MODULE ?= "analytics_dashboard.settings.local"
.PHONY: requirements clean
.PHONY: requirements clean upgrade pin_pip
# pin to 9.0.3 until tox-battery upgrades
# 9.0.3 does not work on Sierra Mac OSX. 10.0.1 should be used instead.
pin_pip:
pip install --upgrade pip==9.0.3
requirements: requirements.py requirements.js
upgrade: ## update the pip requirements files to use the latest releases satisfying our constraints
pip install -qr requirements/pip-tools.txt
pip-compile --upgrade -o requirements/pip-tools.txt requirements/pip-tools.in
pip-compile --upgrade -o requirements/base.txt requirements/base.in
pip-compile --upgrade -o requirements/doc.txt requirements/doc.in
pip-compile --upgrade -o requirements/local.txt requirements/local.in
pip-compile --upgrade -o requirements/optional.txt requirements/optional.in
pip-compile --upgrade -o requirements/production.txt requirements/production.in
pip-compile --upgrade -o requirements/test.txt requirements/test.in
# Post process all of the files generated above to replace the instructions for recreating them
scripts/post-pip-compile.sh \
requirements/pip-tools.txt \
requirements/base.txt \
requirements/doc.txt \
requirements/local.txt \
requirements/optional.txt \
requirements/production.txt \
requirements/test.txt
requirements.py:
pip install -q -r requirements/base.txt --exists-action w
......
import datetime
from unittest import skipUnless
from analyticsclient.constants import activity_type as at
from analyticsclient.constants import activity_types as at
from bok_choy.web_app_test import WebAppTest
from opaque_keys.edx.keys import UsageKey
......
from collections import OrderedDict
import datetime
from analyticsclient.constants import demographic, UNKNOWN_COUNTRY_CODE, enrollment_modes
from analyticsclient.constants import demographics, UNKNOWN_COUNTRY_CODE, enrollment_modes
from bok_choy.web_app_test import WebAppTest
from acceptance_tests.mixins import CoursePageTestsMixin
......@@ -128,7 +128,7 @@ class CourseEnrollmentGeographyTests(CoursePageTestsMixin, WebAppTest):
super(CourseEnrollmentGeographyTests, self).setUp()
self.page = CourseEnrollmentGeographyPage(self.browser)
self.course = self.analytics_api_client.courses(self.page.course_id)
self.enrollment_data = sorted(self.course.enrollment(demographic.LOCATION),
self.enrollment_data = sorted(self.course.enrollment(demographics.LOCATION),
key=lambda item: item['count'], reverse=True)
def test_page(self):
......@@ -138,7 +138,7 @@ class CourseEnrollmentGeographyTests(CoursePageTestsMixin, WebAppTest):
self._test_metrics()
def _get_data_update_message(self):
current_enrollment = self.course.enrollment(demographic.LOCATION)[0]
current_enrollment = self.course.enrollment(demographics.LOCATION)[0]
last_updated = datetime.datetime.strptime(current_enrollment['created'], self.api_datetime_format)
return 'Geographic learner data was last updated %(update_date)s at %(update_time)s UTC.' % \
self.format_last_updated_date_and_time(last_updated)
......
import datetime
from analyticsclient.constants import demographic
import analyticsclient.constants.education_level as EDUCATION_LEVEL
import analyticsclient.constants.gender as GENDER
from analyticsclient.constants import demographics
import analyticsclient.constants.education_levels as EDUCATION_LEVEL
import analyticsclient.constants.genders as GENDER
from bok_choy.web_app_test import WebAppTest
from acceptance_tests.mixins import CourseDemographicsPageTestsMixin
......@@ -16,7 +16,7 @@ _multiprocess_can_split_ = True
class CourseEnrollmentDemographicsAgeTests(CourseDemographicsPageTestsMixin, WebAppTest):
help_path = 'enrollment/Demographics_Age.html'
demographic_type = demographic.BIRTH_YEAR
demographic_type = demographics.BIRTH_YEAR
table_columns = ['Age', 'Number of Learners', 'Percent of Total']
def setUp(self):
......@@ -112,7 +112,7 @@ class CourseEnrollmentDemographicsAgeTests(CourseDemographicsPageTestsMixin, Web
class CourseEnrollmentDemographicsGenderTests(CourseDemographicsPageTestsMixin, WebAppTest):
help_path = 'enrollment/Demographics_Gender.html'
demographic_type = demographic.GENDER
demographic_type = demographics.GENDER
table_columns = ['Date', 'Current Enrollment', 'Female', 'Male', 'Other', 'Not Reported']
def setUp(self):
......@@ -162,7 +162,7 @@ class CourseEnrollmentDemographicsEducationTests(CourseDemographicsPageTestsMixi
help_path = 'enrollment/Demographics_Education.html'
demographic_type = demographic.EDUCATION
demographic_type = demographics.EDUCATION
table_columns = ['Educational Background', 'Number of Learners']
def setUp(self):
......
......@@ -7,7 +7,7 @@ from django.utils.translation import ugettext_lazy as _
from waffle import switch_is_active
from analyticsclient.client import Client
import analyticsclient.constants.activity_type as AT
import analyticsclient.constants.activity_types as AT
from analyticsclient.exceptions import NotFoundError
from core.templatetags.dashboard_extras import metric_percentage
......
......@@ -4,9 +4,9 @@ import logging
from django.utils.translation import ugettext_lazy as _
from django_countries import countries
from analyticsclient.constants import demographic, UNKNOWN_COUNTRY_CODE, enrollment_modes
import analyticsclient.constants.education_level as EDUCATION_LEVEL
import analyticsclient.constants.gender as GENDER
from analyticsclient.constants import demographics, UNKNOWN_COUNTRY_CODE, enrollment_modes
import analyticsclient.constants.education_levels as EDUCATION_LEVEL
import analyticsclient.constants.genders as GENDER
import courses.utils as utils
from courses.presenters import CoursePresenter
......@@ -198,7 +198,7 @@ class CourseEnrollmentPresenter(CoursePresenter):
"""
Returns a list of course geography data and the updated date (ex. 2014-1-31).
"""
api_response = self.course.enrollment(demographic.LOCATION)
api_response = self.course.enrollment(demographics.LOCATION)
data = []
summary = {}
......@@ -287,7 +287,7 @@ class CourseEnrollmentDemographicsPresenter(CoursePresenter):
Returns the updated time, most recent gender counts, and breakdown of daily
gender trends.
"""
api_response = self.course.enrollment(demographic.GENDER, end_date=self.get_current_date())
api_response = self.course.enrollment(demographics.GENDER, end_date=self.get_current_date())
recent_genders = None
trend = None
last_updated = None
......@@ -340,7 +340,7 @@ class CourseEnrollmentDemographicsPresenter(CoursePresenter):
ages with counts and percentages and ages greater than MAX_AGE aggregated
within MAX_AGE.
"""
api_response = self.course.enrollment(demographic.BIRTH_YEAR)
api_response = self.course.enrollment(demographics.BIRTH_YEAR)
last_updated = None
binned_ages = None
summary = None
......@@ -533,7 +533,7 @@ class CourseEnrollmentDemographicsPresenter(CoursePresenter):
return api_response
def get_education(self):
api_response = self.course.enrollment(demographic.EDUCATION)
api_response = self.course.enrollment(demographics.EDUCATION)
education_levels = None
education_summary = None
last_updated = None
......
......@@ -12,7 +12,7 @@ from slugify import slugify
import mock
from waffle.testutils import override_switch
import analyticsclient.constants.activity_type as AT
import analyticsclient.constants.activity_types as AT
from analyticsclient.constants import enrollment_modes
from common.tests.course_fixtures import (
......
......@@ -9,7 +9,7 @@ from django.utils.translation import ugettext_lazy as _
from waffle.testutils import override_switch
import analyticsclient.constants.activity_type as AT
import analyticsclient.constants.activity_types as AT
from courses.tests.factories import CourseEngagementDataFactory
from courses.tests.test_views import (
......
......@@ -6,9 +6,9 @@ import uuid
from analyticsclient.client import Client
from analyticsclient.constants import enrollment_modes, UNKNOWN_COUNTRY_CODE
import analyticsclient.constants.activity_type as AT
import analyticsclient.constants.education_level as EDUCATION_LEVEL
import analyticsclient.constants.gender as GENDER
import analyticsclient.constants.activity_types as AT
import analyticsclient.constants.education_levels as EDUCATION_LEVEL
import analyticsclient.constants.genders as GENDER
from courses.permissions import set_user_course_permissions
from courses.presenters.performance import AnswerDistributionEntry
......
......@@ -5,7 +5,7 @@ import urllib
from django.http import HttpResponse, HttpResponseRedirect
from django.utils import timezone
from analyticsclient.constants import data_format, demographic
from analyticsclient.constants import data_formats, demographics
from analyticsclient.client import Client
from courses.presenters.performance import CourseReportDownloadPresenter
......@@ -63,14 +63,14 @@ class CourseEnrollmentDemographicsAgeCSV(CourseCSVResponseMixin, CourseView):
csv_filename_suffix = u'enrollment-by-birth-year'
def get_data(self):
return self.course.enrollment(demographic.BIRTH_YEAR, data_format=data_format.CSV),
return self.course.enrollment(demographics.BIRTH_YEAR, data_format=data_formats.CSV),
class CourseEnrollmentDemographicsEducationCSV(CourseCSVResponseMixin, CourseView):
csv_filename_suffix = u'enrollment-by-education'
def get_data(self):
return self.course.enrollment(demographic.EDUCATION, data_format=data_format.CSV),
return self.course.enrollment(demographics.EDUCATION, data_format=data_formats.CSV),
class CourseEnrollmentDemographicsGenderCSV(CourseCSVResponseMixin, CourseView):
......@@ -78,14 +78,14 @@ class CourseEnrollmentDemographicsGenderCSV(CourseCSVResponseMixin, CourseView):
def get_data(self):
end_date = datetime.datetime.utcnow().strftime(Client.DATE_FORMAT)
return self.course.enrollment(demographic.GENDER, end_date=end_date, data_format=data_format.CSV),
return self.course.enrollment(demographics.GENDER, end_date=end_date, data_format=data_formats.CSV),
class CourseEnrollmentByCountryCSV(CourseCSVResponseMixin, CourseView):
csv_filename_suffix = u'enrollment-location'
def get_data(self):
return self.course.enrollment(demographic.LOCATION, data_format=data_format.CSV)
return self.course.enrollment(demographics.LOCATION, data_format=data_formats.CSV)
class CourseEnrollmentCSV(CourseCSVResponseMixin, CourseView):
......@@ -93,7 +93,7 @@ class CourseEnrollmentCSV(CourseCSVResponseMixin, CourseView):
def get_data(self):
end_date = datetime.datetime.utcnow().strftime(Client.DATE_FORMAT)
return self.course.enrollment('mode', data_format=data_format.CSV, end_date=end_date)
return self.course.enrollment('mode', data_format=data_formats.CSV, end_date=end_date)
class CourseEngagementActivityTrendCSV(CourseCSVResponseMixin, CourseView):
......@@ -101,7 +101,7 @@ class CourseEngagementActivityTrendCSV(CourseCSVResponseMixin, CourseView):
def get_data(self):
end_date = datetime.datetime.utcnow().strftime(Client.DATE_FORMAT)
return self.course.activity(data_format=data_format.CSV, end_date=end_date)
return self.course.activity(data_format=data_formats.CSV, end_date=end_date)
class CourseEngagementVideoTimelineCSV(CourseCSVResponseMixin, CourseView):
......@@ -109,7 +109,7 @@ class CourseEngagementVideoTimelineCSV(CourseCSVResponseMixin, CourseView):
def get_data(self):
modules = self.client.modules(self.course_id, self.kwargs['pipeline_video_id'])
return modules.video_timeline(data_format=data_format.CSV)
return modules.video_timeline(data_format=data_formats.CSV)
class PerformanceAnswerDistributionCSV(CourseCSVResponseMixin, CourseView):
......@@ -117,7 +117,7 @@ class PerformanceAnswerDistributionCSV(CourseCSVResponseMixin, CourseView):
def get_data(self):
modules = self.client.modules(self.course_id, self.kwargs['content_id'])
return modules.answer_distribution(data_format=data_format.CSV)
return modules.answer_distribution(data_format=data_formats.CSV)
class PerformanceProblemResponseCSV(CourseView):
......
......@@ -2,7 +2,8 @@
# http://open-edx-proposals.readthedocs.io/en/latest/oeps/oep-0002.html#specification
nick: dash
oeps: {}
oeps:
oep-18: True
openedx-release: {ref: master, requirements: requirements/base.txt}
owner: edx/educator-dahlia
tags: [analytics]
......
requests==2.17.3 # Apache 2.0
awesome-slugify==1.6.5 # GPLv3
bpython==0.16 # MIT License
Django==1.11.5 # BSD License
django-appconf==1.0.2
django-braces==1.11.0 # BSD
django-countries==4.5 # MIT
django-model-utils==2.6.1 # BSD
django-webpack-loader==0.4.1 # MIT
djangorestframework==3.6.3 # BSD
djangorestframework-csv==2.0.0 # BSD
# Dependency of djangorestframework
django-crispy-forms==1.6.1 # MIT
django-soapbox==1.3 # BSD
django-waffle==0.12.0 # BSD
pinax-announcements==2.0.4 # MIT
edx-auth-backends==1.1.3
edx-django-release-util==0.3.1
edx-i18n-tools==0.4.2
edx-rest-api-client==1.7.1 # Apache
libsass==0.11.1 # MIT
logutils==0.3.4.1 # BSD
# edx-analytics-data-api-client
-e git+https://github.com/edx/django-lang-pref-middleware.git@0.1.0#egg=django-lang-pref-middleware
-e git+https://github.com/edx/edx-analytics-data-api-client.git@0.14.4#egg=edx-analytics-data-api-client==0.14.4 # edX
-e git+https://github.com/edx/opaque-keys.git@d45d0bd8d64c69531be69178b9505b5d38806ce0#egg=opaque-keys
# custom opaque-key implementations for ccx
-e git+https://github.com/jazkarta/ccx-keys.git@e6b03704b1bb97c1d2f31301ecb4e3a687c536ea#egg=ccx-keys
awesome-slugify==1.6.5 # GPLv3
bpython==0.16 # MIT License
Django==1.11.5 # BSD License
#
# This file is autogenerated by pip-compile
# To update, run:
#
# make upgrade
#
-e git+https://github.com/jazkarta/ccx-keys.git@e6b03704b1bb97c1d2f31301ecb4e3a687c536ea#egg=ccx-keys
-e git+https://github.com/edx/django-lang-pref-middleware.git@0.1.0#egg=django-lang-pref-middleware
-e git+https://github.com/edx/edx-analytics-data-api-client.git@0.14.4#egg=edx-analytics-data-api-client==0.14.4
-e git+https://github.com/edx/opaque-keys.git@d45d0bd8d64c69531be69178b9505b5d38806ce0#egg=opaque-keys
awesome-slugify==1.6.5
blessings==1.6.1 # via curtsies
bpython==0.16
certifi==2018.4.16 # via requests
chardet==3.0.4 # via requests
curtsies==0.3.0 # via bpython
django-appconf==1.0.2
django-braces==1.11.0 # BSD
django-countries==4.5 # MIT
django-model-utils==2.6.1 # BSD
django-webpack-loader==0.4.1 # MIT
djangorestframework==3.6.3 # BSD
djangorestframework-csv==2.0.0 # BSD
# Dependency of djangorestframework
django-crispy-forms==1.6.1 # MIT
django-soapbox==1.3 # BSD
django-waffle==0.12.0 # BSD
pinax-announcements==2.0.4 # MIT
django-braces==1.11.0
django-countries==4.5
django-crispy-forms==1.6.1
django-model-utils==2.6.1
django-soapbox==1.3
django-waffle==0.12.0
django-webpack-loader==0.4.1
django==1.11.5
djangorestframework-csv==2.0.0
djangorestframework==3.6.3
edx-auth-backends==1.1.3
edx-django-release-util==0.3.1
edx-i18n-tools==0.4.2
edx-rest-api-client==1.7.1 # Apache
libsass==0.11.1 # MIT
logutils==0.3.4.1 # BSD
requests==2.17.3 # Apache 2.0
git+https://github.com/edx/django-lang-pref-middleware.git@0.1.0#egg=django-lang-pref-middleware
git+https://github.com/edx/edx-analytics-data-api-client.git@0.12.0#egg=edx-analytics-data-api-client==0.12.0 # edX
git+https://github.com/edx/opaque-keys.git@d45d0bd8d64c69531be69178b9505b5d38806ce0#egg=opaque-keys
# custom opaque-key implementations for ccx
git+https://github.com/jazkarta/ccx-keys.git@e6b03704b1bb97c1d2f31301ecb4e3a687c536ea#egg=ccx-keys
edx-rest-api-client==1.7.1
future==0.16.0 # via pyjwkest
greenlet==0.4.13 # via bpython
idna==2.5 # via requests
libsass==0.11.1
logutils==0.3.4.1
oauthlib==2.1.0 # via requests-oauthlib, social-auth-core
path.py==11.0.1 # via edx-i18n-tools
pbr==4.0.3 # via stevedore
pinax-announcements==2.0.4
polib==1.1.0 # via edx-i18n-tools
pycryptodomex==3.6.1 # via pyjwkest
pygments==2.2.0 # via bpython
pyjwkest==1.4.0 # via social-auth-core
pyjwt==1.6.4 # via edx-rest-api-client, social-auth-core
pymongo==3.6.1
python-openid==2.2.5 # via social-auth-core
pytz==2018.4 # via django
pyyaml==3.12 # via edx-django-release-util, edx-i18n-tools
regex==2018.2.21 # via awesome-slugify
requests-oauthlib==1.0.0 # via social-auth-core
requests==2.17.3
six==1.11.0 # via bpython, djangorestframework-csv, edx-auth-backends, edx-django-release-util, edx-i18n-tools, libsass, pyjwkest, social-auth-app-django, social-auth-core, stevedore
slumber==0.7.1 # via edx-rest-api-client
social-auth-app-django==1.2.0 # via edx-auth-backends
social-auth-core[openidconnect]==1.7.0 # via edx-auth-backends, social-auth-app-django
stevedore==1.28.0
typing==3.6.4 # via curtsies
unicodecsv==0.14.1 # via djangorestframework-csv
unidecode==0.4.21 # via awesome-slugify
urllib3==1.21.1 # via requests
wcwidth==0.1.7 # via curtsies
# Dependencies for building documentation
-r base.txt
Sphinx==1.4.5
sphinx_rtd_theme==0.1.9
# Dependencies for building documentation
-r base.txt
Sphinx==1.4.5
#
# This file is autogenerated by pip-compile
# To update, run:
#
# make upgrade
#
-e git+https://github.com/jazkarta/ccx-keys.git@e6b03704b1bb97c1d2f31301ecb4e3a687c536ea#egg=ccx-keys
-e git+https://github.com/edx/django-lang-pref-middleware.git@0.1.0#egg=django-lang-pref-middleware
-e git+https://github.com/edx/edx-analytics-data-api-client.git@0.14.4#egg=edx-analytics-data-api-client==0.14.4
-e git+https://github.com/edx/opaque-keys.git@d45d0bd8d64c69531be69178b9505b5d38806ce0#egg=opaque-keys
alabaster==0.7.10 # via sphinx
awesome-slugify==1.6.5
babel==2.6.0 # via sphinx
blessings==1.6.1
bpython==0.16
certifi==2018.4.16
chardet==3.0.4
curtsies==0.3.0
django-appconf==1.0.2
django-braces==1.11.0
django-countries==4.5
django-crispy-forms==1.6.1
django-model-utils==2.6.1
django-soapbox==1.3
django-waffle==0.12.0
django-webpack-loader==0.4.1
django==1.11.5
djangorestframework-csv==2.0.0
djangorestframework==3.6.3
docutils==0.14 # via sphinx
edx-auth-backends==1.1.3
edx-django-release-util==0.3.1
edx-i18n-tools==0.4.2
edx-rest-api-client==1.7.1
future==0.16.0
greenlet==0.4.13
idna==2.5
imagesize==1.0.0 # via sphinx
jinja2==2.10 # via sphinx
libsass==0.11.1
logutils==0.3.4.1
markupsafe==1.0 # via jinja2
oauthlib==2.1.0
path.py==11.0.1
pbr==4.0.3
pinax-announcements==2.0.4
polib==1.1.0
pycryptodomex==3.6.1
pygments==2.2.0
pyjwkest==1.4.0
pyjwt==1.6.4
pymongo==3.6.1
python-openid==2.2.5
pytz==2018.4
pyyaml==3.12
regex==2018.2.21
requests-oauthlib==1.0.0
requests==2.17.3
six==1.11.0
slumber==0.7.1
snowballstemmer==1.2.1 # via sphinx
social-auth-app-django==1.2.0
social-auth-core[openidconnect]==1.7.0
sphinx==1.4.5
sphinx_rtd_theme==0.1.9
stevedore==1.28.0
typing==3.6.4
unicodecsv==0.14.1
unidecode==0.4.21
urllib3==1.21.1
wcwidth==0.1.7
# Local development dependencies go here
-r base.txt
django-debug-toolbar==1.8
transifex-client==0.12.4
# Local development dependencies go here
-r base.txt
#
# This file is autogenerated by pip-compile
# To update, run:
#
# make upgrade
#
-e git+https://github.com/jazkarta/ccx-keys.git@e6b03704b1bb97c1d2f31301ecb4e3a687c536ea#egg=ccx-keys
-e git+https://github.com/edx/django-lang-pref-middleware.git@0.1.0#egg=django-lang-pref-middleware
-e git+https://github.com/edx/edx-analytics-data-api-client.git@0.14.4#egg=edx-analytics-data-api-client==0.14.4
-e git+https://github.com/edx/opaque-keys.git@d45d0bd8d64c69531be69178b9505b5d38806ce0#egg=opaque-keys
awesome-slugify==1.6.5
blessings==1.6.1
bpython==0.16
certifi==2018.4.16
chardet==3.0.4
curtsies==0.3.0
django-appconf==1.0.2
django-braces==1.11.0
django-countries==4.5
django-crispy-forms==1.6.1
django-debug-toolbar==1.8
django-model-utils==2.6.1
django-soapbox==1.3
django-waffle==0.12.0
django-webpack-loader==0.4.1
django==1.11.5
djangorestframework-csv==2.0.0
djangorestframework==3.6.3
edx-auth-backends==1.1.3
edx-django-release-util==0.3.1
edx-i18n-tools==0.4.2
edx-rest-api-client==1.7.1
future==0.16.0
greenlet==0.4.13
idna==2.5
libsass==0.11.1
logutils==0.3.4.1
oauthlib==2.1.0
path.py==11.0.1
pbr==4.0.3
pinax-announcements==2.0.4
polib==1.1.0
pycryptodomex==3.6.1
pygments==2.2.0
pyjwkest==1.4.0
pyjwt==1.6.4
pymongo==3.6.1
python-openid==2.2.5
pytz==2018.4
pyyaml==3.12
regex==2018.2.21
requests-oauthlib==1.0.0
requests==2.17.3
six==1.11.0
slumber==0.7.1
social-auth-app-django==1.2.0
social-auth-core[openidconnect]==1.7.0
sqlparse==0.2.4 # via django-debug-toolbar
stevedore==1.28.0
transifex-client==0.12.4
typing==3.6.4
unicodecsv==0.14.1
unidecode==0.4.21
urllib3==1.21.1
wcwidth==0.1.7
newrelic==2.98.0.81 # New Relic
newrelic==2.98.0.81 # New Relic
#
# This file is autogenerated by pip-compile
# To update, run:
#
# make upgrade
#
newrelic==2.98.0.81
# Just the dependencies to run pip-tools, mainly for the "upgrade" make target
pip-tools # Contains pip-compile, used to generate pip requirements files
#
# This file is autogenerated by pip-compile
# To update, run:
#
# make upgrade
#
click==6.7 # via pip-tools
first==2.0.1 # via pip-tools
pip-tools==2.0.2
six==1.11.0 # via pip-tools
-r base.txt
MySQL-python==1.2.5 # GPL License
PyYAML==3.12 # MIT License
gunicorn==0.17.4 # MIT
python-memcached==1.58
nodeenv==1.1.2 # BSD
# Pro-tip: Try not to put anything here. There should be no dependency in
# production that isn't in development.
-r base.txt
MySQL-python==1.2.5 # GPL License
PyYAML==3.12 # MIT License
gunicorn==0.17.4 # MIT
#
# This file is autogenerated by pip-compile
# To update, run:
#
# make upgrade
#
-e git+https://github.com/jazkarta/ccx-keys.git@e6b03704b1bb97c1d2f31301ecb4e3a687c536ea#egg=ccx-keys
-e git+https://github.com/edx/django-lang-pref-middleware.git@0.1.0#egg=django-lang-pref-middleware
-e git+https://github.com/edx/edx-analytics-data-api-client.git@0.14.4#egg=edx-analytics-data-api-client==0.14.4
-e git+https://github.com/edx/opaque-keys.git@d45d0bd8d64c69531be69178b9505b5d38806ce0#egg=opaque-keys
awesome-slugify==1.6.5
blessings==1.6.1
bpython==0.16
certifi==2018.4.16
chardet==3.0.4
curtsies==0.3.0
django-appconf==1.0.2
django-braces==1.11.0
django-countries==4.5
django-crispy-forms==1.6.1
django-model-utils==2.6.1
django-soapbox==1.3
django-waffle==0.12.0
django-webpack-loader==0.4.1
django==1.11.5
djangorestframework-csv==2.0.0
djangorestframework==3.6.3
edx-auth-backends==1.1.3
edx-django-release-util==0.3.1
edx-i18n-tools==0.4.2
edx-rest-api-client==1.7.1
future==0.16.0
greenlet==0.4.13
gunicorn==0.17.4
idna==2.5
libsass==0.11.1
logutils==0.3.4.1
mysql-python==1.2.5
nodeenv==1.1.2
oauthlib==2.1.0
path.py==11.0.1
pbr==4.0.3
pinax-announcements==2.0.4
polib==1.1.0
pycryptodomex==3.6.1
pygments==2.2.0
pyjwkest==1.4.0
pyjwt==1.6.4
pymongo==3.6.1
python-memcached==1.58
nodeenv==1.1.2 # BSD
python-openid==2.2.5
pytz==2018.4
pyyaml==3.12
regex==2018.2.21
requests-oauthlib==1.0.0
requests==2.17.3
six==1.11.0
slumber==0.7.1
social-auth-app-django==1.2.0
social-auth-core[openidconnect]==1.7.0
stevedore==1.28.0
typing==3.6.4
unicodecsv==0.14.1
unidecode==0.4.21
urllib3==1.21.1
wcwidth==0.1.7
# Test dependencies go here.
-r base.txt
bok-choy==0.7.0
coverage==4.4.1
ddt==1.1.1
django-dynamic-fixture==1.9.5
django-nose==1.4.4
elasticsearch==2.4.1
unittest2==1.1.0
httpretty==0.8.14
mock==1.3.0
nose-exclude==0.5.0
nose-ignore-docstring==0.2
nose==1.3.7
pep257==0.7.0
pep8==1.7.0
pylint==1.7.1
logilab-common==1.4.0
selenium>=2.44.0,<3.0.0
sure==1.4.6
testfixtures==4.14.3
# Test dependencies go here.
-r base.txt
#
# This file is autogenerated by pip-compile
# To update, run:
#
# make upgrade
#
-e git+https://github.com/jazkarta/ccx-keys.git@e6b03704b1bb97c1d2f31301ecb4e3a687c536ea#egg=ccx-keys
-e git+https://github.com/edx/django-lang-pref-middleware.git@0.1.0#egg=django-lang-pref-middleware
-e git+https://github.com/edx/edx-analytics-data-api-client.git@0.14.4#egg=edx-analytics-data-api-client==0.14.4
-e git+https://github.com/edx/opaque-keys.git@d45d0bd8d64c69531be69178b9505b5d38806ce0#egg=opaque-keys
argparse==1.4.0 # via unittest2
astroid==1.6.4 # via pylint
awesome-slugify==1.6.5
backports.functools-lru-cache==1.5 # via astroid, pylint
blessings==1.6.1
bok-choy==0.7.0
bpython==0.16
certifi==2018.4.16
chardet==3.0.4
configparser==3.5.0 # via pylint
coverage==4.4.1
curtsies==0.3.0
ddt==1.1.1
django-appconf==1.0.2
django-braces==1.11.0
django-countries==4.5
django-crispy-forms==1.6.1
django-dynamic-fixture==1.9.5
django-model-utils==2.6.1
django-nose==1.4.4
django-soapbox==1.3
django-waffle==0.12.0
django-webpack-loader==0.4.1
django==1.11.5
djangorestframework-csv==2.0.0
djangorestframework==3.6.3
edx-auth-backends==1.1.3
edx-django-release-util==0.3.1
edx-i18n-tools==0.4.2
edx-rest-api-client==1.7.1
elasticsearch==2.4.1
unittest2==1.1.0
enum34==1.1.6 # via astroid
funcsigs==1.0.2 # via mock
future==0.16.0
futures==3.2.0 # via isort
greenlet==0.4.13
httpretty==0.8.14
idna==2.5
isort==4.3.4 # via pylint
lazy-object-proxy==1.3.1 # via astroid
lazy==1.3 # via bok-choy
libsass==0.11.1
linecache2==1.0.0 # via traceback2
logilab-common==1.4.0
logutils==0.3.4.1
mccabe==0.6.1 # via pylint
mock==1.3.0
needle==0.5.0 # via bok-choy
nose-exclude==0.5.0
nose-ignore-docstring==0.2
nose==1.3.7
oauthlib==2.1.0
path.py==11.0.1
pbr==4.0.3
pep257==0.7.0
pep8==1.7.0
pillow==5.1.0 # via needle
pinax-announcements==2.0.4
polib==1.1.0
pycryptodomex==3.6.1
pygments==2.2.0
pyjwkest==1.4.0
pyjwt==1.6.4
pylint==1.7.1
logilab-common==1.4.0
selenium>=2.44.0,<3.0.0
pymongo==3.6.1
python-openid==2.2.5
pytz==2018.4
pyyaml==3.12
regex==2018.2.21
requests-oauthlib==1.0.0
requests==2.17.3
selenium==2.53.6
singledispatch==3.4.0.3 # via astroid, pylint
six==1.11.0
slumber==0.7.1
social-auth-app-django==1.2.0
social-auth-core[openidconnect]==1.7.0
stevedore==1.28.0
sure==1.4.6
testfixtures==4.14.3
traceback2==1.4.0 # via unittest2
typing==3.6.4
unicodecsv==0.14.1
unidecode==0.4.21
unittest2==1.1.0
urllib3==1.21.1
wcwidth==0.1.7
wrapt==1.10.11 # via astroid
#!/usr/bin/env bash
set -e
# Replace the instructions for regenerating requirements/*.txt files
function show_help {
echo "Usage: post-pip-compile.sh file ..."
echo "Replace the instructions for regenerating the given requirements file(s)."
}
function clean_file {
FILE_PATH=$1
TEMP_FILE=${FILE_PATH}.tmp
# Replace the instructions for regenerating the output file.
INPUT_FILE=${FILE_PATH/\.txt/\.in}
sed "s/pip-compile --output-file.*/make upgrade/" ${FILE_PATH} > ${TEMP_FILE}
mv ${TEMP_FILE} ${FILE_PATH}
}
for i in "$@"; do
case ${i} in
-h|--help)
# help or unknown option
show_help
exit 0
;;
*)
clean_file ${i}
;;
esac
done
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment