Skip to content

Commit

Permalink
Merge 4b4b1f0 into 76b1ae6
Browse files Browse the repository at this point in the history
  • Loading branch information
timmc-edx committed Mar 18, 2020
2 parents 76b1ae6 + 4b4b1f0 commit e036601
Show file tree
Hide file tree
Showing 21 changed files with 268 additions and 21 deletions.
2 changes: 1 addition & 1 deletion .pep8
@@ -1,2 +1,2 @@
[pep8]
[pycodestyle]
ignore=E501
4 changes: 4 additions & 0 deletions MANIFEST.in
@@ -0,0 +1,4 @@
include LICENSE
include README.rst
include requirements/base.in
recursive-include ccx_keys *.html *.png *.gif *js *.css *jpg *jpeg *svg *py
18 changes: 14 additions & 4 deletions Makefile
@@ -1,16 +1,26 @@
.DEFAULT_GOAL := test

.PHONY: html_coverage, quality, requirements
.PHONY: html_coverage quality requirements test upgrade

html_coverage:
coverage html && open htmlcov/index.html

quality:
pep8 --config=.pep8 ccx_keys
pycodestyle --config=.pep8 ccx_keys
pylint --rcfile=pylintrc ccx_keys

requirements:
pip install -r requirements.txt
requirements: ## install development environment requirements
pip install -qr requirements/pip-tools.txt
pip-sync requirements/dev.txt requirements/private.*

test:
tox

upgrade: export CUSTOM_COMPILE_COMMAND=make upgrade
upgrade: ## update the requirements/*.txt files with the latest packages satisfying requirements/*.in
pip install -qr requirements/pip-tools.txt
pip-compile --rebuild --upgrade -o requirements/pip-tools.txt requirements/pip-tools.in
pip-compile --rebuild --upgrade -o requirements/base.txt requirements/base.in
pip-compile --rebuild --upgrade -o requirements/test.txt requirements/test.in
pip-compile --rebuild --upgrade -o requirements/travis.txt requirements/travis.in
pip-compile --rebuild --upgrade -o requirements/dev.txt requirements/dev.in
2 changes: 2 additions & 0 deletions ccx_keys/locator.py
@@ -1,5 +1,7 @@
# -*- coding: utf-8 -*-
""" Locator module. """
from __future__ import unicode_literals

import re

from opaque_keys import InvalidKeyError
Expand Down
2 changes: 1 addition & 1 deletion openedx.yaml
@@ -1,6 +1,6 @@
oeps:
oep-7: true
oep-18: false
oep-18: true

tags:
- library
2 changes: 0 additions & 2 deletions requirements.txt

This file was deleted.

5 changes: 5 additions & 0 deletions requirements/base.in
@@ -0,0 +1,5 @@
# Core requirements for using this application
-c constraints.txt

edx-opaque-keys>=2.0.0
six>=1.10.0
11 changes: 11 additions & 0 deletions requirements/base.txt
@@ -0,0 +1,11 @@
#
# This file is autogenerated by pip-compile
# To update, run:
#
# make upgrade
#
edx-opaque-keys==2.0.1 # via -r requirements/base.in
pbr==5.4.4 # via stevedore
pymongo==3.10.1 # via edx-opaque-keys
six==1.14.0 # via -r requirements/base.in, edx-opaque-keys, stevedore
stevedore==1.32.0 # via edx-opaque-keys
12 changes: 12 additions & 0 deletions requirements/constraints.txt
@@ -0,0 +1,12 @@
# Version constraints for pip-installation.
#
# This file doesn't install any packages. It specifies version constraints
# that will be applied if a package is needed.
#
# When pinning something here, please provide an explanation of why. Ideally,
# link to other information that will help people in the future to remove the
# pin when possible. Writing an issue against the offending project and
# linking to it here is good.

# These packages are backports which can only be installed on Python 2.7
futures ; python_version == "2.7"
8 changes: 8 additions & 0 deletions requirements/dev.in
@@ -0,0 +1,8 @@
# Additional requirements for development of this template
-c constraints.txt

-r pip-tools.txt # pip-tools and its dependencies, for managing requirements files
-r test.txt # Dependencies for testing and quality checks
-r travis.txt # tox and associated dependencies

