观察者 线段分析/扩展分析 支持无限递归,保留之前序列为@property 形式

This commit is contained in:
YuWuKunCheng
2026-06-06 22:02:30 +08:00
parent dd40f95742
commit 0a7e9dc896
3 changed files with 46 additions and 9 deletions
+29 -3
View File
@@ -435,9 +435,9 @@ class 虚线:
@property
def 模式(self) -> str: ...
@property
def 特征序列_显示(self) -> bool: ...
@特征序列_显示.setter
def 特征序列_显示(self, value: bool) -> None: ...
def _特征序列_显示(self) -> bool: ...
@_特征序列_显示.setter
def _特征序列_显示(self, value: bool) -> None: ...
@property
def 特征序列(self) -> List[Optional[线段特征]]: ...
@property
@@ -523,6 +523,8 @@ class 虚线:
class 线段特征:
@property
def 序号(self) -> int: ...
@序号.setter
def 序号(self, value: int) -> None: ...
@property
def 标识(self) -> str: ...
@标识.setter
@@ -790,6 +792,30 @@ class 观察者:
def 扩展线段序列_扩展线段(self) -> List[虚线]: ...
@property
def 扩展中枢序列_扩展线段(self) -> List[中枢]: ...
@property
def 线段分析层次(self) -> int: ...
@线段分析层次.setter
def 线段分析层次(self, value: int) -> None: ...
@property
def 扩展线段分析层次(self) -> int: ...
@扩展线段分析层次.setter
def 扩展线段分析层次(self, value: int) -> None: ...
@property
def 混合扩展线段分析层次(self) -> int: ...
@混合扩展线段分析层次.setter
def 混合扩展线段分析层次(self, value: int) -> None: ...
@property
def 线段序列组(self) -> List[List[虚线]]: ...
@property
def 中枢序列组(self) -> List[List[中枢]]: ...
@property
def 扩展线段序列组(self) -> List[List[虚线]]: ...
@property
def 扩展中枢序列组(self) -> List[List[中枢]]: ...
@property
def 混合扩展线段序列组(self) -> List[List[虚线]]: ...
@property
def 混合扩展中枢序列组(self) -> List[List[中枢]]: ...
def 重置基础序列(self) -> None: ...
def 增加原始K线(self, 普K: K线) -> None: ...
def 投喂原始数据(self, 时间戳: int, : float, : float, : float, : float, : float) -> None: ...
+7 -1
View File
@@ -994,7 +994,13 @@ pub struct 线段特征Py {
impl 线Py {
#[getter]
fn (&self) -> i64 {
self.inner.
self.inner..load(Ordering::Relaxed)
}
#[setter]
#[pyo3(name = "序号")]
fn set_序号(&self, value: i64) {
self.inner..store(value, Ordering::Relaxed);
}
#[getter]
+10 -5
View File
@@ -26,6 +26,7 @@ use crate::structure::dash_line::虚线;
use crate::structure::feat_fractal::;
use crate::structure::fractal_obj::;
use crate::types::{, };
use std::sync::atomic::AtomicI64;
use std::sync::atomic::Ordering;
use std::sync::{Arc, RwLock};
@@ -48,7 +49,7 @@ use std::sync::{Arc, RwLock};
#[derive(Debug)]
pub struct 线 {
/// 特征序列元素编号
pub : i64,
pub : AtomicI64,
/// 标识字符串(如 "特征<虚线>"
pub : RwLock<String>,
/// 所属线段的方向
@@ -60,7 +61,7 @@ pub struct 线段特征 {
impl Clone for 线 {
fn clone(&self) -> Self {
Self {
: self.,
: AtomicI64::new(self..load(Ordering::Relaxed)),
: RwLock::new(self..read().unwrap().clone()),
线: self.线,
: self..clone(),
@@ -72,7 +73,7 @@ impl 线段特征 {
/// 新建线段特征(给定标识、基础序列和线段方向)
pub fn new(: String, : Vec<Arc<线>>, 线: ) -> Self {
Self {
: 0,
: AtomicI64::new(0),
: RwLock::new(),
线,
,
@@ -319,10 +320,14 @@ impl 线段特征 {
/// 结构化相等校验 — 逐项递归校验基础序列中的虚线,返回 (是否相等, 差异描述)
pub fn (&self, other: &Self, : f64) -> (bool, String) {
if self. != other. {
if self..load(Ordering::Relaxed) != other..load(Ordering::Relaxed) {
return (
false,
format!("线段特征: [序号] 不等 A={},B={}", self., other.),
format!(
"线段特征: [序号] 不等 A={},B={}",
self..load(Ordering::Relaxed),
other..load(Ordering::Relaxed)
),
);
}
if *self..read().unwrap() != *other..read().unwrap() {