# -*- coding: utf-8 -*-
from setuptools import setup

package_dir = \
{'': 'py',
 'sdrl': 'py/sdrl',
 'sdrl.subcmd': 'py/sdrl/subcmd',
 'sdrl.tests': 'py/sdrl/tests',
 'subcmd': 'py/subcmd'}

packages = \
['py',
 'py.sdrl',
 'py.sdrl.subcmd',
 'py.sdrl.tests',
 'py.tests',
 'sdrl',
 'sdrl.subcmd',
 'sdrl.tests',
 'subcmd']

package_data = \
{'': ['*'],
 'py.sdrl.tests': ['data/*',
                   'data/sedrila-test1/*',
                   'data/sedrila-test1/.git/*',
                   'data/sedrila-test1/.git/hooks/*',
                   'data/sedrila-test1/.git/info/*',
                   'data/sedrila-test1/.git/logs/*',
                   'data/sedrila-test1/.git/logs/refs/heads/*',
                   'data/sedrila-test1/.git/logs/refs/remotes/origin/*',
                   'data/sedrila-test1/.git/objects/04/*',
                   'data/sedrila-test1/.git/objects/08/*',
                   'data/sedrila-test1/.git/objects/0d/*',
                   'data/sedrila-test1/.git/objects/0e/*',
                   'data/sedrila-test1/.git/objects/17/*',
                   'data/sedrila-test1/.git/objects/22/*',
                   'data/sedrila-test1/.git/objects/23/*',
                   'data/sedrila-test1/.git/objects/29/*',
                   'data/sedrila-test1/.git/objects/30/*',
                   'data/sedrila-test1/.git/objects/35/*',
                   'data/sedrila-test1/.git/objects/42/*',
                   'data/sedrila-test1/.git/objects/4f/*',
                   'data/sedrila-test1/.git/objects/5e/*',
                   'data/sedrila-test1/.git/objects/64/*',
                   'data/sedrila-test1/.git/objects/65/*',
                   'data/sedrila-test1/.git/objects/70/*',
                   'data/sedrila-test1/.git/objects/7a/*',
                   'data/sedrila-test1/.git/objects/7b/*',
                   'data/sedrila-test1/.git/objects/82/*',
                   'data/sedrila-test1/.git/objects/87/*',
                   'data/sedrila-test1/.git/objects/93/*',
                   'data/sedrila-test1/.git/objects/9d/*',
                   'data/sedrila-test1/.git/objects/a7/*',
                   'data/sedrila-test1/.git/objects/a9/*',
                   'data/sedrila-test1/.git/objects/b4/*',
                   'data/sedrila-test1/.git/objects/bf/*',
                   'data/sedrila-test1/.git/objects/c1/*',
                   'data/sedrila-test1/.git/objects/c2/*',
                   'data/sedrila-test1/.git/objects/c4/*',
                   'data/sedrila-test1/.git/objects/cd/*',
                   'data/sedrila-test1/.git/objects/ce/*',
                   'data/sedrila-test1/.git/objects/d6/*',
                   'data/sedrila-test1/.git/objects/e0/*',
                   'data/sedrila-test1/.git/objects/e2/*',
                   'data/sedrila-test1/.git/objects/e3/*',
                   'data/sedrila-test1/.git/objects/f2/*',
                   'data/sedrila-test1/.git/objects/pack/*',
                   'data/sedrila-test1/.git/refs/heads/*',
                   'data/sedrila-test1/.git/refs/remotes/origin/*',
                   'data/sedrila-test1/task/*',
                   'input/*',
                   'input/ch/*',
                   'input/ch/ch1/*',
                   'input/ch/ch1/myarchive.zip/*',
                   'input/ch/ch1/tg11/*',
                   'input/ch/ch1/tg12/*',
                   'input/ch/ch1/tg13draft/*',
                   'input/ch/ch2draft/*',
                   'input/ch/ch2draft/tg21/*',
                   'input/itree.zip/*'],
 'sdrl.tests': ['data/*',
                'data/sedrila-test1/*',
                'data/sedrila-test1/.git/*',
                'data/sedrila-test1/.git/hooks/*',
                'data/sedrila-test1/.git/info/*',
                'data/sedrila-test1/.git/logs/*',
                'data/sedrila-test1/.git/logs/refs/heads/*',
                'data/sedrila-test1/.git/logs/refs/remotes/origin/*',
                'data/sedrila-test1/.git/objects/04/*',
                'data/sedrila-test1/.git/objects/08/*',
                'data/sedrila-test1/.git/objects/0d/*',
                'data/sedrila-test1/.git/objects/0e/*',
                'data/sedrila-test1/.git/objects/17/*',
                'data/sedrila-test1/.git/objects/22/*',
                'data/sedrila-test1/.git/objects/23/*',
                'data/sedrila-test1/.git/objects/29/*',
                'data/sedrila-test1/.git/objects/30/*',
                'data/sedrila-test1/.git/objects/35/*',
                'data/sedrila-test1/.git/objects/42/*',
                'data/sedrila-test1/.git/objects/4f/*',
                'data/sedrila-test1/.git/objects/5e/*',
                'data/sedrila-test1/.git/objects/64/*',
                'data/sedrila-test1/.git/objects/65/*',
                'data/sedrila-test1/.git/objects/70/*',
                'data/sedrila-test1/.git/objects/7a/*',
                'data/sedrila-test1/.git/objects/7b/*',
                'data/sedrila-test1/.git/objects/82/*',
                'data/sedrila-test1/.git/objects/87/*',
                'data/sedrila-test1/.git/objects/93/*',
                'data/sedrila-test1/.git/objects/9d/*',
                'data/sedrila-test1/.git/objects/a7/*',
                'data/sedrila-test1/.git/objects/a9/*',
                'data/sedrila-test1/.git/objects/b4/*',
                'data/sedrila-test1/.git/objects/bf/*',
                'data/sedrila-test1/.git/objects/c1/*',
                'data/sedrila-test1/.git/objects/c2/*',
                'data/sedrila-test1/.git/objects/c4/*',
                'data/sedrila-test1/.git/objects/cd/*',
                'data/sedrila-test1/.git/objects/ce/*',
                'data/sedrila-test1/.git/objects/d6/*',
                'data/sedrila-test1/.git/objects/e0/*',
                'data/sedrila-test1/.git/objects/e2/*',
                'data/sedrila-test1/.git/objects/e3/*',
                'data/sedrila-test1/.git/objects/f2/*',
                'data/sedrila-test1/.git/objects/pack/*',
                'data/sedrila-test1/.git/refs/heads/*',
                'data/sedrila-test1/.git/refs/remotes/origin/*',
                'data/sedrila-test1/task/*',
                'input/*',
                'input/ch/*',
                'input/ch/ch1/*',
                'input/ch/ch1/myarchive.zip/*',
                'input/ch/ch1/tg11/*',
                'input/ch/ch1/tg12/*',
                'input/ch/ch1/tg13draft/*',
                'input/ch/ch2draft/*',
                'input/ch/ch2draft/tg21/*',
                'input/itree.zip/*']}

