Package translate :: Package storage :: Package placeables :: Module strelem :: Class StringElem
[hide private]
[frames] | no frames]

Class StringElem

source code


This class represents a sub-tree of a string parsed into a rich structure. It is also the base class of all placeables.

Instance Methods [hide private]
 
__add__(self, rhs)
Emulate the unicode class.
source code
 
__contains__(self, item)
Emulate the unicode class.
source code
 
__eq__(self, rhs)
Returns: True if (and only if) all members as well as sub-trees are equal.
source code
 
__ge__(self, rhs)
Emulate the unicode class.
source code
 
__getitem__(self, i)
Emulate the unicode class.
source code
 
__getslice__(self, i, j)
Emulate the unicode class.
source code
 
__gt__(self, rhs)
Emulate the unicode class.
source code
 
__init__(self, sub=None, id=None, rid=None, xid=None, **kwargs)
x.__init__(...) initializes x; see x.__class__.__doc__ for signature
source code
 
__iter__(self)
Create an iterator of this element's sub-elements.
source code
 
__le__(self, rhs)
Emulate the unicode class.
source code
 
__len__(self)
Emulate the unicode class.
source code
 
__lt__(self, rhs)
Emulate the unicode class.
source code
 
__mul__(self, rhs)
Emulate the unicode class.
source code
 
__ne__(self, rhs) source code
 
__radd__(self, lhs)
Emulate the unicode class.
source code
 
__repr__(self)
repr(x)
source code
 
__rmul__(self, lhs)
Emulate the unicode class.
source code
 
__str__(self)
str(x)
source code
 
__unicode__(self) source code
 
apply_to_strings(self, f)
Apply f to all actual strings in the tree.
source code
 
copy(self)
Returns a copy of the sub-tree.
source code
 
delete_elem(self, elem) source code
 
delete_range(self, start_index, end_index)
Delete the text in the range given by the string-indexes start_index and end_index.
source code
 
depth_first(self, filter=None)
Returns a list of the nodes in the tree in depth-first order.
source code
 
elem_at_offset(self, offset)
Get the StringElem in the tree that contains the string rendered at the given offset.
source code
 
elem_offset(self, elem)
Find the offset of elem in the current tree.
source code
 
encode(self, encoding='ascii')
More unicode class emulation.
source code
 
find(self, x)
Find sub-string x in this string tree and return the position at which it starts.
source code
 
find_elems_with(self, x)
Find all elements in the current sub-tree containing x.
source code
 
flatten(self, filter=None)
Flatten the tree by returning a depth-first search over the tree's leaves.
source code
 
get_ancestor_where(self, child, criteria) source code
 
get_index_data(self, index)
Get info about the specified range in the tree.
source code
 
get_parent_elem(self, child)
Searches the current sub-tree for and returns the parent of the child element.
source code
 
insert(self, offset, text)
Insert the given text at the specified offset of this string-tree's string (Unicode) representation.
source code
 
insert_between(self, left, right, text)
Insert the given text between the two parameter StringElems.
source code
bool
isleaf(self)
Whether or not this instance is a leaf node in the StringElem tree.
source code
 
iter_depth_first(self, filter=None)
Iterate through the nodes in the tree in dept-first order.
source code
 
map(self, f, filter=None)
Apply f to all nodes for which filter returned True (optional).
source code
 
print_tree(self, indent=0, verbose=False)
Print the tree from the current instance's point in an indented manner.
source code
 
prune(self)
Remove unnecessary nodes to make the tree optimal.
source code
 
remove_type(self, ptype)
Replace nodes with type ptype with base StringElems, containing the same sub-elements.
source code
 
translate(self)
Transform the sub-tree according to some class-specific needs.
source code

Inherited from object: __delattr__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __setattr__

Class Methods [hide private]
 
parse(cls, pstr)
Parse an instance of this class from the start of the given string.
source code
Class Variables [hide private]
  has_content = True
Whether this string can have sub-elements.
  iseditable = True
Whether this string should be changable by the user.
  isfragile = False
Whether this element should be deleted in its entirety when partially deleted.
  istranslatable = True
Whether this string is translatable into other languages.
  isvisible = True
Whether this string should be visible to the user.
  renderer = None
An optional function that returns the Unicode representation of the string.
  sub = []
The sub-elements that make up this this string.
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__eq__(self, rhs)
(Equality operator)

source code 
Returns:
True if (and only if) all members as well as sub-trees are equal. False otherwise.

__init__(self, sub=None, id=None, rid=None, xid=None, **kwargs)
(Constructor)

source code 

x.__init__(...) initializes x; see x.__class__.__doc__ for signature

Overrides: object.__init__
(inherited documentation)

__repr__(self)
(Representation operator)

source code 

repr(x)

Overrides: object.__repr__
(inherited documentation)

__str__(self)
(Informal representation operator)

source code 

str(x)

Overrides: object.__str__
(inherited documentation)

apply_to_strings(self, f)

source code 

Apply f to all actual strings in the tree.

Parameters:
  • f - Must take one (str or unicode) argument and return a string or unicode.

copy(self)

source code 

Returns a copy of the sub-tree. This should be overridden in sub-classes with more data.

NOTE: self.renderer is not copied.

delete_range(self, start_index, end_index)

source code 

Delete the text in the range given by the string-indexes start_index and end_index. Partial nodes will only be removed if they are editable.

Returns:
A StringElem representing the removed sub-string, the parent node from which it was deleted as well as the offset at which it was deleted from. None is returned for the parent value if the root was deleted. If the parent and offset values are not None, parent.insert(offset, deleted) effectively undoes the delete.

elem_offset(self, elem)

source code 

Find the offset of elem in the current tree. This cannot be reliably used if self.renderer is used and even less so if the rendering function renders the string differently upon different calls. In Virtaal the StringElemGUI.index() method is used as replacement for this one.

Returns:
The string index where element e starts, or -1 if e was not found.

get_index_data(self, index)

source code 

Get info about the specified range in the tree.

Returns:
A dictionary with the following items: * elem: The element in which index resides. * index: Copy of the index parameter * offset: The offset of index into 'elem'.

isleaf(self)

source code 

Whether or not this instance is a leaf node in the StringElem tree.

A node is a leaf node if it is a StringElem (not a sub-class) and contains only sub-elements of type str or unicode.

Returns: bool

parse(cls, pstr)
Class Method

source code 

Parse an instance of this class from the start of the given string. This method should be implemented by any sub-class that wants to parseable by translate.storage.placeables.parse.

Parameters:
  • pstr (unicode) - The string to parse into an instance of this class.
Returns:
An instance of the current class, or None if the string not parseable by this class.

remove_type(self, ptype)

source code 

Replace nodes with type ptype with base StringElems, containing the same sub-elements. This is only applicable to elements below the element tree root node.

translate(self)

source code 

Transform the sub-tree according to some class-specific needs. This method should be either overridden in implementing sub-classes or dynamically replaced by specific applications.

Returns:
The transformed Unicode string representing the sub-tree.

Class Variable Details [hide private]

iseditable

Whether this string should be changable by the user. Not used at the moment.

Value:
True

isfragile

Whether this element should be deleted in its entirety when partially deleted. Only checked when iseditable = False

Value:
False

isvisible

Whether this string should be visible to the user. Not used at the moment.

Value:
True