It is pure trigonometry or vector calculus problem and you can get the result using polar coordinates (center of the figure) or the direction cosines (right) with 2D cartesian coordinates :
import math
point = (-1004.00, 635.00)
distance = 160
bearing = 103
angle = 90 - bearing
bearing = math.radians(bearing)
angle = math.radians(angle)
# polar coordinates
dist_x, dist_y = \
(distance * math.cos(angle), distance * math.sin(angle))
print dist_x, dist_y
#(155.89921036563763, -35.992168695018407)
xfinal, yfinal = (point[0] + dist_x, point[1] + dist_y)
print xfinal, yfinal
#(-848.1007896343624, 599.00783130498155)
# direction cosines
cosa = math.cos(angle)
cosb = math.cos(bearing)
xfinal, yfinal = \
(point[0] +(distance * cosa), point[1]+(distance * cosb))
print xfinal, yfinal
#(-848.1007896343624, 599.00783130498155)
Result
see also How to create points in a specified distance along the line in QGIS?