tox-battery # Makes tox aware of requirements file changes
53 changes: 53 additions & 0 deletions requirements/dev.txt
@@ -0,0 +1,53 @@
#
# This file is autogenerated by pip-compile
# To update, run:
#
# make upgrade
#
appdirs==1.4.3 # via -r requirements/test.txt, -r requirements/travis.txt, virtualenv
astroid==1.6.6 # via -r requirements/test.txt, pylint, pylint-celery
backports.functools-lru-cache==1.6.1 # via -r requirements/test.txt, astroid, isort, pylint
click-log==0.3.2 # via -r requirements/test.txt, edx-lint
click==7.1.1 # via -r requirements/pip-tools.txt, -r requirements/test.txt, click-log, edx-lint, pip-tools
configparser==4.0.2 # via -r requirements/test.txt, -r requirements/travis.txt, importlib-metadata, pylint
contextlib2==0.6.0.post1 # via -r requirements/test.txt, -r requirements/travis.txt, importlib-metadata, importlib-resources, virtualenv, zipp
coverage==5.0.4 # via -r requirements/test.txt
ddt==1.3.1 # via -r requirements/test.txt
distlib==0.3.0 # via -r requirements/test.txt, -r requirements/travis.txt, virtualenv
edx-lint==1.4.1 # via -r requirements/test.txt
edx-opaque-keys==2.0.1 # via -r requirements/test.txt
enum34==1.1.10 # via -r requirements/test.txt, astroid
filelock==3.0.12 # via -r requirements/test.txt, -r requirements/travis.txt, tox, virtualenv
funcsigs==1.0.2 # via -r requirements/test.txt, mock
futures==3.3.0 ; python_version == "2.7" # via -c requirements/constraints.txt, -r requirements/test.txt, isort
importlib-metadata==1.5.0 # via -r requirements/test.txt, -r requirements/travis.txt, importlib-resources, pluggy, tox, virtualenv
importlib-resources==1.3.1 # via -r requirements/test.txt, -r requirements/travis.txt, virtualenv
isort==4.3.21 # via -r requirements/test.txt, pylint
lazy-object-proxy==1.4.3 # via -r requirements/test.txt, astroid
mccabe==0.6.1 # via -r requirements/test.txt, pylint
mock==3.0.5 # via -r requirements/test.txt
nose==1.3.7 # via -r requirements/test.txt
packaging==20.3 # via -r requirements/test.txt, -r requirements/travis.txt, tox
pathlib2==2.3.5 # via -r requirements/test.txt, -r requirements/travis.txt, importlib-metadata, importlib-resources, virtualenv
pbr==5.4.4 # via -r requirements/test.txt, stevedore
pip-tools==4.5.1 # via -r requirements/pip-tools.txt
pluggy==0.13.1 # via -r requirements/test.txt, -r requirements/travis.txt, tox
py==1.8.1 # via -r requirements/test.txt, -r requirements/travis.txt, tox
pycodestyle==2.5.0 # via -r requirements/test.txt
pylint-celery==0.3 # via -r requirements/test.txt, edx-lint
pylint-django==0.11.1 # via -r requirements/test.txt, edx-lint
pylint-plugin-utils==0.6 # via -r requirements/test.txt, pylint-celery, pylint-django
pylint==1.9.5 # via -r requirements/test.txt, edx-lint, pylint-celery, pylint-django, pylint-plugin-utils
pymongo==3.10.1 # via -r requirements/test.txt, edx-opaque-keys
pyparsing==2.4.6 # via -r requirements/test.txt, -r requirements/travis.txt, packaging
scandir==1.10.0 # via -r requirements/test.txt, -r requirements/travis.txt, pathlib2
singledispatch==3.4.0.3 # via -r requirements/test.txt, -r requirements/travis.txt, astroid, importlib-resources, pylint
six==1.14.0 # via -r requirements/pip-tools.txt, -r requirements/test.txt, -r requirements/travis.txt, astroid, edx-lint, edx-opaque-keys, mock, packaging, pathlib2, pip-tools, pylint, singledispatch, stevedore, tox, virtualenv
stevedore==1.32.0 # via -r requirements/test.txt, edx-opaque-keys
toml==0.10.0 # via -r requirements/test.txt, -r requirements/travis.txt, tox
tox-battery==0.5.2 # via -r requirements/dev.in
tox==3.14.5 # via -r requirements/test.txt, -r requirements/travis.txt, tox-battery
typing==3.7.4.1 # via -r requirements/test.txt, -r requirements/travis.txt, importlib-resources
virtualenv==20.0.10 # via -r requirements/test.txt, -r requirements/travis.txt, tox
wrapt==1.12.1 # via -r requirements/test.txt, astroid
zipp==1.2.0 # via -r requirements/test.txt, -r requirements/travis.txt, importlib-metadata, importlib-resources
4 changes: 4 additions & 0 deletions requirements/pip-tools.in
@@ -0,0 +1,4 @@
# Just the dependencies to run pip-tools, mainly for the "upgrade" make target
-c constraints.txt

