Краткое описание пакета
=======================

Пакет pd.find - это простой способ работать с файловой 
системой, искать и открывать на ней файлы. Работа
с файловой системой выглядит так же, как работа 
с обычным словарем::

    >>> import pd.find
    >>> f=pd.find.file.File("/etc/sysconfig")
    >>> f
    '/etc/sysconfig'
    >>> f.keys()
    ['harddisk', 'lm_sensors', 'ipw3945d~', 'syscheckerrc', 'mouse']
    >>> f['lm_sensors']
    '/etc/sysconfig/lm_sensors'
    >>> print str(f['lm_sensors'])
    #    /etc/sysconfig/lm_sensors - Defines modules loaded by

Другое важное назначение пакета - это поиск файлов способом,
подобным тому, который использует утилита find::

    >>> import pd.find
    >>> pd.find.find("/etc/sysconfig",lambda x : x.isreg() and x.check_regex(".*rc"))
    <generator object at 0xb7cca7cc>
    >>> for item in pd.find.find("/etc/sysconfig",lambda x : x.isreg() and x.check_regex(".*rc$")) : 
    ... print item.path
    ...
    /etc/sysconfig/xinitrc
    /etc/sysconfig/syscheckerrc
    >>>

Работа с pd.find.file.File
--------------------------

Конструктор вызывается как в примере, с указанием одного обязательного
параметра - пути к файлу (или директории). Другие параметры:

    dereference 
        Следовать симлинкам (по умолчанию False)
        
После инициализации, объект pd.find.file.File ведет себя как обычный
словарь, ключи которого соответствуют именам файлов и поддиректорий, а
значения, полученные по этим ключам - объекты, соответствующие вложенным
объектам. В результате работа с файловой системой делается такой же простой,
как и с обычными файлами. Объект File предоставляет несколько полезных
функций и атрибутов:

    path
        Атрибут содержит полный путь к файлу;
        
    __str__() 
        Функция возвращает тело файла.
        
Другие атрибуты связаны с проверкой условий, и будут описаны ниже.                

Вызов утилиты pd.find.find
--------------------------

Утилита pd.find.find вызывается для рекурсивного поиска файлов,
соответствующих неким условиям. Функция принимает следующие аргументы:

    path
        Путь к каталогу, с которого начнется поиск;
        
    condition
        Условие, которое проверяется на просматриваемых файлах и директориях,
        условие удовлетворяется - найденный объект передается на выход функции;        
    
    precondition
        Условие, которое проверяется перед просмотром поддиректории. Если условие 
        не выполнено, директория просматриваться не будет;
        
    dereference
        Если параметр установлен в значение "Истинно", то поиск будет следовать
        символическим ссылкам.        

Функция возвращает генератор списка найденных объектов.

Тесты, которые предоставляет объект File
----------------------------------------

Работа утилиты pd.find.find требует, что бы на объекте файл
можно было проводить различные тесты. Вот список этих тестов:

    mtime
        Вернуть время модификации
        
    atime
        Вернуть время последнего доступа
        
    ctime
        Вернуть время создания файла
        
    newer
        Вернуть "Истинно" если объект новее, чем тот, который
        задан переданым путем.
    
    check_name
        Вернуть "Истинно" если имя объекта равно переданному имени

    check_path
        Вернуть "Истинно" если путь к объекту равно переданному пути
        
    check_path_regex
        Вернуть "Истинно" если регулярно выражение опознает путь к 
        объекту

    check_regex
        Вернуть "Истинно" если регулярно выражение опознает имя 
        объекта

    check_iregex
        Вернуть "Истинно" если регулярно выражение опознает имя 
        объекта без учета регистра букв
        
    depth
        Вернуть текущую глубину просмотренного дерева

    dele
        Удалить файл, соответствующий пути текущего объекта

    execute
        Заменить подстроку "{}" в аргументе frm на путь к файлу и выполнить
        полученную строку при помощи вызова os.system()



