[frames] | no frames]

# Class BetweenPosition

source code

```      object --+
|
int --+
|
object --+   |
|   |
AbstractPosition --+
|
BetweenPosition
```

Specify the position of a boundary between two coordinates (OBSOLETE?).

Arguments:
• position - The default integer position
• left - The start (left) position of the boundary
• right - The end (right) position of the boundary

This allows dealing with a position like 123^456. This indicates that the start of the sequence is somewhere between 123 and 456. It is up to the parser to set the position argument to either boundary point (depending on if this is being used as a start or end of the feature). For example as a feature end:

```>>> p = BetweenPosition(456, 123, 456)
>>> p
BetweenPosition(456, left=123, right=456)
>>> print(p)
(123^456)
>>> int(p)
456```

Integer equality and comparison use the given position,

```>>> p == 456
True
>>> p in [455, 456, 457]
True
>>> p > 300
True```

The old legacy properties of position and extension give the starting/lower/left position as an integer, and the distance to the ending/higher/right position as an integer. Note that the position object will act like either the left or the right end-point depending on how it was created:

```>>> p2 = BetweenPosition(123, left=123, right=456)
>>> p.position == p2.position == 123
True
>>> p.extension
333
>>> p2.extension
333
>>> p.extension == p2.extension == 333
True
>>> int(p) == int(p2)
False
>>> p == 456
True
>>> p2 == 123
True```

Note this potentially surprising behaviour:

```>>> BetweenPosition(123, left=123, right=456) == ExactPosition(123)
True
>>> BetweenPosition(123, left=123, right=456) == BeforePosition(123)
True
>>> BetweenPosition(123, left=123, right=456) == AfterPosition(123)
True```

i.e. For equality (and sorting) the position objects behave like integers.

 Instance Methods

 __repr__(self) Represent the BetweenPosition object as a string for debugging. source code

 __str__(self) Return a representation of the BetweenPosition object (with python counting). source code

 _shift(self, offset) Return a copy of the position object with its location shifted (PRIVATE). source code

 _flip(self, length) Return a copy of the location after the parent is reversed (PRIVATE). source code

Inherited from `int`: `__abs__`, `__add__`, `__and__`, `__cmp__`, `__coerce__`, `__div__`, `__divmod__`, `__float__`, `__floordiv__`, `__format__`, `__getattribute__`, `__getnewargs__`, `__hash__`, `__hex__`, `__index__`, `__int__`, `__invert__`, `__long__`, `__lshift__`, `__mod__`, `__mul__`, `__neg__`, `__nonzero__`, `__oct__`, `__or__`, `__pos__`, `__pow__`, `__radd__`, `__rand__`, `__rdiv__`, `__rdivmod__`, `__rfloordiv__`, `__rlshift__`, `__rmod__`, `__rmul__`, `__ror__`, `__rpow__`, `__rrshift__`, `__rshift__`, `__rsub__`, `__rtruediv__`, `__rxor__`, `__sub__`, `__truediv__`, `__trunc__`, `__xor__`, `bit_length`, `conjugate`

Inherited from `object`: `__delattr__`, `__init__`, `__reduce__`, `__reduce_ex__`, `__setattr__`, `__sizeof__`, `__subclasshook__`

 Static Methods
a new object with type S, a subtype of T
 __new__(cls, position, left, right) Create a new instance in BetweenPosition object. source code
 Properties
position
Legacy attribute to get (left) position as integer (OBSOLETE).
extension
Legacy attribute to get extension (from left to right) as an integer (OBSOLETE).

Inherited from `int`: `denominator`, `imag`, `numerator`, `real`

Inherited from `object`: `__class__`

 Method Details

### __new__(cls, position, left, right)Static Method

source code
Create a new instance in BetweenPosition object.
Returns: a new object with type S, a subtype of T
Overrides: object.__new__

### __repr__(self)(Representation operator)

source code
Represent the BetweenPosition object as a string for debugging.
Overrides: object.__repr__

### __str__(self)(Informal representation operator)

source code
Return a representation of the BetweenPosition object (with python counting).
Overrides: object.__str__

 Property Details

### position

Legacy attribute to get (left) position as integer (OBSOLETE).
Get Method:
unreachable.position(self) - Legacy attribute to get (left) position as integer (OBSOLETE).

### extension

Legacy attribute to get extension (from left to right) as an integer (OBSOLETE).
Get Method:
unreachable.extension(self) - Legacy attribute to get extension (from left to right) as an integer (OBSOLETE).

 Generated by Epydoc 3.0.1 on Fri Jun 22 16:36:04 2018 http://epydoc.sourceforge.net