xoinvader.utils

Various useful tools.

class xoinvader.utils.InfiniteList(*args, **kwargs)[source]

Infinite list container.

current()[source]

Get current element.

Returns:current element
Return type:object
next()[source]

Get next element.

Returns:next element
Return type:object
prev()[source]

Get previous element.

Returns:previous element
Return type:object
class xoinvader.utils.Point(x=0, y=0, z=0)[source]

3D point representation.

Parameters:
  • x (integer) – x coordinate
  • y (integer) – y coordinate
  • z (integer) – z coordinate
Returns:

Point instance

Return type:

xoinvader.utils.Point

x

x coordinate.

Getter:yes
Setter:yes
Type:integer
y

y coordinate.

Getter:yes
Setter:yes
Type:integer
z

z coordinate.

Getter:yes
Setter:yes
Type:integer
class xoinvader.utils.Singleton[source]

Singleton metaclass.

class xoinvader.utils.Surface(image, style=None)[source]

Representation of graphic objects.

Parameters:image ([ [char] ]) – source for building image

Note

add building from string

Parameters:style ([ [integer(curses constant)] ]) – source for building styled image
Returns:Surface instance
Return type:xoinvader.utils.Surface
get_image()[source]

Image generator. Allows to renderers render Surfaces.

Returns:image generator
Return type:generator(xoinvader.utils.Point, string, integer)
height

Height of the surface.

Getter:yes
Setter:no
Type:integer
width

Width of the surface.

Getter:yes
Setter:no
Type:integer
class xoinvader.utils.Timer(end_time, func)[source]

Simple timer, calls callback when time’s up. Doesn’t have own loop.

fire_function()[source]

Call stored callback.

get_elapsed()[source]

Elapsed time from start.

Returns:elapsed time
Return type:float
get_remaining()[source]

Remaining time to fire callback.

Returns:remaining time
Return type:float
reset()[source]

Reset timer.

restart()[source]

Restart timer.

running

Is timer running or not.

Getter:yes
Setter:no
Type:boolean
start()[source]

Start timer.

stop()[source]

Stop timer.

update()[source]

Public method for using in loops.

xoinvader.utils.create_logger(lname, fname, fmode='w', level=20)[source]

Create simple logger.

Note

Needs enchancement.

Parameters:
  • lname (string) – logger name
  • fname (string) – file name
  • fmode (string) – file mode
  • level (integer) – logging level
Returns:

logger instance

Return type:

logging.Logger

xoinvader.utils.isclose(left, right, rel_tol=1e-09, abs_tol=0.0)[source]

Check if values are approximately equal.

Parameters:
  • left (int,float) – first value
  • right (int,float) – second value
  • rel_tol (float) – relative tolerance (amount of error allowed)
  • abs_tol (float) – minimum absolute tolerance level

Example:

rocket [ [“^”], ^ [“|”], | [“*”] ] *

ship [ [” ”,” ”,”O”,” ”,” “], O [“<”,”=”,”H”,”=”,”>”], <=H=> [” ”,”*”,” ”,”*”,” “] ] * *