Recent Releases of stimupy

stimupy - v1.2.0

v1.2.0 (2025-08-24)

Bug Fixes

  • edges deal with shape argument properly (7f03738)

  • Example stimuli in overviews don't throw warnings (5886950)

  • Fixed todo-equal and made more flexible; closes #134 (8405f33)

  • Improved rounding-function to prevent running out of memory (6db1c7b)

  • Updated todorovic equal for RHS2007 (6991194)

Build System

  • Add spellcheck to linting (6e4e39f)

  • Better declaration of development dependencies, and sync in GHA (ac5bb0c)

  • Bump required version python>=3.9 (94bf3e5)

  • Configure and address linting (dddc5e4)

  • Configure linting, and exceptions. (100752b)

  • Switch linting to Ruff (f7bb8f8)

  • Test for all Python versions >=3.9 (bb17076)

  • Update a GHA in versioning and releasing workflows (2e17452)

  • Update RTD dependencies sync (a5028d8)

  • Upgrade test GHA to use uv (be8ca28)

  • Upgrade required version jupyter-book (a719631)

Chores

  • Fix some spelling errors (8c1ebcd)

Code Style

Documentation

  • Fill in remaining params, for images (ad8c6ad)

  • Fix a few cross-references (8863481)

  • Fix RTD (8b439f0)

  • Move dynamic docs-related code into stimupy._docs (37dc5f1)

  • Organization in user guide, cross-embed in tutorial (0436639)

  • Revert to how-tos (be6a71c)

  • RTD has to generate images before building (d92526d)

  • Separate out Topic Guide on Masks, and How-To Compose (1675f67)

  • Stimspaces (842613d)

  • Structure config (ea405c0)

  • Try to avoid summary table of functions to link to subpages (8ec6c89)

  • Update docstring round_to_vals (9c3e844)

  • User guide (81a33ab)

  • Visual noise (9c2920f)

  • demos: Convert to use panel instead of ipywidgets (c000575)

  • demos: Enable pyodide (1a0a0e7)

  • demos: Extract params definitions (a5829e6)

  • demos: Landing index pages (14bcb90)

  • demos: Link to demos from API reference pages (6494887)

  • demos: Pyodide directives in demos (a2c4923)

  • demos: Split into individual function demos (4a3c208)

  • how-to: Color (6947af8)

  • howtos: Including finding stimulus (b46ab3b)

  • noises: Add RNG to docstring (577f060)

  • papers: Docstrings for betz2015 (9edcce2)

  • papers: Papers docs better describe how to get overviews, functions (8a20b9c)

  • qrcode: Bugfix (aed41b5)

  • reference: Add dependencies for interactivity (0e1daf6)

  • reference: Add galleries to module and package pages (9a0d3c2)

  • reference: Also document imported functions (ca2e736)

  • reference: Also generate paper images (4324e85)

  • reference: Functionality to display_stimulus (050aa43)

  • reference: If not a stimulus function, nothing in function page (3e1f158)

  • reference: Include images in function pages (b35776e)

  • reference: No galleries and individual function pages for util functions (b935900)

  • reference: Script to generate images from params (c65c23a)

  • reference: Short names for more convenient ToCs (078c7e8)

  • reference: Templates for API documentation pages (2d36216)

  • reference: Top-level entry page (d6d127f)

  • reference: Use sphinx-autoapi instead of autosummary to generate (b442baf)

  • stimuli: "$ python -m stimupy.stimuli" generates overview figure (cb4e4dd)

  • tutorial: Choose variation of stimulus (parametrization) (776f720)

  • tutorial: Create stimulus as bit more of tutorial (7d0b7be)

  • tutorial: Edit finding stimulus (98abfd2)

  • tutorial: Find stimulus (new page) (d99bae7)

  • tutorial: Move and edit page on organization (09e279f)

  • tutorial: Move composition to user guide (2c0a6f2)

  • tutorial: Reorganize installation, create stimulus (ef5d29a)

  • tutorial: Replicating existing stimuli (16b8693)

  • tutorial: Using stimulus (2c842e1)

  • User Guide: Galleries of lightness stims (c1aa114)

  • User Guide: Lightness and illusions stimuli groups (28e526b)

  • User Guide: Remove erroneous description in geometric illusions (1362b4d)

  • user guide: Stimulus groups (bd6fede)

  • user guide: Stimulus parametrization (0ea7fef)

  • utils: Docstrings for stimspace functions (9b929a7)

