A file path name, which may be input as a relative path

Input paths are converted to absolute paths and normalized.

Let's look at an example:

First, we need a "context" for the field that has a path function for converting relative path to an absolute path.

We'll be careful to do this in an os-independent fashion.

>>> class FauxContext(object):
...    def path(self, p):
...       return os.path.join(os.sep, 'faux', 'context', p)
>>> context = FauxContext()
>>> field = Path().bind(context)

Lets try an absolute path first:

>>> p = unicode(os.path.join(os.sep, 'a', 'b'))
>>> n = field.fromUnicode(p)
>>> n.split(os.sep)
[u'', u'a', u'b']

This should also work with extra spaces around the path:

>>> p = "   \n   %s   \n\n   " % p
>>> n = field.fromUnicode(p)
>>> n.split(os.sep)
[u'', u'a', u'b']

Now try a relative path:

>>> p = unicode(os.path.join('a', 'b'))
>>> n = field.fromUnicode(p)
>>> n.split(os.sep)
[u'', u'faux', u'context', u'a', u'b']

Base classes

Implemented Interfaces



Known Subclasses

There are no known subclasses.