text.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import constants
  2. import modes
  3. import positions
  4. from packet import Packet
  5. class Text(object):
  6. """Class representing a TEXT file.
  7. This class is aliased as :class:`alphasign.Text` in :mod:`alphasign.__init__`.
  8. """
  9. def __init__(self, data=None, label=None, size=None,
  10. position=None, mode=None):
  11. """
  12. :param data: initial string to insert into object
  13. :param label: file label (default: "A")
  14. :param size: amount of bytes to allocate for object on sign (default: 64)
  15. :param position: constant from :mod:`alphasign.positions`
  16. :param mode: constant from :mod:`alphasign.modes`
  17. """
  18. if data is None:
  19. data = ""
  20. if label is None:
  21. label = "A"
  22. if size is None:
  23. size = 64
  24. if len(data) > size:
  25. size = len(data)
  26. if size > 125:
  27. size = 125
  28. if size < 1:
  29. size = 1
  30. if position is None:
  31. position = positions.MIDDLE_LINE
  32. if mode is None:
  33. mode = modes.ROTATE
  34. self.label = label
  35. self.size = size
  36. self.data = data
  37. self.position = position
  38. self.mode = mode
  39. def __str__(self):
  40. # [WRITE_TEXT][File Label][ESC][Display Position][Mode Code]
  41. # [Special Specifier][ASCII Message]
  42. packet = Packet("%s%s%s%s%s%s" % (constants.WRITE_TEXT, self.label,
  43. constants.ESC,
  44. self.position,
  45. self.mode,
  46. self.data))
  47. return str(packet)
  48. def __repr__(self):
  49. return repr(self.__str__())