X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/352b8591bd1c7163835a6fa1db34d3e2861c1071..39f73cadff6a44915f4c59985076be1acda652ed:/lib/wlrepo/__init__.py?ds=sidebyside diff --git a/lib/wlrepo/__init__.py b/lib/wlrepo/__init__.py index cbc0c2c6..430e59f9 100644 --- a/lib/wlrepo/__init__.py +++ b/lib/wlrepo/__init__.py @@ -51,7 +51,7 @@ class Document(object): Should be called on the user version of document. If not, it doesn nothing.""" def data(self, entry): - """Returns the specified entry as a file-like object.""" + """Returns the specified entry as a unicode data.""" pass @property @@ -108,7 +108,21 @@ class LibraryException(Exception): class RevisionNotFound(LibraryException): def __init__(self, rev): LibraryException.__init__(self, "Revision %r not found." % rev) + +class EntryNotFound(LibraryException): + def __init__(self, rev, entry, guesses=[]): + LibraryException.__init__(self, \ + u"Entry '%s' at revision %r not found. %s" % (entry, rev, \ + (u"Posible values:\n" + u',\n'.join(guesses)) if len(guesses) else u'') ) + +class DocumentAlreadyExists(LibraryException): pass # import backends to local namespace -from mercurial_backend.library import MercurialLibrary \ No newline at end of file + +def open_library(path, proto, *args, **kwargs): + if proto == 'hg': + import wlrepo.mercurial_backend + return wlrepo.mercurial_backend.MercurialLibrary(path, *args, **kwargs) + + raise NotImplemented() \ No newline at end of file