Features

  • Add mode to round_to_vals (910324a)

  • Faster solution for rounding to / finding nearest values (d329da6)

  • Stimuli set from Schmittwilken et al 2024, including data (0d924b4)

  • Util function to get number of None-args (51370c5)

  • Util function to turn single numbers into list (b6abd60)

  • noises: Noise functions accept random number generator (dfc128a)

  • papers: Stimuli set from Betz 2015, including data (a4c2b96)

  • plotting: Can specify ncols and/or nrows in plot_stimuli (8a01575)

Refactoring

  • Don't use match ... case syntax (b75c68c)

  • Rename new utils count_none_args and repeat_numeric_arg (5c12abc)

  • Replace all printing with logging (279bb23)

  • betz2015: More centralized creating of stimuli, masks (1ca4cdb)

  • papers: betz2015 takes in RNG to pass for noise generation (23d7c9b)

  • papers: betz2015 uses logger instead of print (deb9873)

  • papers: schmittwilken2024 uses logger, instead of print (0441f73)

Testing

  • Add test for round_to_vals with varying sizes (f3d3348)

  • Add tests for new stimulus set (dd4e290)

  • Check bounds for rounding (a8416ef)

  • Logging (1a0ba0d)

  • Make RNG based tests reproducible (0600b77)

  • Remove testing of papers.betz2015 for now (ea9eb98)

  • Remove testing of papers.schmittwilken2024 for now (5876388)

  • noises: Also pass RNGs (when necessary) in generating ground test truths (a27af4e)

  • noises: Test reproducibility of all noise textures (9999cf6)


Detailed Changes: v1.1.2...v1.2.0

Scientific Software - Peer-reviewed - Python
Published by JorisVincent 6 months ago

stimupy - v1.1.2

v1.1.2 (2024-04-23)

Chore

  • chore: misspellings CHANGELOG

fix current misspellings, but ignore changelog going forward since it is autogenerated from commit messages (95cf322)

Fix

  • fix: cornsweet edge intensity is now exactly as in intensity_edges; close #122 (cc701a3)

Unknown

  • Merge pull request #123 from computational-psychology/bugfixcornsweetedge

fix: cornsweet edge intensity is now exactly as in intensity_edges (9e8bbbb)

  • Merge pull request #125 from computational-psychology/chore

chore: linting (a93fff7)

Scientific Software - Peer-reviewed - Python
Published by JorisVincent almost 2 years ago

stimupy - v1.1.1

v1.1.1 (2024-02-09)

Build

  • build: configure codespell to fix misspellings

Requires python^3.11.0 to use pyproject.toml

Exclude everything in docs/_build, and the exact lines in .codespell.ignore

Also add to pre-commit checks (37bac3d)

  • build: only trigger publishing workflow once per release (44a303b)

Documentation

  • docs(periodics): fix Gabor argument intensities (533e1e2)

  • docs(tutorial): fix references to two_sided (19f59a9)

Fix

  • fix(checkerboards): define multiple target intensities

Previously, checkerboards could only draw a single target intensity, even if multiple targets are specified. For some stimuli however, I want to have two target checks, each with a different intensity value.

Use components.draw_regions to do the actual target drawing. Ensures consistency with other stimuli with targets. (ab525b3)

  • fix(checkerboards): define multiple target intensities

Use components.draw_regions to do the actual target drawing. Ensures consistency with other stimuli with targets (442bd29)

  • fix(RHS2007): WE_dual separate mask for each target

Previously, the targets in black were lumped together, as were the targets in white. Now, each target, in each of the two stimuli, has its own mask idx (0b78372)

  • fix(whites): enable specifying either 1, or multiple target indices

Some configuration was causing errors (ba552b9)

  • fix(text): remove text direction argument

Pillow is complaining about libraqm not being installed. Previously, it was not complaining about this. This problem seems to be limited to asking for a writing direction -- without that, Pillow no longer complains (6cceca6)

Style

  • style: use codespell to fix misspellings (de8efb4)

Test

  • test(RHS2007): regen ground truth

Only mask of WE_dual changed (6c76f2e)

Unknown

  • Merge pull request #121 from computational-psychology/dev

Bugfixes (da97ecf)

  • Merge branch 'main' into dev (1d4371a)

  • Merge pull request #120 from computational-psychology/build

