自由形式输入解析器的集合(特别关注日期)
fuzzyparsers的Python项目详细描述
介绍和示例
fuzzyparsers库提供了一个小的函数集合来清理 自由形式的用户输入。目前它的主要价值是灵活的日期。 分析器。该库力求在解析日期时具有本地智能。
这个库有两个主解析器。第一个是前缀解析器,它比较 字符串返回字符串列表的唯一元素 与前缀匹配。如果匹配不唯一,则引发异常。
>>> from fuzzyparsers import fuzzy_match >>> fuzzy_match(['aab','bba','abc'],'aa') 'aab' >>> fuzzy_match(['aab','bba','abc'],'a') # two strings starting with 'a'. Traceback (most recent call last): ... ValueError: ambiguous match for 'a'
第二个解析器以各种格式分析日期并返回datetime.date。 反对。接受的格式包括:
jan 12, 2003 jan 5 2004-3-5 +34 -- 34 days in the future (relative to todays date) -4 -- 4 days in the past (relative to todays date)
例如:
>>> from fuzzyparsers import parse_date >>> parse_date('jun 17 2010') # my youngest son's birthday datetime.date(2010, 6, 17)
库允许设置默认日期来填充 日期(如年份)。默认情况下,没有一年的日期将给出 本年度。
>>> from fuzzyparsers import DateParser >>> import datetime >>> DateParser(today=datetime.date(2013, 3, 1)).parse_date('feb 3') datetime.date(2013, 2, 3)
待办事项
我们希望支持以下功能:
- 分析时间字符串,如“上午10点”和“下午2点3点”
- A“[0-9]*[0-9]*”一个月第一次,一天第二次 应返回最接近的月/日组合。例如, “12-3”将于今年或去年12月3日回归。
更改日志
- 0.9.0-支持Python3
- 0.8.0-换成麻省理工学院的执照,因为我不明白为什么我在乎 此包的GPL。
- 0.7.3-修复了本地月日订单问题(感谢Treeve获得 开始了。
- 0.7.2-添加文档测试和“2012年3月”日期格式;文档测试脚本
- 0.7.1-安装修复程序
- 0.7-彻底检查日期解析API以支持相对日期(不一定 相对于当前日期)
- 0.6.x-首次公开发布和一系列文档/安装更正
安装
fuzzyparsers由joel b.mohler编写,并根据 麻省理工学院的执照。
使用以下命令运行扩展文档测试:
python -m doctest fuzzyparsers/*.py python -m doctest README.txt
要安装fuzzyparser,请执行普通的python操作(可能是根操作):
python setup.py install
或:
pip install fuzzyparsers