Skip to content
Snippets Groups Projects
setup.py 2.25 KiB
Newer Older
  • Learn to ignore specific revisions
  • """Setup for lti_consumer XBlock."""
    
    
    Waheed Ahmed's avatar
    Waheed Ahmed committed
    from __future__ import absolute_import
    
    
    Waheed Ahmed's avatar
    Waheed Ahmed committed
    
    
    from setuptools import setup
    
    
    def package_data(pkg, roots):
        """Generic function to find package_data.
    
        All of the files under each of the `roots` will be declared as package
        data for package `pkg`.
    
        """
        data = []
        for root in roots:
            for dirname, __, files in os.walk(os.path.join(pkg, root)):
                for fname in files:
                    data.append(os.path.relpath(os.path.join(dirname, fname), pkg))
    
        return {pkg: data}
    
    
    Eric Herrera's avatar
    Eric Herrera committed
    def load_requirements(*requirements_paths):
        """
        Load all requirements from the specified requirements files.
        Returns a list of requirement 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;
        that is, it is not blank, a comment, a URL, or an included file.
        """
        return line and not line.startswith(('-r', '#', '-e', 'git+', '-c'))
    
        version='1.3.1',
    
        description='This XBlock implements the consumer side of the LTI specification.',
        packages=[
            'lti_consumer',
        ],
    
    Eric Herrera's avatar
    Eric Herrera committed
        install_requires=load_requirements('requirements/base.in'),
    
        dependency_links=[
            'https://github.com/edx/xblock-utils/tarball/c39bf653e4f27fb3798662ef64cde99f57603f79#egg=xblock-utils',
        ],
        entry_points={
            'xblock.v1': [
                'lti_consumer = lti_consumer:LtiConsumerXBlock',
            ]
        },
    
        package_data=package_data("lti_consumer", ["static", "templates", "public", "translations"]),
    
    Eric Herrera's avatar
    Eric Herrera committed
        classifiers=[
            'Development Status :: 5 - Production/Stable',
            'Framework :: Django',
            'Framework :: Django :: 2.2',
            'Intended Audience :: Developers',
            'License :: OSI Approved :: Apache Software License',
            'Natural Language :: English',
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.5",
            "Programming Language :: Python :: 3.8",
        ]