Update build-system (d56e528)

  • Merge pull request #118 from computational-psychology/fix/whites_targets

fix(whites): enable specifying either 1, or multiple target indices (8ec7d6e)

  • Merge pull request #117 from computational-psychology/fix/RHS2007

Fix(RHS2007): Individually mask each target in WE_Dual (3cba67d)

  • Merge pull request #119 from computational-psychology/fix/text

fix(text): remove text direction argument (759f8e8)

Scientific Software - Peer-reviewed - Python
Published by JorisVincent about 2 years ago

stimupy - v1.1.0

v1.1.0 (2023-09-21)

Build

  • build: update PSR config (8659604)

  • build: update versioning to use python-semantic-release@v8.0 (e0cd11e)

  • build(manuscript): allow manual trigger (b46fdf8)

Chore

  • chore: autoformat (106dee7)

  • chore: autoformat (95ccba7)

  • chore(autoformat): update pre-commit config (47c408c)

  • chore: (auto)format (dea6b57)

Documentation

  • docs(demos): sbcs.generalized_two_sided() demo (7318280)

  • docs(demos): sbcs.square_two_sided, .circular_two_sided demos (e781cfb)

  • docs(sbcs): unify docstrings (60d3c80)

  • docs(frames): docstrings (5d83551)

  • docs(radials): docstrings (fd79e0b)

  • docs(demos): update two_sided demos (c2beace)

  • docs(demos): bullseyes.circular_generalized (25669ca)

  • docs(demos): rings.circular_generalized (a19a1c4)

  • docs(demos): fix White's demo (37b70c3)

  • docs(demos): text demo (ef686f3)

  • docs(demos): add support for two-sided parameter specification (aec4043)

  • docs(citation): add to TOC (c2a9574)

  • docs(citation): reformat (e940428)

  • docs: added citation to readme and docs (6279322)

  • docs(manuscript): "use case" as two words (c3d999c)

  • docs: final touchup on manuscript (d3c04ef)

  • docs(manuscript): update references (f57ec56)

  • docs: final touch-up on manuscript (2f37a9d)

  • docs: changed manuscript title (18d95fb)

  • docs: made editorial changes to manuscript (856c8a9)

Feature

  • feat(sbcs): sbcs.generalized_two_sided() (dbfbab1)

  • feat(sbcs.gen): enable rotation in generlized SBC

Closes #39 (bfe946b)

  • feat(sbcs): _two_sided versions of all sbcs. (7bac6a1)

  • feat(sbcs): sbcs.circular, .square

Pass-through wrappers based off bullseyes.<> (0ff0213)

  • feat(two-sided): utility wrapper-function to create two-sided stimuli (624bf50)

  • feat(stimuli): bullseyes.circular_generalized (8b9ad10)

  • feat(stimuli): rings.circular_generalized (7e0cf7c)

  • feat: components.texts (88d5ffc)

Fix

  • fix(disk): mask is now properly aligned

Fix by basing disk on rings rather than on ring (911cbd6)

  • fix: rename _masks

Add a distance-specific mask (bar_, ring_, frame_, segment_). These are similarly named in the "generalized" versions of these stimuli (frames, rings, etc.). This is just a reference to grating_mask, so that will remain consistent between all wave-like stimuli.

Closes #102 (2cc9222)

  • fix(bullseyes): update bullseye target specification

Now that indexing is 1-based. (92c9e1b)

  • fix(paddict): should also update ppd, visualsize, if it can (dab5bf5)

  • fix(RHS2007): correct targets in Todorovic' Benary 12, 34

Closes #90

123_4() was already correct. Others now use that one as base (520c659)

Refactor

  • refactor(papers): use sbcs.<>_two_sided() in papers

domijan2015.simultaneous_brightness_contrast() RHS2007.sbc_small() RHS2007.sbc_large() (3ee13ed)

  • refactor(radials): more integrated drawing (afcdc3e)

  • refactor(gratings,papers): update intensities order (1ab048a)

  • refactor: unify intensity_ arguments

(almost) all (0.0, 1.0)

Closes #80 (a00295f)

  • refactor(waves): pass intensities through