install_requires = \
['Jinja2>=3.1,<4.0',
 'Markdown>=3.7,<4.0',
 'PyYAML>=6.0,<7.0',
 'Pygments>=2.17,<3.0',
 'argparse_subcommand>=1.2,<2.0',
 'blessed>=1.20,<2.0',
 'mdx_linkify>=2.1,<3.0',
 'requests>=2.32,<3.0',
 'rich>=13.7,<14.0']

entry_points = \
{'console_scripts': ['sedrila = sedrila:main']}

setup_kwargs = {
    'name': 'sedrila',
    'version': '2.3.0',
    'description': 'Tool infrastructure for building and running "self-driven lab" courses',
    'long_description': '[![Documentation Status](https://readthedocs.org/projects/sedrila/badge/?version=latest)](https://sedrila.readthedocs.io/en/latest/?badge=latest)\n\n# `sedrila`: Tool infrastructure for building and running "self-driven lab" courses\n\nA "self-driven lab" (SeDriLa) course is one where students select freely \na subset from a large set of tasks.\nThe tasks are described with sufficient detail that no guidance from an instructor\nis needed most of the time.\n\nsedrila is a command-line tool supporting course authors for authoring a course\nand then course instructors and students for executing it.\n\nFind the [documentation at readthedocs](https://sedrila.readthedocs.io).\n\n\n## 1. Ideas for future versions\n\n\n### 1.1 A currently needed refactoring: Target directory structure\n\nThe current layout of the source tree is wrong.\nCurrently, the `templates` and `baseresources` directories will end up \nas top-level directories when the package is installed,\nwhich means they will clash with any top-level modules of that name\nanywhere in our dependencies.\n\nWe need to perform the following refactorings to arrive at a proper structure:\n\n- `py` --> `sedrila`: This will be the top level directory that gets installed.\n- `sedrila/sdrl/*` --> `sedrila/*`: We remove the now-intermediate namespace.\n  This implies joining the current `sdrl/tests` into `sedrila/tests`.\n- `templates` --> `sedrila/templates`: The HTML templates simply become part of the\n  tree to be installed.\n- `baseresources` --> `sedrila/baseresources`: Ditto.\n\nThese changes require a lot of changes of import statements.\nFor instance, the current module `base` will become `sedrila.base`\nand `sdrl.course` will become `sedrila.course`.\nThe logic for computing `sedrila_libdir` in `courses.py` must be adapted.\n`SedrilaArgParser.get_version()` must be adapted.\nThe files lists in `pyproject.toml` must be corrected.\n\n\n### 1.2 `instructor`: Handling instructors\' trees of student repos\n\n- Process `SEDRILA_INSTRUCTOR_COURSE_URLS` as described in the instructor documentation.\n- `sedrila instructor` should keep a JSON file `student_course_urls.json` that maps student usernames\n  to the course URL first seen for that student, because if a student ever changed\n  the URL in the `student.yaml`, prior signed commits of instructors might become \n  invalid semantically if the new course has a different set of tasks.  \n  The map is added to when a `student.yaml` is first seen\n  and checked against at each later time.  \n  Note that a student taking part a second time, with a fresh repo,\n  might require manual editing of that JSON file to remove that entry.\n- Better yet, there could be an option `sedrial instructor --allow-repo2` that \n  performs that editing automatically\n  and also checks that the new repo contains no instructor-signed commits.\n- Command `sedrila instructor --clean-up-repos-home`\n  to clean up instructor work directory trees-of-trees\n  by deleting all level-1 subtrees in which the `student.yaml`\n  has a `course_url` that is not mentioned in the \n  `SEDRILA_INSTRUCTOR_COURSE_URLS`environment variable.\n  This option should ask a safety question before starting to work.\n- Add `sedrila instructor --http` which presents the local directory tree to localhost as follows:\n    - Show directory, each file is a hyperlink, including `..` (except in the starting directory)\n    - *.md files get rendered as Markdown\n    - *.txt files get shown verbatim\n    - *.py file contents are Markdown-rendered as a Python code block. Ditto for other languages.\n\n\n## 2. Development process: TODO-handling during development\n\nWe use this convention for the development of `sedrila`.\nIt may also be helpful for course authors if the team is small enough.\n\nIf something is incomplete, add a TODO marker with a priorization digit and\nadd a short description of what needs to be done. Examples:\n- `TODO 1: find proper formulation`\n- `TODO 2: restructure to use ACME lib`\n- `TODO 3: add automatic grammar correction`\n\nPriorities:\n- 1: to be completed soon (within a few days)\n- 2: to be completed once the prio 1 things are done (within days or a few weeks)\n- 3: to be completed at some later time (usually several weeks or more into the future,\n  because it is big) or never (because it is not-so-important: "nice-to-have features")\n\nThen use the IDE global search to work through these layer-by-layer.\nDemote items to a lower priority when they become stale or remove them.\nKick out prio 3 items when they become unlikely.\n',
    'author': 'Lutz Prechelt',
    'author_email': 'prechelt@inf.fu-berlin.de',
    'maintainer': 'None',
    'maintainer_email': 'None',
    'url': 'https://github.com/fubinf/sedrila',
    'package_dir': package_dir,
    'packages': packages,
    'package_data': package_data,
    'install_requires': install_requires,
    'entry_points': entry_points,
    'python_requires': '>=3.11,<4.0',
}


setup(**setup_kwargs)
