Source code for crappy

# coding: utf-8

"""This file is the entry point to the module Crappy.

It imports all the modules and other resources, and defines aliases.
"""

from pkg_resources import resource_string, resource_filename
from numpy import frombuffer, uint8
from webbrowser import open

# Importing the modules of crappy
from . import actuator
from . import blocks
from . import camera
from . import inout
from . import lamcube
from . import links
from . import modifier
from . import tool

# Importing other features
from .__version__ import __version__
from ._global import OptionalModule

# Useful aliases
link = links.link
Block = blocks.Block
Actuator = actuator.Actuator
Camera = camera.Camera
InOut = inout.InOut
Modifier = modifier.Modifier
Path = blocks.generator_path.meta_path.Path

# Useful commands
stop = Block.stop_all
prepare = Block.prepare_all
launch = Block.launch_all
start = Block.start_all
renice = Block.renice_all
reset = Block.reset


# Quick access to documentation
[docs] def docs(): """Opens the online documentation of Crappy. It opens the latest version, and of course requires an internet access. .. versionadded:: 1.5.5 .. versionchanged:: 2.0.0 renamed from doc to docs """ open('https://crappy.readthedocs.io/en/latest/')
# Data aliases class resources: """This class defines aliases for quick access to the resources in the `tool/data/` folder. These aliases are then used in the examples provided on the GitHub repository, but could also be used in custom user scripts. .. versionadded:: 1.5.3 """ try: # Defining aliases to the images themselves from cv2 import imdecode speckle = imdecode(frombuffer(resource_string('crappy', 'tool/data/speckle.png'), uint8), flags=0) ve_markers = imdecode(frombuffer( resource_string('crappy', 'tool/data/ve_markers.tif'), uint8), flags=0) pad = imdecode(frombuffer(resource_string('crappy', 'tool/data/pad.png'), uint8), flags=0) # In case the module opencv-python is missing except (ModuleNotFoundError, ImportError): speckle = OptionalModule('opencv-python') ve_markers = OptionalModule('opencv-python') pad = OptionalModule('opencv-python') # Also getting the paths to the images paths = {'pad': resource_filename('crappy', 'tool/data/pad.png'), 'speckle': resource_filename('crappy', 'tool/data/speckle.png'), 've_markers': resource_filename('crappy', 'tool/data/ve_markers.tif')}