| Home | Trees | Index | Help |
|---|
| Package rdflib :: Package syntax :: Package parsers :: Package n3p :: Module uripath |
|
Uniform Resource Identifier (URI) path manipulation, above the access layer The name of this module and the functions are somewhat arbitrary; they hark to other parts of the python library; e.g. uripath.join() is somewhat like os.path.join(). REFERENCES Uniform Resource Identifiers (URI): Generic Syntax http://www.ietf.org/rfc/rfc2396.txt The Web Model: Information hiding and URI syntax (Jan 98) http://www.w3.org/DesignIssues/Model.html URI API design [was: URI Test Suite] Dan Connolly (Sun, Aug 12 2001) http://lists.w3.org/Archives/Public/uri/2001Aug/0021.html
| Classes | |
|---|---|
Tests |
|
| Function Summary | |
|---|---|
The base URI for this process - the Web equiv of cwd | |
join an absolute URI and URI reference (non-ascii characters are supported/doctested; haven't checked the details of the IRI spec though) | |
figure out a relative URI reference from base to uri | |
split a URI reference between the fragment and the rest. | |
split a URI reference before the fragment | |
Fix windowslike filename to unixlike - (#ifdef WINDOWS) | |
_test()
| |
| Variable Summary | |
|---|---|
str |
__version__ = '$Id: uripath.py,v 1.16 2004/03/21 04:24:3...
|
SRE_Pattern |
commonHost = ^[-_a-zA-Z0-9\.]+:(//[^/]*)?/[^/]*$
|
| Function Details |
|---|
base()The base URI for this process - the Web equiv of cwd Relative or abolute unix-standard filenames parsed relative to this yeild the URI of the file. If we had a reliable way of getting a computer name, we should put it in the hostname just to prevent ambiguity |
join(here, there)join an absolute URI and URI reference (non-ascii characters are supported/doctested; haven't checked the details of the IRI spec though) here is assumed to be absolute. there is URI reference.>>> join('http://example/x/y/z', '../abc') 'http://example/x/abc'Raise ValueError if there uses relative path syntax but here has no hierarchical path. >>> join('mid:foo@example', '../foo') Traceback (most recent call last): raise ValueError, here ValueError: Base <mid:foo@example> has no slash after colon - with relative '../foo'.We grok IRIs >>> len(u'Andr\xe9') 5 >>> join('http://example.org/', u'#Andr\xe9') u'http://example.org/#Andr\xe9' |
refTo(base, uri)figure out a relative URI reference from base to uri>>> refTo('http://example/x/y/z', 'http://example/x/abc') '../abc' >>> refTo('file:/ex/x/y', 'file:/ex/x/q/r#s') 'q/r#s' >>> refTo(None, 'http://ex/x/y') 'http://ex/x/y' >>> refTo('http://ex/x/y', 'http://ex/x/y') '' Note the relationship between refTo and join: join(x, refTo(x, y)) == y which points out certain strings which cannot be URIs. e.g. >>> x='http://ex/x/y';y='http://ex/x/q:r';join(x, refTo(x, y)) == y 0 So 'http://ex/x/q:r' is not a URI. Use 'http://ex/x/q%3ar' instead: >>> x='http://ex/x/y';y='http://ex/x/q%3ar';join(x, refTo(x, y)) == y 1 This one checks that it uses a root-realtive one where that is all they share. Now uses root-relative where no path is shared. This is a matter of taste but tends to give more resilience IMHO -- and shorter paths Note that base may be None, meaning no base. In some situations, there just ain't a base. Slife. In these cases, relTo returns the absolute value. The axiom abs(,rel(b,x))=x still holds. This saves people having to set the base to "bogus:".>>> refTo('http://ex/x/y/z', 'http://ex/r') '/r' |
splitFrag(uriref)split a URI reference between the fragment and the rest. Punctuation is thrown away. e.g.>>> splitFrag("abc#def") ('abc', 'def') >>> splitFrag("abcdef") ('abcdef', None) |
splitFragP(uriref, punct=0)split a URI reference before the fragment Punctuation is kept. e.g.>>> splitFragP("abc#def") ('abc', '#def') >>> splitFragP("abcdef") ('abcdef', '') |
_fixslash(str)Fix windowslike filename to unixlike - (#ifdef WINDOWS) |
| Variable Details |
|---|
__version__
|
commonHost
|
| Home | Trees | Index | Help |
|---|
| Generated by Epydoc 2.1 on Wed Apr 4 16:05:45 2007 | http://epydoc.sf.net |