pytower.selection

class pytower.selection.BoxSelector(pos1, pos2)[source]
Parameters:
__init__(pos1, pos2)[source]
Parameters:
  • name – Printed name for Selector object

  • pos1 (XYZ)

  • pos2 (XYZ)

select(everything)[source]
Return type:

Selection

Returns:

Selection of objects contained in the box formed by self.min_pos and self.max_pos

Parameters:

everything (Selection)

class pytower.selection.CompositionSelector(left, right)[source]
Parameters:
__init__(left, right)[source]
Parameters:
select(everything)[source]
Return type:

Selection

Returns:

Selection composition of self.left applied to Selection input, followed by self.right

Parameters:

everything (Selection)

class pytower.selection.CustomNameSelector(select_name)[source]
Parameters:

select_name (str)

__init__(select_name)[source]
Parameters:
  • name – Printed name for Selector object

  • select_name (str)

select(everything)[source]
Return type:

Selection

Returns:

Selection where each object’s custom name matches self.select_name

Parameters:

everything (Selection)

class pytower.selection.DifferenceSelector(left, right)[source]
Parameters:
__init__(left, right)[source]
Parameters:
select(everything)[source]
Return type:

Selection

Returns:

Selection composition of self.left applied to Selection input, followed by self.right

Parameters:

everything (Selection)

class pytower.selection.EverythingSelector[source]
__init__()[source]
Parameters:

name – Printed name for Selector object

select(everything)[source]
Return type:

Selection

Returns:

The input Selection, acting as an identity function

Parameters:

everything (Selection)

class pytower.selection.GroupSelector(group_id)[source]
Parameters:

group_id (int)

__init__(group_id)[source]
Parameters:
  • name – Printed name for Selector object

  • group_id (int)

select(everything)[source]
Return type:

Selection

Returns:

Selection where each object’s group id matches self.group_id

Parameters:

everything (Selection)

class pytower.selection.IntersectionSelector(left, right)[source]
Parameters:
__init__(left, right)[source]
Parameters:
select(everything)[source]
Return type:

Selection

Returns:

Selection composition of self.left applied to Selection input, followed by self.right

Parameters:

everything (Selection)

class pytower.selection.ItemSelector[source]
__init__()[source]
Parameters:

name – Printed name for Selector object

select(everything)[source]
Return type:

Selection

Returns:

Selection excluding objects that only have a properties section

Parameters:

everything (Selection)

class pytower.selection.NameSelector(select_name)[source]
Parameters:

select_name (str)

__init__(select_name)[source]
Parameters:
  • name – Printed name for Selector object

  • select_name (str)

select(everything)[source]
Return type:

Selection

Returns:

Selection where each object’s name or custom name matches self.select_name

Parameters:

everything (Selection)

class pytower.selection.NothingSelector[source]
__init__()[source]
Parameters:

name – Printed name for Selector object

select(everything)[source]
Return type:

Selection

Returns:

An empty Selection. Potentially useful when a tool doesn’t depend on input selection

Parameters:

everything (Selection)

class pytower.selection.ObjectNameSelector(select_name)[source]
Parameters:

select_name (str)

__init__(select_name)[source]
Parameters:
  • name – Printed name for Selector object

  • select_name (str)

select(everything)[source]
Return type:

Selection

Returns:

Selection where each object’s name matches self.select_name

Parameters:

everything (Selection)

class pytower.selection.PercentSelector(percentage)[source]
Parameters:

percentage (float)

__init__(percentage)[source]
Parameters:
  • name – Printed name for Selector object

  • percentage (float)

select(everything)[source]
Return type:

Selection

Returns:

Selection with a random subset of self.percentage % of objects

Parameters:

everything (Selection)

class pytower.selection.RandomSelector(probability)[source]
Parameters:

probability (float)

__init__(probability)[source]
Parameters:
  • name – Printed name for Selector object

  • probability (float)

select(everything)[source]
Return type:

Selection

Returns:

Selection where every object is selected with probability self.probability

Parameters:

everything (Selection)

class pytower.selection.RegexSelector(pattern)[source]
Parameters:

pattern (str)

__init__(pattern)[source]
Parameters:
  • name – Printed name for Selector object

  • pattern (str)

select(everything)[source]
Return type:

Selection

Returns:

Selection where each object’s name or custom name matches the self.pattern regular expression pattern

Parameters:

everything (Selection)

class pytower.selection.Selection[source]
__add__(other)[source]

Implements the + operator as union for Selection objects

Return type:

Selection

Parameters:

other (Selection)

__hash__()[source]

Return hash(self).

__iadd__(other)[source]

Implements the += operator as union for Selection objects

Return type:

Selection

Parameters:

other (Selection)

__imul__(other)[source]

Implements the *= operator as intersection for Selection objects

Return type:

None

Parameters:

other (Selection)

__isub__(other)[source]

Implements the -= operator as set difference for Selection objects

Return type:

None

Parameters:

other (Selection)

__mul__(other)[source]

Implements the * operator as intersection for Selection objects

Return type:

Selection

Parameters:

other (Selection)

__sub__(other)[source]

Implements the - operator as set difference for Selection objects

Return type:

Selection

Parameters:

other (Selection)

property centroid: XYZ[source]
destroy_groups()[source]

Destroys all groups in the selection, rendering the objects ungrouped.

get()[source]

Converts Selection into TowerObject, which is useful when only one TowerObject is expected

Return type:

TowerObject | None

Returns:

Gets the first object in this Selection object, or None if Selection is empty

group()[source]

Creates a new group based on the selection

Return type:

int

Returns:

Group ID of the new group

property group_id: int[source]
groups()[source]
Returns:

int, sel: Selection)

Return type:

Groups present in the Selection, as a set of tuples in the form (group_id

to_dict()[source]
Return type:

dict

ungrouped()[source]
Return type:

Selection

Returns:

TowerObjects in the Selection without a group_id

class pytower.selection.Selector(name)[source]
__init__(name)[source]
Parameters:

name – Printed name for Selector object

__repr__()[source]

Return repr(self).

abstract select(everything)[source]

Selectors take in a Selection and output a new Selection. You can think of these Selectors operating on the set of everything, and selecting a subset. However, nothing’s stopping you from then selecting on that subset, and so on, further and further refining the selection using Selector objects.

Parameters:

everything (Selection) – Everything the Selector selects on

Return type:

Selection

Returns:

A new refined Selection object

class pytower.selection.SphereSelector(center, radius)[source]
Parameters:
__init__(center, radius)[source]
Parameters:
  • name – Printed name for Selector object

  • center (XYZ)

  • radius (float)

select(everything)[source]
Return type:

Selection

Returns:

Selection of objects contained in the sphere defined by self.center and self.radius

Parameters:

everything (Selection)

class pytower.selection.TakeSelector(number)[source]
Parameters:

number (int)

__init__(number)[source]
Parameters:
  • name – Printed name for Selector object

  • number (int)

select(everything)[source]
Return type:

Selection

Returns:

Selection with a random subset of self.number of objects

Parameters:

everything (Selection)

class pytower.selection.UnionSelector(left, right)[source]
Parameters:
__init__(left, right)[source]
Parameters:
select(everything)[source]
Return type:

Selection

Returns:

Selection union of self.left and self.right selectors applied to input

Parameters:

everything (Selection)