Metadata-Version: 2.4
Name: pythonny-quest
Version: 0.1.1
Summary: An iPython REPL that guides and motivates your quest to learn Python. Augments iPython with hints and CFL-style games to track your progress and avoid villains and pitfalls.
Author-email: hobs <github@totalgood.com>
Requires-Python: >=3.11
Requires-Dist: axiom-py
Requires-Dist: dotenv>=0.9.9
Requires-Dist: fuzzywuzzy>=0.18.0
Requires-Dist: ipython>=9.3.0
Requires-Dist: jsonlines
Requires-Dist: lxml>=5.4.0
Requires-Dist: matplotlib>=3.10.3
Requires-Dist: pandas>=2.3.0
Requires-Dist: pyperclip>=1.9.0
Requires-Dist: pyte>=0.8.2
Requires-Dist: pytest>=8.4.1
Requires-Dist: python-levenshtein>=0.27.1
Requires-Dist: requests>=2.32.4
Requires-Dist: scikit-learn>=1.7.0
Requires-Dist: seaborn>=0.13.2
Provides-Extra: dev
Requires-Dist: black; extra == 'dev'
Requires-Dist: build; extra == 'dev'
Requires-Dist: ipython; extra == 'dev'
Requires-Dist: jupyter; extra == 'dev'
Requires-Dist: pip; extra == 'dev'
Requires-Dist: pytest-coverage; extra == 'dev'
Requires-Dist: twine; extra == 'dev'
Requires-Dist: wheel; extra == 'dev'
Description-Content-Type: text/markdown

# Pythonny Quest

## Experiments

### shy

### workbench
- most promising/reliable approach, based on ipython API
- requires more student interaction with new variables/functions, e.g. quest() or help(quest) or quest.check() or quest.score()
- [ ] put the working example script into new pythonny package

### pexpect
- would have to emulate entire terminal and listen to entire keyboard, passing through everything back and forth

### prompttoolkit
- can detect ctrl-V and other pasting commmands by user
- [ ] integrate with workbench

### pymux
Almost works for what I need, but seems to only work in Python 3.9 or earlier.  Also relies on pydoc which requires old Pythons as well and produces the following warnings:
```bash
/home/hobs/code/public-by-others/pymux/.venv/lib/python3.12/site-packages/docopt.py:165: SyntaxWarning: invalid escape sequence '\S'
  name = re.findall('(<\S*?>)', source)[0]
/home/hobs/code/public-by-others/pymux/.venv/lib/python3.12/site-packages/docopt.py:166: SyntaxWarning: invalid escape sequence '\['
  value = re.findall('\[default: (.*)\]', source, flags=re.I)
/home/hobs/code/public-by-others/pymux/.venv/lib/python3.12/site-packages/docopt.py:207: SyntaxWarning: invalid escape sequence '\['
  matched = re.findall('\[default: (.*)\]', description, flags=re.I)
/home/hobs/code/public-by-others/pymux/.venv/lib/python3.12/site-packages/docopt.py:456: SyntaxWarning: invalid escape sequence '\S'
  split = re.split('\n *(<\S+?>|-\S+?)', doc)[1:]
```

These seem to be caused by the newer Python parsing of regexesconflict

Pythonny Chat is developed with Aider!
```