pip-tools # Contains pip-compile, used to generate pip requirements files
9 changes: 9 additions & 0 deletions requirements/pip-tools.txt
@@ -0,0 +1,9 @@
#
# This file is autogenerated by pip-compile
# To update, run:
#
# make upgrade
#
click==7.1.1 # via pip-tools
pip-tools==4.5.1 # via -r requirements/pip-tools.in
six==1.14.0 # via pip-tools
15 changes: 15 additions & 0 deletions requirements/private.readme
@@ -0,0 +1,15 @@
# If there are any Python packages you want to keep in your virtualenv beyond
# those listed in the official requirements files, create a "private.in" file
# and list them there. Generate the corresponding "private.txt" file pinning
# all of their indirect dependencies to specific versions as follows:

# pip-compile private.in

# This allows you to use "pip-sync" without removing these packages:

# pip-sync requirements/*.txt

# "private.in" and "private.txt" aren't checked into git to avoid merge
# conflicts, and the presence of this file allows "private.*" to be
# included in scripted pip-sync usage without requiring that those files be
# created first.
13 changes: 13 additions & 0 deletions requirements/test.in
@@ -0,0 +1,13 @@
# Requirements for test runs
-c constraints.txt

-r base.txt # Core dependencies

coverage>=4.0.3
ddt>=1.0.1
lazy-object-proxy
edx-lint>=0.4.0
mock>=1.3.0
nose>=1.3.7
pycodestyle>=1.7.0
tox>=2.3.1
51 changes: 51 additions & 0 deletions requirements/test.txt
@@ -0,0 +1,51 @@
#
# This file is autogenerated by pip-compile
# To update, run:
#
# make upgrade
#
appdirs==1.4.3 # via virtualenv
astroid==1.6.6 # via pylint, pylint-celery
backports.functools-lru-cache==1.6.1 # via astroid, isort, pylint
click-log==0.3.2 # via edx-lint
click==7.1.1 # via click-log, edx-lint
configparser==4.0.2 # via importlib-metadata, pylint
contextlib2==0.6.0.post1 # via importlib-metadata, importlib-resources, virtualenv, zipp
coverage==5.0.4 # via -r requirements/test.in
ddt==1.3.1 # via -r requirements/test.in
distlib==0.3.0 # via virtualenv
edx-lint==1.4.1 # via -r requirements/test.in
edx-opaque-keys==2.0.1 # via -r requirements/base.txt
enum34==1.1.10 # via astroid
filelock==3.0.12 # via tox, virtualenv
funcsigs==1.0.2 # via mock
futures==3.3.0 ; python_version == "2.7" # via -c requirements/constraints.txt, isort
importlib-metadata==1.5.0 # via importlib-resources, pluggy, tox, virtualenv
importlib-resources==1.3.1 # via virtualenv
isort==4.3.21 # via pylint
lazy-object-proxy==1.4.3 # via -r requirements/test.in, astroid
mccabe==0.6.1 # via pylint
mock==3.0.5 # via -r requirements/test.in
nose==1.3.7 # via -r requirements/test.in
packaging==20.3 # via tox
pathlib2==2.3.5 # via importlib-metadata, importlib-resources, virtualenv
pbr==5.4.4 # via -r requirements/base.txt, stevedore
pluggy==0.13.1 # via tox
py==1.8.1 # via tox
pycodestyle==2.5.0 # via -r requirements/test.in
pylint-celery==0.3 # via edx-lint
pylint-django==0.11.1 # via edx-lint
pylint-plugin-utils==0.6 # via pylint-celery, pylint-django
pylint==1.9.5 # via edx-lint, pylint-celery, pylint-django, pylint-plugin-utils
pymongo==3.10.1 # via -r requirements/base.txt, edx-opaque-keys
pyparsing==2.4.6 # via packaging
scandir==1.10.0 # via pathlib2
singledispatch==3.4.0.3 # via astroid, importlib-resources, pylint
six==1.14.0 # via -r requirements/base.txt, astroid, edx-lint, edx-opaque-keys, mock, packaging, pathlib2, pylint, singledispatch, stevedore, tox, virtualenv
stevedore==1.32.0 # via -r requirements/base.txt, edx-opaque-keys
toml==0.10.0 # via tox
tox==3.14.5 # via -r requirements/test.in
typing==3.7.4.1 # via importlib-resources
virtualenv==20.0.10 # via tox
wrapt==1.12.1 # via astroid
zipp==1.2.0 # via importlib-metadata, importlib-resources
4 changes: 4 additions & 0 deletions requirements/travis.in
@@ -0,0 +1,4 @@
# Requirements for running tests in Travis
-c constraints.txt

