Expyriment

Latest version: v0.10.0

Safety actively analyzes 682387 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

0.10.0

----------------------------
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

0.9.0

---------------------------
New Features:
- Python 3 compatibility
- New Video stimulus implementation that supports a large range of formats
- new global boolean constant expyriment.PYTHON3 indicates Python version
- new io device: io.extras.TcpServer
- new method to add full factorial designs:
Block.add_trials_full_factorial & Experiment.add_blocks_full_factorial
- Network interface to Turbo-Satori: io.extras.TurbosatoriNetworkInterface
(see www.brainvoyager.com/products/turbosatori.html)
- stimuli.Rectangle: Option to have rounded (anti-aliased) corners
- rotate() method of stimuli applies filtering on the content now
- randomize.coin_flip() with bias parameter ("unfair coins")
- randomize.rand_norm() normally distributed random numbers
- statistics module: std & variance
- Eventfile.log has an optional log_event_tag for the logging of
inter-event-intervalls. If this is defined a summary of the intervalls
will be added to the event file.
- All present methods have an optional log_event_tag that will be passed
to Eventfile.log (see above)
- New function: misc.has_internet_connection()
- Notify when initializing system fonts takes longer
- io.ParallelPort: new method get_driver()
- New function: misc.which()

Changed:
- all wait methods (io and Clock) now
(1) have process_control_events attribute to check for quit events from
keyboard and mouse
(2) have function attribute (callback_function) to repeatedly run a
specific function in every loop iteration
(3) pump the pygame event queue to (hopefully) prevent the OS to think the
window is "not responding"
- control.set_develop_mode: new skip_wait_methods attribute to omit all wait
functions in the experiment (for testing)
- rename method: stimulus.replace --> stimulus.reposition
- improvements to io.extras.TcpClient
- move set_skip_wait_functions from misc to io
- move is_idle_running, is_interactive_mode, is_android_running
from control to misc
- move get_module_hash_dictionary, get_experiment_secure_hash,
module_hashes_as_string and get_system_info from expyriment to misc
- Testsuite: Visual test will now colour code reported refresh rates

Fixed:
- unicode bug on Windows for font files
- unicode bug on Windows for Audio and Picture
- bug fix in unicode2str
- bug fix Experiment.add_experiment_info
- bug: issue 65, tempfolder at multiuser systems
- minor bug fixes in _secure_hash.py, _files.py
- Cli: -0 option was not recognized
- Correct anti-aliasing for Circle/Ellipse (now works on every background)
- compatibility with pyserial version 3.0
- ParallelPort: inpoutx64 should now work correctly

0.8.0

---------------------------
New Features:
- antialiasing option for stimuli.Ellipse() and stimuli.Circle()
- new class: misc.HSVColour. Class to handle HSV colours [hue, saturation, value]
- new function: quitting wait or event loops by callback_function, if this function
returns an instance of the new class control.CallbackQuitEvent
- new method: all visual stimuli have methods for lowlevel Pygame operations
get_surface_copy(), set_surface(), get_pixel_array()
- new stimulus: stimuli.extras.ThermometerDisplay
- new io device: io.extras.TbvNetworkClient
- new io device: io.extras.TcpClient
- new stimulus: GaborPatches can be created with stimuli.extras.GaborPatch();
the stimulus depends on the package "matplotlib".
- new feature: data_preprocessing method sallow now to read in only certain
variables (see parameter `read_variables`)
- new feature: Expyriment asks in interactive mode if initializing a fullscreen
- new method: stimulus.visual.scale_to_fullscreen
- new class: design.extras.StimulationProtocol
- new method in data_preprocessing: save to to R data frame
- new method in data_preprocessing: get_experiment_duration
- new method/property: misc.get_monitor_resolution & Screen.monitor_resolution
- new mouse function: experiments can be quited by mouse events (triple click);
see documentation of property "mouse_quit_event". This function is only switched
on per default under Android
- new method visual stimuli.replace
- new method control.is_android_running
- several new options for command line interface
- get_module_hash_dictionary: dictionary secure hashes from all modules
imported from local folder
- new constant: ALL_KEYPAD_DIGITS
- new helper functions in misc and control
- new feature: control.set_skip_wait_functions
- io.Keyboard has static methods to set and get the quit_key and pause_key
- new feature: too long text lines will be trimmed automatically if the
max_width parameter has been defined
- new feature: too long words in text boxes will be trimmed automatically,
this function can be switch off
- new feature: improved functionality of randomize.shuffle_list
- Test suite summarizes delay histograms for visual presentations
- control.defaults.blocking_mode for setting the blocking_mode
- new io.ParallelPort implementation, based on PsychoPy code; it now
supports reading of 5 status pins (10, 11, 12, 13, 15) and all 8 data pins;
in addition, the module now works on 64bit Windows system
- Test suite: New ParallelPort test
- stimuli.extra.DotCloud: DotCloud can be multi coloured (see make method)
- lots of documentation improvements

Changed:
- ATTENTION: Open_GL is now also used in window mode and will not be switch
off automatically, if Expyriment is not running in fullscreen mode.
- ATTENTION: extra modules will not anymore be imported automatically. Please
call `import.<module_name>.extras`, if you want to use extra features.
- ATTENTION: io.screen.open_gl and control.defaults.open_gl have new parameters::
0/False - No OpenGL (no vsync / no blocking)
1 - OpenGL (vsync / no blocking)
2/True - OpenGL (vsync / blocking)
3 - OpenGL (vsync / alternative blocking)
- ATTENTION: stimuli.Ellipse is now defined by radii (Not backwards compatible!)
- ATTENTION: stimuli.Circle is now defined by radius (Not backwards compatible!)
- ATTENTION: two obsolete stimuli stimuli.Frame and stimuli.Dot (see doc)
- ATTENTION: ParallelPort has been changed a lot and is not backwards compatible
anymore; the old implementation is still available as
io.extras.SimpleParallelPort
- the property Shape.size has been renamed to shape.shape_size
- stimuli.Rectangle: is_point_inside is now obsolete
- stimuli.Shape: is_point_inside and is_shape_overlapping are now obsolete
- stimuli.Fixcross: fixcross_size parameter and cross_size property are now
obsolete
- changes to Simon example

Fixed:
- bug in io.TouchScreenButton crash if duration expired
- bug in command line interface: order of argument is now irrelevant
- keypad bug in TextInput
- unicode bug in TextMenu
- bug in anti_aliasing shapes
- some method parameters that require a list and didn't work with tuples
- stimuli with odd dimensions missed a pixel in each dimension in OpenGL mode
- bug in stimuli.Audio.unload() and stimuli.Video.unload()
- bug in io.ParallelPort.poll (now io.extras.SimpleParallelPort)
- bug in Shape: shapes now comensate for the Pygame bug of extended polygons
along the horizontal axes
- bug in stimuli.extras.DotCloud: colour of dots could not be changed

0.7.0

--------------------------
New Features:
- new feature in testsuite: Font viewer
- new extra stimulus: stimuli.extras.RandomDotKinematogram
- new timer and experiment clock to ensure monotonic timing
- Clock: new method (static) monotonic_time (this time should be always used)
- data_preprocessing: new exclusion rule, which allows removing trials
depending on their deviation (std) from mean (e.g., 'RT > 1.5*std')
- improvements for OS X in get_system_info()
- proper unicode handling: use unicode strings whenever unicode characters
are needed
- files: the character encoding is now written to files and used when opening
them
- FreeFonts are now part of the Expyriment distribution to guarantee the same
fonts across platforms
- new io class: TouchScreenButtonBox
- new options for control.start(): skip_ready_screen and subject_id to start
with predefined subject id
- experiments now also have a global mouse object: experiment.mouse
- new property for io.Mouse: is_visible
- Secure hashes for experiments help to ensure that the correct version is
running in the lab. Secure hashes will be displayed at the start and printed
in all output files as well as in the command line output.

Fixed:
- experiment clock now with monotonic timing
- bug in extras.CedrusResponseDevice
- several bugs in documentation
- incompatibility with multiprocessing.Pool
- bug in Visual.add_noise()
- bug in io.SerialPort.read_line()
- bugfix: stimuli.shapes can now be used as background stimuli for io.TextInput
& io.TextMenu

Changed:
- several Android related changes (have no impact for normal use of Expyriment)
- overlapping methods of stimuli now work on absolute_position by default

0.6.4

--------------------------
New Features:
- log levels can be changed while running experiment via the method
Experiment.set_logging. Access current via Experiment.loglevel
- Modification the logging of individual objects while runtime. Most classes
have now the method set_logging(onoff), to switch on or off the logging.
- design.randomize.rand_element returns a random element from a list
- blocks and trails have the property 'factor_dict', which is a dictionary with
with all factors
- experimental Android support

Fixed:
- incorrect background colour for TextInput
- Font in TextScreen
- several fixed in documentation
- switching off logging via "expyriment.control.defaults.event_logging = 0" not
now working
- "numpy version bug" in data.preprocessing
- unicode bug for picture, audio and video filenames
- polling of parallel port
- io.TextMenu font was hardcoded

0.6.3

---------------------------
New Features:
- misc.geometry contains function to convert between pixel and degrees of
visual angle: position2visual_angle & visual_angle2position
- io.TextInput has now a position and can be plotted on a background stimulus
- misc.find_font
- misc.list_fonts

Fixed:
- Initializing experiments in the IDLE shell
- TextInput user_text_font and user_text_bold can now be changed
- bugs in font selection
- API reference tool should now also open when there are whitespaces in Python
executable path

Changed:
- renamed TextInput.user_colour --> user_text_colour
- FixCross.cross_size has been renamed to FixCross.size. FixCross.size is
now a tuple (int, int) and defines both dimensions (x, y) separately.
- Expyriment is checking also the version of all required packages and
dependencies
- all doc string are now in line with the numpy-doc conventions

Page 1 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.