From 55c71c6eb21c21a84af3f8aa8eb8a7a57d6844c3 Mon Sep 17 00:00:00 2001 From: Pavel Patsey Date: Fri, 24 Jan 2025 11:35:03 +0300 Subject: [PATCH] use functions from util --- vpn_manager/cidr4_merge/cidr4_merger.py | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/vpn_manager/cidr4_merge/cidr4_merger.py b/vpn_manager/cidr4_merge/cidr4_merger.py index 9a80ccb..286438c 100644 --- a/vpn_manager/cidr4_merge/cidr4_merger.py +++ b/vpn_manager/cidr4_merge/cidr4_merger.py @@ -1,5 +1,7 @@ import cProfile +from .util import cidr4_to_node, get_data, make_cidr4 + Node = tuple[int, int] @@ -7,20 +9,6 @@ class Cidr4MergerError(Exception): pass -def get_data(input_file): - with open(input_file, "r") as file: - data = file.read().splitlines() - return data - - -def cidr4_to_node(cidr4: str) -> Node: - ip_address, mask_len = cidr4.strip().split("/") - a, b, c, d = list(map(int, ip_address.split("."))) - ip = a * 256**3 + b * 256**2 + c * 256**1 + d * 256**0 - mask_len = int(mask_len) - return ip, mask_len - - def sort_nodes(nodes: list[Node]) -> list[Node]: return sorted(nodes) @@ -64,12 +52,6 @@ def merge_two_nodes(node_a: Node, node_b: Node) -> tuple[Node, int]: return parent_node, dip -def make_cidr4(ip, mask_len) -> str: - lst = [str(ip >> (i << 3) & 0xFF) for i in reversed(range(4))] - ip_address = ".".join(lst) - return f"{ip_address}/{mask_len}" - - def merge_nodes(nodes: list[Node], required_len: int) -> tuple[list[Node], int]: sum_dip = 0 while len(nodes) > required_len: