Portion

Latest version: v2.4.2

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

Scan your dependencies

Page 3 of 6

2.1.0

Added
- `IntervalDict.as_dict()` to export its content to a classical Python `dict`.

Changed
- `IntervalDict.keys()`, `values()` and `items()` return view objects instead of lists.

Fixed
- `IntervalDict.popitem()` now returns a (key, value) pair instead of an `IntervalDict`.
- The documentation of `IntervalDict.pop()` now correctly states that the value (and not the key)
is returned.

2.0.2

Fixed
- Fix occasional `StopIteration` exception when checking for containment ([28](https://github.com/AlexandreDecan/portion/issues/28)).

2.0.1

Fixed
- Fix invalid representations of non-atomic intervals composed of a singleton ([22](https://github.com/AlexandreDecan/portion/issues/22)).

2.0.0

Added
- `i.empty` to check for interval emptiness.
- `i.atomic` to check for interval atomicity.
- An `adjacent` method to test whether two intervals are adjacent.
- `i.__getitem__` supports slices.
- Infinities define a hash value.
- Static method `Interval.from_atomic(left, lower, upper, right)` to create an interval composed of a single atomic interval (replaces `AtomicInterval(left, lower, upper, right)`).

Changed
- (breaking) `python-intervals` has been renamed `portion`.
- (breaking) Many (optional) parameters are converted to keyword-only arguments:
* for `from_string` and `to_string`: `bound`, `disj`, `sep`, `left_open`, `left_closed`, `right_open`, `right_closed`, `pinf` and `ninf`;
* for `from_data` and `to_data`: `pinf` and `ninf`;
* for `iterate`: `base` and `reverse`;
* for `Interval.replace`: `ignore_inf`.
- (breaking) `incr` is replaced by `step` in `iterate`.
- (breaking) For consistency with `range`, the `step` parameter in `iterate` is always added even if `reverse=True`.
- (breaking) `i.enclosure` is a property and no longer a method.
- (breaking) Indexing or iterating on the atomic intervals of an `Interval` returns `Interval` instances instead of `AtomicInterval` ones.
- (breaking) An interval is hashable if and only if its bounds are hashable.
- Huge performance increase for creation, union, intersection, complement and difference of intervals ([21](https://github.com/AlexandreDecan/portion/issues/21)).
- `CLOSED` and `OPEN` are members of the `Bound` enumeration.
- Large refactoring to encapsulate `AtomicInterval` and all its operations in `Interval`.
- Restructure package in modules instead of a flat file.
- Reorganise tests in modules and classes instead of a flat file.
- Reorganise changelog with explicit categories.

Removed
- (breaking) Drop support for Python 2.7 and 3.4 since they reached end-of-life.
- (breaking) `AtomicInterval` is a `namedtuple` and is no longer part of the public API.
- (breaking) Remove `i.to_atomic()` (use `i.enclosure` instead).
- (breaking) Remove `i.is_empty()` (use `i.empty` instead).
- (breaking) Remove `i.is_atomic()` (use `i.atomic` instead).
- (breaking) `CLOSED` and `OPEN` do no longer define an implicit Boolean value. Use `~` instead of `not` to invert a bound.
- (breaking) Remove deprecated `permissive` in `i.overlaps`.
- (breaking) Remove `adjacent` in `i.overlaps`, use `i.adjacent` method instead.

Fixed
- Fix an issue where an interval can be composed of duplicated empty intervals ([19](https://github.com/AlexandreDecan/portion/issues/19)).
- Fix performance issues when intervals composed of hundreds of atomic intervals are complemented ([20](https://github.com/AlexandreDecan/portion/issues/21))

1.10.0

Added
- `IntervalDict` has a `.combine` method to merge its keys and values with another `IntervalDict`.

1.9.0

Added
- Discrete iteration on the values of an interval with `iterate`.
- Map intervals to data with the dict-like `IntervalDict` structure.

Changed
- Faster comparisons between arbitrary values and intervals.
- Deprecate `permissive` in `.overlaps` in favour of `adjacent`.

Fixed
- `.union` when intervals share a bound, one inclusive and one exclusive ([12](https://github.com/AlexandreDecan/portion/issues/12)).
- `.overlaps` when intervals share a lower bound, and one interval is contained within the other one ([13](https://github.com/AlexandreDecan/portion/issues/13)).

Page 3 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.