Package stocks3 :: Package core :: Module transport
[hide private]
[frames] | no frames]

Source Code for Module stocks3.core.transport

 1  # -*- coding: utf-8 -*- 
 2   
 3  u""" 
 4  Транспорт - это объект, доставляющий данные из удаленного источника. Здесь 
 5  описан базовый класс для всех транспортов (L{Transport}) и фабрика 
 6  (L{TransportFactory}), позволяющая создавать транспорт по его имени. 
 7  """ 
 8   
 9  __author__ = "Zasimov Alexey" 
10  __email__ = "zasimov-a@yandex-team.ru" 
11   
12  from stocks3.core.config import Configurable 
13   
14   
15 -class TransportError(Exception): pass
16 17
18 -class Transport(Configurable):
19 u""" 20 Транспорт доставляет данные из удаленного источника в указанное место 21 (place). 22 """ 23 24 places = [] # список классов мест (Places), с которыми может работать этот 25 # транспорт 26
27 - def __init__(self, tree, node):
28 u""" 29 Создает новый транспорт. 30 """ 31 Configurable.__init__(self, tree, node)
32
33 - def transfer(self, place):
34 u""" 35 Передает данные из источника в место place. Есть вероятность, что 36 транспорт будет передавать данные в нескольких файлах. То есть place - 37 это либо файл, либо директория. 38 39 Если транспорт работает только с конкретным местом, он должен 40 генерировать исключение, извещающее о нестыковках. 41 42 Если транспорт отрабатывает правильно, то метод завершается без 43 исключений. Иначе генерируется исключение. 44 45 @exception TransportError: Генерируется, если транспорт не может 46 работать с указанным местом (place). 47 """ 48 for validPlace in self.places: 49 if not isinstance(place, validPlace): 50 raise TransportError("Invalid place: %s" % str(place))
51
52 - def clean(self):
53 u""" 54 Транспорт должен запоминать ресурсы, которые занял. При вызове метода 55 clean занятые ресурсы освобождаются. 56 """ 57 pass
58
59 - def transfer_and_clean(self, place):
60 u""" 61 Вспомогательная функция. В 99% случаев должна отрабатывать без ошибок. 62 """ 63 self.transfer(place) 64 self.clean()
65