Portion

Latest version: v2.4.2

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

Scan your dependencies

Page 1 of 6

2.4.2

Fixed
- Import error when using `create_api` in Python 3.10+ (see [87](https://github.com/AlexandreDecan/portion/issues/85)).

2.4.1

Fixed
- Import error when using `create_api` outside a REPL (see [85](https://github.com/AlexandreDecan/portion/issues/85)).

2.4.0

Added
- An `AbstractDiscreteInterval` class to ease the creation of specialized discrete intervals (experimental).
- A `create_api` function to generate an API similar to the one of `portion` but configured to use a given subclass of `Interval` (experimental, see [Specialize & customize intervals](https://github.com/AlexandreDecan/portion#specialize--customize-intervals)).

Changed
- Speed up `repr` and `to_string` for `Interval` instances (see [76](https://github.com/AlexandreDecan/portion/issues/76), adm271828).
- Some internal changes to ease subclassing:
* `from_string` and `from_data` accepts a `klass` parameter to specify which class should be used to create `Interval` instances (default is `Interval`).
* Add a `klass` parameter for `open`, `closed`, `openclosed`, `closedopen`, `singleton` and `empty` (default is `Interval`).
* Add a `_klass` class attribute in `IntervalDict` to specify how to create `Interval` instances (default is `Interval`).
* `IntervalDict` uses `self.__class__` to preserve subclasses when creating new instances.

2.3.1

Changed
- Speed up lookups in `IntervalDict` for non-interval keys.
- Speed up `iterate` by no longer creating singleton instances under the hood.
- Drop official support for Python 3.6.

Fixed
- Infinite recursion when a subclass of an `Interval` is compared using `>` with an `Interval` instance (see [75](https://github.com/AlexandreDecan/portion/issues/75)).

2.3.0

Added
- Support for Python 3.10.
- `IntervalDict.as_dict` has an optional `atomic=False` parameter that, if set to `True`, returns intervals that are atomic.
- Experimental support for structural pattern matching (on `left`, `lower`, `upper` and `right`).

Fixed
- (breaking) Set `list(P.empty()) == []`, i.e., the empty interval is a disjunction of no interval (see [72](https://github.com/AlexandreDecan/portion/issues/72)).
- (breaking) For consistency, the empty interval is never `<`, `>`, `<=`, nor `>=` when compared to another interval.
- Comparing an interval and a value is deprecated since it is ill-defined when the value is on the left of `<=` or `>=`. Convert values to singletons first.

2.2.0

Added
- Support [PEP 517](https://www.python.org/dev/peps/pep-0517).

Changed
- Some internal changes to ease subclassing `Interval`(see [58](https://github.com/AlexandreDecan/portion/issues/58)):
* Use `self.__class__` instead of `Interval` to create new instances;
* Deprecate and move `mergeable` function to `Interval._mergeable` class method;
* `Interval.from_atomic` is now a class method instead of a static method.
- Speed up lookups in `IntervalDict` ([65](https://github.com/AlexandreDecan/portion/issues/65), Jeff Trull).
- Speed up removals in `IntervalDict`.
- Speed up intersection for non-overlapping intervals ([66](https://github.com/AlexandreDecan/portion/issues/66), Jeff Trull).
- Speed up `.overlaps` and `.contains` for non-overlapping intervals/items.

Page 1 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.