10 years of Exyriment & Expyriment 0.10.0 released!

12 views
Skip to first unread message

Florian Krause

unread,
Oct 31, 2019, 3:14:13 AM10/31/19
to expyriment
It's Expyriment's 10th anniversary!



To celebrate, we released Expyriment 0.10.0!

This release includes many new features as well as important changes and bug
fixes (for a full list, please see below).

For installation instructions, please see http://docs.expyriment.org/Installation.html.


New Features:

  • Expyriment windows with no frame; set control.defaults.window_no_frame=True before initializing
  • download plugins from stash: misc.download_from_stash
  • stimuli.Shape: A vertex list can be added when creating a shape object using the optional vertex_list parameter
  • all visual stimuli now have get_surface_array & set_surface_array methods for direct pixel manipulations with numpy
  • all visual stimuli have a getter and setter for the position in polar coordinates: polar_coordiante
  • cartesian2polar & polar2cartesian in misc.geometry
  • design: trials, blocks and experiment objects have the method has_factor to check if a factor is defined
  • after installation the command line interface will be available from the system command expyriment
  • io.TextInput can now optionally how text right-to-left
  • io.SerialPort has a new method send_line
  • geometry module has convenience functions for predefined geometrical shapes used for plotting with stimuli.Shape
  • geometry.lines_intersection_point calculates interscetion point of two lines
  • stimuli.Line is internally based on stimuli.Shape and has the new methods get_shape and get_connected_shape
  • new function misc.round, implementing the old Python 2 rounding behaviour
  • io.keyboard.check now has an argument check_for_keyup which will check for keyup events instead of keydown events
  • new class misc.Colour: create colours by names, Hex strings or RGB values; the class can also handle HSV, HSL values; the misc.HSVColour class is thus obsolete
  • misc.data.preprocessing can handle glob wildcard pattern

Changed:

  • Python's time.perf_counter function will be used as high-precision timer if it exists (that is, for Python 3.3+)
  • major rewrite of stimuli.Shape with several bug fixes; e.g. shapes have no line_width, contour_colour is renamed to debug_contour_colour, Shape.rect is now a pygame.Rect; see improved documentation
  • extras
    • extras need to be explicitly imported
    • extras and plugins are not anymore part of expyriment package and can be instead downloaded from the Expyriment stash (see misc.download_from_stash)
    • all installed extras will be installed in the local settings folder (typically .expyriment in the $HOME directory)
  • the option ascii_fiter in io.TextInput has been renamed to character_filter
  • frequence_table in misc.statistics has been renamed to frequency_table
  • points_to_vertices in misc.geometry has been renamed to points2vertices
  • position2coordinate in misc.geometry has been renamed to position2coordinates
  • position2coordinates & coordinates2position have a new optional argument to calculate positions relative to a surfaces
  • stimuli.Circle: get_polar_coordiantes & set_polar_coordiantes are obsolete; use polar_position
  • design: Trial().get_factor, Block().get_factor and Experiment().get_bws_factor now raise an exception if the factor is not defined; this can be suppressed by using the parameter return_none_if_not_defined
  • misc.geometry.points2vertices requires now a list of misc.XYPoints and not a list of tuples; (use misc.geometry.tuples2points to adapt old code)
  • stimuli.Video: attempting to downloaded a missing ffmpeg binary only when initializing a Video stimulus with the "mediadecoder" backend
  • io.Mouse: quit events will now be controlled via the method Mouse.set_quit_corner_location; the class properties quit_rect_location and quit_rect_size are obsolete
  • logging of visual stimuli present method now after screen update

Fixed:

  • Adding field bug in io.TouchscreenButtonBox
  • 1-pixel bug when converting Expyriment positions to screen (Pygame) positions: position2coordinate & coordinate2position
  • control: auto_create_subject_id takes now also existing event files into account
  • io.SerialPort bug with Python 3
  • script path is added to $PYTHONPATH
  • representation lists in output CSV files
  • bug in io.Keyboard.wait
  • bug when drawing textures to screen (OpenGL) leading to 1-pixel inaccuracies
  • bug in stimuli.Ellipse with uneven line_width argument
  • io.TextIput: argument background_stimulus now takes all Expyriment stimuli
  • misc.get_system_info() uses PIL.__version__
  • io.TextMenu mouse wheel scrolling
Reply all
Reply to author
Forward
0 new messages