Addresses #80 (44d7f79)

  • refactor(modelfest): more explicit conversions (be4b53d)

  • refactor(stimuli): use two-sided utility wrapper (8ac1717)

  • refactor(papers): update to use 1-based indexing of elements in Whites (e1c3101)

  • refactor(papers): update to use 1-based indexing of elements (bd90b8e)

  • refactor(whites): use mask_targets() (1e04f07)

  • refactor(waves): integrate place_targets() (daf6acd)

  • refactor: target_indices defaults to (), but can handle None

Closes #97 #98 (9e8d136)

  • refactor(rings): use place_targets() in rings_generalized() (2da1b65)

  • refactor(pinwheels): integrate mask_targets() (c748706)

  • refactor(stimuli): place_targets()

actually places targets in stimulus-dict (fff6f14)

  • refactor(stimuli): mask_targets()

to standardize logic of indicating elements of gratings etc. as targets, which is a big par of the stimuli Also allows for negative element indices, counting backwards from the highest element index

Closes #12 (9232891)

  • refactor(export): guard clauses, pathlib (e59fc51)

Style

  • style: autoformat pyproject.toml (b153d5e)

  • style: autoformat (962a332)

Test

  • test: update ground truth

single pixel changes in RHS2007WEradial_* (f4e4d48)

  • test(modelfest): update Disk40()and its groundtruth

Slightly decrease radius. This is actually results in an image that is exactly identical as the original published disk40.tif image (unlike previous ground truth, which was 4pix off) (30c9738)

  • test(modelfest): isolate code to test correspondence to original images (4c44c88)

  • test: extract function for image comparison (813e3a2)

  • test: fix gengroundtruth (5ad8cb3)

Unknown

  • Merge pull request #114 from computational-psychology/build_psr

Build: update python-semantic-release configuration (e281e9a)

  • Merge pull request #108 from computational-psychology/dev

New features, refactoring, and fixes (3788170)

  • Merge pull request #107 from computational-psychology/featsbcscircular

Add more sbcs.. sbcs.square() and sbcs.circular(), parameterized using target_radius and surround_radius, based on bullseyes.square() and .circular(). Adds some _two_sided() versions as well, which are now used in some papers. Also enable rotation arg in sbcs.generalized(). (d1510e9)

  • docs(demos):sbcs.circular, .square demos (81b5528)

  • Merge pull request #106 from computational-psychology/refactortwosided

Easier _two_sided-stimuli functions (7ba0bee)

  • Merge branch 'dev' into refactortwosided (db94838)

  • Merge pull request #103 from computational-psychology/refactor_intensities

Unify intensity_arguments (4ff38d5)

  • Merge pull request #104 from computational-psychology/test_modelfest

Refactor ModelFest comparison to original images (4218dc3)

  • Merge pull request #101 from computational-psychology/refactor_targets

Refactor target placement in various stimuli.

Add mask_targets() and place_targets() general-purpose functions which can be used to designate target "elements" (bars, rings, frames, etc.) from an existing _mask.

Integrate new functions into waves, pinwheels, rings and whites

Add rings.circular_generalized() and bullseye.circular_generalized() using new functions

This single-implementation of target placement has the advantage that it all works the same: first element is 1, target_indices can be negative (counting "backwards" from the last bar/ring/etc.). (885ec6c)

  • Merge pull request #100 from computational-psychology/build_refresh

build: update versioning to use python-semantic-release@v8.0 (16a3496)

  • Merge pull request #96 from computational-psychology/fixtwosidedparams

fix: two-sided params for _two_sided-stimuli (1188af5)

  • Merge pull request #95 from computational-psychology/feat_text

feat: text (e0effc0)

  • Merge pull request #94 from computational-psychology/fixRHS2007TodorovicBenary

fix(RHS2007): correct targets in todorovic_benary_1_2(), 3_4() (00af7d2)

Closes #92 (5569a12)

  • Rings & Bullseyes (23fc041)

  • Mueller-Lyer (6b01cce)

  • DelBoueufs (587aed5)

  • Update tests (fbd1dc4)

  • Merge pull request #91 from computational-psychology/dev_citation

docs: added citation to readme and docs (316ded8)

  • Merge pull request #89 from computational-psychology/dev_manuscript

docs: final touchup on manuscript (ca8bf43)

  • Merge pull request #88 from computational-psychology/dev_manuscript

docs: final touch-up on manuscript (f756c54)

  • Merge pull request #87 from computational-psychology/dev_manuscript

Final editorial (& title) changes to manuscript (b4bb148)

