From 0d0f6ecfca66b1c4bcf32f4e096144d23433f9e2 Mon Sep 17 00:00:00 2001 From: mckay Date: Mon, 21 Apr 2025 13:35:45 +0800 Subject: [PATCH] =?UTF-8?q?ruff=20=E6=B8=85=E7=90=86=E5=8C=85=E5=AF=BC?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- brep2sdf/data/data.py | 3 --- brep2sdf/data/pre_process.py | 7 +----- brep2sdf/data/pre_process_by_mesh.py | 16 +++---------- brep2sdf/data/sampler.py | 29 ++++-------------------- brep2sdf/data/utils.py | 5 ++-- brep2sdf/deep_sdf/workspace.py | 4 ++-- brep2sdf/evaluation.py | 4 ---- brep2sdf/networks/decoder.py | 4 ---- brep2sdf/networks/encoder.py | 6 ----- brep2sdf/networks/feature_volume.py | 1 - brep2sdf/networks/loss.py | 3 --- brep2sdf/networks/network.py | 1 - brep2sdf/networks/octree.py | 4 +--- brep2sdf/networks/patch_graph.py | 8 +------ brep2sdf/scripts/convert/brep_to_mesh.py | 2 -- brep2sdf/scripts/diagnose.py | 8 +++---- brep2sdf/scripts/process_brep.py | 4 +--- brep2sdf/scripts/process_furniture.py | 5 +--- brep2sdf/scripts/read_npz.py | 5 ++-- brep2sdf/scripts/read_pkl.py | 2 +- brep2sdf/train.py | 4 +--- 21 files changed, 24 insertions(+), 101 deletions(-) diff --git a/brep2sdf/data/data.py b/brep2sdf/data/data.py index 6e5b844..a56e7fb 100644 --- a/brep2sdf/data/data.py +++ b/brep2sdf/data/data.py @@ -1,10 +1,7 @@ -import os import torch -from torch.utils.data import Dataset import numpy as np import pickle from brep2sdf.utils.logger import logger -from brep2sdf.config.default_config import get_default_config diff --git a/brep2sdf/data/pre_process.py b/brep2sdf/data/pre_process.py index 8a65b46..ef76fb6 100644 --- a/brep2sdf/data/pre_process.py +++ b/brep2sdf/data/pre_process.py @@ -8,12 +8,7 @@ CAD模型处理脚本 import os import pickle # 用于数据序列化 -import argparse # 命令行参数解析 import numpy as np -from tqdm import tqdm # 进度条显示 -from concurrent.futures import ProcessPoolExecutor, as_completed, TimeoutError # 并行处理 -import logging -from datetime import datetime from brep2sdf.utils.logger import logger @@ -28,7 +23,7 @@ from OCC.Core.IFSelect import IFSelect_RetDone,IFSelect_RetError, IFSelect_RetFa from OCC.Core.TopTools import TopTools_IndexedDataMapOfShapeListOfShape # 形状映射 from OCC.Core.BRepBndLib import brepbndlib # 包围盒计算 from OCC.Core.Bnd import Bnd_Box # 包围盒 -from OCC.Core.TopoDS import TopoDS_Shape, topods, TopoDS_Vertex # 拓扑数据结构 +from OCC.Core.TopoDS import topods, TopoDS_Vertex # 拓扑数据结构 # 导入配置 from brep2sdf.config.default_config import get_default_config diff --git a/brep2sdf/data/pre_process_by_mesh.py b/brep2sdf/data/pre_process_by_mesh.py index 1e69a1a..f6a579b 100644 --- a/brep2sdf/data/pre_process_by_mesh.py +++ b/brep2sdf/data/pre_process_by_mesh.py @@ -8,34 +8,24 @@ CAD模型处理脚本 import os import pickle # 用于数据序列化 -import argparse # 命令行参数解析 import numpy as np -from tqdm import tqdm # 进度条显示 -from concurrent.futures import ProcessPoolExecutor, as_completed, TimeoutError # 并行处理 -import logging -from datetime import datetime -from scipy.spatial import cKDTree import tempfile import trimesh -from trimesh.proximity import ProximityQuery # 导入OpenCASCADE相关库 from OCC.Core.STEPControl import STEPControl_Reader # STEP文件读取器 -from OCC.Core.TopExp import TopExp_Explorer, topexp # 拓扑结构遍历 +from OCC.Core.TopExp import TopExp_Explorer # 拓扑结构遍历 from OCC.Core.TopAbs import TopAbs_FACE, TopAbs_EDGE, TopAbs_VERTEX # 拓扑类型定义 from OCC.Core.BRep import BRep_Tool # B-rep工具 from OCC.Core.BRepMesh import BRepMesh_IncrementalMesh # 网格剖分 from OCC.Core.TopLoc import TopLoc_Location # 位置变换 from OCC.Core.IFSelect import IFSelect_RetDone,IFSelect_RetError, IFSelect_RetFail, IFSelect_RetVoid # 操作状态码 -from OCC.Core.TopTools import TopTools_IndexedDataMapOfShapeListOfShape # 形状映射 -from OCC.Core.BRepBndLib import brepbndlib # 包围盒计算 -from OCC.Core.Bnd import Bnd_Box # 包围盒 -from OCC.Core.TopoDS import TopoDS_Shape, topods, TopoDS_Vertex # 拓扑数据结构 +from OCC.Core.TopoDS import topods # 拓扑数据结构 from OCC.Core.StlAPI import StlAPI_Writer from brep2sdf.data.sampler import sample_sdf_points_and_normals from brep2sdf.data.data import check_data_format -from brep2sdf.data.utils import get_bbox, normalize, get_adjacency_info,load_step, preprocess_mesh,batch_compute_normals +from brep2sdf.data.utils import get_bbox, normalize, get_adjacency_info,batch_compute_normals from brep2sdf.utils.logger import logger # 导入配置 from brep2sdf.config.default_config import get_default_config diff --git a/brep2sdf/data/sampler.py b/brep2sdf/data/sampler.py index a8eb1f2..f3e7680 100644 --- a/brep2sdf/data/sampler.py +++ b/brep2sdf/data/sampler.py @@ -6,37 +6,16 @@ CAD模型处理脚本 - 空间信息:包围盒数据 """ -import os -import pickle # 用于数据序列化 -import argparse # 命令行参数解析 import numpy as np -from tqdm import tqdm # 进度条显示 -from concurrent.futures import ProcessPoolExecutor, as_completed, TimeoutError # 并行处理 -import logging -from datetime import datetime -from scipy.spatial import cKDTree from brep2sdf.utils.logger import logger -import tempfile import trimesh from trimesh.proximity import ProximityQuery # 导入OpenCASCADE相关库 -from OCC.Core.STEPControl import STEPControl_Reader # STEP文件读取器 -from OCC.Core.TopExp import TopExp_Explorer, topexp # 拓扑结构遍历 -from OCC.Core.TopAbs import TopAbs_FACE, TopAbs_EDGE, TopAbs_VERTEX # 拓扑类型定义 -from OCC.Core.BRep import BRep_Tool # B-rep工具 -from OCC.Core.BRepMesh import BRepMesh_IncrementalMesh # 网格剖分 -from OCC.Core.TopLoc import TopLoc_Location # 位置变换 -from OCC.Core.IFSelect import IFSelect_RetDone,IFSelect_RetError, IFSelect_RetFail, IFSelect_RetVoid # 操作状态码 -from OCC.Core.TopTools import TopTools_IndexedDataMapOfShapeListOfShape # 形状映射 -from OCC.Core.BRepBndLib import brepbndlib # 包围盒计算 -from OCC.Core.Bnd import Bnd_Box # 包围盒 -from OCC.Core.TopoDS import TopoDS_Shape, topods, TopoDS_Vertex # 拓扑数据结构 -from OCC.Core.StlAPI import StlAPI_Writer # 导入配置 from brep2sdf.config.default_config import get_default_config -from brep2sdf.data.utils import get_bbox, normalize, get_adjacency_info,load_step, preprocess_mesh,batch_compute_normals +from brep2sdf.data.utils import batch_compute_normals config = get_default_config() @@ -168,7 +147,7 @@ def sample_sdf_points_and_normals( # 添加调试信息 if i == 0: # 只打印第一个批次的统计信息 - logger.debug(f"批次统计 (首批次):") + logger.debug("批次统计 (首批次):") logger.debug(f" 法向量范围: [{normals_batch.min():.4f}, {normals_batch.max():.4f}]") logger.debug(f" 法向量长度: {np.linalg.norm(normals_batch, axis=1).mean():.4f}") logger.debug(f" 距离范围: [{batch_distances.min():.4f}, {batch_distances.max():.4f}]") @@ -196,7 +175,7 @@ def sample_sdf_points_and_normals( # 验证法向量 normal_lengths = np.linalg.norm(sampled_normals, axis=1) - logger.debug(f"最终法向量统计:") + logger.debug("最终法向量统计:") logger.debug(f" 形状: {sampled_normals.shape}") logger.debug(f" 长度: min={normal_lengths.min():.4f}, max={normal_lengths.max():.4f}, mean={normal_lengths.mean():.4f}") logger.debug(f" 分量范围: x=[{sampled_normals[:,0].min():.4f}, {sampled_normals[:,0].max():.4f}]") @@ -226,7 +205,7 @@ def sample_sdf_points_and_normals( # 添加SDF分布验证 final_sdf = combined_data[:, -1] - logger.debug(f"最终SDF分布验证:") + logger.debug("最终SDF分布验证:") logger.debug(f" 正值点数: {np.sum(final_sdf > 0)}") logger.debug(f" 负值点数: {np.sum(final_sdf < 0)}") logger.debug(f" 零值点数: {np.sum(np.abs(final_sdf) < 1e-6)}") diff --git a/brep2sdf/data/utils.py b/brep2sdf/data/utils.py index 0ae7c54..1a1bf2b 100644 --- a/brep2sdf/data/utils.py +++ b/brep2sdf/data/utils.py @@ -1,15 +1,14 @@ # 导入OpenCASCADE相关库 from OCC.Core.STEPControl import STEPControl_Reader # STEP文件读取器 from OCC.Core.TopExp import TopExp_Explorer, topexp # 拓扑结构遍历 -from OCC.Core.TopAbs import TopAbs_FACE, TopAbs_EDGE, TopAbs_VERTEX # 拓扑类型定义 +from OCC.Core.TopAbs import TopAbs_FACE, TopAbs_EDGE # 拓扑类型定义 from OCC.Core.TopTools import TopTools_IndexedDataMapOfShapeListOfShape # 形状映射 from OCC.Core.BRepBndLib import brepbndlib # 包围盒计算 from OCC.Core.Bnd import Bnd_Box # 包围盒 -from OCC.Core.TopoDS import TopoDS_Shape, topods, TopoDS_Vertex # 拓扑数据结构 +from OCC.Core.TopoDS import topods, TopoDS_Vertex # 拓扑数据结构 import numpy as np from scipy.spatial import cKDTree -import trimesh from brep2sdf.utils.logger import logger diff --git a/brep2sdf/deep_sdf/workspace.py b/brep2sdf/deep_sdf/workspace.py index 2d4cb86..ec156c3 100644 --- a/brep2sdf/deep_sdf/workspace.py +++ b/brep2sdf/deep_sdf/workspace.py @@ -28,7 +28,7 @@ def load_experiment_specifications(experiment_directory): if not os.path.isfile(filename): raise Exception( "The experiment directory ({}) does not include specifications file " - + '"specs.json"'.format(experiment_directory) + + '"specs.json"' ) return json.load(open(filename)) @@ -86,7 +86,7 @@ def load_latent_vectors(experiment_directory, checkpoint): if not os.path.isfile(filename): raise Exception( "The experiment directory ({}) does not include a latent code file" - + " for checkpoint '{}'".format(experiment_directory, checkpoint) + + " for checkpoint '{}'".format(experiment_directory, ) ) data = torch.load(filename) diff --git a/brep2sdf/evaluation.py b/brep2sdf/evaluation.py index a82cc69..a1a7eb6 100644 --- a/brep2sdf/evaluation.py +++ b/brep2sdf/evaluation.py @@ -1,16 +1,12 @@ import os -import sys from brep2sdf.utils.logger import logger # 导入日志系统 -from brep2sdf.utils.logger import logger import numpy as np from scipy.spatial import cKDTree -from scipy.spatial.distance import directed_hausdorff import trimesh import pandas as pd -import csv import math import pickle diff --git a/brep2sdf/networks/decoder.py b/brep2sdf/networks/decoder.py index 154dd3a..9f9ea57 100644 --- a/brep2sdf/networks/decoder.py +++ b/brep2sdf/networks/decoder.py @@ -1,11 +1,7 @@ -import torch import torch.nn as nn import torch.nn.functional as F from torch import Tensor -from typing import Dict, Optional, Tuple, Union -from brep2sdf.config.default_config import get_default_config -from brep2sdf.utils.logger import logger class Decoder(nn.Module): def __init__(self, diff --git a/brep2sdf/networks/encoder.py b/brep2sdf/networks/encoder.py index cddc3d1..ec153cb 100644 --- a/brep2sdf/networks/encoder.py +++ b/brep2sdf/networks/encoder.py @@ -1,13 +1,7 @@ -import math import torch import torch.nn as nn -import torch.nn.functional as F -from typing import Dict, Optional, Tuple, Union from .octree import OctreeNode -from brep2sdf.config.default_config import get_default_config -from brep2sdf.utils.logger import logger -import numpy as np class Encoder(nn.Module): def __init__(self, octree: OctreeNode, feature_dim: int = 32): diff --git a/brep2sdf/networks/feature_volume.py b/brep2sdf/networks/feature_volume.py index f1bffd8..52caa21 100644 --- a/brep2sdf/networks/feature_volume.py +++ b/brep2sdf/networks/feature_volume.py @@ -2,7 +2,6 @@ from typing import Tuple, List import torch import torch.nn as nn -import torch.optim as optim class PatchFeatureVolume(nn.Module): def __init__(self, bbox:np, resolution=64, feature_dim=64): diff --git a/brep2sdf/networks/loss.py b/brep2sdf/networks/loss.py index eaebe9d..ebf6777 100644 --- a/brep2sdf/networks/loss.py +++ b/brep2sdf/networks/loss.py @@ -1,8 +1,5 @@ import torch -import torch.nn as nn from .network import gradient -from brep2sdf.config.default_config import get_default_config -from brep2sdf.utils.logger import logger class LossManager: diff --git a/brep2sdf/networks/network.py b/brep2sdf/networks/network.py index 9faeff7..3a56d23 100644 --- a/brep2sdf/networks/network.py +++ b/brep2sdf/networks/network.py @@ -1,6 +1,5 @@ -from typing import Tuple ''' class GridNet: diff --git a/brep2sdf/networks/octree.py b/brep2sdf/networks/octree.py index b987db0..d07b07b 100644 --- a/brep2sdf/networks/octree.py +++ b/brep2sdf/networks/octree.py @@ -1,11 +1,9 @@ -from typing import Tuple, List, cast, Dict, Any +from typing import Tuple import torch import torch.nn as nn -import torch.nn.functional as F import numpy as np -from brep2sdf.utils.logger import logger from brep2sdf.networks.patch_graph import PatchGraph diff --git a/brep2sdf/networks/patch_graph.py b/brep2sdf/networks/patch_graph.py index 3e78c2b..b30b828 100644 --- a/brep2sdf/networks/patch_graph.py +++ b/brep2sdf/networks/patch_graph.py @@ -1,13 +1,7 @@ -from typing import Tuple, Optional +from typing import Tuple import torch import torch.nn as nn import numpy as np -from OCC.Core.TopAbs import TopAbs_FACE, TopAbs_EDGE -from OCC.Core.TopExp import TopExp_Explorer -from OCC.Core.TopoDS import TopoDS_Edge, TopoDS_Face, topods_Edge, topods_Face -from OCC.Core.BRep import BRep_Tool -from OCC.Core.GeomLProp import GeomLProp_SLProps -from OCC.Core.BRepAdaptor import BRepAdaptor_Surface class PatchGraph(nn.Module): def __init__(self, num_patches: int, device: torch.device = None): diff --git a/brep2sdf/scripts/convert/brep_to_mesh.py b/brep2sdf/scripts/convert/brep_to_mesh.py index 5b99e49..ee5d6c5 100644 --- a/brep2sdf/scripts/convert/brep_to_mesh.py +++ b/brep2sdf/scripts/convert/brep_to_mesh.py @@ -1,7 +1,5 @@ import os -import sys import pickle -import argparse from tqdm import tqdm from concurrent.futures import ProcessPoolExecutor, as_completed, TimeoutError from convert_utils import * diff --git a/brep2sdf/scripts/diagnose.py b/brep2sdf/scripts/diagnose.py index 01a0be0..21ce528 100644 --- a/brep2sdf/scripts/diagnose.py +++ b/brep2sdf/scripts/diagnose.py @@ -46,7 +46,7 @@ class ModelDiagnostics: logger.info("\n查询点编码:") logger.info(f" 输入形状: {batch['query_points'].shape}") logger.info(f" 输出形状: {query_features.shape}") - logger.info(f" 特征统计:") + logger.info(" 特征统计:") logger.info(f" 均值: {query_features.mean():.4f}") logger.info(f" 标准差: {query_features.std():.4f}") logger.info(f" 最大值: {query_features.max():.4f}") @@ -63,7 +63,7 @@ class ModelDiagnostics: ) logger.info("\nB-rep特征编码:") logger.info(f" 输出形状: {brep_features.shape}") - logger.info(f" 特征统计:") + logger.info(" 特征统计:") logger.info(f" 均值: {brep_features.mean():.4f}") logger.info(f" 标准差: {brep_features.std():.4f}") @@ -71,7 +71,7 @@ class ModelDiagnostics: global_features = brep_features.mean(dim=1) logger.info("\n全局特征:") logger.info(f" 形状: {global_features.shape}") - logger.info(f" 统计:") + logger.info(" 统计:") logger.info(f" 均值: {global_features.mean():.4f}") logger.info(f" 标准差: {global_features.std():.4f}") @@ -79,7 +79,7 @@ class ModelDiagnostics: sdf = self.model(**batch) logger.info("\nSDF预测:") logger.info(f" 形状: {sdf.shape}") - logger.info(f" 统计:") + logger.info(" 统计:") logger.info(f" 均值: {sdf.mean():.4f}") logger.info(f" 标准差: {sdf.std():.4f}") logger.info(f" 最大值: {sdf.max():.4f}") diff --git a/brep2sdf/scripts/process_brep.py b/brep2sdf/scripts/process_brep.py index 9c121b4..33f4842 100644 --- a/brep2sdf/scripts/process_brep.py +++ b/brep2sdf/scripts/process_brep.py @@ -8,11 +8,9 @@ CAD模型处理脚本 import os import pickle # 用于数据序列化 -import argparse # 命令行参数解析 import numpy as np from tqdm import tqdm # 进度条显示 from concurrent.futures import ProcessPoolExecutor, as_completed, TimeoutError # 并行处理 -import logging from datetime import datetime from brep2sdf.utils.logger import logger @@ -28,7 +26,7 @@ from OCC.Core.IFSelect import IFSelect_RetDone,IFSelect_RetError, IFSelect_RetFa from OCC.Core.TopTools import TopTools_IndexedDataMapOfShapeListOfShape # 形状映射 from OCC.Core.BRepBndLib import brepbndlib # 包围盒计算 from OCC.Core.Bnd import Bnd_Box # 包围盒 -from OCC.Core.TopoDS import TopoDS_Shape, topods, TopoDS_Vertex # 拓扑数据结构 +from OCC.Core.TopoDS import topods, TopoDS_Vertex # 拓扑数据结构 # 导入配置 from brep2sdf.config.default_config import get_default_config diff --git a/brep2sdf/scripts/process_furniture.py b/brep2sdf/scripts/process_furniture.py index 1fb3c1b..bf5d4f8 100644 --- a/brep2sdf/scripts/process_furniture.py +++ b/brep2sdf/scripts/process_furniture.py @@ -1,15 +1,12 @@ import os -import time import glob import trimesh import numpy as np from tqdm import tqdm import mesh2sdf -import skimage.measure -import matplotlib.pyplot as plt from concurrent.futures import ProcessPoolExecutor, as_completed import logging -from typing import Tuple, Optional +from typing import Optional from OCC.Core.STEPControl import STEPControl_Reader from OCC.Core.BRepMesh import BRepMesh_IncrementalMesh diff --git a/brep2sdf/scripts/read_npz.py b/brep2sdf/scripts/read_npz.py index a6e9c28..c44b158 100644 --- a/brep2sdf/scripts/read_npz.py +++ b/brep2sdf/scripts/read_npz.py @@ -2,7 +2,6 @@ import numpy as np import argparse from brep2sdf.utils.logger import logger import matplotlib.pyplot as plt -from mpl_toolkits.mplot3d import Axes3D def view_npz_file(file_path: str, save_plot: bool = False): """查看指定的npz文件内容 @@ -16,9 +15,9 @@ def view_npz_file(file_path: str, save_plot: bool = False): data = np.load(file_path) # 打印基本信息 - logger.info(f"\n=== NPZ文件内容分析 ===") + logger.info("\n=== NPZ文件内容分析 ===") logger.info(f"文件路径: {file_path}") - logger.info(f"\n包含的数组:") + logger.info("\n包含的数组:") # 分析每个数组 for key in data.files: diff --git a/brep2sdf/scripts/read_pkl.py b/brep2sdf/scripts/read_pkl.py index 6522d29..9cff371 100644 --- a/brep2sdf/scripts/read_pkl.py +++ b/brep2sdf/scripts/read_pkl.py @@ -20,7 +20,7 @@ def inspect_data(pkl_file): print("-" * 30) if isinstance(value, np.ndarray): - print(f"类型: numpy.ndarray") + print("类型: numpy.ndarray") print(f"形状: {value.shape}") print(f"数据类型: {value.dtype}") if value.size > 0: diff --git a/brep2sdf/train.py b/brep2sdf/train.py index 8a2f18a..e786570 100644 --- a/brep2sdf/train.py +++ b/brep2sdf/train.py @@ -1,6 +1,4 @@ import torch -from torch.serialization import add_safe_globals -from torch.utils.mobile_optimizer import optimize_for_mobile import torch.optim as optim import time import os @@ -8,7 +6,7 @@ import numpy as np import argparse from brep2sdf.config.default_config import get_default_config -from brep2sdf.data.data import load_brep_file,load_sdf_file, prepare_sdf_data, print_data_distribution, check_tensor +from brep2sdf.data.data import load_brep_file,prepare_sdf_data, print_data_distribution, check_tensor from brep2sdf.data.pre_process_by_mesh import process_single_step from brep2sdf.networks.network import Net from brep2sdf.networks.octree import OctreeNode