tox # Virtualenv management for tests
26 changes: 26 additions & 0 deletions requirements/travis.txt
@@ -0,0 +1,26 @@
#
# This file is autogenerated by pip-compile
# To update, run:
#
# make upgrade
#
appdirs==1.4.3 # via virtualenv
configparser==4.0.2 # via importlib-metadata
contextlib2==0.6.0.post1 # via importlib-metadata, importlib-resources, virtualenv, zipp
distlib==0.3.0 # via virtualenv
filelock==3.0.12 # via tox, virtualenv
importlib-metadata==1.5.0 # via importlib-resources, pluggy, tox, virtualenv
importlib-resources==1.3.1 # via virtualenv
packaging==20.3 # via tox
pathlib2==2.3.5 # via importlib-metadata, importlib-resources, virtualenv
pluggy==0.13.1 # via tox
py==1.8.1 # via tox
pyparsing==2.4.6 # via packaging
scandir==1.10.0 # via pathlib2
singledispatch==3.4.0.3 # via importlib-resources
six==1.14.0 # via packaging, pathlib2, tox, virtualenv
toml==0.10.0 # via tox
tox==3.14.5 # via -r requirements/travis.in
typing==3.7.4.1 # via importlib-resources
virtualenv==20.0.10 # via tox
zipp==1.2.0 # via importlib-metadata, importlib-resources
38 changes: 34 additions & 4 deletions setup.py
@@ -1,5 +1,38 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Package metadata for edx-ccx-keys.
"""
from io import open

from setuptools import setup

def load_requirements(*requirements_paths):
"""
Load all requirements from the specified requirements files.
Returns:
list: Requirements file relative path strings
"""
requirements = set()
for path in requirements_paths:
with open(path) as reqs:
requirements.update(
line.split('#')[0].strip() for line in reqs
if is_requirement(line.strip())
)
return list(requirements)


def is_requirement(line):
"""
Return True if the requirement line is a package requirement.
Returns:
bool: True if the line is not blank, a comment, a URL, or an included file
"""
return line and not line.startswith(('-r', '#', '-e', 'git+', '-c'))

setup(
name='edx-ccx-keys',
version='1.0.0',
Expand All @@ -23,10 +56,7 @@
packages=[
'ccx_keys',
],
install_requires=[
'edx-opaque-keys>=2.0.0,<3.0.0',
'six>=1.10.0,<2.0.0'
],
install_requires=load_requirements('requirements/base.in'),
entry_points={
'context_key': [
'ccx-v1 = ccx_keys.locator:CCXLocator',
Expand Down
8 changes: 0 additions & 8 deletions test-requirements.txt

This file was deleted.

2 changes: 1 addition & 1 deletion tox.ini
Expand Up @@ -3,7 +3,7 @@ envlist = py27,py35

[testenv]
deps =
-rtest-requirements.txt
-r{toxinidir}/requirements/test.txt

commands =
coverage run -m nose
Expand Down

0 comments on commit e036601

Please sign in to comment.