aur/Changelog
2026-03-11 15:58:03 -04:00

70 lines
3.5 KiB
Text

-------------------------------------------------------
Changelog : py-cidr
Tags : 3.9.0 ➙ 3.13.0
: 2025-08-31 ➙ 2026-03-11
: 6 tags. See Docs for full changelog
-------------------------------------------------------
2026-03-11 : 3.13.0
- **3.13.0**
* Lots of pretty big code re-org and changes.
* Biggest change is in CidrMap:
- New methods:
- Significant Changes to CidrMap.
The API has changed somewhat. As usual we have kept backward compatibility for the previous API.
- New dependency on python-pytricia which provides a python module of a C-code version of patricia trie.
I have made this package available in the AUR _ as it is not available in standard
Arch repos.
- lookup_lmp() replaces lookup() and returns a tuple(prefix, value) where prefix is
the longest matching prefix
- lookup_all() returns list of all (preifx, value) tuples, where the first item in the list
is the LMP.
- add_prefix_val() takes a tuple[prefix, val] and replaces add_cidr(prefix, val).
- add_prefix_vals() takes a list of (prefix, val) tuples and replaces the add_cidrs()
which takes list of prefixes and a list of values.
- New CIDR map argument type compact: CidrMap(compact=False). Note this defaults to
False. When no compacting is done, then every (prefix, val) is kept.
When set to True, then the map is kept as compact as possible when adding new (prefix, val)
pairs.
For example, take a compact map that has ('10.0.0.0/22', 'net-A'). If one tries to add
(('10.0.0.0/24', 'net-A') it will be ignored since the existing map covers it.
A non-compact map would add the new item.
If one tries instead to add ((('10.0.0.0/24', 'xxx'), then it is added for compact as well,
since the *value* is different, even though the prefix is a subnet of existing item.
Compacting must also check if any children of a newly added prefix are still needed.
2026-02-21 ⋯
- update Docs/Changelogs
2026-02-21 : 3.12.0
- **3.12.0**
* CidrMap : New .items() method provides an Iterator over the map.
Each iteration yields a tuple[cidr: str, value: Any]
* Add net_range_split/cidr_range_split:
split one net/cidr into (first, mid, last) ip addresses
2026-01-04 ⋯
- update Docs/Changelogs
2026-01-04 : 3.11.0
- **3.11.0**
* Code Reorg
* Switch packaging from hatch to uv
* Testing to confirm all working on python 3.14.2
* License GPL-2.0-or-later
2025-09-01 : 3.10.0
- update Docs/Changelogs Docs/_build/html Docs/py-cidr.pdf
- Cidr.compact(): with mixed ipv4/ipv6 - allow host bits in cidrs
2025-08-31 ⋯
- update Docs/Changelogs Docs/_build/html Docs/py-cidr.pdf
2025-08-31 : 3.9.0
- compact(cidrs) can now handle mixed ipv4/ipv6
2025-07-17 ⋯
- update Docs/Changelogs Docs/_build/html Docs/py-cidr.pdf