Scientific Software - Peer-reviewed - Python
Published by JorisVincent over 2 years ago

stimupy - v1.0.0

Fix

Breaking

Documentation

  • README: Add badges (e8f54f9)
  • Update installation instructions to use PyPI (4c3c492)

Scientific Software - Peer-reviewed - Python
Published by JorisVincent almost 3 years ago

stimupy - v0.101.1

Fix

  • Added relevant error message in todorovic (0cb7f88)
  • Aligned functions args and output_dictionary keys for stimuli-gratings (fba7785)
  • Aligned function args and output_dict keys (6981318)

Documentation

  • manuscript: Add comparison to OCTA (551f80d)
  • Added missing arg-information to logo-function (73e5a27)
  • Minor fix landing page (fc8deb4)
  • Add logo (1fce581)

Scientific Software - Peer-reviewed - Python
Published by JorisVincent almost 3 years ago

stimupy - v0.101.0

Feature

  • Qr-code with logo embedded (a14648e)
  • Added stimupy logo module, and function (0b5b028)
  • export: To image, npy, mat, pickle, json (3c09c5a)
  • Util to create stimspace (1679eb5)

Fix

  • Line_width in ellipse (10b7745)
  • Added missing demo scripts for edges (4c30a3b)
  • Corrected n_cells in dungeon-resolving (cd0fc0c)
  • Aligned functions args and keys in outputs dicts (107edb4)
  • Aligned functions args and keys in output dicts (a3941e7)
  • Aligned function-args and keys in output dicts (8ab889a)
  • Radial and rectilinear waves now correctly resolve n_phases (ecce0b9)
  • mondrians: Clearer error when neither nrows, ncols, depths or intensities are specified (f9a5a4d)
  • Bug in calculating plot-extent from stim-keys (240a34a)

Documentation

  • Add logo to README (4dfabb0)
  • Typos (ce4683d)
  • Fixed incorrect link in README (c2e6575)
  • Updated documentation - mostly language (d8f4211)
  • guide: Axes, orientations, distance_metrics (7bc02ec)
  • guides: Waves & gratings (4d5b507)
  • howto: Sharing (4c950d2)
  • contribute: Instructions and examples for contributing paper set (17ff040)
  • contribute: Split up contributing guide into subfiles (2cc2cb0)
  • howto: Display stimuli (in experiment) (a733b07)
  • howto: Export (e647773)
  • howtos: Start how-tos (8cd970a)
  • guides: Resolution (ace6493)
  • Hover_xref configuration for objects (c28b7be)
  • demos: Better exception-handling, hiding stacktrace (ae98e04)
  • demos: Make dependencies explicit (c3b0a0e)
  • readme: Fix some typos (6983f90)

Scientific Software - Peer-reviewed - Python
Published by JorisVincent almost 3 years ago

stimupy - v0.100.0

Feature

  • rectilinear: Add rotation to rectilinear stimuli (0670d6b)

Documentation

  • Outline dependencies for demos in installation instructions (f6a3d98)
  • topic guides: Hide guides that are under construction (8a1146f)
  • Cleanup installation instructions (3d49f53)
  • Update references in replication tutorial (2325ce3)
  • tutorial: More structured overview of stimuli (722a977)
  • Better referencing, using hoverxref (5a41f0f)
  • tutorial: More detail on composition, masks (9be4db0)
  • tutorial: Clean up imports (11053b3)
  • tutorial: Fix a reference (506274e)
  • topics: Add page on how stimupy is organized (0cd3934)
  • tutorial: Move tutorial to separate TOC entry (cd3af04)
  • tutorial: More verbose tutorial component (31c4ae6)
  • tutorial: Move composition to separate tutorial page (939082a)
  • landing page: Use description from README, more detailed cards (530dbc0)
  • README streamlined, in line with manuscript (ad8445d)
  • Detail on dev installation instructions (506ebf6)
  • More detailed contributing instructions (97dfa31)
  • Get in touch (in addition to contribute) (c42cccc)
  • rectilinear: Demo rotation of rectilinear stimuli (2bd7b98)
  • Consistent docstrings & defaults for rotation arguments (b441a34)
  • Docstring for combine_masks (c1aa531)
  • Docstring for draw_regions (2d2cad2)
  • Docstring for mask_regions (725eaf0)

Scientific Software - Peer-reviewed - Python
Published by JorisVincent almost 3 years ago