PageRenderTime 43ms CodeModel.GetById 15ms RepoModel.GetById 1ms app.codeStats 0ms

/lib/smisk/inflection/en.py

http://github.com/rsms/smisk
Python | 62 lines | 54 code | 4 blank | 4 comment | 0 complexity | add8e36cd87b04cf0002613d4c381f4b MD5 | raw file
  1. #!/usr/bin/env python
  2. # encoding: utf-8
  3. '''English
  4. '''
  5. import re
  6. from smisk.inflection import Inflector
  7. __all__ = ['inflection']
  8. inflection = Inflector('en', 'en_EN', 'eng')
  9. inflection.plural(re.compile(ur"$"), u's')
  10. inflection.plural(re.compile(ur"s$", re.I), u's')
  11. inflection.plural(re.compile(ur"(ax|test)is$", re.I), ur'\1es')
  12. inflection.plural(re.compile(ur"(octop|vir)us$", re.I), ur'\1i')
  13. inflection.plural(re.compile(ur"(alias|status)$", re.I), ur'\1es')
  14. inflection.plural(re.compile(ur"(bu)s$", re.I), ur'\1ses')
  15. inflection.plural(re.compile(ur"(buffal|tomat)o$", re.I), ur'\1oes')
  16. inflection.plural(re.compile(ur"([ti])um$", re.I), ur'\1a')
  17. inflection.plural(re.compile(ur"sis$", re.I), u'ses')
  18. inflection.plural(re.compile(ur"(?:([^f])fe|([lr])f)$", re.I), ur'\1\2ves')
  19. inflection.plural(re.compile(ur"(hive)$", re.I), ur'\1s')
  20. inflection.plural(re.compile(ur"([^aeiouy]|qu)y$", re.I), ur'\1ies')
  21. inflection.plural(re.compile(ur"(x|ch|ss|sh)$", re.I), ur'\1es')
  22. inflection.plural(re.compile(ur"(matr|vert|ind)(?:ix|ex)$", re.I), ur'\1ices')
  23. inflection.plural(re.compile(ur"([m|l])ouse$", re.I), ur'\1ice')
  24. inflection.plural(re.compile(ur"^(ox)$", re.I), ur'\1en')
  25. inflection.plural(re.compile(ur"(quiz)$", re.I), ur'\1zes')
  26. inflection.singular(re.compile(ur"s$", re.I), u'')
  27. inflection.singular(re.compile(ur"(n)ews$", re.I), ur'\1ews')
  28. inflection.singular(re.compile(ur"([ti])a$", re.I), ur'\1um')
  29. inflection.singular(re.compile(ur"((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$", re.I), ur'\1\2sis')
  30. inflection.singular(re.compile(ur"(^analy)ses$", re.I), ur'\1sis')
  31. inflection.singular(re.compile(ur"([^f])ves$", re.I), ur'\1fe')
  32. inflection.singular(re.compile(ur"(hive)s$", re.I), ur'\1')
  33. inflection.singular(re.compile(ur"(tive)s$", re.I), ur'\1')
  34. inflection.singular(re.compile(ur"([lr])ves$", re.I), ur'\1f')
  35. inflection.singular(re.compile(ur"([^aeiouy]|qu)ies$", re.I), ur'\1y')
  36. inflection.singular(re.compile(ur"(s)eries$", re.I), ur'\1eries')
  37. inflection.singular(re.compile(ur"(m)ovies$", re.I), ur'\1ovie')
  38. inflection.singular(re.compile(ur"(x|ch|ss|sh)es$", re.I), ur'\1')
  39. inflection.singular(re.compile(ur"([m|l])ice$", re.I), ur'\1ouse')
  40. inflection.singular(re.compile(ur"(bus)es$", re.I), ur'\1')
  41. inflection.singular(re.compile(ur"(o)es$", re.I), ur'\1')
  42. inflection.singular(re.compile(ur"(shoe)s$", re.I), ur'\1')
  43. inflection.singular(re.compile(ur"(cris|ax|test)es$", re.I), ur'\1is')
  44. inflection.singular(re.compile(ur"(octop|vir)i$", re.I), ur'\1us')
  45. inflection.singular(re.compile(ur"(alias|status)es$", re.I), ur'\1')
  46. inflection.singular(re.compile(ur"^(ox)en", re.I), ur'\1')
  47. inflection.singular(re.compile(ur"(vert|ind)ices$", re.I), ur'\1ex')
  48. inflection.singular(re.compile(ur"(matr)ices$", re.I), ur'\1ix')
  49. inflection.singular(re.compile(ur"(quiz)zes$", re.I), ur'\1')
  50. inflection.irregular(u'person', u'people')
  51. inflection.irregular(u'man', u'men')
  52. inflection.irregular(u'child', u'children')
  53. inflection.irregular(u'sex', u'sexes')
  54. inflection.irregular(u'move', u'moves')
  55. inflection.uncountable(u'equipment',u'information',u'rice',u'money',u'species',u'series',
  56. u'fish',u'sheep',u'commotion')