一个可定制的命令行触摸打字导师
youtyper的Python项目详细描述
年轻人
youtyper是一个可定制的命令行触摸打字导师。在
你可以很容易地添加你的定制课程与文本,甚至Python函数。在
动机
有很多触摸式打字辅导应用程序。 然而,大多数应用程序都没有灵活性来最大限度地提高我的学习率。在
第一,课程的灵活性。在
例如,我很不擅长区分垂直于键盘上的“c”和“d”,但大多数应用程序都提供了rowwise课程。 我也不擅长输入“y”、“u”和“I”,但大多数应用程序在这些键的课程中也包含了“o”和“p”。 有些应用程序提供自定义文本的课程,但不能动态生成。 我想用Python创建课程。在
第二,分析的灵活性。在
我是个很有趣的人keybr.com公司,因为它的美丽和详细的统计数据。我可能花了更多的时间看图表而不是练习。虽然我不能创建像他们这样漂亮的界面,但我可以提供更详细的统计数据,甚至允许用户分析他们的输入。在
命名
- “y”、“o”、“u”、“t”、“p”、“e”和“r”都在键盘的上排
- 这些键就是我创建这个应用程序的原因。在
- 此名称也可能表示此应用程序的可自定义性。在
安装
pip install youtyper
快速启动
youtyper
:将在启用标准分析的情况下开始标准课程。在
自定义课程
使用--lesson_type
选择您的课程。在
- 在
加载文本以创建课程
youtyper --lesson_type text --text_path path-to-your-lesson-text
其他可用选项:
--disable_shuffle
:禁用课程洗牌(默认值:false)--num_lessons 10
:要学习的课程(默认:无,重复直到退出)--len_lessons 50
:一节课中的最大字符数(默认值:100)
- 在
加载python脚本以启用自定义课程
youtyper --lesson_type python --generator_path path-to-your-generator --generator_name YourLessonGeneratorClassName
使用指定的
在LessonGenerator
类生成课程。示例生成器在examples
下可用。在 - 在
加载内置课程(默认)
youtyper --lesson_type built-in --lesson_name right_hand_home_row
使用内置课程。有关可用的课程,请参见lessons/README.md。
在--lesson_name
:默认课程的课程名称(默认:“default_lesson”)
自定义分析仪
- 在
使用预定义的分析器
youtyper ... --analyzer cpm error_rate ...
cpm
:每分钟字符数(默认值:开)error_rate
:按错键的比率(默认值:on)
其他可用选项:
--analyzer wpm
:[待实现]每分钟显示单词数--ignore_consecutive_errors
:[要实现]忽略相同字符的连续错误(deafult:false)
- 在
使用自定义分析器
youtyper ... --analyzer_path path-to-your-analyzer-file --analyzer_name YourStatisticsClassName
使用指定的
在Analyzer
类来分析课程日志。示例分析器在examples
下可用。在
构建自己的自定义类
- 自定义课程
- 您必须提供自定义的
LessonGenerator
才能创建自定义课程。LessonGenarator
必须是迭代器yieldsLesson
LessonGenarator
必须实现__len__
方法Lesson
基本上是文本到类型和元数据。在
- 未知的命令行选项作为列表传递给
LessonGenarator
类。在
- 自定义分析器
- 必须提供自定义
Analyzer
才能使用自定义分析。Analyzer
必须生成可打印文本以显示用户,并生成分析摘要词典以保存。Analyzer
必须实现返回(Dict, str)
的analyze
方法
- 未知的命令行选项作为列表传递给
LessonGenarator
类。- 您可以指定多个
Analyzer
,所有未知选项将传递给所有Analyzer
。- 检查您的选项是否无意中被其他分析程序共享。在
- 您可以指定多个
莱斯儿子日志
为了进行进一步的分析,youtyper将每个课程日志保存到用户homedir下的.youtyper
目录中。在
课程日志是一个名为yyyymmdd_hhmmss_[lesson_name]_[lesson_id].json
的json文件。在
结构如下:
{"lesson_name":"right_hand_home_row","lesson_id":"1","command-line-options":{"lesson_type":"built-in","lesson_name":"right_hand_home_row"},"text":"klj ;l;l;jjk ;ljl; kl;jkl jjlk ljk l; kl ;j","keystrokes":[{"timestamp":"2020/07/02 18:00:03","key":"k","target":"l"},{"..."}],"analytics":{"cpm":{"overall":100.0,"k":70.6,"l":116.4,"...":"..."},"error_rate":{"overall":0.043,"k":0.067,"l":0.032,"...":"..."},"...":"..."}}
- 项目
标签: