Source code for epygram.container

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import footprints
from footprints import FootprintBase

from epygram.util import RecursiveObject



[docs]class File(RecursiveObject, FootprintBase): """ Generic class implementing a File. """ _collector = ('container', 'file') _footprint = dict( attr = dict( filename = dict( type = str, alias = ('f',), info = 'Relative or absolute pathname.') ) ) def __init__(self, *args, **kwargs): """ Constructor. See its footprint for arguments. """ import os # super to footprints constructor super(File, self).__init__(*args, **kwargs) # initialise absolute pathname self._abspath = os.path.abspath(self.filename) @property
[docs] def basename(self): """ Returns the basename of the file. """ import os return os.path.basename(self._abspath)
@property
[docs] def abspath(self): """ Returns the absolute path of the file. """ return self._abspath
@property
[docs] def absdir(self): """ Returns the absolute path of the directory of the file. """ return self._abspath[:-len(self.basename)]