diff --git a/README.rst b/README.rst index d9aaf5f..7242194 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -WP OAuth 2 Backend -============================= +OAuth2 Backend for stepwisemath.ai +================================== Overview -------- @@ -22,14 +22,14 @@ include this repo in your project's requiremets.txt, or install it from the comm :caption: Python/Django installation cd path/to/your/project source path/to/venv/bin/activate - pip install https://github.com/StepwiseMath/stepwisemathai-oauth-backend + pip install https://github.com/StepwiseMath/stepwisemath-oauth-backend .. code-block:: yaml :caption: lms.envs.tutor.production.py ADDL_INSTALLED_APPS: - "wp_oauth_backend" THIRD_PARTY_AUTH_BACKENDS: - - "stepwisemathai_oauth_backend.wp_oauth.WPOAuth2" + - "stepwisemath_oauth_backend.wp_oauth.WPOAuth2" ENABLE_REQUIRE_THIRD_PARTY_AUTH: true add these settings to django.conf: diff --git a/setup.py b/setup.py index e55b93a..fb125c5 100644 --- a/setup.py +++ b/setup.py @@ -3,43 +3,85 @@ # pylint: disable=C0111,W6005,W6100 import os -import re +import io +from setuptools import find_packages, setup -from setuptools import setup +# allow setup.py to be run from any path +os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir))) +HERE = os.path.abspath(os.path.dirname(__file__)) -def get_version(*file_paths): +def load_readme(): + with io.open(os.path.join(HERE, "README.md"), "rt", encoding="utf8") as f: + return f.read() + +def load_about(): + about = {} + with io.open( + os.path.join(HERE, "stepwisemath_oauth_backend", "__about__.py"), + "rt", + encoding="utf-8", + ) as f: + exec(f.read(), about) # pylint: disable=exec-used + return about + +def load_requirements(*requirements_paths): """ - Extract the version string from the file at the given relative path. + Load all requirements from the specified requirements files. + Returns: + list: Requirements file relative path strings """ - filename = os.path.join(os.path.dirname(__file__), *file_paths) - version_file = open(filename).read() - version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", - version_file, re.M) - if version_match: - return version_match.group(1) - raise RuntimeError('Unable to find version string.') + requirements = set() + for path in requirements_paths: + requirements.update( + line.split("#")[0].strip() for line in open(path).readlines() if is_requirement(line.strip()) + ) + return list(requirements) -VERSION = get_version('stepwisemathai_oauth_backend', '__init__.py') +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 not ( + line == "" + or line.startswith("-c") + or line.startswith("-r") + or line.startswith("#") + or line.startswith("-e") + or line.startswith("git+") + ) -README = open(os.path.join(os.path.dirname(__file__), 'README.rst')).read() +README = load_readme() +ABOUT = load_about() +VERSION = ABOUT["__version__"] setup( - name='stepwisemathai', + name='stepwisemath-oauth2-backend', version=VERSION, description=('An OAuth backend for the WP OAuth Plugin, ' 'mostly used for Open edX but can be used elsewhere.'), long_description=README, author='Lawrence McDaniel, lpm0073@gmail.com', author_email='lpm0073@gmail.com', - url='https://github.com/StepwiseMath/stepwisemathai-oauth-backend', + url='https://github.com/StepwiseMath/stepwisemath-oauth-backend', + project_urls={ + "Code": "https://github.com/StepwiseMath/stepwisemath-oauth-backend", + "Issue tracker": "https://github.com/StepwiseMath/stepwisemath-oauth-backend/issues", + "Community": "https://stepwisemath.ai", + }, packages=[ - 'stepwisemathai_oauth_backend', + 'stepwisemath_oauth_backend', ], + packages=find_packages(), include_package_data=True, + package_data={"": ["*.html"]}, # include any Mako templates found in this repo. zip_safe=False, keywords='WP OAuth', + python_requires=">=3.7", + install_requires=load_requirements("stable-psa.txt"), classifiers=[ 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', diff --git a/stepwisemath_oauth_backend/__about__.py b/stepwisemath_oauth_backend/__about__.py new file mode 100644 index 0000000..b794fd4 --- /dev/null +++ b/stepwisemath_oauth_backend/__about__.py @@ -0,0 +1 @@ +__version__ = '0.1.0' diff --git a/stepwisemathai_oauth_backend/__init__.py b/stepwisemath_oauth_backend/__init__.py similarity index 80% rename from stepwisemathai_oauth_backend/__init__.py rename to stepwisemath_oauth_backend/__init__.py index 4587ef4..9079255 100644 --- a/stepwisemathai_oauth_backend/__init__.py +++ b/stepwisemath_oauth_backend/__init__.py @@ -3,6 +3,3 @@ An OAuth backend for WordPress. It's mostly used for Open edX but can be used elsewhere. """ - - -__version__ = '0.1.0' diff --git a/stepwisemathai_oauth_backend/wp_oauth.py b/stepwisemath_oauth_backend/wp_oauth.py similarity index 98% rename from stepwisemathai_oauth_backend/wp_oauth.py rename to stepwisemath_oauth_backend/wp_oauth.py index 1c53e88..73d57b5 100644 --- a/stepwisemathai_oauth_backend/wp_oauth.py +++ b/stepwisemath_oauth_backend/wp_oauth.py @@ -11,7 +11,7 @@ logger = getLogger(__name__) class WPOAuth2(BaseOAuth2): """WP OAuth authentication backend""" - name = 'wp-oauth2' + name = 'stepwisemath-oauth2' SOCIAL_AUTH_SANITIZE_REDIRECTS = False ACCESS_TOKEN_METHOD = 'POST' EXTRA_DATA = []