Skip to content

Releases: aeye-lab/pymovements

pymovements v0.18.0

28 Mar 17:24
df217c6
Compare
Choose a tag to compare

💥 Breaking Changes

  • correct pixel origin string to upper left instead of lower left (#710)
  • enforce list of strings for GazeDataFrame.trial_columns attribute (#669)
  • add time column if missing during gaze initialization (#654)
  • rename GazeDataFrame.copy() to clone() (#657)

✨ Enhancements

  • introduce measure_samples(), MeasureLibrary and null_ratio (#673)
  • add clip transformation (#700)
  • timestamp unit specification (#643)
  • parse eyelink metadata (#702)
  • add text stimulus class (#676)
  • add deg2pix transformation (#699)
  • parse eyelink metadata (#674)
  • add EyeTracker class (#617)
  • trialize gaze.detect() (#655)
  • add EventDataFrame.add_trial_column() (#671)
  • add trial_columns to EventDataFrame (#670)
  • enforce list of strings for GazeDataFrame.trial_columns attribute (#669)
  • add time column if missing during gaze initialization (#654)
  • add trial_columns to from_numpy() and from_pandas() (#651)
  • rename GazeDataFrame.copy() to clone() (#657)

🐞 Bug Fixes

  • forward experiment from dataset definition to from_asc (#711)
  • correct pixel origin string to upper left instead of lower left (#710)
  • update checksum of PoTeC resource file (#691)
  • don't fail in event fill if event onsets/offsets not within timesteps (#656)

🛠️ Maintenance

  • use gaze.io for loading dataset files (#698)
  • disable too-many-instance-attributes in pylint (#709)
  • use smaller subset in 10 minutes tutorial (#707)
  • add 'Integration and IO' rubric to api reference docs (#630)
  • update contributing.md for new tox command (#684)
  • update licenses to 2024 (#659)
  • workaround ci failure by pinning nbconvert<7.14 (#652)
  • include teaser in readme (#639)
  • add support for python 3.12 (#660)
  • update github action versions (#685)
  • improve tox integration command (#693)
  • remove macOS documentation test builder from CI (#697)
  • add typing_extensions to be able to install pymovements from source (#682)
  • improve exception messages in GazeDataFrame.transform() (#661)
  • update pyopenssl requirement from <24.0.0,>=16.0.0 to >=16.0.0,<25.0.0 (#668)
  • update pyarrow requirement from <15,>=11.0.0 to >=11.0.0,<16 (#665)
  • remove default stages entry from pre-commit config (#658)
  • update pydocstyle ignores (#650)
  • update polars requirement from <0.20.2,>=0.20.1 to >=0.20.1,<0.20.3 (#646)
  • update polars requirement from <0.19.20,>=0.19.19 to >=0.20.1,<0.20.2 (#644)
  • fix expected values in parsing (#645)
  • update polars requirement from <0.19.16,>=0.19.14 to >=0.19.19,<0.19.20 (#641)

👷👷‍♀️👷‍♂️ Contributors

Shoutout to all our contributors for making this release possible!
@OmerShubi, @SiQube, @dependabot, @dkrako, @jakobchwastek, @josephine-funken, @prassepaul and @theDebbister

pymovements v0.17.3

08 Dec 13:32
a9edc9d
Compare
Choose a tag to compare

✨ Enhancements

  • add PoTeC dataset (#636)

🛠️ Maintenance

  • add pydoclint to pre-commit (#638)
  • add missing column argument docs and note on csv column dtypes (#594)
  • ignore bot commits in changelog (#633)
  • update polars requirement from <0.19.14,>=0.19.12 to >=0.19.14,<0.19.16 (#628)
  • raise minor version on breaking changes only (#624)
  • don't fail pytest on incomplete coverage (#625)
  • avoid invocation error in integration test (#627)
  • add construction worker emojis to release draft (#632)

👷👷‍♀️👷‍♂️ Contributors

Shoutout to all our contributors for making this release possible!
@SiQube, @dkrako, @jakobchwastek and @prassepaul

pymovements v0.17.2

17 Nov 13:13
2560601
Compare
Choose a tag to compare

✨ Enhancements

  • Add gaze.from_asc() (#590)
  • add new dataset GazeGraph (#619)
  • gaze_dataframe.unnest() supports multi-col unnest (#592)
  • optionally remove single-child top-level directory from extracted archives (#579)

🐞 Bug Fixes

  • avoid SchemaFieldNotFoundError when loading preprocessed data (#614)

🛠️ Maintenance

  • update polars requirement from <0.19.13 to <0.19.14 (#622)
  • test for warning when distance column and distance_cm specified (#615)
  • use minor version for polars upper version bound (#621)
  • update pyarrow requirement from <14 to <15 (#620)
  • migrate deprecated polars funtions (#612)
  • add git alias hint for creating new branches (#608)
  • migrate to polars v0.19.12 (#618)

👷👷‍♀️👷‍♂️ Contributors

Shoutout to @josephine-funken for making their first contributions in #579 and #612

@dkrako, @jakobchwastek, @josephine-funken, @prassepaul, @SiQube, and @theDebbister

Full Changelog: v0.17.1...v0.17.2

v0.17.1

17 Nov 10:54
417a305
Compare
Choose a tag to compare

✨ Enhancements

🐞 Bug Fixes

  • correct hash in sb-sat definition (#606)
  • specify column dtypes in dataset definitions (#593)
  • specify schema for ToyDatasetEyeLink (#601)

🛠️ Maintenance

  • treat warnings as errors (#602)
  • add publish github workflow (#604)
  • don't setup python twice in github workflow (#605)
  • test for minimum version of dependencies (#599)
  • add github workflow for autolabeler (#603)
  • add integration tests for public datasets (#591)
  • create release-drafter.yml (#598)

Shoutout to all our contributors for making this release possible!
@dkrako @prassepaul

Full Changelog: v0.17.0...v0.17.1

v0.17.0

06 Oct 14:30
4850142
Compare
Choose a tag to compare

✨ Enhancements

  • Add time_column argument to gaze.integration functions #497
  • Add kwargs for explicit data passing in gaze.from_numpy() #513
  • Raise helpful missing column error message for transforms #542
  • Add EventDataFrame.copy() #552
  • Add events to GazeDataFrame init #553
  • Add events to gaze.integration functions #554
  • Add GazeDataFrame.detect() #511
  • Add gaze.from_csv() #557
  • Add GazeDataFrame.apply() #558
  • Add public dataset GazeOnFaces #567
  • Add gaze.from_ipc() #568
  • Add dataset sbsat #575
  • Add HBN dataset #576
  • Add gaze.transforms.smooth() #555
  • Add Dataset.apply() #490
  • Load .txt files as .csv files #584
  • Variable eye to screen distance #583

🐞 Bug fixes

  • Infer correct number of components in gaze init #521

🛠️ Other improvements

  • Update GazeDataFrame Docstring to Include Missing trial_columns Argument #494
  • Add latex formulas to event property docstrings #491
  • Upload documentation artifacts for PRs #498
  • Add pydocstyle to pre-commit hooks #505
  • Decrease pytest verbosity #515
  • Update CONTRIBUTING.md #544
  • Migrate to polars v0.19 #545
  • Integrate dependabot to check for dependency updates #546
  • update pyarrow requirement from <12,>=11.0.0 to >=11.0.0,<14 #547
  • don't include scope in dependabot commits #549
  • add pip installation of pylint to CONTRIBUTING.md #556
  • remove unused pre-commit env from tox.ini #564
  • pre-commit autoupdate #566
  • Migrate typing to matplotlib v3.8.0 #563
  • Test resulting filestructure for utils.archives.extract() #570
  • pre-commit autoupdate #578
  • update CONTRIBUTING.md about possible pandoc installation #574
  • drop support for python 3.8 #572
  • update matplotlib requirement from <3.8,>=3.0.0 to >=3.0.0,<3.9 #577
  • remove mypy ignore imports for matplotlib #565
  • Add test example files for each public dataset #581
  • pre-commit autoupdate #582
  • Reuse dataset definitions in from_csv tests #586
  • Add functional tests for preprocessing gaze files #585
  • Remove mypy and flake8 from tox and github actions #587
  • Refactor GitHub workflows #588
  • Refactor tests into unit and functional #589

Contributors

Shoutout to all our contributors for making this release possible!
@dkrako @jakobchwastek @prassepaul @SiQube

New Contributors

Full Changelog: v0.16.1...v0.17.0

v0.16.1

01 Sep 13:06
47e29b7
Compare
Choose a tag to compare

✨ Enhancements

  • Allow for empty lists in gaze component initializers in #484
  • Add suffixes argument to GazeDataFrame.unnest() in #479
  • Add GazeDataFrame.copy() in #485

🐞 Bug fixes

  • Get rid of unnest side effect during GazeDataFrame.save() in #486
  • Fix broken load method in #489

🛠️ Other improvements

  • Remove unused event detection args in #462

Contributors

Shoutout to all our contributors for making this release possible!
@dkrako @jakobchwastek @SiQube @theDebbister

Full Changelog: v0.16.0...v0.16.1

v0.16.0

18 Aug 14:00
7c38f5c
Compare
Choose a tag to compare

We are proud to announce pymovements v0.16.0!

This release introduces breaking changes regarding the way a GazeDataFrame handles components. So far each component (e.g. x-coordinate of the gaze pixel position) was treated as a specific column, which lead to very verbose code on both user and development side. We now nest components of a specific signal into a single column (e.g, pixel for gaze pixel position, position for gaze position in degrees of visual angle, velocity for gaze velocity, and so on).

This way we simplify column management a lot, integrate polars deeper for improved performance and pave the way for a general method to apply pipeline definitions. Users are still able to unnest these columns again to facilitate existing workflows. Please refer to the updated tutorials, especially pymovements in 10 minutes and Working with local datasets for further details on the introduced changes.

⚠️ Breaking changes

  • Drop support for python 3.7 by @SiQube in #460
  • Integrate column specifications to Dataset by @dkrako in #443
  • Add GazeDataFrame.transform() by @dkrako in #440
  • Rename methods merge/explode to nest/unnest by @dkrako in #465
  • Restructure transforms modules for polars and numpy by @dkrako in #466
  • Use transform() in pix2deg(), pos2vel() and pos2acc() by @dkrako in #472
  • Restructure events module directory by @dkrako in #477

✨ Enhancements

  • Add merging component columns into tuple columns by @dkrako in #434
  • Add GazeDataFrame to top-level imports by @dkrako in #435
  • Refactor from_numpy and from_pandas into integration by @dkrako in #436
  • Raise RuntimeError in compute_event_properties() if name not found by @dkrako in #438
  • Add explode() method to GazeDataFrame by @dkrako in #441
  • Add column merge arguments to integration functions by @dkrako in #444
  • Add styling arguments to main sequence plot by @theDebbister in #458

🐞 Bug fixes

  • Don't print about trying next mirror if there are no more mirrors by @siqube-adobe in #471

🛠️ Other improvements

Contributors

Thank you to all our contributors for making this release possible!
@dkrako @siqube-adobe @SiQube @theDebbister

Full Changelog: v0.15.0...v0.16.0

v0.15.0

01 Jun 10:01
a1feb63
Compare
Choose a tag to compare

✨ Enhancements

  • Add aliases detect() and compute_properties() by @dkrako in #433

Full Changelog: v0.14.0...v0.15.0

v0.14.0

30 May 14:27
79ec59c
Compare
Choose a tag to compare

✨ Enhancements

  • Add pos2acc() method by @dkrako in #424
  • Add support for passing keyword arguments to event processors by @dkrako in #426
  • Add fill event detection method by @dkrako in #428
  • Compute event properties for specified names only by @dkrako in #427
  • Allow range-objects for subset argument by @dkrako in #429

🐞 Bug fixes

  • Maintain frame-order when calculating properties by @dkrako in #425

⚒️ Other improvements

  • Add upper boundaries to package versions by @dkrako in #432

Full Changelog: v0.13.0...v0.14.0

v0.13.0

26 May 10:05
2afecda
Compare
Choose a tag to compare

✨ Enhancements

⚒️ Other improvements

  • Rename position property to location by @dkrako in #423
  • Refactor gaze event processing for input tuples by @dkrako in #422
  • Consistent positional column naming in dataset_set by @dkrako in #420

Full Changelog: v0.12.0...v0.13.0