Pelutils

Latest version: v3.4.1

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

Scan your dependencies

Page 1 of 8

3.4.0

- Made `UnitTestCollection` use `tempfile` for better management of temporary directories.
- Improved type hinting in some places.
- Improved and expanded documentation.
- Cleaned up `linecounter` and removed `click` as a dependency.
- Made the whole library linter compliant and thus code style more uniform.

3.3.0

- Began stricter adherence
- Improved error message for unparsable type in config files

3.2.0

- Deprecated `TickTock.__len__`
- Deprecated `thousands_separators` due to better built-in syntax
- Added support for `pathlib.Path` instead of solely using string paths
- Added `torch` support to `unique` function
- Added rotation support to logger
- Fixed keyboard interrupts not killing profiles

3.1.0

- Removed final newline from Logger.log_repo and added option to set level
- Deprecated `Profile.hits` to instead only save aggregated statistics to prevent potential memory issues
- Deprecated `TickTock.measurements_by_profile_name` in favour of `TickTock.stats_by_profile_name`

3.0.1

- Add ruff linting
- Fixed hashing of TickTock profiles, removing the chance of potential hash collisions
- Added `TickTock.measurements_by_profile_name` which exposes measurements from a given profile

3.0.0

- Minimum Python version is now 3.9
- Strip all logged lines of extra whitespace
- Align logged lines with four space indents
- Do not automatically create subplots figure and axis in Figure
- Changed default axis timestamp labels to be more readable
- Support lists in moving average functions
- Changed DataStorage to have default name based on class name
- Non json-serializable data in DataStorage instances are now saved to a single pickle file
- Prevent NameError being raised if an exception was raised inside nested profiling without the use of `with TT.profile`
- Added `string` method to `HardwareInfo` for easy formatting
- Removed `no_grad` decorator, as this was already implemented in PyTorch
- Updated `JobDescription` to only include relevant and nonprivate attributes
- Renamed development distribution from `tests` to `dev`
- Added `tensor_bytesize` function to get the size of NumPy arrays and PyTorch tensors in bytes
- Added optional ID to `TickTock.tick` and `TickTock.tock` methods for multiple concurrent timings
- Added option to print the stacktrace with `log.log_with_stacktrace`
- Allowed setting `--name` with `Parser` even when `multiple_jobs` is `True`
- Exposed method for writing or appending configuration file to existing job folder
- Removed `[ds]` submodule as an install option -- PyTorch now has to be installed separately if the relevant features are needed
- `HardwareInfo` now supports multiple GPUs
- Removed `click` as a dependency
- Improved default table entry alignment
- Improved default `Figure` parameters
- Added option to set label size in `Figure`
- `name` no longer reserves `-n` abbreviation
- Renamed `c_ptr` to the more sensible `array_ptr`
- Changed parser submodule default values and error handling
- Added option to only parse a subset of sections in a config file
- Removed standard deviation calculation from profiles, as it was kind of pointless

Bug fixes

- Fixed missing `__init__.py` in `_entry_points` module
- Fixed incorrect whitespace when printing multiline logs
- Fixed wrong type annotation in `log.configure`
- Fixed wrong return type in `exp_moving_avg`
- Appending now works with `jsonl`
- Fixed wrong type annotation in `Figure`'s `figsize` argument
- `array_ptr` (formerly `c_ptr`) now works for CUDA tensors
- Fixed `Parser` allowing `Argument` without given values when not using a config file

Page 1 of 8

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.