import numbers
import operator
-from abc import ABC, abstractproperty, abstractmethod
-from collections import OrderedDict, Mapping
+from abc import ABC, abstractmethod, abstractproperty
+from collections import Mapping, OrderedDict
from .linexprs import Symbol
def __new__(cls, coordinates):
"""
- Create a coordinate system from a dictionary or a sequence that maps the
- symbols to their coordinates. Coordinates must be rational numbers.
+ Create a coordinate system from a dictionary or a sequence that maps
+ the symbols to their coordinates. Coordinates must be rational numbers.
"""
if isinstance(coordinates, Mapping):
coordinates = coordinates.items()
def __repr__(self):
string = ', '.join(['{!r}: {!r}'.format(symbol, coordinate)
- for symbol, coordinate in self.coordinates()])
+ for symbol, coordinate in self.coordinates()])
return '{}({{{}}})'.format(self.__class__.__name__, string)
def _map(self, func):
def __sub__(self, other):
"""
If other is a point, substract it from self and return the resulting
- vector. If other is a vector, translate the point by the opposite vector
- and returns the resulting point.
+ vector. If other is a vector, translate the point by the opposite
+ vector and returns the resulting point.
"""
coordinates = []
if isinstance(other, Point):
def __new__(cls, initial, terminal=None):
"""
- Create a vector from a dictionary or a sequence that maps the symbols to
- their coordinates, or as the displacement between two points.
+ Create a vector from a dictionary or a sequence that maps the symbols
+ to their coordinates, or as the displacement between two points.
"""
if not isinstance(initial, Point):
initial = Point(initial)
result += coordinate1 * coordinate2
return result
- def __hash__(self):
- return super().__hash__()
-
def norm(self):
"""
Return the norm of the vector.
def asunit(self):
"""
- Return the normalized vector, i.e. the vector of same direction but with
- norm 1.
+ Return the normalized vector, i.e. the vector of same direction but
+ with norm 1.
"""
return self / self.norm()