summaryrefslogtreecommitdiff
path: root/sandbox/py-rest-doc/sphinx/environment.py
diff options
context:
space:
mode:
authorblackbird <blackbird@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2007-05-23 18:24:19 +0000
committerblackbird <blackbird@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2007-05-23 18:24:19 +0000
commit6c29a9a33745853084a57104b1085e74494dab31 (patch)
tree258d4b471a632bdfa9a8cbb58d9140c968c4fba9 /sandbox/py-rest-doc/sphinx/environment.py
parent33dcbc2551495b37423de65c70741979dd48555f (diff)
downloaddocutils-6c29a9a33745853084a57104b1085e74494dab31.tar.gz
improved fuzzy search
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk@5101 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'sandbox/py-rest-doc/sphinx/environment.py')
-rw-r--r--sandbox/py-rest-doc/sphinx/environment.py20
1 files changed, 15 insertions, 5 deletions
diff --git a/sandbox/py-rest-doc/sphinx/environment.py b/sandbox/py-rest-doc/sphinx/environment.py
index 2e7d51219..4f5246cff 100644
--- a/sandbox/py-rest-doc/sphinx/environment.py
+++ b/sandbox/py-rest-doc/sphinx/environment.py
@@ -470,13 +470,23 @@ class BuildEnvironment:
for title, (fn, _) in self.descrefs.iteritems():
yield (_, fn, title, '')
+ def dotsearch(string):
+ parts = string.lower().split('.')
+ for idx in xrange(0, len(parts)):
+ yield '.'.join(parts[idx:])
+
result = []
for type, filename, title, desc in possibilities():
- s.set_seq1(title.lower())
- if s.real_quick_ratio() >= cutoff and \
- s.quick_ratio() >= cutoff and \
- s.ratio() >= cutoff:
- result.append((s.ratio(), type, filename, title, desc))
+ best_res = 0
+ for part in dotsearch(title):
+ s.set_seq1(part)
+ if s.real_quick_ratio() >= cutoff and \
+ s.quick_ratio() >= cutoff and \
+ s.ratio() >= cutoff and \
+ s.ratio() > best_res:
+ best_res = s.ratio()
+ if best_res:
+ result.append((best_res, type, filename, title, desc))
return heapq.nlargest(n, result)